Skip to main content

x12_types/v005010/segment/
r.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// RST - Carrier Restriction
6///
7/// To specify carrier restrictions
8///
9/// REF | ID | NAME | REQ | TYPE | MIN/MAX
10/// ----|----|-------|----|------|-------
11/// 01 | 281 | Carrier Restriction Code | C | AN | 1/10
12/// 02 | 352 | Description | C | AN | 1/80
13#[derive(
14    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
15)]
16pub struct RST {
17    #[serde(rename = "01")]
18    pub _01: Option<String>,
19    #[serde(rename = "02")]
20    pub _02: Option<String>,
21}
22
23/// RTE - Rate Information
24///
25/// To specify rate information
26///
27/// REF | ID | NAME | REQ | TYPE | MIN/MAX
28/// ----|----|-------|----|------|-------
29/// 01 | 1387 | Rate Qualifier | M | ID | 1/2
30/// 02 | 953 | Interest Rate | M | R | 1/6
31/// 03 | 782 | Monetary Amount | O | R | 1/18
32/// 04 | 1470 | Number | O | N0 | 1/9
33/// 05 | 1470 | Number | O | N0 | 1/9
34#[derive(
35    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
36)]
37pub struct RTE {
38    #[serde(rename = "01")]
39    pub _01: crate::v005010::element::E1387,
40    #[serde(rename = "02")]
41    pub _02: crate::v005010::element::E953,
42    #[serde(rename = "03")]
43    pub _03: Option<crate::v005010::element::E782>,
44    #[serde(rename = "04")]
45    pub _04: Option<crate::v005010::element::E1470>,
46    #[serde(rename = "05")]
47    pub _05: Option<crate::v005010::element::E1470>,
48}
49
50/// RDM - Remittance Delivery Method
51#[derive(
52    Serialize,
53    Deserialize,
54    Clone,
55    Default,
56    Debug,
57    Validate,
58    PartialEq,
59    Eq,
60    DisplaySegment,
61    ParseSegment,
62)]
63pub struct RDM {
64    #[serde(rename = "01")]
65    pub _01: String,
66    #[serde(rename = "02")]
67    pub _02: Option<String>,
68    #[serde(rename = "03")]
69    pub _03: Option<String>,
70    #[serde(rename = "04")]
71    pub _04: Option<String>,
72    #[serde(rename = "05")]
73    pub _05: Option<String>,
74}
75
76/// REF - Reference Information
77///
78/// To specify identifying information
79///
80/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
81/// ----|----|-------|--------|----|------|-------
82/// 01 | 128 | Reference Identification Qualifier | 1 | M | ID | 2/3
83/// 02 | 127 | Reference Identification | 1 | M | AN | 1/50
84/// 03 | 352 | Description | 1 | O | AN | 1/80
85/// 04 | C040 | Reference Identifier | 1 | O | C | 1/1
86#[derive(
87    Serialize,
88    Deserialize,
89    Clone,
90    Default,
91    Debug,
92    Validate,
93    PartialEq,
94    Eq,
95    DisplaySegment,
96    ParseSegment,
97)]
98pub struct REF {
99    /// 128 - Reference Identification Qualifier
100    #[serde(rename = "01")]
101    pub _01: crate::v005010::element::E128,
102    /// 127 - Reference Identification
103    ///
104    /// Reference information as defined for a particular Transaction Set or as specified by the Reference Identification Qualifier
105    /// - TYPE=AN
106    /// - MIN=1
107    /// - MAX=50
108    #[validate(length(min = 1, max = 50))]
109    #[serde(rename = "02")]
110    pub _02: Option<String>,
111    /// 352 - Description
112    ///
113    /// A free-form description to clarify the related data elements and their content
114    /// - TYPE=AN
115    /// - MIN=1
116    /// - MAX=80
117    #[validate(length(min = 1, max = 80))]
118    #[serde(rename = "03")]
119    pub _03: Option<String>,
120    /// C040 - Reference Identifier
121    ///
122    /// To identify one or more areas of the Reference Identifier
123    /// - TYPE=C
124    /// - MIN=1
125    /// - MAX=1
126    #[serde(rename = "04")]
127    pub _04: Option<String>,
128}
129
130/// REL - Relationship
131#[derive(
132    Serialize,
133    Deserialize,
134    Clone,
135    Default,
136    Debug,
137    Validate,
138    PartialEq,
139    Eq,
140    DisplaySegment,
141    ParseSegment,
142)]
143pub struct REL {
144    #[serde(rename = "01")]
145    pub _01: String,
146    #[serde(rename = "02")]
147    pub _02: Option<String>,
148}
149
150/// RP - Retirement Product
151#[derive(
152    Serialize,
153    Deserialize,
154    Clone,
155    Default,
156    Debug,
157    Validate,
158    PartialEq,
159    Eq,
160    DisplaySegment,
161    ParseSegment,
162)]
163pub struct RP {
164    #[serde(rename = "01")]
165    pub _01: String,
166    #[serde(rename = "02")]
167    pub _02: Option<String>,
168    #[serde(rename = "03")]
169    pub _03: Option<String>,
170    #[serde(rename = "04")]
171    pub _04: Option<String>,
172    #[serde(rename = "05")]
173    pub _05: Option<String>,
174    #[serde(rename = "06")]
175    pub _06: Option<String>,
176    #[serde(rename = "07")]
177    pub _07: Option<String>,
178    #[serde(rename = "08")]
179    pub _08: Option<String>,
180    #[serde(rename = "09")]
181    pub _09: Option<String>,
182}
183
184/// RMR - Remittance Advice Accounts Receivable Open Item Reference
185#[derive(
186    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
187)]
188pub struct RMR {
189    #[serde(rename = "01")]
190    pub _01: Option<String>,
191    #[serde(rename = "02")]
192    pub _02: Option<String>,
193    #[serde(rename = "03")]
194    pub _03: Option<String>,
195    #[serde(rename = "04")]
196    pub _04: Option<String>,
197    #[serde(rename = "05")]
198    pub _05: Option<String>,
199    #[serde(rename = "06")]
200    pub _06: Option<String>,
201    #[serde(rename = "07")]
202    pub _07: Option<String>,
203    #[serde(rename = "08")]
204    pub _08: Option<String>,
205}
206
207/// RPA - Rate Amounts or Percents
208#[derive(
209    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
210)]
211pub struct RPA {
212    #[serde(rename = "01")]
213    pub _01: Option<String>,
214    #[serde(rename = "02")]
215    pub _02: Option<String>,
216    #[serde(rename = "03")]
217    pub _03: Option<String>,
218    #[serde(rename = "04")]
219    pub _04: Option<String>,
220    #[serde(rename = "05")]
221    pub _05: Option<String>,
222}
223
224/// RRA - Required Response
225///
226/// To identify the type of response required and an associated reference
227///
228/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
229/// ----|----|-------|--------|----|------|-------
230/// 01 | 701 | Information Type | 1 | M | ID | 2/2
231/// 02 | 127 | Reference Identification | 1 | O | AN | 1/50
232#[derive(
233    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
234)]
235pub struct RRA {
236    #[serde(rename = "01")]
237    pub _01: crate::v005010::element::E701,
238    #[serde(rename = "02")]
239    pub _02: Option<String>,
240}
241
242/// RYL - Royalty Payment
243#[derive(
244    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
245)]
246pub struct RYL {
247    #[serde(rename = "01")]
248    pub _01: Option<String>,
249    #[serde(rename = "02")]
250    pub _02: Option<String>,
251    #[serde(rename = "03")]
252    pub _03: Option<String>,
253    #[serde(rename = "04")]
254    pub _04: Option<String>,
255    #[serde(rename = "05")]
256    pub _05: Option<String>,
257    #[serde(rename = "06")]
258    pub _06: Option<String>,
259    #[serde(rename = "07")]
260    pub _07: Option<String>,
261    #[serde(rename = "08")]
262    pub _08: Option<String>,
263    #[serde(rename = "09")]
264    pub _09: Option<String>,
265    #[serde(rename = "10")]
266    pub _10: Option<String>,
267    #[serde(rename = "11")]
268    pub _11: Option<String>,
269    #[serde(rename = "12")]
270    pub _12: Option<String>,
271    #[serde(rename = "13")]
272    pub _13: Option<String>,
273    #[serde(rename = "14")]
274    pub _14: Option<String>,
275    #[serde(rename = "15")]
276    pub _15: Option<String>,
277    #[serde(rename = "16")]
278    pub _16: Option<String>,
279    #[serde(rename = "17")]
280    pub _17: Option<String>,
281    #[serde(rename = "18")]
282    pub _18: Option<String>,
283    #[serde(rename = "19")]
284    pub _19: Option<String>,
285    #[serde(rename = "20")]
286    pub _20: Option<String>,
287    #[serde(rename = "21")]
288    pub _21: Option<String>,
289    #[serde(rename = "22")]
290    pub _22: Option<String>,
291    #[serde(rename = "23")]
292    pub _23: Option<String>,
293    #[serde(rename = "24")]
294    pub _24: Option<String>,
295    #[serde(rename = "25")]
296    pub _25: Option<String>,
297}
298
299/// R2 - Equipment Details
300///
301/// To specify the equipment details
302///
303/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
304/// ----|----|-------|--------|----|------|-------
305/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
306/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
307/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
308/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
309/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
310/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
311/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
312/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
313/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
314/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
315#[derive(
316    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
317)]
318pub struct R2 {
319    #[serde(rename = "01")]
320    pub _01: String,
321    #[serde(rename = "02")]
322    pub _02: Option<String>,
323    #[serde(rename = "03")]
324    pub _03: Option<String>,
325    #[serde(rename = "04")]
326    pub _04: Option<String>,
327    #[serde(rename = "05")]
328    pub _05: Option<String>,
329    #[serde(rename = "06")]
330    pub _06: Option<String>,
331    #[serde(rename = "07")]
332    pub _07: Option<String>,
333    #[serde(rename = "08")]
334    pub _08: Option<String>,
335    #[serde(rename = "09")]
336    pub _09: Option<String>,
337    #[serde(rename = "10")]
338    pub _10: Option<String>,
339}
340
341/// R4 - Port or Terminal
342///
343/// To specify the port or terminal information
344///
345/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
346/// ----|----|-------|--------|----|------|-------
347/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
348/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
349/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
350/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
351/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
352/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
353/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
354/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
355/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
356/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
357#[derive(
358    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
359)]
360pub struct R4 {
361    #[serde(rename = "01")]
362    pub _01: String,
363    #[serde(rename = "02")]
364    pub _02: Option<String>,
365    #[serde(rename = "03")]
366    pub _03: Option<String>,
367    #[serde(rename = "04")]
368    pub _04: Option<String>,
369    #[serde(rename = "05")]
370    pub _05: Option<String>,
371    #[serde(rename = "06")]
372    pub _06: Option<String>,
373    #[serde(rename = "07")]
374    pub _07: Option<String>,
375    #[serde(rename = "08")]
376    pub _08: Option<String>,
377}
378
379/// RDR - Return Disposition Reason
380///
381/// To specify the disposition and reason for the return of merchandise
382///
383/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
384/// ----|----|-------|--------|----|------|-------
385/// 01 | 1292 | Returns Disposition Code | 1 | O | ID | 2/2
386/// 02 | 1293 | Return Request Reason Code | 1 | X | ID | 2/2
387/// 03 | 1294 | Return Response Reason Code | 1 | X | ID | 2/2
388/// 04 | 352 | Description | 1 | O | AN | 1/80
389/// 05 | 1073 | Yes/No Condition or Response Code | 1 | O | ID | 1/1
390#[derive(
391    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
392)]
393pub struct RDR {
394    #[serde(rename = "01")]
395    pub _01: Option<crate::v005010::element::E1292>,
396    #[serde(rename = "02")]
397    pub _02: Option<crate::v005010::element::E1293>,
398    #[serde(rename = "03")]
399    pub _03: Option<crate::v005010::element::E1294>,
400    #[serde(rename = "04")]
401    pub _04: Option<String>,
402    #[serde(rename = "05")]
403    pub _05: Option<crate::v005010::element::E1073>,
404}
405
406/// RED - Related Data
407///
408/// To supply related data identification and information
409#[derive(
410    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
411)]
412pub struct RED {
413    #[serde(rename = "01")]
414    pub _01: String,
415    #[serde(rename = "02")]
416    pub _02: Option<String>,
417    #[serde(rename = "03")]
418    pub _03: Option<String>,
419    #[serde(rename = "04")]
420    pub _04: Option<String>,
421    #[serde(rename = "05")]
422    pub _05: Option<String>,
423    #[serde(rename = "06")]
424    pub _06: Option<String>,
425    #[serde(rename = "07")]
426    pub _07: Option<String>,
427}
428
429/// R3 - Route Information - Motor
430///
431/// To specify carrier and routing sequences and details for motor transportation
432#[derive(
433    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
434)]
435pub struct R3 {
436    #[serde(rename = "01")]
437    pub _01: String,
438    #[serde(rename = "02")]
439    pub _02: Option<String>,
440    #[serde(rename = "03")]
441    pub _03: Option<String>,
442    #[serde(rename = "04")]
443    pub _04: Option<String>,
444    #[serde(rename = "05")]
445    pub _05: Option<String>,
446    #[serde(rename = "06")]
447    pub _06: Option<String>,
448    #[serde(rename = "07")]
449    pub _07: Option<String>,
450    #[serde(rename = "08")]
451    pub _08: Option<String>,
452    #[serde(rename = "09")]
453    pub _09: Option<String>,
454}
455
456/// R2A - Route Information
457///
458/// To specify the route information
459///
460/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
461/// ----|----|-------|--------|----|------|-------
462/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
463/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
464/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
465/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
466/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
467/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
468/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
469/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
470/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
471/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
472#[derive(
473    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
474)]
475pub struct R2A {
476    #[serde(rename = "01")]
477    pub _01: String,
478    #[serde(rename = "02")]
479    pub _02: Option<String>,
480    #[serde(rename = "03")]
481    pub _03: Option<String>,
482    #[serde(rename = "04")]
483    pub _04: Option<String>,
484    #[serde(rename = "05")]
485    pub _05: Option<String>,
486    #[serde(rename = "06")]
487    pub _06: Option<String>,
488    #[serde(rename = "07")]
489    pub _07: Option<String>,
490    #[serde(rename = "08")]
491    pub _08: Option<String>,
492    #[serde(rename = "09")]
493    pub _09: Option<String>,
494    #[serde(rename = "10")]
495    pub _10: Option<String>,
496}
497
498/// RCD - Receiving Conditions
499///
500/// To carry receiving conditions data
501#[derive(
502    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
503)]
504pub struct RCD {
505    #[serde(rename = "01")]
506    pub _01: Option<String>,
507    #[serde(rename = "02")]
508    pub _02: Option<String>,
509    #[serde(rename = "03")]
510    pub _03: Option<String>,
511    #[serde(rename = "04")]
512    pub _04: Option<String>,
513    #[serde(rename = "05")]
514    pub _05: Option<String>,
515    #[serde(rename = "06")]
516    pub _06: Option<String>,
517    #[serde(rename = "07")]
518    pub _07: Option<String>,
519    #[serde(rename = "08")]
520    pub _08: Option<String>,
521    #[serde(rename = "09")]
522    pub _09: Option<String>,
523    #[serde(rename = "10")]
524    pub _10: Option<String>,
525    #[serde(rename = "11")]
526    pub _11: Option<String>,
527    #[serde(rename = "12")]
528    pub _12: Option<String>,
529    #[serde(rename = "13")]
530    pub _13: Option<String>,
531    #[serde(rename = "14")]
532    pub _14: Option<String>,
533    #[serde(rename = "15")]
534    pub _15: Option<String>,
535    #[serde(rename = "16")]
536    pub _16: Option<String>,
537    #[serde(rename = "17")]
538    pub _17: Option<String>,
539    #[serde(rename = "18")]
540    pub _18: Option<String>,
541    #[serde(rename = "19")]
542    pub _19: Option<String>,
543    #[serde(rename = "20")]
544    pub _20: Option<String>,
545}
546
547/// R9 - Code Identification
548#[derive(
549    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
550)]
551pub struct R9 {
552    #[serde(rename = "01")]
553    pub _01: String,
554    #[serde(rename = "02")]
555    pub _02: Option<String>,
556    #[serde(rename = "03")]
557    pub _03: Option<String>,
558    #[serde(rename = "04")]
559    pub _04: Option<String>,
560    #[serde(rename = "05")]
561    pub _05: Option<String>,
562    #[serde(rename = "06")]
563    pub _06: Option<String>,
564    #[serde(rename = "07")]
565    pub _07: Option<String>,
566    #[serde(rename = "08")]
567    pub _08: Option<String>,
568    #[serde(rename = "09")]
569    pub _09: Option<String>,
570}