@deepintel-ltd/buildlink-api-contracts 0.2.31 → 0.2.34

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 (152) hide show
  1. package/README.md +1 -1
  2. package/contracts/auth.d.ts.map +1 -1
  3. package/contracts/auth.js.map +1 -1
  4. package/contracts/budget.d.ts +824 -6481
  5. package/contracts/budget.d.ts.map +1 -1
  6. package/contracts/budget.js +1 -286
  7. package/contracts/budget.js.map +1 -1
  8. package/contracts/commercial.d.ts +1 -241
  9. package/contracts/commercial.d.ts.map +1 -1
  10. package/contracts/commercial.js +2 -13
  11. package/contracts/commercial.js.map +1 -1
  12. package/contracts/communication.d.ts +1014 -1890
  13. package/contracts/communication.d.ts.map +1 -1
  14. package/contracts/communication.js +1 -65
  15. package/contracts/communication.js.map +1 -1
  16. package/contracts/daily-logs.d.ts +560 -0
  17. package/contracts/daily-logs.d.ts.map +1 -1
  18. package/contracts/deficiencies.d.ts +0 -375
  19. package/contracts/deficiencies.d.ts.map +1 -1
  20. package/contracts/deficiencies.js +1 -14
  21. package/contracts/deficiencies.js.map +1 -1
  22. package/contracts/directory.d.ts +0 -327
  23. package/contracts/directory.d.ts.map +1 -1
  24. package/contracts/directory.js +1 -18
  25. package/contracts/directory.js.map +1 -1
  26. package/contracts/documents.d.ts +391 -3437
  27. package/contracts/documents.d.ts.map +1 -1
  28. package/contracts/documents.js +0 -144
  29. package/contracts/documents.js.map +1 -1
  30. package/contracts/drawings.d.ts +441 -2313
  31. package/contracts/drawings.d.ts.map +1 -1
  32. package/contracts/drawings.js +1 -98
  33. package/contracts/drawings.js.map +1 -1
  34. package/contracts/index.d.ts +5 -3
  35. package/contracts/index.d.ts.map +1 -1
  36. package/contracts/index.js +3 -0
  37. package/contracts/index.js.map +1 -1
  38. package/contracts/material-index.d.ts +335 -13
  39. package/contracts/material-index.d.ts.map +1 -1
  40. package/contracts/material-index.js +12 -1
  41. package/contracts/material-index.js.map +1 -1
  42. package/contracts/meetings.d.ts +3845 -129
  43. package/contracts/meetings.d.ts.map +1 -1
  44. package/contracts/meetings.js +53 -1
  45. package/contracts/meetings.js.map +1 -1
  46. package/contracts/monitoring.d.ts +1133 -0
  47. package/contracts/monitoring.d.ts.map +1 -1
  48. package/contracts/monitoring.js +48 -1
  49. package/contracts/monitoring.js.map +1 -1
  50. package/contracts/projects.d.ts +435 -1106
  51. package/contracts/projects.d.ts.map +1 -1
  52. package/contracts/projects.js +0 -101
  53. package/contracts/projects.js.map +1 -1
  54. package/contracts/proof.d.ts +322 -0
  55. package/contracts/proof.d.ts.map +1 -1
  56. package/contracts/proof.js +14 -1
  57. package/contracts/proof.js.map +1 -1
  58. package/contracts/qaqc.d.ts +874 -0
  59. package/contracts/qaqc.d.ts.map +1 -1
  60. package/contracts/qaqc.js +13 -1
  61. package/contracts/qaqc.js.map +1 -1
  62. package/contracts/rbac.d.ts.map +1 -1
  63. package/contracts/rbac.js.map +1 -1
  64. package/contracts/reports.d.ts +72 -0
  65. package/contracts/reports.d.ts.map +1 -1
  66. package/contracts/resources.d.ts +1243 -5148
  67. package/contracts/resources.d.ts.map +1 -1
  68. package/contracts/resources.js +1 -245
  69. package/contracts/resources.js.map +1 -1
  70. package/contracts/safety.d.ts +176 -3685
  71. package/contracts/safety.d.ts.map +1 -1
  72. package/contracts/safety.js +1 -238
  73. package/contracts/safety.js.map +1 -1
  74. package/contracts/schedule.d.ts +517 -1468
  75. package/contracts/schedule.d.ts.map +1 -1
  76. package/contracts/schedule.js +1 -65
  77. package/contracts/schedule.js.map +1 -1
  78. package/contracts/specifications.d.ts +2744 -393
  79. package/contracts/specifications.d.ts.map +1 -1
  80. package/contracts/specifications.js +49 -10
  81. package/contracts/specifications.js.map +1 -1
  82. package/contracts/tasks.d.ts +2653 -3922
  83. package/contracts/tasks.d.ts.map +1 -1
  84. package/contracts/tasks.js +1 -149
  85. package/contracts/tasks.js.map +1 -1
  86. package/contracts/transmittals.d.ts +980 -0
  87. package/contracts/transmittals.d.ts.map +1 -1
  88. package/contracts/user-admin.d.ts +2635 -0
  89. package/contracts/user-admin.d.ts.map +1 -0
  90. package/contracts/user-admin.js +73 -0
  91. package/contracts/user-admin.js.map +1 -0
  92. package/package.json +6 -1
  93. package/schemas/budget.d.ts +149 -0
  94. package/schemas/budget.d.ts.map +1 -1
  95. package/schemas/budget.js +13 -0
  96. package/schemas/budget.js.map +1 -1
  97. package/schemas/communication.d.ts +94 -0
  98. package/schemas/communication.d.ts.map +1 -1
  99. package/schemas/communication.js +2 -0
  100. package/schemas/communication.js.map +1 -1
  101. package/schemas/daily-logs.d.ts +92 -0
  102. package/schemas/daily-logs.d.ts.map +1 -1
  103. package/schemas/daily-logs.js +1 -0
  104. package/schemas/daily-logs.js.map +1 -1
  105. package/schemas/documents.d.ts +49 -11
  106. package/schemas/documents.d.ts.map +1 -1
  107. package/schemas/documents.js +2 -1
  108. package/schemas/documents.js.map +1 -1
  109. package/schemas/drawings.d.ts +24 -24
  110. package/schemas/material-index.d.ts +116 -18
  111. package/schemas/material-index.d.ts.map +1 -1
  112. package/schemas/material-index.js +47 -3
  113. package/schemas/material-index.js.map +1 -1
  114. package/schemas/meetings.d.ts +641 -12
  115. package/schemas/meetings.d.ts.map +1 -1
  116. package/schemas/meetings.js +29 -1
  117. package/schemas/meetings.js.map +1 -1
  118. package/schemas/proof.d.ts +161 -0
  119. package/schemas/proof.d.ts.map +1 -1
  120. package/schemas/proof.js +17 -1
  121. package/schemas/proof.js.map +1 -1
  122. package/schemas/qaqc.d.ts +335 -0
  123. package/schemas/qaqc.d.ts.map +1 -1
  124. package/schemas/qaqc.js +16 -1
  125. package/schemas/qaqc.js.map +1 -1
  126. package/schemas/reports.d.ts +36 -0
  127. package/schemas/reports.d.ts.map +1 -1
  128. package/schemas/reports.js +4 -0
  129. package/schemas/reports.js.map +1 -1
  130. package/schemas/resources.d.ts +108 -0
  131. package/schemas/resources.d.ts.map +1 -1
  132. package/schemas/resources.js +2 -1
  133. package/schemas/resources.js.map +1 -1
  134. package/schemas/safety.d.ts +8 -8
  135. package/schemas/schedule.d.ts +232 -0
  136. package/schemas/schedule.d.ts.map +1 -1
  137. package/schemas/schedule.js +2 -1
  138. package/schemas/schedule.js.map +1 -1
  139. package/schemas/specifications.d.ts +542 -17
  140. package/schemas/specifications.d.ts.map +1 -1
  141. package/schemas/specifications.js +31 -7
  142. package/schemas/specifications.js.map +1 -1
  143. package/schemas/tasks.d.ts +58 -4
  144. package/schemas/tasks.d.ts.map +1 -1
  145. package/schemas/transmittals.d.ts +184 -0
  146. package/schemas/transmittals.d.ts.map +1 -1
  147. package/schemas/transmittals.js +3 -1
  148. package/schemas/transmittals.js.map +1 -1
  149. package/schemas/user-admin.d.ts +255 -0
  150. package/schemas/user-admin.d.ts.map +1 -0
  151. package/schemas/user-admin.js +50 -0
  152. package/schemas/user-admin.js.map +1 -0
