1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5#[derive(
7 Serialize,
8 Deserialize,
9 Clone,
10 Default,
11 Debug,
12 Validate,
13 PartialEq,
14 Eq,
15 DisplaySegment,
16 ParseSegment,
17)]
18pub struct N1 {
19 #[serde(rename = "01")]
21 pub _01: crate::v005010::element::E98,
22 #[serde(rename = "02")]
23 pub _02: Option<String>,
24 #[serde(rename = "03")]
26 pub _03: Option<crate::v005010::element::E66>,
27 #[serde(rename = "04")]
28 pub _04: Option<String>,
29 #[serde(rename = "05")]
30 pub _05: Option<String>,
31 #[serde(rename = "06")]
32 pub _06: Option<String>,
33}
34
35#[derive(
37 Serialize,
38 Deserialize,
39 Clone,
40 Default,
41 Debug,
42 Validate,
43 PartialEq,
44 Eq,
45 DisplaySegment,
46 ParseSegment,
47)]
48pub struct N2 {
49 #[serde(rename = "01")]
50 pub _01: String,
51 #[serde(rename = "02")]
52 pub _02: Option<String>,
53}
54
55#[derive(
57 Serialize,
58 Deserialize,
59 Clone,
60 Default,
61 Debug,
62 Validate,
63 PartialEq,
64 Eq,
65 DisplaySegment,
66 ParseSegment,
67)]
68pub struct N3 {
69 #[serde(rename = "01")]
70 pub _01: String,
71 #[serde(rename = "02")]
72 pub _02: Option<String>,
73}
74
75#[derive(
77 Serialize,
78 Deserialize,
79 Clone,
80 Default,
81 Debug,
82 Validate,
83 PartialEq,
84 Eq,
85 DisplaySegment,
86 ParseSegment,
87)]
88pub struct N4 {
89 #[serde(rename = "01")]
90 pub _01: Option<String>,
91 #[serde(rename = "02")]
93 pub _02: Option<crate::v005010::element::E156>,
94 #[serde(rename = "03")]
95 pub _03: Option<String>,
96 #[serde(rename = "04")]
98 pub _04: Option<crate::v005010::element::E26>,
99 #[serde(rename = "05")]
100 pub _05: Option<String>,
101 #[serde(rename = "06")]
102 pub _06: Option<String>,
103 #[serde(rename = "07")]
104 pub _07: Option<String>,
105}
106
107#[derive(
109 Serialize,
110 Deserialize,
111 Clone,
112 Default,
113 Debug,
114 Validate,
115 PartialEq,
116 Eq,
117 DisplaySegment,
118 ParseSegment,
119)]
120pub struct NM1 {
121 #[serde(rename = "01")]
123 pub _01: crate::v005010::element::E98,
124 #[serde(rename = "02")]
126 pub _02: crate::v005010::element::E1065,
127 #[serde(rename = "03")]
128 pub _03: Option<String>,
129 #[serde(rename = "04")]
130 pub _04: Option<String>,
131 #[serde(rename = "05")]
132 pub _05: Option<String>,
133 #[serde(rename = "06")]
134 pub _06: Option<String>,
135 #[serde(rename = "07")]
136 pub _07: Option<String>,
137 #[serde(rename = "08")]
139 pub _08: Option<crate::v005010::element::E66>,
140 #[serde(rename = "09")]
141 pub _09: Option<String>,
142 #[serde(rename = "10")]
143 pub _10: Option<String>,
144 #[serde(rename = "11")]
145 pub _11: Option<String>,
146 #[serde(rename = "12")]
147 pub _12: Option<String>,
148}
149
150#[derive(
152 Serialize,
153 Deserialize,
154 Clone,
155 Default,
156 Debug,
157 Validate,
158 PartialEq,
159 Eq,
160 DisplaySegment,
161 ParseSegment,
162)]
163pub struct NTE {
164 #[serde(rename = "01")]
166 pub _01: Option<crate::v005010::element::E363>,
167 #[serde(rename = "02")]
168 pub _02: String,
169}
170
171#[derive(
183 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
184)]
185pub struct NX2 {
186 #[serde(rename = "01")]
187 pub _01: crate::v005010::element::E1106,
188 #[serde(rename = "02")]
189 pub _02: String,
190 #[serde(rename = "03")]
191 pub _03: Option<String>,
192 #[serde(rename = "04")]
193 pub _04: Option<crate::v005010::element::E1106>,
194 #[serde(rename = "05")]
195 pub _05: Option<String>,
196}
197
198#[derive(
200 Serialize,
201 Deserialize,
202 Clone,
203 Default,
204 Debug,
205 Validate,
206 PartialEq,
207 Eq,
208 DisplaySegment,
209 ParseSegment,
210)]
211pub struct NX1 {
212 #[serde(rename = "01")]
213 pub _01: 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#[derive(
228 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
229)]
230pub struct N10 {
231 #[serde(rename = "01")]
232 pub _01: Option<String>,
233 #[serde(rename = "02")]
234 pub _02: Option<String>,
235 #[serde(rename = "03")]
236 pub _03: Option<String>,
237 #[serde(rename = "04")]
238 pub _04: Option<String>,
239 #[serde(rename = "05")]
240 pub _05: Option<String>,
241 #[serde(rename = "06")]
242 pub _06: Option<String>,
243 #[serde(rename = "07")]
244 pub _07: Option<String>,
245 #[serde(rename = "08")]
246 pub _08: Option<String>,
247 #[serde(rename = "09")]
248 pub _09: Option<String>,
249 #[serde(rename = "10")]
250 pub _10: Option<String>,
251 #[serde(rename = "11")]
252 pub _11: Option<String>,
253 #[serde(rename = "12")]
254 pub _12: Option<String>,
255 #[serde(rename = "13")]
256 pub _13: Option<String>,
257}
258
259#[derive(
277 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
278)]
279pub struct N8 {
280 #[serde(rename = "01")]
281 pub _01: crate::v005010::element::E186,
282 #[serde(rename = "02")]
283 pub _02: String,
284 #[serde(rename = "03")]
285 pub _03: Option<crate::v005010::element::E231>,
286 #[serde(rename = "04")]
287 pub _04: Option<String>,
288 #[serde(rename = "05")]
289 pub _05: Option<String>,
290 #[serde(rename = "06")]
291 pub _06: Option<crate::v005010::element::E186>,
292 #[serde(rename = "07")]
293 pub _07: Option<String>,
294 #[serde(rename = "08")]
295 pub _08: Option<String>,
296 #[serde(rename = "09")]
297 pub _09: Option<String>,
298 #[serde(rename = "10")]
299 pub _10: Option<String>,
300 #[serde(rename = "11")]
301 pub _11: Option<String>,
302}
303
304#[derive(
308 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
309)]
310pub struct N8A {
311 #[serde(rename = "01")]
312 pub _01: Option<String>,
313 #[serde(rename = "02")]
314 pub _02: Option<String>,
315 #[serde(rename = "03")]
316 pub _03: Option<String>,
317 #[serde(rename = "04")]
318 pub _04: Option<String>,
319 #[serde(rename = "05")]
320 pub _05: Option<String>,
321 #[serde(rename = "06")]
322 pub _06: Option<String>,
323 #[serde(rename = "07")]
324 pub _07: Option<String>,
325 #[serde(rename = "08")]
326 pub _08: Option<String>,
327 #[serde(rename = "09")]
328 pub _09: Option<String>,
329 #[serde(rename = "10")]
330 pub _10: Option<String>,
331}
332
333#[derive(
335 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
336)]
337pub struct N9 {
338 #[serde(rename = "01")]
339 pub _01: Option<String>,
340 #[serde(rename = "02")]
341 pub _02: Option<String>,
342 #[serde(rename = "03")]
343 pub _03: Option<String>,
344 #[serde(rename = "04")]
345 pub _04: Option<String>,
346 #[serde(rename = "05")]
347 pub _05: Option<String>,
348 #[serde(rename = "06")]
349 pub _06: Option<String>,
350}
351
352#[derive(
383 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
384)]
385pub struct N7 {
386 pub _01: Option<String>,
387 pub _02: String,
388 pub _03: Option<String>,
389 pub _04: Option<String>,
390 pub _05: Option<String>,
391 pub _06: Option<String>,
392 pub _07: Option<String>,
393 pub _08: Option<String>,
394 pub _09: Option<String>,
395 pub _10: Option<crate::v005010::element::E102>,
397 pub _11: Option<crate::v005010::element::E40>,
399 pub _12: Option<String>,
400 pub _13: Option<String>,
401 pub _14: Option<String>,
402 pub _15: Option<String>,
403 pub _16: Option<crate::v005010::element::E571>,
405 pub _17: Option<crate::v005010::element::E188>,
407 pub _18: Option<String>,
408 pub _19: Option<crate::v005010::element::E56>,
410 pub _20: Option<String>,
411 pub _21: Option<String>,
412 pub _22: Option<String>,
413 pub _23: Option<String>,
414 pub _24: Option<String>,
415}
416
417#[derive(
433 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
434)]
435pub struct N7A {
436 pub _01: Option<String>,
437 pub _02: Option<String>,
438 pub _03: Option<String>,
439 pub _04: Option<String>,
440 pub _05: Option<String>,
441 pub _06: Option<String>,
442 pub _07: Option<String>,
443 pub _08: Option<String>,
444 pub _09: Option<String>,
445}
446
447#[derive(
460 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
461)]
462pub struct N7B {
463 pub _01: Option<String>,
464 pub _02: Option<String>,
465 pub _03: Option<String>,
466 pub _04: Option<String>,
467 pub _05: Option<String>,
468 pub _06: Option<String>,
469}
470
471#[derive(
481 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
482)]
483pub struct N11 {
484 #[serde(rename = "01")]
485 pub _01: String,
486 #[serde(rename = "02")]
487 pub _02: Option<String>,
488 #[serde(rename = "03")]
489 pub _03: Option<String>,
490}
491
492#[derive(
501 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
502)]
503pub struct N12 {
504 #[serde(rename = "01")]
505 pub _01: crate::v005010::element::E829,
506 #[serde(rename = "02")]
507 pub _02: String,
508}
509
510#[derive(
512 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
513)]
514pub struct N5 {
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: Option<String>,
523 #[serde(rename = "05")]
524 pub _05: Option<String>,
525 #[serde(rename = "06")]
526 pub _06: Option<String>,
527 #[serde(rename = "07")]
528 pub _07: Option<String>,
529 #[serde(rename = "08")]
530 pub _08: Option<String>,
531 #[serde(rename = "09")]
532 pub _09: Option<String>,
533}
534
535#[derive(
537 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
538)]
539pub struct NA {
540 #[serde(rename = "01")]
541 pub _01: Option<String>,
542 #[serde(rename = "02")]
543 pub _02: Option<String>,
544 #[serde(rename = "03")]
545 pub _03: String,
546 #[serde(rename = "04")]
547 pub _04: String,
548 #[serde(rename = "05")]
549 pub _05: Option<String>,
550 #[serde(rename = "06")]
551 pub _06: Option<String>,
552 #[serde(rename = "07")]
553 pub _07: Option<String>,
554 #[serde(rename = "08")]
555 pub _08: Option<String>,
556 #[serde(rename = "09")]
557 pub _09: Option<String>,
558 #[serde(rename = "10")]
559 pub _10: Option<String>,
560 #[serde(rename = "11")]
561 pub _11: Option<String>,
562 #[serde(rename = "12")]
563 pub _12: Option<String>,
564}