Skip to main content

x12_types/v005010/segment/
s.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// SER - Service Charges
6///
7/// To specify the service charges for an account analysis
8///
9/// REF | ID | NAME | REQ | TYPE | MIN/MAX
10/// ----|----|-------|----|------|-------
11/// 01 | 235 | Product/Service ID Qualifier | M | ID | 2/2
12/// 02 | 234 | Product/Service ID | M | AN | 1/48
13/// 03 | 782 | Monetary Amount | X | R | 1/18
14/// 04 | 782 | Monetary Amount | X | R | 1/18
15/// 05 | 212 | Unit Price | O | R | 1/17
16/// 06 | 380 | Quantity | O | R | 1/15
17/// 07 | 352 | Description | O | AN | 1/80
18/// 08 | 236 | Price Identifier Code | O | ID | 3/3
19/// 09 | 107 | Payment Method Type Code | O | ID | 1/2
20/// 10 | 128 | Reference Identification Qualifier | X | ID | 2/3
21/// 11 | 127 | Reference Identification | X | AN | 1/50
22#[derive(
23    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
24)]
25pub struct SER {
26    #[serde(rename = "01")]
27    pub _01: String,
28    #[serde(rename = "02")]
29    pub _02: String,
30    #[serde(rename = "03")]
31    pub _03: Option<crate::v005010::element::E782>,
32    #[serde(rename = "04")]
33    pub _04: Option<crate::v005010::element::E782>,
34    #[serde(rename = "05")]
35    pub _05: Option<crate::v005010::element::E212>,
36    #[serde(rename = "06")]
37    pub _06: Option<String>,
38    #[serde(rename = "07")]
39    pub _07: Option<String>,
40    #[serde(rename = "08")]
41    pub _08: Option<crate::v005010::element::E236>,
42    #[serde(rename = "09")]
43    pub _09: Option<crate::v005010::element::E107>,
44    #[serde(rename = "10")]
45    pub _10: Option<String>,
46    #[serde(rename = "11")]
47    pub _11: Option<String>,
48}
49
50/// SV - Service Description
51///
52/// To transmit the service standards and related service information
53///
54/// REF | ID | NAME | REQ | TYPE | MIN/MAX
55/// ----|----|-------|----|------|-------
56/// 01 | 344 | Unit of Time Period or Interval | C | ID | 2/2
57/// 02 | 34 | Service Standard | O | N1 | 1/4
58/// 03 | 34 | Service Standard | O | N1 | 1/4
59/// 04 | 72 | Type of Service Offered Code | O | ID | 1/1
60#[derive(
61    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
62)]
63pub struct SV {
64    #[serde(rename = "01")]
65    pub _01: Option<crate::v005010::element::E344>,
66    #[serde(rename = "02")]
67    pub _02: Option<crate::v005010::element::E34>,
68    #[serde(rename = "03")]
69    pub _03: Option<crate::v005010::element::E34>,
70    #[serde(rename = "04")]
71    pub _04: Option<crate::v005010::element::E72>,
72}
73
74/// SSS - Special Services
75///
76/// To specify special services and the allowance or charge associated with them
77///
78/// REF | ID | NAME | REQ | TYPE | MIN/MAX
79/// ----|----|-------|----|------|-------
80/// 01 | 248 | Allowance or Charge Indicator | M | ID | 1/1
81/// 02 | 559 | Agency Qualifier Code | M | ID | 2/2
82/// 03 | 560 | Special Services Code | M | ID | 2/10
83/// 04 | 561 | Service Marks and Numbers | O | AN | 1/45
84/// 05 | 359 | Allowance or Charge Rate | O | R | 1/15
85/// 06 | 610 | Amount | O | N2 | 1/15
86/// 07 | 352 | Description | O | AN | 1/80
87/// 08 | 380 | Quantity | O | R | 1/15
88/// 09 | 822 | Source Subqualifier | O | AN | 1/15
89#[derive(
90    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
91)]
92pub struct SSS {
93    #[serde(rename = "01")]
94    pub _01: String,
95    #[serde(rename = "02")]
96    pub _02: String,
97    #[serde(rename = "03")]
98    pub _03: crate::v005010::element::E560,
99    #[serde(rename = "04")]
100    pub _04: Option<String>,
101    #[serde(rename = "05")]
102    pub _05: Option<crate::v005010::element::E359>,
103    #[serde(rename = "06")]
104    pub _06: Option<crate::v005010::element::E610>,
105    #[serde(rename = "07")]
106    pub _07: Option<String>,
107    #[serde(rename = "08")]
108    pub _08: Option<String>,
109    #[serde(rename = "09")]
110    pub _09: Option<String>,
111}
112
113/// SBR - Subscriber Information
114#[derive(
115    Serialize,
116    Deserialize,
117    Clone,
118    Default,
119    Debug,
120    Validate,
121    PartialEq,
122    Eq,
123    DisplaySegment,
124    ParseSegment,
125)]
126pub struct SBR {
127    #[serde(rename = "01")]
128    pub _01: String,
129    #[serde(rename = "02")]
130    pub _02: Option<String>,
131    #[serde(rename = "03")]
132    pub _03: Option<String>,
133    #[serde(rename = "04")]
134    pub _04: Option<String>,
135    #[serde(rename = "05")]
136    pub _05: Option<String>,
137    #[serde(rename = "06")]
138    pub _06: Option<String>,
139    #[serde(rename = "07")]
140    pub _07: Option<String>,
141    #[serde(rename = "08")]
142    pub _08: Option<String>,
143    #[serde(rename = "09")]
144    pub _09: Option<String>,
145}
146
147/// SE - Transaction Set Trailer
148#[derive(
149    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
150)]
151pub struct SE {
152    #[serde(rename = "01")]
153    pub _01: String,
154    #[serde(rename = "02")]
155    pub _02: String,
156}
157
158/// ST - Transaction Set Header
159#[derive(
160    Serialize,
161    Deserialize,
162    Clone,
163    Default,
164    Debug,
165    Validate,
166    PartialEq,
167    Eq,
168    DisplaySegment,
169    ParseSegment,
170)]
171pub struct ST {
172    #[serde(rename = "01")]
173    pub _01: String,
174    #[serde(rename = "02")]
175    pub _02: String,
176    #[serde(rename = "03")]
177    pub _03: Option<String>,
178}
179
180/// STC - Claim or Service Line Status information
181#[derive(
182    Serialize,
183    Deserialize,
184    Clone,
185    Default,
186    Debug,
187    Validate,
188    PartialEq,
189    Eq,
190    DisplaySegment,
191    ParseSegment,
192)]
193pub struct STC {
194    /// STC01 - Composite data (e.g., "A2:21:65")
195    #[serde(rename = "01")]
196    pub _01: String,
197
198    /// STC02 - Status Information Effective Date (CCYYMMDD)
199    #[serde(rename = "02")]
200    pub _02: Option<String>,
201
202    /// STC03 - Action Code (e.g., "IA", "I2", etc.)
203    #[serde(rename = "03")]
204    pub _03: Option<String>,
205
206    /// STC04 - Monetary Amount (e.g., total claim amount or allowed amount)
207    #[serde(rename = "04")]
208    pub _04: Option<String>,
209
210    /// STC05 - Monetary Amount (e.g., claim payment amount)
211    #[serde(rename = "05")]
212    pub _05: Option<String>,
213
214    /// STC06 - Appeal Reason Code or additional status info
215    #[serde(rename = "06")]
216    pub _06: Option<String>,
217
218    /// STC07 - Payment Method Code or additional status info
219    #[serde(rename = "07")]
220    pub _07: Option<String>,
221
222    /// STC08 - Remittance Date or other date (CCYYMMDD)
223    #[serde(rename = "08")]
224    pub _08: Option<String>,
225
226    /// STC09 - Remaining patient liability or additional monetary info
227    #[serde(rename = "09")]
228    pub _09: Option<String>,
229
230    /// STC10 - Free-form message text or additional info
231    #[serde(rename = "10")]
232    pub _10: Option<String>,
233}
234
235/// SUP - Supplementary Information
236///
237/// To identify supplementary or clause information relating to the shipment
238///
239/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
240/// ----|----|-------|--------|----|------|-------
241/// 01 | 749 | Supplementary Information Qualifier | 1 | M | ID | 3/3
242/// 02 | 246 | Certification/Clause Code | 1 | O | ID | 2/4
243/// 03 | 3 | Free-form Message | 1 | O | AN | 1/60
244/// 04 | 744 | Print Option Code | 1 | O | ID | 2/2
245#[derive(
246    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
247)]
248pub struct SUP {
249    #[serde(rename = "01")]
250    pub _01: crate::v005010::element::E749,
251    #[serde(rename = "02")]
252    pub _02: Option<crate::v005010::element::E246>,
253    #[serde(rename = "03")]
254    pub _03: Option<String>,
255    #[serde(rename = "04")]
256    pub _04: Option<crate::v005010::element::E744>,
257}
258
259/// SV1 - Professional Service
260#[derive(
261    Serialize,
262    Deserialize,
263    Clone,
264    Default,
265    Debug,
266    Validate,
267    PartialEq,
268    Eq,
269    DisplaySegment,
270    ParseSegment,
271)]
272pub struct SV1 {
273    #[serde(rename = "01")]
274    pub _01: String,
275    #[serde(rename = "02")]
276    pub _02: Option<String>,
277    #[serde(rename = "03")]
278    pub _03: Option<String>,
279    #[serde(rename = "04")]
280    pub _04: Option<String>,
281    #[serde(rename = "05")]
282    pub _05: Option<String>,
283    #[serde(rename = "06")]
284    pub _06: Option<String>,
285    #[serde(rename = "07")]
286    pub _07: Option<String>,
287    #[serde(rename = "08")]
288    pub _08: Option<String>,
289    #[serde(rename = "09")]
290    pub _09: Option<String>,
291    #[serde(rename = "10")]
292    pub _10: Option<String>,
293    #[serde(rename = "11")]
294    pub _11: Option<String>,
295    #[serde(rename = "12")]
296    pub _12: Option<String>,
297    #[serde(rename = "13")]
298    pub _13: Option<String>,
299    #[serde(rename = "14")]
300    pub _14: Option<String>,
301    #[serde(rename = "15")]
302    pub _15: Option<String>,
303    #[serde(rename = "16")]
304    pub _16: Option<String>,
305    #[serde(rename = "17")]
306    pub _17: Option<String>,
307    #[serde(rename = "18")]
308    pub _18: Option<String>,
309    #[serde(rename = "19")]
310    pub _19: Option<String>,
311    #[serde(rename = "20")]
312    pub _20: Option<String>,
313    #[serde(rename = "21")]
314    pub _21: Option<String>,
315}
316
317/// SV2 - Institutional Service
318#[derive(
319    Serialize,
320    Deserialize,
321    Clone,
322    Default,
323    Debug,
324    Validate,
325    PartialEq,
326    Eq,
327    DisplaySegment,
328    ParseSegment,
329)]
330pub struct SV2 {
331    #[serde(rename = "01")]
332    pub _01: String,
333    #[serde(rename = "02")]
334    pub _02: Option<String>,
335    #[serde(rename = "03")]
336    pub _03: Option<String>,
337    #[serde(rename = "04")]
338    pub _04: Option<String>,
339    #[serde(rename = "05")]
340    pub _05: Option<String>,
341    #[serde(rename = "06")]
342    pub _06: Option<String>,
343    #[serde(rename = "07")]
344    pub _07: Option<String>,
345    #[serde(rename = "08")]
346    pub _08: Option<String>,
347    #[serde(rename = "09")]
348    pub _09: Option<String>,
349    #[serde(rename = "10")]
350    pub _10: Option<String>,
351}
352
353/// SV3 - Dental Service
354#[derive(
355    Serialize,
356    Deserialize,
357    Clone,
358    Default,
359    Debug,
360    Validate,
361    PartialEq,
362    Eq,
363    DisplaySegment,
364    ParseSegment,
365)]
366pub struct SV3 {
367    #[serde(rename = "01")]
368    pub _01: String,
369    #[serde(rename = "02")]
370    pub _02: Option<String>,
371    #[serde(rename = "03")]
372    pub _03: Option<String>,
373    #[serde(rename = "04")]
374    pub _04: Option<String>,
375    #[serde(rename = "05")]
376    pub _05: Option<String>,
377    #[serde(rename = "06")]
378    pub _06: Option<String>,
379    #[serde(rename = "07")]
380    pub _07: Option<String>,
381    #[serde(rename = "08")]
382    pub _08: Option<String>,
383    #[serde(rename = "09")]
384    pub _09: Option<String>,
385    #[serde(rename = "10")]
386    pub _10: Option<String>,
387}
388
389/// SV4 - Drug Service
390#[derive(
391    Serialize,
392    Deserialize,
393    Clone,
394    Default,
395    Debug,
396    Validate,
397    PartialEq,
398    Eq,
399    DisplaySegment,
400    ParseSegment,
401)]
402pub struct SV4 {
403    #[serde(rename = "01")]
404    pub _01: String,
405    #[serde(rename = "02")]
406    pub _02: Option<String>,
407    #[serde(rename = "03")]
408    pub _03: Option<String>,
409    #[serde(rename = "04")]
410    pub _04: Option<String>,
411    #[serde(rename = "05")]
412    pub _05: Option<String>,
413    #[serde(rename = "06")]
414    pub _06: Option<String>,
415    #[serde(rename = "07")]
416    pub _07: Option<String>,
417    #[serde(rename = "08")]
418    pub _08: Option<String>,
419    #[serde(rename = "09")]
420    pub _09: Option<String>,
421    #[serde(rename = "10")]
422    pub _10: Option<String>,
423    #[serde(rename = "11")]
424    pub _11: Option<String>,
425    #[serde(rename = "12")]
426    pub _12: Option<String>,
427    #[serde(rename = "13")]
428    pub _13: Option<String>,
429    #[serde(rename = "14")]
430    pub _14: Option<String>,
431    #[serde(rename = "15")]
432    pub _15: Option<String>,
433    #[serde(rename = "16")]
434    pub _16: Option<String>,
435    #[serde(rename = "17")]
436    pub _17: Option<String>,
437    #[serde(rename = "18")]
438    pub _18: Option<String>,
439}
440
441/// SV5 - Durable Medical Equipment Service
442#[derive(
443    Serialize,
444    Deserialize,
445    Clone,
446    Default,
447    Debug,
448    Validate,
449    PartialEq,
450    Eq,
451    DisplaySegment,
452    ParseSegment,
453)]
454pub struct SV5 {
455    #[serde(rename = "01")]
456    pub _01: String,
457    #[serde(rename = "02")]
458    pub _02: String,
459    #[serde(rename = "03")]
460    pub _03: String,
461    #[serde(rename = "04")]
462    pub _04: Option<String>,
463    #[serde(rename = "05")]
464    pub _05: Option<String>,
465    #[serde(rename = "06")]
466    pub _06: Option<String>,
467    #[serde(rename = "07")]
468    pub _07: Option<String>,
469}
470
471/// SV6 - Anesthesia Service
472#[derive(
473    Serialize,
474    Deserialize,
475    Clone,
476    Default,
477    Debug,
478    Validate,
479    PartialEq,
480    Eq,
481    DisplaySegment,
482    ParseSegment,
483)]
484pub struct SV6 {
485    #[serde(rename = "01")]
486    pub _01: String,
487    #[serde(rename = "02")]
488    pub _02: Option<String>,
489    #[serde(rename = "03")]
490    pub _03: Option<String>,
491    #[serde(rename = "04")]
492    pub _04: Option<String>,
493    #[serde(rename = "05")]
494    pub _05: Option<String>,
495    #[serde(rename = "06")]
496    pub _06: Option<String>,
497    #[serde(rename = "07")]
498    pub _07: Option<String>,
499}
500
501/// SV7 - Drug Adjudication
502#[derive(
503    Serialize,
504    Deserialize,
505    Clone,
506    Default,
507    Debug,
508    Validate,
509    PartialEq,
510    Eq,
511    DisplaySegment,
512    ParseSegment,
513)]
514pub struct SV7 {
515    #[serde(rename = "01")]
516    pub _01: Option<String>,
517    #[serde(rename = "02")]
518    pub _02: Option<String>,
519    #[serde(rename = "03")]
520    pub _03: Option<String>,
521    #[serde(rename = "04")]
522    pub _04: String,
523    #[serde(rename = "05")]
524    pub _05: String,
525    #[serde(rename = "06")]
526    pub _06: Option<String>,
527}
528
529/// SVC - Service Information
530#[derive(
531    Serialize,
532    Deserialize,
533    Clone,
534    Default,
535    Debug,
536    Validate,
537    PartialEq,
538    Eq,
539    DisplaySegment,
540    ParseSegment,
541)]
542pub struct SVC {
543    #[serde(rename = "01")]
544    pub _01: String,
545    #[serde(rename = "02")]
546    pub _02: String,
547    #[serde(rename = "03")]
548    pub _03: Option<String>,
549    #[serde(rename = "04")]
550    pub _04: Option<String>,
551    #[serde(rename = "05")]
552    pub _05: Option<String>,
553    #[serde(rename = "06")]
554    pub _06: Option<String>,
555    #[serde(rename = "07")]
556    pub _07: Option<String>,
557}
558
559/// SVD - Service Line Adjudication
560#[derive(
561    Serialize,
562    Deserialize,
563    Clone,
564    Default,
565    Debug,
566    Validate,
567    PartialEq,
568    Eq,
569    DisplaySegment,
570    ParseSegment,
571)]
572pub struct SVD {
573    #[serde(rename = "01")]
574    pub _01: String,
575    #[serde(rename = "02")]
576    pub _02: String,
577    #[serde(rename = "03")]
578    pub _03: Option<String>,
579    #[serde(rename = "04")]
580    pub _04: Option<String>,
581    #[serde(rename = "05")]
582    pub _05: Option<String>,
583    #[serde(rename = "06")]
584    pub _06: Option<String>,
585}
586
587/// SD1 - Safety Data
588#[derive(
589    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
590)]
591pub struct SD1 {
592    #[serde(rename = "01")]
593    pub _01: Option<String>,
594    #[serde(rename = "02")]
595    pub _02: Option<String>,
596    #[serde(rename = "03")]
597    pub _03: Option<String>,
598    #[serde(rename = "04")]
599    pub _04: Option<String>,
600    #[serde(rename = "05")]
601    pub _05: Option<String>,
602    #[serde(rename = "06")]
603    pub _06: Option<String>,
604    #[serde(rename = "07")]
605    pub _07: Option<String>,
606    #[serde(rename = "08")]
607    pub _08: Option<String>,
608    #[serde(rename = "09")]
609    pub _09: Option<String>,
610    #[serde(rename = "10")]
611    pub _10: Option<String>,
612    #[serde(rename = "11")]
613    pub _11: Option<String>,
614    #[serde(rename = "12")]
615    pub _12: Option<String>,
616    #[serde(rename = "13")]
617    pub _13: Option<String>,
618    #[serde(rename = "14")]
619    pub _14: Option<String>,
620    #[serde(rename = "15")]
621    pub _15: Option<String>,
622    #[serde(rename = "16")]
623    pub _16: Option<String>,
624    #[serde(rename = "17")]
625    pub _17: Option<String>,
626    #[serde(rename = "18")]
627    pub _18: Option<String>,
628    #[serde(rename = "19")]
629    pub _19: Option<String>,
630    #[serde(rename = "20")]
631    pub _20: Option<String>,
632    #[serde(rename = "21")]
633    pub _21: Option<String>,
634    #[serde(rename = "22")]
635    pub _22: Option<String>,
636    #[serde(rename = "23")]
637    pub _23: Option<String>,
638    #[serde(rename = "24")]
639    pub _24: Option<String>,
640    #[serde(rename = "25")]
641    pub _25: Option<String>,
642}
643
644/// SII - Sales Item Information
645///
646/// To provide the product/service detail, quantity, and pricing for a sales item
647///
648/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
649/// ----|----|-------|--------|----|------|-------
650/// 01 | 235 | Product/Service ID Qualifier | 1 | M | ID | 2/2
651/// 02 | 234 | Product/Service ID | 1 | M | AN | 1/48
652/// 03 | 380 | Quantity | 1 | M | R | 1/15
653/// 04 | C001 | Composite Unit of Measure | 1 | M | | 1/1
654/// 05 | 212 | Unit Price | 1 | O | R | 1/17
655/// 06 | 212 | Unit Price | 1 | O | R | 1/17
656/// 07 | 782 | Monetary Amount | 1 | O | R | 1/18
657#[derive(
658    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
659)]
660pub struct SII {
661    #[serde(rename = "01")]
662    pub _01: String,
663    #[serde(rename = "02")]
664    pub _02: String,
665    #[serde(rename = "03")]
666    pub _03: String,
667    #[serde(rename = "04")]
668    pub _04: String,
669    #[serde(rename = "05")]
670    pub _05: Option<crate::v005010::element::E212>,
671    #[serde(rename = "06")]
672    pub _06: Option<crate::v005010::element::E212>,
673    #[serde(rename = "07")]
674    pub _07: Option<crate::v005010::element::E782>,
675}
676
677/// SLN - Subline Item Detail
678#[derive(
679    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
680)]
681pub struct SLN {
682    #[serde(rename = "01")]
683    pub _01: Option<String>,
684    #[serde(rename = "02")]
685    pub _02: Option<String>,
686    #[serde(rename = "03")]
687    pub _03: Option<String>,
688    #[serde(rename = "04")]
689    pub _04: Option<String>,
690    /// 355 - Unit or Basis for Measurement Code
691    #[serde(rename = "05")]
692    pub _05: Option<crate::v005010::element::E355>,
693    #[serde(rename = "06")]
694    pub _06: Option<String>,
695    #[serde(rename = "07")]
696    pub _07: Option<String>,
697    #[serde(rename = "08")]
698    pub _08: Option<String>,
699    #[serde(rename = "09")]
700    pub _09: Option<String>,
701    #[serde(rename = "10")]
702    pub _10: Option<String>,
703    #[serde(rename = "11")]
704    pub _11: Option<String>,
705    #[serde(rename = "12")]
706    pub _12: Option<String>,
707    #[serde(rename = "13")]
708    pub _13: Option<String>,
709    #[serde(rename = "14")]
710    pub _14: Option<String>,
711    #[serde(rename = "15")]
712    pub _15: Option<String>,
713    #[serde(rename = "16")]
714    pub _16: Option<String>,
715    #[serde(rename = "17")]
716    pub _17: Option<String>,
717    #[serde(rename = "18")]
718    pub _18: Option<String>,
719    #[serde(rename = "19")]
720    pub _19: Option<String>,
721    #[serde(rename = "20")]
722    pub _20: Option<String>,
723    #[serde(rename = "21")]
724    pub _21: Option<String>,
725    #[serde(rename = "22")]
726    pub _22: Option<String>,
727    #[serde(rename = "23")]
728    pub _23: Option<String>,
729    #[serde(rename = "24")]
730    pub _24: Option<String>,
731    #[serde(rename = "25")]
732    pub _25: Option<String>,
733    #[serde(rename = "26")]
734    pub _26: Option<String>,
735    #[serde(rename = "27")]
736    pub _27: Option<String>,
737    #[serde(rename = "28")]
738    pub _28: Option<String>,
739}
740
741/// SAC - Service, Promotion, Allowance, or Charge Information
742#[derive(
743    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
744)]
745pub struct SAC {
746    /// 248 - Allowance or Charge Indicator
747    #[serde(rename = "01")]
748    pub _01: Option<crate::v005010::element::E248>,
749    /// 1300 - Service, Promotion, Allowance, or Charge Code
750    #[serde(rename = "02")]
751    pub _02: Option<crate::v005010::element::E1300>,
752    /// 559 - Agency Qualifier Code
753    #[serde(rename = "03")]
754    pub _03: Option<crate::v005010::element::E559>,
755    #[serde(rename = "04")]
756    pub _04: Option<String>,
757    #[serde(rename = "05")]
758    pub _05: Option<String>,
759    #[serde(rename = "06")]
760    pub _06: Option<String>,
761    #[serde(rename = "07")]
762    pub _07: Option<String>,
763    #[serde(rename = "08")]
764    pub _08: Option<String>,
765    #[serde(rename = "09")]
766    pub _09: Option<String>,
767    #[serde(rename = "10")]
768    pub _10: Option<String>,
769    #[serde(rename = "11")]
770    pub _11: Option<String>,
771    #[serde(rename = "12")]
772    pub _12: Option<String>,
773    #[serde(rename = "13")]
774    pub _13: Option<String>,
775    #[serde(rename = "14")]
776    pub _14: Option<String>,
777    #[serde(rename = "15")]
778    pub _15: Option<String>,
779    #[serde(rename = "16")]
780    pub _16: Option<String>,
781    #[serde(rename = "17")]
782    pub _17: Option<String>,
783    #[serde(rename = "18")]
784    pub _18: Option<String>,
785    #[serde(rename = "19")]
786    pub _19: Option<String>,
787    #[serde(rename = "20")]
788    pub _20: Option<String>,
789    #[serde(rename = "21")]
790    pub _21: Option<String>,
791    #[serde(rename = "22")]
792    pub _22: Option<String>,
793    #[serde(rename = "23")]
794    pub _23: Option<String>,
795    #[serde(rename = "24")]
796    pub _24: Option<String>,
797    #[serde(rename = "25")]
798    pub _25: Option<String>,
799}
800
801/// SPI - Specification Identifier
802#[derive(
803    Serialize,
804    Deserialize,
805    Clone,
806    Default,
807    Debug,
808    Validate,
809    PartialEq,
810    Eq,
811    DisplaySegment,
812    ParseSegment,
813)]
814pub struct SPI {
815    #[serde(rename = "01")]
816    pub _01: String,
817    #[serde(rename = "02")]
818    pub _02: Option<String>,
819    #[serde(rename = "03")]
820    pub _03: Option<String>,
821    #[serde(rename = "04")]
822    pub _04: Option<String>,
823    #[serde(rename = "05")]
824    pub _05: Option<String>,
825}
826
827/// SCH - Line Item Schedule
828#[derive(
829    Serialize,
830    Deserialize,
831    Clone,
832    Default,
833    Debug,
834    Validate,
835    PartialEq,
836    Eq,
837    DisplaySegment,
838    ParseSegment,
839)]
840pub struct SCH {
841    /// 380 - Quantity
842    #[serde(rename = "01")]
843    pub _01: String,
844    /// 355 - Unit or Basis for Measurement Code
845    #[serde(rename = "02")]
846    pub _02: String,
847    #[serde(rename = "03")]
848    pub _03: Option<String>,
849    #[serde(rename = "04")]
850    pub _04: Option<String>,
851    /// 373 - Date
852    #[serde(rename = "05")]
853    pub _05: String,
854    /// 337 - Time
855    #[serde(rename = "06")]
856    pub _06: Option<String>,
857    #[serde(rename = "07")]
858    pub _07: Option<String>,
859    #[serde(rename = "08")]
860    pub _08: Option<String>,
861    #[serde(rename = "09")]
862    pub _09: Option<String>,
863}
864
865/// SI - Service Characteristic Identification
866#[derive(
867    Serialize,
868    Deserialize,
869    Clone,
870    Default,
871    Debug,
872    Validate,
873    PartialEq,
874    Eq,
875    DisplaySegment,
876    ParseSegment,
877)]
878pub struct SI {
879    #[serde(rename = "01")]
880    pub _01: Option<String>,
881    #[serde(rename = "02")]
882    pub _02: Option<String>,
883    #[serde(rename = "03")]
884    pub _03: Option<String>,
885    #[serde(rename = "04")]
886    pub _04: Option<String>,
887    #[serde(rename = "05")]
888    pub _05: Option<String>,
889    #[serde(rename = "06")]
890    pub _06: Option<String>,
891    #[serde(rename = "07")]
892    pub _07: Option<String>,
893    #[serde(rename = "08")]
894    pub _08: Option<String>,
895    #[serde(rename = "09")]
896    pub _09: Option<String>,
897    #[serde(rename = "10")]
898    pub _10: Option<String>,
899    #[serde(rename = "11")]
900    pub _11: Option<String>,
901    #[serde(rename = "12")]
902    pub _12: Option<String>,
903    #[serde(rename = "13")]
904    pub _13: Option<String>,
905    #[serde(rename = "14")]
906    pub _14: Option<String>,
907    #[serde(rename = "15")]
908    pub _15: Option<String>,
909    #[serde(rename = "16")]
910    pub _16: Option<String>,
911    #[serde(rename = "17")]
912    pub _17: Option<String>,
913    #[serde(rename = "18")]
914    pub _18: Option<String>,
915    #[serde(rename = "19")]
916    pub _19: Option<String>,
917    #[serde(rename = "20")]
918    pub _20: Option<String>,
919    #[serde(rename = "21")]
920    pub _21: Option<String>,
921}
922
923/// SDQ - Destination Quantity
924#[derive(
925    Serialize,
926    Deserialize,
927    Clone,
928    Default,
929    Debug,
930    Validate,
931    PartialEq,
932    Eq,
933    DisplaySegment,
934    ParseSegment,
935)]
936pub struct SDQ {
937    /// 355 - Unit or Basis for Measurement Code
938    #[serde(rename = "01")]
939    pub _01: String,
940    /// 66 - Identification Code Qualifier
941    #[serde(rename = "02")]
942    pub _02: Option<String>,
943    /// 67 - Identification Code
944    #[serde(rename = "03")]
945    pub _03: String,
946    /// 380 - Quantity
947    #[serde(rename = "04")]
948    pub _04: String,
949    /// 67 - Identification Code
950    #[serde(rename = "05")]
951    pub _05: Option<String>,
952    /// 380 - Quantity
953    #[serde(rename = "06")]
954    pub _06: Option<String>,
955    /// 67 - Identification Code
956    #[serde(rename = "07")]
957    pub _07: Option<String>,
958    /// 380 - Quantity
959    #[serde(rename = "08")]
960    pub _08: Option<String>,
961    /// 67 - Identification Code
962    #[serde(rename = "09")]
963    pub _09: Option<String>,
964    /// 380 - Quantity
965    #[serde(rename = "10")]
966    pub _10: Option<String>,
967    /// 67 - Identification Code
968    #[serde(rename = "11")]
969    pub _11: Option<String>,
970    /// 380 - Quantity
971    #[serde(rename = "12")]
972    pub _12: Option<String>,
973    /// 67 - Identification Code
974    #[serde(rename = "13")]
975    pub _13: Option<String>,
976    /// 380 - Quantity
977    #[serde(rename = "14")]
978    pub _14: Option<String>,
979    /// 67 - Identification Code
980    #[serde(rename = "15")]
981    pub _15: Option<String>,
982    /// 380 - Quantity
983    #[serde(rename = "16")]
984    pub _16: Option<String>,
985    /// 67 - Identification Code
986    #[serde(rename = "17")]
987    pub _17: Option<String>,
988    /// 380 - Quantity
989    #[serde(rename = "18")]
990    pub _18: Option<String>,
991    /// 67 - Identification Code
992    #[serde(rename = "19")]
993    pub _19: Option<String>,
994    /// 380 - Quantity
995    #[serde(rename = "20")]
996    pub _20: Option<String>,
997    /// 67 - Identification Code
998    #[serde(rename = "21")]
999    pub _21: Option<String>,
1000    /// 380 - Quantity
1001    #[serde(rename = "22")]
1002    pub _22: Option<String>,
1003    /// 310 - Location Identifier
1004    #[serde(rename = "23")]
1005    pub _23: Option<String>,
1006}
1007
1008/// S5 - Stop Off Details
1009///
1010/// To specify the stop off details
1011///
1012/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1013/// ----|----|-------|--------|----|------|-------
1014/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
1015/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
1016/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
1017/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
1018/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
1019/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
1020/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
1021/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
1022/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
1023/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
1024#[derive(
1025    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1026)]
1027pub struct S5 {
1028    #[serde(rename = "01")]
1029    pub _01: String,
1030    #[serde(rename = "02")]
1031    pub _02: String,
1032    #[serde(rename = "03")]
1033    pub _03: Option<String>,
1034    #[serde(rename = "04")]
1035    pub _04: Option<String>,
1036    #[serde(rename = "05")]
1037    pub _05: Option<String>,
1038    #[serde(rename = "06")]
1039    pub _06: Option<String>,
1040    #[serde(rename = "07")]
1041    pub _07: Option<String>,
1042    #[serde(rename = "08")]
1043    pub _08: Option<String>,
1044    #[serde(rename = "09")]
1045    pub _09: Option<String>,
1046    #[serde(rename = "10")]
1047    pub _10: Option<String>,
1048    #[serde(rename = "11")]
1049    pub _11: Option<String>,
1050}
1051
1052/// SMD - Consolidated Shipment Manifest Data
1053///
1054/// To specify consolidated shipment service level and payment data
1055///
1056/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1057/// ----|----|-------|--------|----|------|-------
1058/// 01 | 284 | Service Level Code | 1 | M | ID | 2/2
1059/// 02 | 146 | Shipment Method of Payment | 1 | M | ID | 2/2
1060/// 03 | 108 | Pickup or Delivery Code | 1 | O | ID | 1/2
1061#[derive(
1062    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1063)]
1064pub struct SMD {
1065    #[serde(rename = "01")]
1066    pub _01: crate::v005010::element::E284,
1067    #[serde(rename = "02")]
1068    pub _02: String,
1069    #[serde(rename = "03")]
1070    pub _03: Option<crate::v005010::element::E108>,
1071}
1072
1073/// SN1 - Shipment Detail
1074///
1075/// To specify line-item detail relative to shipment
1076///
1077/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1078/// ----|----|-------|--------|----|------|-------
1079/// 01 | 350 | Assigned Identification | 1 | O | AN | 1/20
1080/// 02 | 382 | Number of Units Shipped | 1 | M | R | 1/10
1081/// 03 | 355 | Unit or Basis for Measurement Code | 1 | M | ID | 2/2
1082/// 04 | 646 | Quantity Shipped to Date | 1 | O | R | 1/10
1083/// 05 | 330 | Quantity Ordered | 1 | O | R | 1/10
1084/// 06 | 355 | Unit or Basis for Measurement Code | 1 | O | ID | 2/2
1085/// 07 | 362 | Unacceptable | 1 | O | ID | 1/1
1086/// 08 | 639 | Basis of Unit Price Code | 1 | O | ID | 2/2
1087/// 09 | 499 | Relationship Code | 1 | O | ID | 1/1
1088/// 10 | 289 | Unit Price | 1 | O | R | 1/17
1089#[derive(
1090    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1091)]
1092pub struct SN1 {
1093    #[serde(rename = "01")]
1094    pub _01: Option<String>,
1095    #[serde(rename = "02")]
1096    pub _02: crate::v005010::element::E382,
1097    /// 355 - Unit or Basis for Measurement Code
1098    #[serde(rename = "03")]
1099    pub _03: crate::v005010::element::E355,
1100    #[serde(rename = "04")]
1101    pub _04: Option<crate::v005010::element::E646>,
1102    /// 668 - Line Item Status Code
1103    #[serde(rename = "05")]
1104    pub _05: Option<crate::v005010::element::E668>,
1105    #[serde(rename = "06")]
1106    pub _06: Option<String>,
1107    #[serde(rename = "07")]
1108    pub _07: Option<crate::v005010::element::E362>,
1109    #[serde(rename = "08")]
1110    pub _08: Option<crate::v005010::element::E639>,
1111    #[serde(rename = "09")]
1112    pub _09: Option<String>,
1113    #[serde(rename = "10")]
1114    pub _10: Option<crate::v005010::element::E289>,
1115}
1116
1117/// SPO - Equipment Details
1118///
1119/// To specify the equipment details
1120///
1121/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1122/// ----|----|-------|--------|----|------|-------
1123/// 01 | 127 | Reference Identification | 1 | M | AN | 1/30
1124/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
1125/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
1126/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
1127/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
1128/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
1129/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
1130/// 08 | 127 | Reference Identification | 1 | O | AN | 1/30
1131/// 09 | 127 | Reference Identification | 1 | O | AN | 1/30
1132/// 10 | 127 | Reference Identification | 1 | O | AN | 1/30
1133#[derive(
1134    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1135)]
1136pub struct SPO {
1137    #[serde(rename = "01")]
1138    pub _01: String,
1139    #[serde(rename = "02")]
1140    pub _02: Option<String>,
1141    #[serde(rename = "03")]
1142    pub _03: Option<String>,
1143    #[serde(rename = "04")]
1144    pub _04: Option<String>,
1145    #[serde(rename = "05")]
1146    pub _05: Option<String>,
1147    #[serde(rename = "06")]
1148    pub _06: Option<String>,
1149    #[serde(rename = "07")]
1150    pub _07: Option<String>,
1151    #[serde(rename = "08")]
1152    pub _08: Option<String>,
1153    #[serde(rename = "09")]
1154    pub _09: Option<String>,
1155    #[serde(rename = "10")]
1156    pub _10: Option<String>,
1157}
1158
1159/// SR - Service, Promotion, Allowance, or Charge Information
1160///
1161/// To request or identify a service, promotion, allowance, or charge; to specify the amount or percentage for the service, promotion, allowance, or charge
1162///
1163/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1164/// ----|----|-------|--------|----|------|-------
1165/// 01 | 559 | Agency Qualifier Code | 1 | M | ID | 2/2
1166/// 02 | 560 | Service, Promotion, Allowance, or Charge Code | 1 | M | AN | 1/4
1167/// 03 | 561 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1168/// 04 | 562 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1169/// 05 | 563 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1170/// 06 | 564 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1171/// 07 | 565 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1172/// 08 | 566 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1173/// 09 | 567 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1174/// 10 | 568 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1175/// 11 | 569 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1176/// 12 | 352 | Description | 1 | O | AN | 1/80
1177/// 13 | 559 | Agency Qualifier Code | 1 | O | ID | 2/2
1178/// 14 | 560 | Service, Promotion, Allowance, or Charge Code | 1 | O | AN | 1/4
1179/// 15 | 380 | Amount | 1 | O | R | 1/15
1180/// 16 | 380 | Amount | 1 | O | R | 1/15
1181/// 17 | 380 | Amount | 1 | O | R | 1/15
1182/// 18 | 380 | Amount | 1 | O | R | 1/15
1183/// 19 | 380 | Amount | 1 | O | R | 1/15
1184/// 20 | 380 | Amount | 1 | O | R | 1/15
1185/// 21 | 380 | Amount | 1 | O | R | 1/15
1186/// 22 | 380 | Amount | 1 | O | R | 1/15
1187/// 23 | 380 | Amount | 1 | O | R | 1/15
1188/// 24 | 380 | Amount | 1 | O | R | 1/15
1189/// 25 | 380 | Amount | 1 | O | R | 1/15
1190#[derive(
1191    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1192)]
1193pub struct SR {
1194    #[serde(rename = "01")]
1195    pub _01: String,
1196    #[serde(rename = "02")]
1197    pub _02: crate::v005010::element::E560,
1198    #[serde(rename = "03")]
1199    pub _03: Option<String>,
1200    #[serde(rename = "04")]
1201    pub _04: Option<crate::v005010::element::E562>,
1202    #[serde(rename = "05")]
1203    pub _05: Option<crate::v005010::element::E563>,
1204    #[serde(rename = "06")]
1205    pub _06: Option<crate::v005010::element::E564>,
1206    #[serde(rename = "07")]
1207    pub _07: Option<crate::v005010::element::E565>,
1208    #[serde(rename = "08")]
1209    pub _08: Option<crate::v005010::element::E566>,
1210    #[serde(rename = "09")]
1211    pub _09: Option<crate::v005010::element::E567>,
1212    #[serde(rename = "10")]
1213    pub _10: Option<crate::v005010::element::E568>,
1214    #[serde(rename = "11")]
1215    pub _11: Option<crate::v005010::element::E569>,
1216    #[serde(rename = "12")]
1217    pub _12: Option<String>,
1218    #[serde(rename = "13")]
1219    pub _13: Option<String>,
1220    #[serde(rename = "14")]
1221    pub _14: Option<crate::v005010::element::E560>,
1222    #[serde(rename = "15")]
1223    pub _15: Option<String>,
1224    #[serde(rename = "16")]
1225    pub _16: Option<String>,
1226    #[serde(rename = "17")]
1227    pub _17: Option<String>,
1228    #[serde(rename = "18")]
1229    pub _18: Option<String>,
1230    #[serde(rename = "19")]
1231    pub _19: Option<String>,
1232    #[serde(rename = "20")]
1233    pub _20: Option<String>,
1234    #[serde(rename = "21")]
1235    pub _21: Option<String>,
1236    #[serde(rename = "22")]
1237    pub _22: Option<String>,
1238    #[serde(rename = "23")]
1239    pub _23: Option<String>,
1240    #[serde(rename = "24")]
1241    pub _24: Option<String>,
1242    #[serde(rename = "25")]
1243    pub _25: Option<String>,
1244}
1245
1246/// SG - Shipment Status
1247///
1248/// To specify the status of a shipment
1249///
1250/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1251/// ----|----|-------|--------|----|------|-------
1252/// 01 | 374 | Date/Time Qualifier | 1 | M | ID | 3/3
1253/// 02 | 373 | Date | 1 | M | DT | 8/8
1254/// 03 | 337 | Time | 1 | O | TM | 4/8
1255/// 04 | 623 | Time Code | 1 | O | ID | 2/2
1256/// 05 | 1250 | Shipment Status Code | 1 | O | ID | 2/2
1257/// 06 | 1251 | Shipment Status or Appointments Reason Code | 1 | O | ID | 2/2
1258#[derive(
1259    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1260)]
1261pub struct SG {
1262    #[serde(rename = "01")]
1263    pub _01: String,
1264    #[serde(rename = "02")]
1265    pub _02: String,
1266    #[serde(rename = "03")]
1267    pub _03: Option<String>,
1268    #[serde(rename = "04")]
1269    pub _04: Option<crate::v005010::element::E623>,
1270    #[serde(rename = "05")]
1271    pub _05: Option<String>,
1272    #[serde(rename = "06")]
1273    pub _06: Option<String>,
1274}
1275
1276/// SHD - Shipment Detail
1277///
1278/// To specify shipment details for an item
1279///
1280/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
1281/// ----|----|-------|--------|----|------|-------
1282/// 01 | 382 | Number of Units Shipped | 1 | X | R | 1/10
1283/// 02 | 413 | Quantity Received | 1 | X | R | 1/7
1284/// 03 | 355 | Unit or Basis for Measurement Code | 1 | X | ID | 2/2
1285/// 04 | 81 | Weight | 1 | X | R | 1/10
1286/// 05 | 355 | Unit or Basis for Measurement Code | 1 | X | ID | 2/2
1287/// 06 | 183 | Volume | 1 | X | R | 1/8
1288/// 07 | 355 | Unit or Basis for Measurement Code | 1 | X | ID | 2/2
1289/// 08 | 398 | Order Sizing Factor | 1 | O | R | 1/10
1290/// 09 | 417 | Price Bracket Identifier | 1 | O | AN | 1/3
1291/// 10 | 91 | Transportation Method/Type Code | 1 | O | ID | 1/2
1292/// 11 | 140 | Standard Carrier Alpha Code | 1 | O | ID | 2/4
1293/// 12 | 368 | Shipment/Order Status Code | 1 | O | ID | 2/2
1294/// 13 | 128 | Reference Identification Qualifier | 1 | O | ID | 2/3
1295/// 14 | 127 | Reference Identification | 1 | X | AN | 1/50
1296#[derive(
1297    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1298)]
1299pub struct SHD {
1300    #[serde(rename = "01")]
1301    pub _01: Option<crate::v005010::element::E382>,
1302    #[serde(rename = "02")]
1303    pub _02: Option<crate::v005010::element::E413>,
1304    #[serde(rename = "03")]
1305    pub _03: Option<String>,
1306    #[serde(rename = "04")]
1307    pub _04: Option<crate::v005010::element::E81>,
1308    #[serde(rename = "05")]
1309    pub _05: Option<String>,
1310    #[serde(rename = "06")]
1311    pub _06: Option<crate::v005010::element::E183>,
1312    #[serde(rename = "07")]
1313    pub _07: Option<String>,
1314    #[serde(rename = "08")]
1315    pub _08: Option<crate::v005010::element::E398>,
1316    #[serde(rename = "09")]
1317    pub _09: Option<String>,
1318    #[serde(rename = "10")]
1319    pub _10: Option<String>,
1320    #[serde(rename = "11")]
1321    pub _11: Option<String>,
1322    #[serde(rename = "12")]
1323    pub _12: Option<crate::v005010::element::E368>,
1324    #[serde(rename = "13")]
1325    pub _13: Option<String>,
1326    #[serde(rename = "14")]
1327    pub _14: Option<String>,
1328}
1329
1330/// SHP - Shipped/Received Information
1331///
1332/// To carry shipped/received information data
1333#[derive(
1334    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1335)]
1336pub struct SHP {
1337    #[serde(rename = "01")]
1338    pub _01: Option<String>,
1339    #[serde(rename = "02")]
1340    pub _02: Option<String>,
1341    #[serde(rename = "03")]
1342    pub _03: Option<String>,
1343    #[serde(rename = "04")]
1344    pub _04: Option<String>,
1345    #[serde(rename = "05")]
1346    pub _05: Option<String>,
1347    #[serde(rename = "06")]
1348    pub _06: Option<String>,
1349    #[serde(rename = "07")]
1350    pub _07: Option<String>,
1351}
1352
1353/// SDP - Ship/Delivery Pattern
1354///
1355/// To carry ship/delivery pattern data
1356#[derive(
1357    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1358)]
1359pub struct SDP {
1360    #[serde(rename = "01")]
1361    pub _01: Option<String>,
1362    #[serde(rename = "02")]
1363    pub _02: Option<String>,
1364    #[serde(rename = "03")]
1365    pub _03: Option<String>,
1366    #[serde(rename = "04")]
1367    pub _04: Option<String>,
1368    #[serde(rename = "05")]
1369    pub _05: Option<String>,
1370    #[serde(rename = "06")]
1371    pub _06: Option<String>,
1372    #[serde(rename = "07")]
1373    pub _07: Option<String>,
1374    #[serde(rename = "08")]
1375    pub _08: Option<String>,
1376}
1377
1378/// S1 - Stop-off Name
1379#[derive(
1380    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1381)]
1382pub struct S1 {
1383    #[serde(rename = "01")]
1384    pub _01: String,
1385    #[serde(rename = "02")]
1386    pub _02: String,
1387    #[serde(rename = "03")]
1388    pub _03: Option<String>,
1389    #[serde(rename = "04")]
1390    pub _04: Option<String>,
1391    #[serde(rename = "05")]
1392    pub _05: Option<String>,
1393    #[serde(rename = "06")]
1394    pub _06: String,
1395}
1396
1397/// S2 - Stop-off Address
1398#[derive(
1399    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1400)]
1401pub struct S2 {
1402    #[serde(rename = "01")]
1403    pub _01: String,
1404    #[serde(rename = "02")]
1405    pub _02: String,
1406    #[serde(rename = "03")]
1407    pub _03: Option<String>,
1408}
1409
1410/// S9 - Stop-off Name
1411#[derive(
1412    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
1413)]
1414pub struct S9 {
1415    #[serde(rename = "01")]
1416    pub _01: String,
1417    #[serde(rename = "02")]
1418    pub _02: Option<String>,
1419    #[serde(rename = "03")]
1420    pub _03: String,
1421    #[serde(rename = "04")]
1422    pub _04: String,
1423    #[serde(rename = "05")]
1424    pub _05: Option<String>,
1425    #[serde(rename = "06")]
1426    pub _06: String,
1427    #[serde(rename = "07")]
1428    pub _07: Option<String>,
1429    #[serde(rename = "08")]
1430    pub _08: Option<String>,
1431}