@@ -222,14 +222,14 @@ export declare const DrawingRevisionSchema: z.ZodObject<{
222
222
  id: string;
223
223
  isActive: boolean;
224
224
  description: string;
225
+ fileName: string;
225
226
  fileSize: number;
226
227
  mimeType: string;
227
228
  fileUrl: string;
228
- fileName: string;
229
+ uploadedBy: string;
229
230
  uploadedAt: string;
230
231
  drawingId: string;
231
232
  revisionNumber: string;
232
- uploadedBy: string;
233
233
  checksum: string;
234
234
  uploader: {
235
235
  id: string;
@@ -244,14 +244,14 @@ export declare const DrawingRevisionSchema: z.ZodObject<{
244
244
  }, {
245
245
  id: string;
246
246
  description: string;
247
+ fileName: string;
247
248
  fileSize: number;
248
249
  mimeType: string;
249
250
  fileUrl: string;
250
- fileName: string;
251
+ uploadedBy: string;
251
252
  uploadedAt: string;
252
253
  drawingId: string;
253
254
  revisionNumber: string;
254
- uploadedBy: string;
255
255
  checksum: string;
256
256
  uploader: {
257
257
  id: string;
@@ -403,14 +403,14 @@ export declare const DrawingSchema: z.ZodObject<{
403
403
  id: string;
404
404
  isActive: boolean;
405
405
  description: string;
406
+ fileName: string;
406
407
  fileSize: number;
407
408
  mimeType: string;
408
409
  fileUrl: string;
409
- fileName: string;
410
+ uploadedBy: string;
410
411
  uploadedAt: string;
411
412
  drawingId: string;
412
413
  revisionNumber: string;
413
- uploadedBy: string;
414
414
  checksum: string;
415
415
  uploader: {
416
416
  id: string;
@@ -425,14 +425,14 @@ export declare const DrawingSchema: z.ZodObject<{
425
425
  }, {
426
426
  id: string;
427
427
  description: string;
428
+ fileName: string;
428
429
  fileSize: number;
429
430
  mimeType: string;
430
431
  fileUrl: string;
431
- fileName: string;
432
+ uploadedBy: string;
432
433
  uploadedAt: string;
433
434
  drawingId: string;
434
435
  revisionNumber: string;
435
- uploadedBy: string;
436
436
  checksum: string;
437
437
  uploader: {
438
438
  id: string;
@@ -724,14 +724,14 @@ export declare const DrawingSchema: z.ZodObject<{
724
724
  id: string;
725
725
  isActive: boolean;
726
726
  description: string;
727
+ fileName: string;
727
728
  fileSize: number;
728
729
  mimeType: string;
729
730
  fileUrl: string;
730
- fileName: string;
731
+ uploadedBy: string;
731
732
  uploadedAt: string;
732
733
  drawingId: string;
733
734
  revisionNumber: string;
734
- uploadedBy: string;
735
735
  checksum: string;
736
736
  uploader: {
737
737
  id: string;
@@ -858,14 +858,14 @@ export declare const DrawingSchema: z.ZodObject<{
858
858
  revisions?: {
859
859
  id: string;
860
860
  description: string;
861
+ fileName: string;
861
862
  fileSize: number;
862
863
  mimeType: string;
863
864
  fileUrl: string;
864
- fileName: string;
865
+ uploadedBy: string;
865
866
  uploadedAt: string;
866
867
  drawingId: string;
867
868
  revisionNumber: string;
868
- uploadedBy: string;
869
869
  checksum: string;
870
870
  uploader: {
871
871
  id: string;
@@ -1007,14 +1007,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1007
1007
  id: string;
1008
1008
  isActive: boolean;
1009
1009
  description: string;
1010
+ fileName: string;
1010
1011
  fileSize: number;
1011
1012
  mimeType: string;
1012
1013
  fileUrl: string;
1013
- fileName: string;
1014
+ uploadedBy: string;
1014
1015
  uploadedAt: string;
1015
1016
  drawingId: string;
1016
1017
  revisionNumber: string;
1017
- uploadedBy: string;
1018
1018
  checksum: string;
1019
1019
  uploader: {
1020
1020
  id: string;
@@ -1029,14 +1029,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1029
1029
  }, {
1030
1030
  id: string;
1031
1031
  description: string;
1032
+ fileName: string;
1032
1033
  fileSize: number;
1033
1034
  mimeType: string;
1034
1035
  fileUrl: string;
1035
- fileName: string;
1036
+ uploadedBy: string;
1036
1037
  uploadedAt: string;
1037
1038
  drawingId: string;
1038
1039
  revisionNumber: string;
1039
- uploadedBy: string;
1040
1040
  checksum: string;
1041
1041
  uploader: {
1042
1042
  id: string;
@@ -1328,14 +1328,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1328
1328
  id: string;
1329
1329
  isActive: boolean;
1330
1330
  description: string;
1331
+ fileName: string;
1331
1332
  fileSize: number;
1332
1333
  mimeType: string;
1333
1334
  fileUrl: string;
1334
- fileName: string;
1335
+ uploadedBy: string;
1335
1336
  uploadedAt: string;
1336
1337
  drawingId: string;
1337
1338
  revisionNumber: string;
1338
- uploadedBy: string;
1339
1339
  checksum: string;
1340
1340
  uploader: {
1341
1341
  id: string;
@@ -1462,14 +1462,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1462
1462
  revisions?: {
1463
1463
  id: string;
1464
1464
  description: string;
1465
+ fileName: string;
1465
1466
  fileSize: number;
1466
1467
  mimeType: string;
1467
1468
  fileUrl: string;
1468
- fileName: string;
1469
+ uploadedBy: string;
1469
1470
  uploadedAt: string;
1470
1471
  drawingId: string;
1471
1472
  revisionNumber: string;
1472
- uploadedBy: string;
1473
1473
  checksum: string;
1474
1474
  uploader: {
1475
1475
  id: string;
@@ -1576,14 +1576,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1576
1576
  id: string;
1577
1577
  isActive: boolean;
1578
1578
  description: string;
1579
+ fileName: string;
1579
1580
  fileSize: number;
1580
1581
  mimeType: string;
1581
1582
  fileUrl: string;
1582
- fileName: string;
1583
+ uploadedBy: string;
1583
1584
  uploadedAt: string;
1584
1585
  drawingId: string;
1585
1586
  revisionNumber: string;
1586
- uploadedBy: string;
1587
1587
  checksum: string;
1588
1588
  uploader: {
1589
1589
  id: string;
@@ -1714,14 +1714,14 @@ export declare const DrawingResourceSchema: z.ZodObject<{
1714
1714
  revisions?: {
1715
1715
  id: string;
1716
1716
  description: string;
1717
+ fileName: string;
1717
1718
  fileSize: number;
1718
1719
  mimeType: string;
1719
1720
  fileUrl: string;
1720
- fileName: string;
1721
+ uploadedBy: string;
1721
1722
  uploadedAt: string;
1722
1723
  drawingId: string;
1723
1724
  revisionNumber: string;
1724
- uploadedBy: string;
1725
1725
  checksum: string;
1726
1726
  uploader: {
1727
1727
  id: string;
@@ -6,7 +6,11 @@ export declare const MaterialRateIndexSchema: z.ZodObject<{
6
6
  materialKey: z.ZodString;
7
7
  name: z.ZodString;
8
8
  unit: z.ZodString;
9
- priceNgn: z.ZodNumber;
9
+ /** Legacy Naira price; populated for NGN rows only (null otherwise). */
10
+ priceNgn: z.ZodNullable<z.ZodNumber>;
11
+ currency: z.ZodOptional<z.ZodString>;
12
+ /** Price in `currency`. */
13
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10
14
  asOfDate: z.ZodString;
11
15
  source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
16
  createdAt: z.ZodString;
@@ -18,10 +22,12 @@ export declare const MaterialRateIndexSchema: z.ZodObject<{
18
22
  name: string;
19
23
  unit: string;
20
24
  materialKey: string;
21
- priceNgn: number;
25
+ priceNgn: number | null;
22
26
  asOfDate: string;
23
27
  companyId?: string | null | undefined;
24
28
  projectId?: string | null | undefined;
29
+ currency?: string | undefined;
30
+ price?: number | null | undefined;
25
31
  source?: string | null | undefined;
26
32
  }, {
27
33
  id: string;
@@ -30,65 +36,142 @@ export declare const MaterialRateIndexSchema: z.ZodObject<{
30
36
  name: string;
31
37
  unit: string;
32
38
  materialKey: string;
33
- priceNgn: number;
39
+ priceNgn: number | null;
34
40
  asOfDate: string;
35
41
  companyId?: string | null | undefined;
36
42
  projectId?: string | null | undefined;
43
+ currency?: string | undefined;
44
+ price?: number | null | undefined;
37
45
  source?: string | null | undefined;
38
46
  }>;
39
- export declare const MaterialRateImportRowSchema: z.ZodObject<{
47
+ export declare const MaterialRateImportRowSchema: z.ZodEffects<z.ZodObject<{
40
48
  materialKey: z.ZodString;
41
49
  name: z.ZodString;
42
50
  unit: z.ZodString;
43
- priceNgn: z.ZodNumber;
51
+ /** Legacy Naira price. Still accepted; implies currency NGN. */
52
+ priceNgn: z.ZodOptional<z.ZodNumber>;
53
+ /** Price in `currency` (preferred). */
54
+ price: z.ZodOptional<z.ZodNumber>;
55
+ /** ISO 4217 code, default NGN. */
56
+ currency: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
44
57
  asOfDate: z.ZodString;
45
58
  source: z.ZodOptional<z.ZodString>;
46
59
  }, "strip", z.ZodTypeAny, {
47
60
  name: string;
61
+ currency: string;
48
62
  unit: string;
49
63
  materialKey: string;
50
- priceNgn: number;
51
64
  asOfDate: string;
65
+ priceNgn?: number | undefined;
66
+ price?: number | undefined;
52
67
  source?: string | undefined;
53
68
  }, {
54
69
  name: string;
55
70
  unit: string;
56
71
  materialKey: string;
57
- priceNgn: number;
58
72
  asOfDate: string;
73
+ currency?: string | undefined;
74
+ priceNgn?: number | undefined;
75
+ price?: number | undefined;
76
+ source?: string | undefined;
77
+ }>, {
78
+ name: string;
79
+ currency: string;
80
+ unit: string;
81
+ materialKey: string;
82
+ asOfDate: string;
83
+ priceNgn?: number | undefined;
84
+ price?: number | undefined;
85
+ source?: string | undefined;
86
+ }, {
87
+ name: string;
88
+ unit: string;
89
+ materialKey: string;
90
+ asOfDate: string;
91
+ currency?: string | undefined;
92
+ priceNgn?: number | undefined;
93
+ price?: number | undefined;
59
94
  source?: string | undefined;
60
95
  }>;
96
+ export declare const ListMaterialRatesQuerySchema: z.ZodObject<{
97
+ materialKey: z.ZodOptional<z.ZodString>;
98
+ search: z.ZodOptional<z.ZodString>;
99
+ currency: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
100
+ page: z.ZodDefault<z.ZodNumber>;
101
+ limit: z.ZodDefault<z.ZodNumber>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ page: number;
104
+ limit: number;
105
+ search?: string | undefined;
106
+ currency?: string | undefined;
107
+ materialKey?: string | undefined;
108
+ }, {
109
+ page?: number | undefined;
110
+ limit?: number | undefined;
111
+ search?: string | undefined;
112
+ currency?: string | undefined;
113
+ materialKey?: string | undefined;
114
+ }>;
61
115
  export declare const ImportMaterialRatesRequestSchema: z.ZodObject<{
62
116
  projectId: z.ZodOptional<z.ZodString>;
63
- rows: z.ZodArray<z.ZodObject<{
117
+ rows: z.ZodArray<z.ZodEffects<z.ZodObject<{
64
118
  materialKey: z.ZodString;
65
119
  name: z.ZodString;
66
120
  unit: z.ZodString;
67
- priceNgn: z.ZodNumber;
121
+ /** Legacy Naira price. Still accepted; implies currency NGN. */
122
+ priceNgn: z.ZodOptional<z.ZodNumber>;
123
+ /** Price in `currency` (preferred). */
124
+ price: z.ZodOptional<z.ZodNumber>;
125
+ /** ISO 4217 code, default NGN. */
126
+ currency: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
68
127
  asOfDate: z.ZodString;
69
128
  source: z.ZodOptional<z.ZodString>;
70
129
  }, "strip", z.ZodTypeAny, {
71
130
  name: string;
131
+ currency: string;
132
+ unit: string;
133
+ materialKey: string;
134
+ asOfDate: string;
135
+ priceNgn?: number | undefined;
136
+ price?: number | undefined;
137
+ source?: string | undefined;
138
+ }, {
139
+ name: string;
140
+ unit: string;
141
+ materialKey: string;
142
+ asOfDate: string;
143
+ currency?: string | undefined;
144
+ priceNgn?: number | undefined;
145
+ price?: number | undefined;
146
+ source?: string | undefined;
147
+ }>, {
148
+ name: string;
149
+ currency: string;
72
150
  unit: string;
73
151
  materialKey: string;
74
- priceNgn: number;
75
152
  asOfDate: string;
153
+ priceNgn?: number | undefined;
154
+ price?: number | undefined;
76
155
  source?: string | undefined;
77
156
  }, {
78
157
  name: string;
79
158
  unit: string;
80
159
  materialKey: string;
81
- priceNgn: number;
82
160
  asOfDate: string;
161
+ currency?: string | undefined;
162
+ priceNgn?: number | undefined;
163
+ price?: number | undefined;
83
164
  source?: string | undefined;
84
165
  }>, "many">;
85
166
  }, "strip", z.ZodTypeAny, {
86
167
  rows: {
87
168
  name: string;
169
+ currency: string;
88
170
  unit: string;
89
171
  materialKey: string;
90
- priceNgn: number;
91
172
  asOfDate: string;
173
+ priceNgn?: number | undefined;
174
+ price?: number | undefined;
92
175
  source?: string | undefined;
93
176
  }[];
94
177
  projectId?: string | undefined;
@@ -97,8 +180,10 @@ export declare const ImportMaterialRatesRequestSchema: z.ZodObject<{
97
180
  name: string;
98
181
  unit: string;
99
182
  materialKey: string;
100
- priceNgn: number;
101
183
  asOfDate: string;
184
+ currency?: string | undefined;
185
+ priceNgn?: number | undefined;
186
+ price?: number | undefined;
102
187
  source?: string | undefined;
103
188
  }[];
104
189
  projectId?: string | undefined;
@@ -138,7 +223,11 @@ export declare const MaterialRateIndexResourceSchema: z.ZodObject<{
138
223
  materialKey: z.ZodString;
139
224
  name: z.ZodString;
140
225
  unit: z.ZodString;
141
- priceNgn: z.ZodNumber;
226
+ /** Legacy Naira price; populated for NGN rows only (null otherwise). */
227
+ priceNgn: z.ZodNullable<z.ZodNumber>;
228
+ currency: z.ZodOptional<z.ZodString>;
229
+ /** Price in `currency`. */
230
+ price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
142
231
  asOfDate: z.ZodString;
143
232
  source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
144
233
  createdAt: z.ZodString;
@@ -149,10 +238,12 @@ export declare const MaterialRateIndexResourceSchema: z.ZodObject<{
149
238
  name: string;
150
239
  unit: string;
151
240
  materialKey: string;
152
- priceNgn: number;
241
+ priceNgn: number | null;
153
242
  asOfDate: string;
154
243
  companyId?: string | null | undefined;
155
244
  projectId?: string | null | undefined;
245
+ currency?: string | undefined;
246
+ price?: number | null | undefined;
156
247
  source?: string | null | undefined;
157
248
  }, {
158
249
  createdAt: string;
@@ -160,10 +251,12 @@ export declare const MaterialRateIndexResourceSchema: z.ZodObject<{
160
251
  name: string;
161
252
  unit: string;
162
253
  materialKey: string;
163
- priceNgn: number;
254
+ priceNgn: number | null;
164
255
  asOfDate: string;
165
256
  companyId?: string | null | undefined;
166
257
  projectId?: string | null | undefined;
258
+ currency?: string | undefined;
259
+ price?: number | null | undefined;
167
260
  source?: string | null | undefined;
168
261
  }>;
169
262
  }, "strip", z.ZodTypeAny, {
@@ -175,10 +268,12 @@ export declare const MaterialRateIndexResourceSchema: z.ZodObject<{
175
268
  name: string;
176
269
  unit: string;
177
270
  materialKey: string;
178
- priceNgn: number;
271
+ priceNgn: number | null;
179
272
  asOfDate: string;
180
273
  companyId?: string | null | undefined;
181
274
  projectId?: string | null | undefined;
275
+ currency?: string | undefined;
276
+ price?: number | null | undefined;
182
277
  source?: string | null | undefined;
183
278
  };
184
279
  }, {
@@ -190,10 +285,12 @@ export declare const MaterialRateIndexResourceSchema: z.ZodObject<{
190
285
  name: string;
191
286
  unit: string;
192
287
  materialKey: string;
193
- priceNgn: number;
288
+ priceNgn: number | null;
194
289
  asOfDate: string;
195
290
  companyId?: string | null | undefined;
196
291
  projectId?: string | null | undefined;
292
+ currency?: string | undefined;
293
+ price?: number | null | undefined;
197
294
  source?: string | null | undefined;
198
295
  };
199
296
  }>;
@@ -251,6 +348,7 @@ export declare const MaterialRateAlertResourceSchema: z.ZodObject<{
251
348
  };
252
349
  }>;
253
350
  export type MaterialRateIndex = z.infer<typeof MaterialRateIndexSchema>;
351
+ export type ListMaterialRatesQuery = z.infer<typeof ListMaterialRatesQuerySchema>;
254
352
  export type ImportMaterialRatesRequest = z.infer<typeof ImportMaterialRatesRequestSchema>;
255
353
  export type MaterialRateAlert = z.infer<typeof MaterialRateAlertSchema>;
256
354
  //# sourceMappingURL=material-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"material-index.d.ts","sourceRoot":"","sources":["../../../src/schemas/material-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1C,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"material-index.d.ts","sourceRoot":"","sources":["../../../src/schemas/material-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;;IAOlC,wEAAwE;;;IAGxE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;IAKpC,gEAAgE;;IAEhE,uCAAuC;;IAEvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BlC,CAAC;AAEL,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;EAUvC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;QA7CzC,gEAAgE;;QAEhE,uCAAuC;;QAEvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CpC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;QA5E1C,wEAAwE;;;QAGxE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6E3B,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1C,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -7,19 +7,63 @@ export const MaterialRateIndexSchema = z.object({
7
7
  materialKey: z.string(),
8
8
  name: z.string(),
9
9
  unit: z.string(),
10
- priceNgn: z.number(),
10
+ /** Legacy Naira price; populated for NGN rows only (null otherwise). */
11
+ priceNgn: z.number().nullable(),
12
+ currency: z.string().length(3).optional(),
13
+ /** Price in `currency`. */
14
+ price: z.number().nullable().optional(),
11
15
  asOfDate: DateTimeSchema,
12
16
  source: z.string().nullable().optional(),
13
17
  createdAt: DateTimeSchema,
14
18
  updatedAt: DateTimeSchema,
15
19
  });
16
- export const MaterialRateImportRowSchema = z.object({
20
+ export const MaterialRateImportRowSchema = z
21
+ .object({
17
22
  materialKey: z.string().min(1).max(80),
18
23
  name: z.string().min(1).max(200),
19
24
  unit: z.string().min(1).max(20),
20
- priceNgn: z.number().min(0),
25
+ /** Legacy Naira price. Still accepted; implies currency NGN. */
26
+ priceNgn: z.number().min(0).optional(),
27
+ /** Price in `currency` (preferred). */
28
+ price: z.number().min(0).optional(),
29
+ /** ISO 4217 code, default NGN. */
30
+ currency: z
31
+ .string()
32
+ .regex(/^[A-Za-z]{3}$/, 'currency must be an ISO 4217 code')
33
+ .transform(v => v.toUpperCase())
34
+ .default('NGN'),
21
35
  asOfDate: DateTimeSchema,
22
36
  source: z.string().max(100).optional(),
37
+ })
38
+ .superRefine((row, ctx) => {
39
+ if (row.price === undefined && row.priceNgn === undefined) {
40
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'price or priceNgn is required' });
41
+ }
42
+ if (row.priceNgn !== undefined && row.currency !== 'NGN') {
43
+ ctx.addIssue({
44
+ code: z.ZodIssueCode.custom,
45
+ path: ['priceNgn'],
46
+ message: 'priceNgn can only be used with currency NGN',
47
+ });
48
+ }
49
+ if (row.priceNgn !== undefined && row.price !== undefined && row.priceNgn !== row.price) {
50
+ ctx.addIssue({
51
+ code: z.ZodIssueCode.custom,
52
+ path: ['price'],
53
+ message: 'price and priceNgn must match for NGN rows',
54
+ });
55
+ }
56
+ });
57
+ export const ListMaterialRatesQuerySchema = z.object({
58
+ materialKey: z.string().min(1).max(80).optional(),
59
+ search: z.string().min(1).max(100).optional(),
60
+ currency: z
61
+ .string()
62
+ .regex(/^[A-Za-z]{3}$/)
63
+ .transform(v => v.toUpperCase())
64
+ .optional(),
65
+ page: z.coerce.number().int().min(1).default(1),
66
+ limit: z.coerce.number().int().min(1).max(100).default(20),
23
67
  });
24
68
  export const ImportMaterialRatesRequestSchema = z.object({
25
69
  projectId: CuidSchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"material-index.js","sourceRoot":"","sources":["../../../src/schemas/material-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,UAAU;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,uBAAuB;CACpC,CAAC,CAAC"}
1
+ {"version":3,"file":"material-index.js","sourceRoot":"","sources":["../../../src/schemas/material-index.ts"],"names":[],"mappings":"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"}