exnet-routing 0.0.0

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.
Files changed (74) hide show
  1. package/.github/workflows/release.yml +31 -0
  2. package/.prettierignore +2 -0
  3. package/.releaserc.json +13 -0
  4. package/README.md +1 -0
  5. package/core/_type.ts +110 -0
  6. package/core/_untils.ts +142 -0
  7. package/core/index.ts +15 -0
  8. package/eslint.config.js +50 -0
  9. package/index.ts +131 -0
  10. package/models/_banniere.ts +33 -0
  11. package/models/_billing_center.ts +167 -0
  12. package/models/_calcul_range.ts +12 -0
  13. package/models/_calcul_range_price.ts +17 -0
  14. package/models/_calcul_weight.ts +11 -0
  15. package/models/_calcul_weight_price.ts +18 -0
  16. package/models/_chat.ts +19 -0
  17. package/models/_chat_message.ts +19 -0
  18. package/models/_contact.ts +179 -0
  19. package/models/_contact_visible.ts +14 -0
  20. package/models/_country.ts +13 -0
  21. package/models/_customer.ts +148 -0
  22. package/models/_emballage.ts +23 -0
  23. package/models/_exportation.ts +12 -0
  24. package/models/_facturation_line.ts +90 -0
  25. package/models/_facture.ts +34 -0
  26. package/models/_facture_line.ts +32 -0
  27. package/models/_fuel.ts +14 -0
  28. package/models/_historique_action.ts +21 -0
  29. package/models/_information_chauffeur.ts +27 -0
  30. package/models/_information_importante.ts +17 -0
  31. package/models/_livraison_chauffeur.ts +17 -0
  32. package/models/_manifest.ts +58 -0
  33. package/models/_prise_de_poste.ts +166 -0
  34. package/models/_ramassage_chauffeur.ts +23 -0
  35. package/models/_ref_coef.ts +14 -0
  36. package/models/_ref_countrie.ts +15 -0
  37. package/models/_ref_facture.ts +12 -0
  38. package/models/_ref_import_export_price.ts +17 -0
  39. package/models/_salarie.ts +45 -0
  40. package/models/_shipping.ts +79 -0
  41. package/models/_shipping_affected.ts +16 -0
  42. package/models/_shipping_classification.ts +29 -0
  43. package/models/_shipping_comment.ts +17 -0
  44. package/models/_shipping_course.ts +23 -0
  45. package/models/_shipping_detail.ts +26 -0
  46. package/models/_shipping_detail_info_supplementaire.ts +34 -0
  47. package/models/_shipping_document.ts +19 -0
  48. package/models/_shipping_emballage.ts +27 -0
  49. package/models/_shipping_manifest.ts +16 -0
  50. package/models/_shipping_package.ts +29 -0
  51. package/models/_shipping_pod.ts +18 -0
  52. package/models/_shipping_proforma.ts +19 -0
  53. package/models/_shipping_proforma_line.ts +19 -0
  54. package/models/_shipping_tracking.ts +52 -0
  55. package/models/_tracking_visible.ts +14 -0
  56. package/models/_type_diagnobag.ts +30 -0
  57. package/models/_type_emballage.ts +24 -0
  58. package/models/_type_sonde.ts +24 -0
  59. package/models/_type_transport.ts +21 -0
  60. package/models/_untils.ts +72 -0
  61. package/models/_user.ts +463 -0
  62. package/models/_user_billing_center.ts +16 -0
  63. package/models/_user_login_historie.ts +18 -0
  64. package/models/_vehicule.ts +45 -0
  65. package/models/_vehicule_affected.ts +16 -0
  66. package/models/index.ts +56 -0
  67. package/package.json +34 -0
  68. package/prettier.config.js +7 -0
  69. package/routes/admin.ts +703 -0
  70. package/routes/driver.ts +5 -0
  71. package/routes/ops.ts +286 -0
  72. package/routes/public.ts +53 -0
  73. package/routes/user.ts +191 -0
  74. package/tsconfig.json +22 -0
