colibris-types 1.0.42 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,382 @@
1
+ import { z } from "zod";
2
+ import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
3
+ extendZodWithOpenApi(z);
4
+ const parseDecimal = (v) => parseFloat(v.replace(",", "."));
5
+ // Bouygues Telecom Schemas
6
+ export const BouyguesGlobalInvoiceUploadRowSchema = z
7
+ .object({
8
+ "Numéro de référence de la facture": z
9
+ .string()
10
+ .optional()
11
+ .openapi({ description: "Invoice reference number" }),
12
+ "Numéro du centre de facturation": z
13
+ .string()
14
+ .optional()
15
+ .openapi({ description: "Billing center number" }),
16
+ "Nom du client": z.string().openapi({ description: "Client name" }),
17
+ "Période de la facture": z
18
+ .string()
19
+ .optional()
20
+ .openapi({ description: "Invoice period" }),
21
+ "Nom de la rubrique": z
22
+ .string()
23
+ .openapi({ description: "Category name" }),
24
+ "Nom de la sous-rubrique": z
25
+ .string()
26
+ .optional()
27
+ .openapi({ description: "Subcategory name" }),
28
+ "Montant brut": z
29
+ .string()
30
+ .transform(parseDecimal)
31
+ .pipe(z.number())
32
+ .openapi({ description: "Gross amount" }),
33
+ "Taux de remise": z
34
+ .string()
35
+ .transform(parseDecimal)
36
+ .pipe(z.number())
37
+ .optional()
38
+ .openapi({ description: "Discount rate" }),
39
+ "Montant des remises": z
40
+ .string()
41
+ .transform(parseDecimal)
42
+ .pipe(z.number())
43
+ .openapi({ description: "Discount amount" }),
44
+ "Montant Net": z
45
+ .string()
46
+ .transform(parseDecimal)
47
+ .pipe(z.number())
48
+ .openapi({ description: "Net amount" }),
49
+ "Nom de la rubrique de niveau 1": z
50
+ .string()
51
+ .optional()
52
+ .openapi({ description: "Level 1 category name" }),
53
+ "Nom de la rubrique de niveau 2": z
54
+ .string()
55
+ .optional()
56
+ .openapi({ description: "Level 2 category name" }),
57
+ })
58
+ .openapi("BouyguesGlobalInvoiceUploadRow");
59
+ export const BouyguesGlobalInvoiceUploadSchema = z
60
+ .array(BouyguesGlobalInvoiceUploadRowSchema)
61
+ .openapi("BouyguesGlobalInvoiceUpload");
62
+ export const BouyguesDetailedInvoiceUploadRowSchema = z
63
+ .object({
64
+ "Numéro de référence de la facture": z
65
+ .string()
66
+ .optional()
67
+ .openapi({ description: "Invoice reference number" }),
68
+ "Numéro de téléphone": z
69
+ .string()
70
+ .optional()
71
+ .openapi({ description: "Phone number" }),
72
+ "Numéro du centre de facturation": z
73
+ .string()
74
+ .optional()
75
+ .openapi({ description: "Billing center number" }),
76
+ "Nom du client": z.string().openapi({ description: "Client name" }),
77
+ "Numéro de l'utilisateur": z
78
+ .string()
79
+ .optional()
80
+ .openapi({ description: "User number" }),
81
+ "Nom de l'utilisateur": z
82
+ .string()
83
+ .openapi({ description: "User last name" }),
84
+ "Prénom de l'utilisateur": z
85
+ .string()
86
+ .optional()
87
+ .openapi({ description: "User first name" }),
88
+ "Numéro de référence de l'utilisateur": z
89
+ .string()
90
+ .optional()
91
+ .openapi({ description: "User reference number" }),
92
+ "Période de la facture": z
93
+ .string()
94
+ .optional()
95
+ .openapi({ description: "Invoice period" }),
96
+ "Nom de la rubrique": z
97
+ .string()
98
+ .openapi({ description: "Category name" }),
99
+ "Nom de la sous-rubrique": z
100
+ .string()
101
+ .optional()
102
+ .openapi({ description: "Subcategory name" }),
103
+ "Quantité ou volume": z
104
+ .string()
105
+ .optional()
106
+ .openapi({ description: "Quantity or volume" }),
107
+ "Montant brut": z
108
+ .string()
109
+ .transform(parseDecimal)
110
+ .pipe(z.number())
111
+ .openapi({ description: "Gross amount" }),
112
+ "Taux de remise": z
113
+ .string()
114
+ .transform(parseDecimal)
115
+ .pipe(z.number())
116
+ .optional()
117
+ .openapi({ description: "Discount rate" }),
118
+ "Montant des remises": z
119
+ .string()
120
+ .transform(parseDecimal)
121
+ .pipe(z.number())
122
+ .openapi({ description: "Discount amount" }),
123
+ "Montant Net": z
124
+ .string()
125
+ .transform(parseDecimal)
126
+ .pipe(z.number())
127
+ .openapi({ description: "Net amount" }),
128
+ "Nom de la rubrique de niveau 1": z
129
+ .string()
130
+ .optional()
131
+ .openapi({ description: "Level 1 category name" }),
132
+ "Nom de la rubrique de niveau 2": z
133
+ .string()
134
+ .optional()
135
+ .openapi({ description: "Level 2 category name" }),
136
+ })
137
+ .openapi("BouyguesDetailedInvoiceUploadRow");
138
+ export const BouyguesDetailedInvoiceUploadSchema = z
139
+ .array(BouyguesDetailedInvoiceUploadRowSchema)
140
+ .openapi("BouyguesDetailedInvoiceUpload");
141
+ export const BouyguesFleetUploadRowSchema = z
142
+ .object({
143
+ "N° Centre de facturation": z
144
+ .string()
145
+ .optional()
146
+ .openapi({ description: "Billing center number" }),
147
+ "N° Ligne": z.string().optional().openapi({ description: "Line number" }),
148
+ "N° IMEI": z.string().optional().openapi({ description: "IMEI number" }),
149
+ "Modèle utilisé": z
150
+ .string()
151
+ .optional()
152
+ .openapi({ description: "Device model" }),
153
+ "Type de produit": z.string().openapi({ description: "Product type" }),
154
+ Profil: z.string().optional().openapi({ description: "Profile" }),
155
+ })
156
+ .openapi("BouyguesFleetUploadRow");
157
+ export const BouyguesFleetUploadSchema = z
158
+ .array(BouyguesFleetUploadRowSchema)
159
+ .openapi("BouyguesFleetUpload");
160
+ // Orange Schemas
161
+ export const OrangeDetailedInvoiceUploadRowSchema = z
162
+ .object({
163
+ "Numéro accès": z
164
+ .string()
165
+ .optional()
166
+ .openapi({ description: "Access number" }),
167
+ "Numéro compte": z.string().openapi({ description: "Account number" }),
168
+ "N° utilisateur": z
169
+ .string()
170
+ .optional()
171
+ .openapi({ description: "User number" }),
172
+ "Indicateur abo principal/option": z
173
+ .string()
174
+ .openapi({ description: "Main/option subscription indicator" }),
175
+ "Type d'accès": z
176
+ .string()
177
+ .optional()
178
+ .openapi({ description: "Access type" }),
179
+ "Type de charge": z.string().openapi({ description: "Charge type" }),
180
+ "Rubrique facture": z
181
+ .string()
182
+ .openapi({ description: "Invoice category" }),
183
+ "Libellé ligne facture": z
184
+ .string()
185
+ .openapi({ description: "Invoice line label" }),
186
+ "Type de trafic": z
187
+ .string()
188
+ .optional()
189
+ .openapi({ description: "Traffic type" }),
190
+ Destination: z.string().optional().openapi({ description: "Destination" }),
191
+ Date: z.string().openapi({ description: "Date" }),
192
+ "Nom utilisateur": z
193
+ .string()
194
+ .optional()
195
+ .openapi({ description: "User name" }),
196
+ "Date limite paiement": z
197
+ .string()
198
+ .openapi({ description: "Payment due date" }),
199
+ Unité: z.string().openapi({ description: "Unit" }),
200
+ "Numéro facture": z.string().openapi({ description: "Invoice number" }),
201
+ "Type équipement": z
202
+ .string()
203
+ .optional()
204
+ .openapi({ description: "Equipment type" }),
205
+ "Prix Unitaire": z
206
+ .string()
207
+ .transform(parseDecimal)
208
+ .pipe(z.number())
209
+ .optional()
210
+ .openapi({ description: "Unit price" }),
211
+ "Quantité (Hors conso)": z
212
+ .string()
213
+ .transform(parseDecimal)
214
+ .pipe(z.number())
215
+ .openapi({ description: "Quantity (excluding consumption)" }),
216
+ "Nombre d'appels": z
217
+ .string()
218
+ .transform(parseDecimal)
219
+ .pipe(z.number())
220
+ .optional()
221
+ .openapi({ description: "Number of calls" }),
222
+ "Quantité (Volume (Mo))": z
223
+ .string()
224
+ .transform(parseDecimal)
225
+ .pipe(z.number())
226
+ .openapi({ description: "Volume in MB" }),
227
+ "Quantité (Durée (hh:mm:ss))": z
228
+ .string()
229
+ .transform(parseDecimal)
230
+ .pipe(z.number())
231
+ .openapi({ description: "Duration" }),
232
+ "Quantité (Acte)": z
233
+ .string()
234
+ .transform(parseDecimal)
235
+ .pipe(z.number())
236
+ .openapi({ description: "Number of actions" }),
237
+ "Montant (€ TTC)": z
238
+ .string()
239
+ .transform(parseDecimal)
240
+ .pipe(z.number())
241
+ .openapi({ description: "Amount including tax" }),
242
+ "Nombre de lignes": z
243
+ .string()
244
+ .transform(parseDecimal)
245
+ .pipe(z.number())
246
+ .optional()
247
+ .openapi({ description: "Number of lines" }),
248
+ "Montant TVA": z
249
+ .string()
250
+ .transform(parseDecimal)
251
+ .pipe(z.number())
252
+ .openapi({ description: "VAT amount" }),
253
+ "Montant (€ HT)": z
254
+ .string()
255
+ .transform(parseDecimal)
256
+ .pipe(z.number())
257
+ .openapi({ description: "Amount excluding tax" }),
258
+ })
259
+ .openapi("OrangeDetailedInvoiceUploadRow");
260
+ export const OrangeDetailedInvoiceUploadSchema = z
261
+ .array(OrangeDetailedInvoiceUploadRowSchema)
262
+ .openapi("OrangeDetailedInvoiceUpload");
263
+ export const OrangeFleetUploadRowSchema = z
264
+ .object({
265
+ "Numéro accès": z.string().openapi({ description: "Access number" }),
266
+ "Numéro compte": z.string().openapi({ description: "Account number" }),
267
+ "Raison Sociale": z
268
+ .string()
269
+ .optional()
270
+ .openapi({ description: "Company name" }),
271
+ "Titulaire - Ville": z
272
+ .string()
273
+ .optional()
274
+ .openapi({ description: "Holder city" }),
275
+ "Numéro IMEI": z
276
+ .string()
277
+ .optional()
278
+ .openapi({ description: "IMEI number" }),
279
+ "Modèle équipement": z
280
+ .string()
281
+ .optional()
282
+ .openapi({ description: "Equipment model" }),
283
+ "Nom utilisateur": z
284
+ .string()
285
+ .optional()
286
+ .openapi({ description: "User name" }),
287
+ "Libellé forfait": z
288
+ .string()
289
+ .optional()
290
+ .openapi({ description: "Plan name" }),
291
+ "Type d'accès": z
292
+ .string()
293
+ .optional()
294
+ .openapi({ description: "Access type" }),
295
+ "Nombre d'accès": z
296
+ .string()
297
+ .transform(parseDecimal)
298
+ .pipe(z.number())
299
+ .optional()
300
+ .openapi({ description: "Number of accesses" }),
301
+ })
302
+ .openapi("OrangeFleetUploadRow");
303
+ export const OrangeFleetUploadSchema = z
304
+ .array(OrangeFleetUploadRowSchema)
305
+ .openapi("OrangeFleetUpload");
306
+ // SFR Schemas
307
+ export const SfrDetailedInvoiceUploadRowSchema = z
308
+ .object({
309
+ NDI: z.coerce.number().optional().openapi({ description: "NDI number" }),
310
+ "COMPTE DE FACTURATION": z
311
+ .string()
312
+ .openapi({ description: "Billing account" }),
313
+ "NUMERO FACTURE": z.string().openapi({ description: "Invoice number" }),
314
+ "DATE FACTURE": z.string().openapi({ description: "Invoice date" }),
315
+ "RS SOCIETE DESTINATAIRE": z
316
+ .string()
317
+ .openapi({ description: "Recipient company name" }),
318
+ "PRENOM UTILISATEUR": z
319
+ .string()
320
+ .optional()
321
+ .openapi({ description: "User first name" }),
322
+ "NOM UTILISATEUR": z
323
+ .string()
324
+ .optional()
325
+ .openapi({ description: "User last name" }),
326
+ "NOM OFFRE": z.string().openapi({ description: "Offer name" }),
327
+ "SOUS BLOC FACTURE": z
328
+ .string()
329
+ .openapi({ description: "Invoice sub-block" }),
330
+ "DESCRIPTION ARTICLE": z
331
+ .string()
332
+ .openapi({ description: "Item description" }),
333
+ "SOUS-CATEGORIE": z
334
+ .string()
335
+ .optional()
336
+ .openapi({ description: "Subcategory" }),
337
+ "MONTANT HT MENSUEL": z
338
+ .string()
339
+ .transform(parseDecimal)
340
+ .pipe(z.number())
341
+ .optional()
342
+ .openapi({ description: "Monthly amount excluding tax" }),
343
+ "MONTANT HT": z
344
+ .string()
345
+ .transform(parseDecimal)
346
+ .pipe(z.number())
347
+ .optional()
348
+ .openapi({ description: "Amount excluding tax" }),
349
+ "MONTANT HT REMISE": z
350
+ .string()
351
+ .transform(parseDecimal)
352
+ .pipe(z.number())
353
+ .openapi({ description: "Discount amount excluding tax" }),
354
+ "LIBELLE GROUPE JURIDICTIONS": z
355
+ .string()
356
+ .optional()
357
+ .openapi({ description: "Jurisdiction group label" }),
358
+ "TYPE CONSO": z
359
+ .coerce.number()
360
+ .optional()
361
+ .openapi({ description: "Consumption type" }),
362
+ "QUANTITE CONSOMMEE": z
363
+ .coerce.number()
364
+ .optional()
365
+ .openapi({ description: "Consumed quantity" }),
366
+ "UNITE QUANTITE CONSOMMEE": z
367
+ .string()
368
+ .optional()
369
+ .openapi({ description: "Consumed quantity unit" }),
370
+ })
371
+ .openapi("SfrDetailedInvoiceUploadRow");
372
+ export const SfrDetailedInvoiceUploadSchema = z
373
+ .array(SfrDetailedInvoiceUploadRowSchema)
374
+ .openapi("SfrDetailedInvoiceUpload");
375
+ export const telecomDefinitions = {
376
+ bouygues_global_invoice_upload: BouyguesGlobalInvoiceUploadSchema,
377
+ bouygues_detailed_invoice_upload: BouyguesDetailedInvoiceUploadSchema,
378
+ bouygues_fleet_upload: BouyguesFleetUploadSchema,
379
+ orange_detailed_invoice_upload: OrangeDetailedInvoiceUploadSchema,
380
+ orange_fleet_upload: OrangeFleetUploadSchema,
381
+ sfr_detailed_invoice_upload: SfrDetailedInvoiceUploadSchema,
382
+ };