@@ -0,0 +1,90 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const FacturationLineSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ label: z.string(),
9
+ description: z.string(),
10
+ montant: z.number(),
11
+ fuel: z.number(),
12
+ variation: z.number().nullable(),
13
+ forVariation: z.boolean(),
14
+ tva: z.boolean(),
15
+ europe: z.boolean(),
16
+ express: z.boolean(),
17
+ international: z.boolean(),
18
+ locale: z.boolean(),
19
+ spxOneHourThirty: z.boolean(),
20
+ spxThreeHours: z.boolean(),
21
+ national: z.boolean(),
22
+ premium: z.boolean(),
23
+ spx: z.boolean(),
24
+ spxNineHours: z.boolean(),
25
+ spxTenHours: z.boolean(),
26
+ spxTwelveHours: z.boolean(),
27
+ spxDrive: z.boolean(),
28
+ spxPlus: z.boolean(),
29
+ spxSat: z.boolean(),
30
+ voiture: z.boolean(),
31
+ isActif: z.boolean(),
32
+ })
33
+
34
+ export const FacturationLineCreateSchema = z.object({
35
+ label: z.string(),
36
+ description: z.string(),
37
+ montant: z.number(),
38
+ fuel: z.number(),
39
+ variation: z.number().optional(),
40
+ forVariation: z.boolean(),
41
+ tva: z.boolean(),
42
+ europe: z.boolean(),
43
+ express: z.boolean(),
44
+ international: z.boolean(),
45
+ locale: z.boolean(),
46
+ spxOneHourThirty: z.boolean(),
47
+ spxThreeHours: z.boolean(),
48
+ national: z.boolean(),
49
+ premium: z.boolean(),
50
+ spx: z.boolean(),
51
+ spxNineHours: z.boolean(),
52
+ spxTenHours: z.boolean(),
53
+ spxTwelveHours: z.boolean(),
54
+ spxDrive: z.boolean(),
55
+ sxpPlus: z.boolean(),
56
+ sxpSat: z.boolean(),
57
+ voiture: z.boolean(),
58
+ isActif: z.boolean(),
59
+ })
60
+
61
+ export const FacturationLineUpdateSchema = z.object({
62
+ label: z.string().optional(),
63
+ description: z.string().optional(),
64
+ montant: z.number().optional(),
65
+ fuel: z.number().optional(),
66
+ variation: z.number().optional(),
67
+ forVariation: z.boolean().optional(),
68
+ tva: z.boolean().optional(),
69
+ europe: z.boolean().optional(),
70
+ express: z.boolean().optional(),
71
+ international: z.boolean().optional(),
72
+ locale: z.boolean().optional(),
73
+ spxOneHourThirty: z.boolean().optional(),
74
+ spxThreeHours: z.boolean().optional(),
75
+ national: z.boolean().optional(),
76
+ premium: z.boolean().optional(),
77
+ spx: z.boolean().optional(),
78
+ spxNineHours: z.boolean().optional(),
79
+ spxTenHours: z.boolean().optional(),
80
+ spxTwelveHours: z.boolean().optional(),
81
+ spxDrive: z.boolean().optional(),
82
+ sxpPlus: z.boolean().optional(),
83
+ sxpSat: z.boolean().optional(),
84
+ voiture: z.boolean().optional(),
85
+ isActif: z.boolean().optional(),
86
+ })
87
+
88
+ export type IFacturationLine = z.infer<typeof FacturationLineSchema>
89
+ export type IFacturationLineCreate = z.infer<typeof FacturationLineCreateSchema>
90
+ export type IFacturationLineUpdate = z.infer<typeof FacturationLineUpdateSchema>
@@ -0,0 +1,34 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { BillingCenterSchema } from "./_billing_center"
4
+
5
+ export const FactureSchema = z.object({
6
+ id: z.number(),
7
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
9
+ isParis: z.boolean(),
10
+ isMedical: z.boolean(),
11
+ isService: z.boolean(),
12
+ echeance: z.string(),
13
+ statut: z.string(),
14
+ montant: z.number(),
15
+ shippingIds: z.array(z.string()),
16
+ fuel: z.number(),
17
+ tva: z.number(),
18
+ total: z.number(),
19
+ ref: z.number(),
20
+ isDeleted: z.boolean(),
21
+ bonDeCommende: z.string().nullable(),
22
+ isVariation: z.boolean(),
23
+ activeForReedited: z.boolean(),
24
+ docFacture: z.string(),
25
+ fullRef: z.string(),
26
+ message: z.string().nullable(),
27
+ modeReglement: z.string().nullable(),
28
+ source: z.string().nullable(),
29
+ provenanceCommande: z.string().nullable(),
30
+ billingCenterId: z.number(),
31
+ billingCenter: z.lazy(() => BillingCenterSchema).optional(),
32
+ })
33
+
34
+ export type IFacture = z.infer<typeof FactureSchema>
@@ -0,0 +1,32 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { FactureSchema } from "./_facture"
4
+ import { ShippingSchema } from "./_shipping"
5
+ import { FacturationLineSchema } from "./_facturation_line"
6
+
7
+ export const FactureLineSchema = z.object({
8
+ id: z.number(),
9
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
10
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
11
+ classifications: z.string(),
12
+ comment: z.string().nullable(),
13
+ lineType: z.string(),
14
+ prix: z.number(),
15
+ qte: z.number(),
16
+ total: z.number(),
17
+ totalFinal: z.number(),
18
+ fuel: z.number(),
19
+ tva: z.number(),
20
+ factureRef: z.number().nullable(),
21
+ oldFactureRef: z.number().nullable(),
22
+ isVariation: z.boolean(),
23
+ fullRef: z.string(),
24
+ factureId: z.number().nullable(),
25
+ shippingId: z.number(),
26
+ facturationLineId: z.number(),
27
+ facture: z.lazy(() => FactureSchema).optional(),
28
+ shipping: z.lazy(() => ShippingSchema).optional(),
29
+ facturationLine: z.lazy(() => FacturationLineSchema).optional(),
30
+ })
31
+
32
+ export type IFactureLine = z.infer<typeof FactureLineSchema>
@@ -0,0 +1,14 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const FuelSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ value: z.number(),
9
+ indexFuel: z.number(),
10
+ isActif: z.boolean(),
11
+ forVariation: z.boolean(),
12
+ })
13
+
14
+ export type IFuel = z.infer<typeof FuelSchema>
@@ -0,0 +1,21 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+ import { ShippingSchema } from "./_shipping"
5
+
6
+ export const HistoriqueActionTypeEnum = z.enum(["CONNEXION", "DECONNEXION", "ACTION"])
7
+
8
+ export const HistoriqueActionSchema = z.object({
9
+ id: z.number(),
10
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
11
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
12
+ action: z.string(),
13
+ type: HistoriqueActionTypeEnum,
14
+ data: z.record(z.any()),
15
+ userId: z.number().nullable(),
16
+ shippingId: z.number().nullable(),
17
+ user: z.lazy(() => UserSchema).optional(),
18
+ shipping: z.lazy(() => ShippingSchema).optional(),
19
+ })
20
+
21
+ export type IHistoriqueAction = z.infer<typeof HistoriqueActionSchema>
@@ -0,0 +1,27 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+ export const InformationChauffeurSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ permis: z.string().nullable(),
9
+ carteIdentite: z.string().nullable(),
10
+ travail: z.string().nullable(),
11
+ urssaf: z.string().nullable(),
12
+ nomPermis: z.string(),
13
+ typePermis: z.string().nullable(),
14
+ nomCarteIdentite: z.string(),
15
+ typeCarteIdentite: z.string().nullable(),
16
+ nomTravail: z.string().nullable(),
17
+ typeTravail: z.string().nullable(),
18
+ nomUrssaf: z.string().nullable(),
19
+ typeUrssaf: z.string().nullable(),
20
+ frais: z.string().nullable(),
21
+ nomFrais: z.string().nullable(),
22
+ typeFrais: z.string().nullable(),
23
+ userId: z.number(),
24
+ user: z.lazy(() => UserSchema).optional(),
25
+ })
26
+
27
+ export type IInformationChauffeur = z.infer<typeof InformationChauffeurSchema>
@@ -0,0 +1,17 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+ import { ShippingSchema } from "./_shipping"
5
+
6
+ export const InformationImportanteSchema = z.object({
7
+ id: z.number(),
8
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
9
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
10
+ information: z.string(),
11
+ userId: z.number(),
12
+ shippingId: z.number(),
13
+ user: z.lazy(() => UserSchema).optional(),
14
+ shipping: z.lazy(() => ShippingSchema).optional(),
15
+ })
16
+
17
+ export type IInformationImportante = z.infer<typeof InformationImportanteSchema>
@@ -0,0 +1,17 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+ import { ShippingSchema } from "./_shipping"
5
+
6
+ export const LivraisonChauffeurSchema = z.object({
7
+ id: z.number(),
8
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
9
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
10
+ visibleTo: z.boolean(),
11
+ userId: z.number(),
12
+ shippingId: z.number(),
13
+ user: z.lazy(() => UserSchema).optional(),
14
+ shipping: z.lazy(() => ShippingSchema).optional(),
15
+ })
16
+
17
+ export type ILivraisonChauffeur = z.infer<typeof LivraisonChauffeurSchema>
@@ -0,0 +1,58 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const ManifestSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ description: z.string(),
9
+ mawb: z.string().nullable(),
10
+ dateManifest: z.date().transform((date) => DateTime.fromJSDate(date)),
11
+ exOne: z.string().nullable(),
12
+ viaVol: z.string().nullable(),
13
+ isParis: z.boolean(),
14
+ isMedical: z.boolean(),
15
+ isService: z.boolean(),
16
+ isActif: z.boolean(),
17
+ destination: z.string(),
18
+ origine: z.string(),
19
+ compagnie: z.string(),
20
+ numVol: z.string(),
21
+ numLta: z.string(),
22
+ numCamion: z.string(),
23
+ numContainer: z.string(),
24
+ numPlomb: z.string(),
25
+ numDeclaration: z.string(),
26
+ numDossier: z.string(),
27
+ })
28
+
29
+ export const ManifestCreateSchema = z.object({
30
+ description: z.string(),
31
+ mawb: z.string().optional(),
32
+ dateManifest: z.date().transform((date) => DateTime.fromJSDate(date)),
33
+ exOne: z.string().optional(),
34
+ viaVol: z.string().optional(),
35
+ isParis: z.boolean(),
36
+ isMedical: z.boolean(),
37
+ isService: z.boolean(),
38
+ isActif: z.boolean(),
39
+ })
40
+
41
+ export const ManifestUpdateSchema = z.object({
42
+ description: z.string().optional(),
43
+ mawb: z.string().optional(),
44
+ dateManifest: z
45
+ .date()
46
+ .transform((date) => DateTime.fromJSDate(date))
47
+ .optional(),
48
+ exOne: z.string().optional(),
49
+ viaVol: z.string().optional(),
50
+ isParis: z.boolean().optional(),
51
+ isMedical: z.boolean().optional(),
52
+ isService: z.boolean().optional(),
53
+ isActif: z.boolean().optional(),
54
+ })
55
+
56
+ export type IManifest = z.infer<typeof ManifestSchema>
57
+ export type IManifestCreate = z.infer<typeof ManifestCreateSchema>
58
+ export type IManifestUpdate = z.infer<typeof ManifestUpdateSchema>
@@ -0,0 +1,166 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+
5
+ export const PriseDePosteSchema = z.object({
6
+ id: z.number(),
7
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
9
+ dateDay: z.date().transform((date) => DateTime.fromJSDate(date)),
10
+ heurePrisePoste: z.date().transform((date) => DateTime.fromJSDate(date)),
11
+ heureDepart: z
12
+ .date()
13
+ .transform((date) => DateTime.fromJSDate(date))
14
+ .optional(),
15
+ heurePause: z
16
+ .date()
17
+ .transform((date) => DateTime.fromJSDate(date))
18
+ .optional(),
19
+ heureRetourPause: z
20
+ .date()
21
+ .transform((date) => DateTime.fromJSDate(date))
22
+ .optional(),
23
+ heureFin: z
24
+ .date()
25
+ .transform((date) => DateTime.fromJSDate(date))
26
+ .optional(),
27
+ docsLicenseTransport: z.boolean(),
28
+ docsAutorisationExercer: z.boolean(),
29
+ docsLicenseTransportEuropeen: z.boolean(),
30
+ docsKbis: z.boolean(),
31
+ docsCertificatAssurance: z.boolean(),
32
+ docsAttestationUrssafChauffeur: z.boolean(),
33
+ docsConstatAmiable: z.boolean(),
34
+ docsRaison: z.string().nullable(),
35
+ vehiculePlaque: z.boolean(),
36
+ vehiculeKmDepart: z.number().nullable(),
37
+ vehiculeKmRetour: z.number().nullable(),
38
+ vehiculeCarburantOk: z.boolean(),
39
+ vehiculeCarburantReajuster: z.boolean(),
40
+ vehiculeCarburantFaire: z.boolean(),
41
+ vehiculeNiveauFluideOk: z.boolean(),
42
+ vehiculeNiveauFluideReajuster: z.boolean(),
43
+ vehiculeNiveauFluideFaire: z.boolean(),
44
+ vehiculePhotoDepart: z.string().nullable(),
45
+ verificationsVoitureCarteIdentite: z.boolean(),
46
+ verificationsVoiturePermisConduire: z.boolean(),
47
+ verificationsVoitureBadge: z.boolean(),
48
+ verificationsVoiturePencarte: z.boolean(),
49
+ verificationsVoitureEtylotest: z.boolean(),
50
+ verificationsVoitureRaison: z.string().nullable(),
51
+ verificationMaterielVestimentaire: z.boolean(),
52
+ verificationMaterielChaussure: z.boolean(),
53
+ verificationMaterielGants: z.boolean(),
54
+ verificationMaterielChaussettes: z.boolean(),
55
+ verificationMaterielRaison: z.string().nullable(),
56
+ verificationsTrimestrielles: z.boolean(),
57
+ userId: z.number(),
58
+ user: z.lazy(() => UserSchema).optional(),
59
+ })
60
+
61
+ export const PriseDePosteCreateSchema = z.object({
62
+ dateDay: z.date().transform((date) => DateTime.fromJSDate(date)),
63
+ heurePrisePoste: z.date().transform((date) => DateTime.fromJSDate(date)),
64
+ heureDepart: z.date().transform((date) => DateTime.fromJSDate(date)),
65
+ heurePause: z.date().transform((date) => DateTime.fromJSDate(date)),
66
+ heureRetourPause: z.date().transform((date) => DateTime.fromJSDate(date)),
67
+ heureFin: z.date().transform((date) => DateTime.fromJSDate(date)),
68
+ docsLicenseTransport: z.boolean(),
69
+ docsAutorisationExercer: z.boolean(),
70
+ docsLicenseTransportEuropeen: z.boolean(),
71
+ docsKbis: z.boolean(),
72
+ docsCertificatQualiteAir: z.boolean(),
73
+ docsCertificatAssurance: z.boolean(),
74
+ docsAttestationUrssafChauffeur: z.boolean(),
75
+ docsConstatAmiable: z.boolean(),
76
+ docsRaison: z.string().optional(),
77
+ vehiculePlaque: z.boolean(),
78
+ vehiculeKmDepart: z.number().optional(),
79
+ vehiculeKmRetour: z.number().optional(),
80
+ vehiculeCarburantOk: z.boolean(),
81
+ vehiculeCarburantReajuster: z.boolean(),
82
+ vehiculeCarburantFaire: z.boolean(),
83
+ vehiculeNiveauFluideOk: z.boolean(),
84
+ vehiculeNiveauFluideReajuster: z.boolean(),
85
+ vehiculeNiveauFluideFaire: z.boolean(),
86
+ vehiculePhotoDepart: z.string().optional(),
87
+ verificationsVoitureCarteIdentite: z.boolean(),
88
+ verificationsVoiturePermisConduire: z.boolean(),
89
+ verificationsVoitureBadge: z.boolean(),
90
+ verificationsVoiturePencarte: z.boolean(),
91
+ verificationsVoitureEtylotest: z.boolean(),
92
+ verificationsVoitureRaison: z.string().optional(),
93
+ verificationMaterielVestimentaire: z.boolean(),
94
+ verificationMaterielChaussure: z.boolean(),
95
+ verificationMaterielGants: z.boolean(),
96
+ verificationMaterielChaussettes: z.boolean(),
97
+ verificationMaterielRaison: z.string().optional(),
98
+ verificationsTrimestrielles: z.date().transform((date) => DateTime.fromJSDate(date)),
99
+ userId: z.number(), // Note: validation d'existence à implémenter séparément
100
+ })
101
+
102
+ export const PriseDePosteUpdateSchema = z.object({
103
+ dateDay: z
104
+ .date()
105
+ .transform((date) => DateTime.fromJSDate(date))
106
+ .optional(),
107
+ heurePrisePoste: z
108
+ .date()
109
+ .transform((date) => DateTime.fromJSDate(date))
110
+ .optional(),
111
+ heureDepart: z
112
+ .date()
113
+ .transform((date) => DateTime.fromJSDate(date))
114
+ .optional(),
115
+ heurePause: z
116
+ .date()
117
+ .transform((date) => DateTime.fromJSDate(date))
118
+ .optional(),
119
+ heureRetourPause: z
120
+ .date()
121
+ .transform((date) => DateTime.fromJSDate(date))
122
+ .optional(),
123
+ heureFin: z
124
+ .date()
125
+ .transform((date) => DateTime.fromJSDate(date))
126
+ .optional(),
127
+ docsLicenseTransport: z.boolean().optional(),
128
+ docsAutorisationExercer: z.boolean().optional(),
129
+ docsLicenseTransportEuropeen: z.boolean().optional(),
130
+ docsKbis: z.boolean().optional(),
131
+ docsCertificatQualiteAir: z.boolean().optional(),
132
+ docsCertificatAssurance: z.boolean().optional(),
133
+ docsAttestationUrssafChauffeur: z.boolean().optional(),
134
+ docsConstatAmiable: z.boolean().optional(),
135
+ docsRaison: z.string().optional(),
136
+ vehiculePlaque: z.boolean().optional(),
137
+ vehiculeKmDepart: z.number().optional(),
138
+ vehiculeKmRetour: z.number().optional(),
139
+ vehiculeCarburantOk: z.boolean().optional(),
140
+ vehiculeCarburantReajuster: z.boolean().optional(),
141
+ vehiculeCarburantFaire: z.boolean().optional(),
142
+ vehiculeNiveauFluideOk: z.boolean().optional(),
143
+ vehiculeNiveauFluideReajuster: z.boolean().optional(),
144
+ vehiculeNiveauFluideFaire: z.boolean().optional(),
145
+ vehiculePhotoDepart: z.string().optional(),
146
+ verificationsVoitureCarteIdentite: z.boolean().optional(),
147
+ verificationsVoiturePermisConduire: z.boolean().optional(),
148
+ verificationsVoitureBadge: z.boolean().optional(),
149
+ verificationsVoiturePencarte: z.boolean().optional(),
150
+ verificationsVoitureEtylotest: z.boolean().optional(),
151
+ verificationsVoitureRaison: z.string().optional(),
152
+ verificationMaterielVestimentaire: z.boolean().optional(),
153
+ verificationMaterielChaussure: z.boolean().optional(),
154
+ verificationMaterielGants: z.boolean().optional(),
155
+ verificationMaterielChaussettes: z.boolean().optional(),
156
+ verificationMaterielRaison: z.string().optional(),
157
+ verificationsTrimestrielles: z
158
+ .date()
159
+ .transform((date) => DateTime.fromJSDate(date))
160
+ .optional(),
161
+ userId: z.number().optional(), // Note: validation d'existence à implémenter séparément
162
+ })
163
+
164
+ export type IPriseDePoste = z.infer<typeof PriseDePosteSchema>
165
+ export type IPriseDePosteCreate = z.infer<typeof PriseDePosteCreateSchema>
166
+ export type IPriseDePosteUpdate = z.infer<typeof PriseDePosteUpdateSchema>
@@ -0,0 +1,23 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { UserSchema } from "./_user"
4
+ import { ShippingSchema } from "./_shipping"
5
+
6
+ export const RamassageChauffeurSchema = z.object({
7
+ id: z.number(),
8
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
9
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
10
+ nom: z.string(),
11
+ prenom: z.string(),
12
+ signature: z.string().nullable(),
13
+ picture: z.string().nullable(),
14
+ date: z.string().nullable(),
15
+ heurs: z.string().nullable(),
16
+ visibleTo: z.boolean(),
17
+ userId: z.number(),
18
+ shippingId: z.number(),
19
+ user: z.lazy(() => UserSchema).optional(),
20
+ shipping: z.lazy(() => ShippingSchema).optional(),
21
+ })
22
+
23
+ export type IRamassageChauffeur = z.infer<typeof RamassageChauffeurSchema>
@@ -0,0 +1,14 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const RefCoefSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ typeCoef: z.string(),
9
+ zoneCoef: z.string(),
10
+ valueCoef: z.number(),
11
+ valueAdd: z.number(),
12
+ })
13
+
14
+ export type IRefCoef = z.infer<typeof RefCoefSchema>
@@ -0,0 +1,15 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const RefCountrySchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ exportZone: z.string(),
9
+ valueCountry: z.string(),
10
+ importZone: z.string(),
11
+ euroZone: z.boolean(),
12
+ ddpExport: z.boolean(),
13
+ })
14
+
15
+ export type IRefCountry = z.infer<typeof RefCountrySchema>
@@ -0,0 +1,12 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const RefFactureSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ ref: z.number(),
9
+ yearIndex: z.number(),
10
+ })
11
+
12
+ export type IRefFacture = z.infer<typeof RefFactureSchema>
@@ -0,0 +1,17 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+ import { CalculWeightSchema } from "./_calcul_weight"
4
+ export const RefImportExportPriceSchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ valueZone: z.string(),
9
+ exportPrice: z.number(),
10
+ importPrice: z.number(),
11
+ addValueImport: z.number(),
12
+ addValueExport: z.number(),
13
+ calculWeightId: z.number(),
14
+ calculWeight: z.lazy(() => CalculWeightSchema).optional(),
15
+ })
16
+
17
+ export type IRefImportExportPrice = z.infer<typeof RefImportExportPriceSchema>
@@ -0,0 +1,45 @@
1
+ import { z } from "zod"
2
+ import { DateTime } from "luxon"
3
+
4
+ export const SalarySchema = z.object({
5
+ id: z.number(),
6
+ createdAt: z.date().transform((date) => DateTime.fromJSDate(date)),
7
+ updatedAt: z.date().transform((date) => DateTime.fromJSDate(date)),
8
+ nom: z.string(),
9
+ prenom: z.string(),
10
+ email: z.string(),
11
+ telephone: z.string(),
12
+ type: z.string(),
13
+ adress: z.string(),
14
+ city: z.string(),
15
+ country: z.string(),
16
+ postalCode: z.string(),
17
+ })
18
+
19
+ export const SalaryCreateSchema = z.object({
20
+ nom: z.string(),
21
+ prenom: z.string(),
22
+ email: z.string(),
23
+ telephone: z.string(),
24
+ type: z.string(),
25
+ address: z.string(),
26
+ city: z.string(),
27
+ country: z.string(),
28
+ postalCode: z.string(),
29
+ })
30
+
31
+ export const SalaryUpdateSchema = z.object({
32
+ nom: z.string().optional(),
33
+ prenom: z.string().optional(),
34
+ email: z.string().optional(),
35
+ telephone: z.string().optional(),
36
+ type: z.string().optional(),
37
+ address: z.string().optional(),
38
+ city: z.string().optional(),
39
+ country: z.string().optional(),
40
+ postalCode: z.string().optional(),
41
+ })
42
+
43
+ export type ISalary = z.infer<typeof SalarySchema>
44
+ export type ISalaryCreate = z.infer<typeof SalaryCreateSchema>
45
+ export type ISalaryUpdate = z.infer<typeof SalaryUpdateSchema>