@axova/shared 1.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 (112) hide show
  1. package/CONFIGURATION_GUIDE.md +1 -0
  2. package/README.md +384 -0
  3. package/SCHEMA_ORGANIZATION.md +209 -0
  4. package/dist/configs/index.d.ts +85 -0
  5. package/dist/configs/index.js +555 -0
  6. package/dist/events/kafka.d.ts +40 -0
  7. package/dist/events/kafka.js +311 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.js +41 -0
  10. package/dist/interfaces/customer-events.d.ts +85 -0
  11. package/dist/interfaces/customer-events.js +2 -0
  12. package/dist/interfaces/inventory-events.d.ts +453 -0
  13. package/dist/interfaces/inventory-events.js +3 -0
  14. package/dist/interfaces/inventory-types.d.ts +894 -0
  15. package/dist/interfaces/inventory-types.js +3 -0
  16. package/dist/interfaces/order-events.d.ts +320 -0
  17. package/dist/interfaces/order-events.js +3 -0
  18. package/dist/lib/auditLogger.d.ts +162 -0
  19. package/dist/lib/auditLogger.js +626 -0
  20. package/dist/lib/authOrganization.d.ts +24 -0
  21. package/dist/lib/authOrganization.js +110 -0
  22. package/dist/lib/db.d.ts +6 -0
  23. package/dist/lib/db.js +88 -0
  24. package/dist/middleware/serviceAuth.d.ts +60 -0
  25. package/dist/middleware/serviceAuth.js +272 -0
  26. package/dist/middleware/storeOwnership.d.ts +15 -0
  27. package/dist/middleware/storeOwnership.js +156 -0
  28. package/dist/middleware/storeValidationMiddleware.d.ts +44 -0
  29. package/dist/middleware/storeValidationMiddleware.js +180 -0
  30. package/dist/middleware/userAuth.d.ts +27 -0
  31. package/dist/middleware/userAuth.js +218 -0
  32. package/dist/schemas/admin/admin-schema.d.ts +741 -0
  33. package/dist/schemas/admin/admin-schema.js +111 -0
  34. package/dist/schemas/ai-moderation/ai-moderation-schema.d.ts +648 -0
  35. package/dist/schemas/ai-moderation/ai-moderation-schema.js +88 -0
  36. package/dist/schemas/common/common-schemas.d.ts +436 -0
  37. package/dist/schemas/common/common-schemas.js +94 -0
  38. package/dist/schemas/compliance/compliance-schema.d.ts +3388 -0
  39. package/dist/schemas/compliance/compliance-schema.js +472 -0
  40. package/dist/schemas/compliance/kyc-schema.d.ts +2642 -0
  41. package/dist/schemas/compliance/kyc-schema.js +361 -0
  42. package/dist/schemas/customer/customer-schema.d.ts +2727 -0
  43. package/dist/schemas/customer/customer-schema.js +399 -0
  44. package/dist/schemas/index.d.ts +27 -0
  45. package/dist/schemas/index.js +138 -0
  46. package/dist/schemas/inventory/inventory-tables.d.ts +9476 -0
  47. package/dist/schemas/inventory/inventory-tables.js +1470 -0
  48. package/dist/schemas/inventory/lot-tables.d.ts +3281 -0
  49. package/dist/schemas/inventory/lot-tables.js +608 -0
  50. package/dist/schemas/order/order-schema.d.ts +5825 -0
  51. package/dist/schemas/order/order-schema.js +954 -0
  52. package/dist/schemas/product/discount-relations.d.ts +15 -0
  53. package/dist/schemas/product/discount-relations.js +34 -0
  54. package/dist/schemas/product/discount-schema.d.ts +1975 -0
  55. package/dist/schemas/product/discount-schema.js +297 -0
  56. package/dist/schemas/product/product-relations.d.ts +41 -0
  57. package/dist/schemas/product/product-relations.js +133 -0
  58. package/dist/schemas/product/product-schema.d.ts +4544 -0
  59. package/dist/schemas/product/product-schema.js +671 -0
  60. package/dist/schemas/store/store-audit-schema.d.ts +4135 -0
  61. package/dist/schemas/store/store-audit-schema.js +556 -0
  62. package/dist/schemas/store/store-schema.d.ts +3100 -0
  63. package/dist/schemas/store/store-schema.js +381 -0
  64. package/dist/schemas/store/store-settings-schema.d.ts +665 -0
  65. package/dist/schemas/store/store-settings-schema.js +141 -0
  66. package/dist/schemas/types.d.ts +50 -0
  67. package/dist/schemas/types.js +3 -0
  68. package/dist/types/events.d.ts +2396 -0
  69. package/dist/types/events.js +505 -0
  70. package/dist/utils/errorHandler.d.ts +12 -0
  71. package/dist/utils/errorHandler.js +36 -0
  72. package/dist/utils/subdomain.d.ts +6 -0
  73. package/dist/utils/subdomain.js +20 -0
  74. package/nul +8 -0
  75. package/package.json +43 -0
  76. package/src/configs/index.ts +654 -0
  77. package/src/events/kafka.ts +429 -0
  78. package/src/index.ts +26 -0
  79. package/src/interfaces/customer-events.ts +106 -0
  80. package/src/interfaces/inventory-events.ts +545 -0
  81. package/src/interfaces/inventory-types.ts +1004 -0
  82. package/src/interfaces/order-events.ts +381 -0
  83. package/src/lib/auditLogger.ts +1117 -0
  84. package/src/lib/authOrganization.ts +153 -0
  85. package/src/lib/db.ts +64 -0
  86. package/src/middleware/serviceAuth.ts +328 -0
  87. package/src/middleware/storeOwnership.ts +199 -0
  88. package/src/middleware/storeValidationMiddleware.ts +247 -0
  89. package/src/middleware/userAuth.ts +248 -0
  90. package/src/schemas/admin/admin-schema.ts +208 -0
  91. package/src/schemas/ai-moderation/ai-moderation-schema.ts +180 -0
  92. package/src/schemas/common/common-schemas.ts +108 -0
  93. package/src/schemas/compliance/compliance-schema.ts +927 -0
  94. package/src/schemas/compliance/kyc-schema.ts +649 -0
  95. package/src/schemas/customer/customer-schema.ts +576 -0
  96. package/src/schemas/index.ts +189 -0
  97. package/src/schemas/inventory/inventory-tables.ts +1927 -0
  98. package/src/schemas/inventory/lot-tables.ts +799 -0
  99. package/src/schemas/order/order-schema.ts +1400 -0
  100. package/src/schemas/product/discount-relations.ts +44 -0
  101. package/src/schemas/product/discount-schema.ts +464 -0
  102. package/src/schemas/product/product-relations.ts +187 -0
  103. package/src/schemas/product/product-schema.ts +955 -0
  104. package/src/schemas/store/ethiopian_business_api.md.resolved +212 -0
  105. package/src/schemas/store/store-audit-schema.ts +1257 -0
  106. package/src/schemas/store/store-schema.ts +661 -0
  107. package/src/schemas/store/store-settings-schema.ts +231 -0
  108. package/src/schemas/types.ts +67 -0
  109. package/src/types/events.ts +646 -0
  110. package/src/utils/errorHandler.ts +44 -0
  111. package/src/utils/subdomain.ts +19 -0
  112. package/tsconfig.json +21 -0
@@ -0,0 +1,3281 @@
1
+ export declare const lotStatusEnum: import("drizzle-orm/pg-core").PgEnum<["PO_INCOMING", "PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"]>;
2
+ export declare const qcStatusEnum: import("drizzle-orm/pg-core").PgEnum<["NOT_REQUIRED", "PENDING", "PASSED", "FAILED"]>;
3
+ export declare const lotMovementTypeEnum: import("drizzle-orm/pg-core").PgEnum<["RECEIPT", "SALE", "TRANSFER", "ADJUSTMENT", "ADJUSTMENT_INCREASE", "ADJUSTMENT_DECREASE", "RETURN_FROM_CUSTOMER", "RETURN_TO_SUPPLIER", "QUARANTINE", "RELEASE", "SPLIT", "MERGE", "DISPOSAL", "RECALL", "EXPIRY", "PRODUCTION_USE", "SAMPLE", "DAMAGED", "RESERVE", "UNRESERVE", "CYCLE_COUNT_ADJUSTMENT", "PO_INCOMING"]>;
4
+ export declare const alertTypeEnum: import("drizzle-orm/pg-core").PgEnum<["EXPIRY_WARNING", "EXPIRING_SOON", "EXPIRED", "LOW_QUANTITY", "QUALITY_ISSUE", "RECALL_REQUIRED", "TEMPERATURE_BREACH", "STORAGE_VIOLATION", "COMPLIANCE_DUE"]>;
5
+ export declare const alertSeverityEnum: import("drizzle-orm/pg-core").PgEnum<["INFO", "WARNING", "CRITICAL"]>;
6
+ export declare const alertStatusEnum: import("drizzle-orm/pg-core").PgEnum<["PENDING", "ACKNOWLEDGED", "RESOLVED", "DISMISSED"]>;
7
+ export declare const inventoryLots: import("drizzle-orm/pg-core").PgTableWithColumns<{
8
+ name: "inventory_lots";
9
+ schema: undefined;
10
+ columns: {
11
+ id: import("drizzle-orm/pg-core").PgColumn<{
12
+ name: "id";
13
+ tableName: "inventory_lots";
14
+ dataType: "string";
15
+ columnType: "PgText";
16
+ data: string;
17
+ driverParam: string;
18
+ notNull: true;
19
+ hasDefault: true;
20
+ isPrimaryKey: true;
21
+ isAutoincrement: false;
22
+ hasRuntimeDefault: true;
23
+ enumValues: [string, ...string[]];
24
+ baseColumn: never;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }, {}, {}>;
28
+ storeId: import("drizzle-orm/pg-core").PgColumn<{
29
+ name: "store_id";
30
+ tableName: "inventory_lots";
31
+ dataType: "string";
32
+ columnType: "PgText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {}>;
45
+ lotNumber: import("drizzle-orm/pg-core").PgColumn<{
46
+ name: "lot_number";
47
+ tableName: "inventory_lots";
48
+ dataType: "string";
49
+ columnType: "PgVarchar";
50
+ data: string;
51
+ driverParam: string;
52
+ notNull: true;
53
+ hasDefault: false;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: false;
57
+ enumValues: [string, ...string[]];
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {
62
+ length: 255;
63
+ }>;
64
+ batchNumber: import("drizzle-orm/pg-core").PgColumn<{
65
+ name: "batch_number";
66
+ tableName: "inventory_lots";
67
+ dataType: "string";
68
+ columnType: "PgVarchar";
69
+ data: string;
70
+ driverParam: string;
71
+ notNull: false;
72
+ hasDefault: false;
73
+ isPrimaryKey: false;
74
+ isAutoincrement: false;
75
+ hasRuntimeDefault: false;
76
+ enumValues: [string, ...string[]];
77
+ baseColumn: never;
78
+ identity: undefined;
79
+ generated: undefined;
80
+ }, {}, {
81
+ length: 255;
82
+ }>;
83
+ internalCode: import("drizzle-orm/pg-core").PgColumn<{
84
+ name: "internal_code";
85
+ tableName: "inventory_lots";
86
+ dataType: "string";
87
+ columnType: "PgVarchar";
88
+ data: string;
89
+ driverParam: string;
90
+ notNull: false;
91
+ hasDefault: false;
92
+ isPrimaryKey: false;
93
+ isAutoincrement: false;
94
+ hasRuntimeDefault: false;
95
+ enumValues: [string, ...string[]];
96
+ baseColumn: never;
97
+ identity: undefined;
98
+ generated: undefined;
99
+ }, {}, {
100
+ length: 255;
101
+ }>;
102
+ productId: import("drizzle-orm/pg-core").PgColumn<{
103
+ name: "product_id";
104
+ tableName: "inventory_lots";
105
+ dataType: "string";
106
+ columnType: "PgText";
107
+ data: string;
108
+ driverParam: string;
109
+ notNull: true;
110
+ hasDefault: false;
111
+ isPrimaryKey: false;
112
+ isAutoincrement: false;
113
+ hasRuntimeDefault: false;
114
+ enumValues: [string, ...string[]];
115
+ baseColumn: never;
116
+ identity: undefined;
117
+ generated: undefined;
118
+ }, {}, {}>;
119
+ variantId: import("drizzle-orm/pg-core").PgColumn<{
120
+ name: "variant_id";
121
+ tableName: "inventory_lots";
122
+ dataType: "string";
123
+ columnType: "PgText";
124
+ data: string;
125
+ driverParam: string;
126
+ notNull: false;
127
+ hasDefault: false;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: [string, ...string[]];
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {}>;
136
+ sku: import("drizzle-orm/pg-core").PgColumn<{
137
+ name: "sku";
138
+ tableName: "inventory_lots";
139
+ dataType: "string";
140
+ columnType: "PgVarchar";
141
+ data: string;
142
+ driverParam: string;
143
+ notNull: true;
144
+ hasDefault: false;
145
+ isPrimaryKey: false;
146
+ isAutoincrement: false;
147
+ hasRuntimeDefault: false;
148
+ enumValues: [string, ...string[]];
149
+ baseColumn: never;
150
+ identity: undefined;
151
+ generated: undefined;
152
+ }, {}, {
153
+ length: 255;
154
+ }>;
155
+ barcode: import("drizzle-orm/pg-core").PgColumn<{
156
+ name: "barcode";
157
+ tableName: "inventory_lots";
158
+ dataType: "string";
159
+ columnType: "PgVarchar";
160
+ data: string;
161
+ driverParam: string;
162
+ notNull: false;
163
+ hasDefault: false;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: [string, ...string[]];
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}, {
172
+ length: 255;
173
+ }>;
174
+ locationId: import("drizzle-orm/pg-core").PgColumn<{
175
+ name: "location_id";
176
+ tableName: "inventory_lots";
177
+ dataType: "string";
178
+ columnType: "PgText";
179
+ data: string;
180
+ driverParam: string;
181
+ notNull: true;
182
+ hasDefault: false;
183
+ isPrimaryKey: false;
184
+ isAutoincrement: false;
185
+ hasRuntimeDefault: false;
186
+ enumValues: [string, ...string[]];
187
+ baseColumn: never;
188
+ identity: undefined;
189
+ generated: undefined;
190
+ }, {}, {}>;
191
+ locationType: import("drizzle-orm/pg-core").PgColumn<{
192
+ name: "location_type";
193
+ tableName: "inventory_lots";
194
+ dataType: "string";
195
+ columnType: "PgVarchar";
196
+ data: string;
197
+ driverParam: string;
198
+ notNull: true;
199
+ hasDefault: false;
200
+ isPrimaryKey: false;
201
+ isAutoincrement: false;
202
+ hasRuntimeDefault: false;
203
+ enumValues: [string, ...string[]];
204
+ baseColumn: never;
205
+ identity: undefined;
206
+ generated: undefined;
207
+ }, {}, {
208
+ length: 20;
209
+ }>;
210
+ supplierId: import("drizzle-orm/pg-core").PgColumn<{
211
+ name: "supplier_id";
212
+ tableName: "inventory_lots";
213
+ dataType: "string";
214
+ columnType: "PgText";
215
+ data: string;
216
+ driverParam: string;
217
+ notNull: false;
218
+ hasDefault: false;
219
+ isPrimaryKey: false;
220
+ isAutoincrement: false;
221
+ hasRuntimeDefault: false;
222
+ enumValues: [string, ...string[]];
223
+ baseColumn: never;
224
+ identity: undefined;
225
+ generated: undefined;
226
+ }, {}, {}>;
227
+ supplierLotNumber: import("drizzle-orm/pg-core").PgColumn<{
228
+ name: "supplier_lot_number";
229
+ tableName: "inventory_lots";
230
+ dataType: "string";
231
+ columnType: "PgVarchar";
232
+ data: string;
233
+ driverParam: string;
234
+ notNull: false;
235
+ hasDefault: false;
236
+ isPrimaryKey: false;
237
+ isAutoincrement: false;
238
+ hasRuntimeDefault: false;
239
+ enumValues: [string, ...string[]];
240
+ baseColumn: never;
241
+ identity: undefined;
242
+ generated: undefined;
243
+ }, {}, {
244
+ length: 255;
245
+ }>;
246
+ supplierBatchNumber: import("drizzle-orm/pg-core").PgColumn<{
247
+ name: "supplier_batch_number";
248
+ tableName: "inventory_lots";
249
+ dataType: "string";
250
+ columnType: "PgVarchar";
251
+ data: string;
252
+ driverParam: string;
253
+ notNull: false;
254
+ hasDefault: false;
255
+ isPrimaryKey: false;
256
+ isAutoincrement: false;
257
+ hasRuntimeDefault: false;
258
+ enumValues: [string, ...string[]];
259
+ baseColumn: never;
260
+ identity: undefined;
261
+ generated: undefined;
262
+ }, {}, {
263
+ length: 255;
264
+ }>;
265
+ supplierInvoiceNumber: import("drizzle-orm/pg-core").PgColumn<{
266
+ name: "supplier_invoice_number";
267
+ tableName: "inventory_lots";
268
+ dataType: "string";
269
+ columnType: "PgVarchar";
270
+ data: string;
271
+ driverParam: string;
272
+ notNull: false;
273
+ hasDefault: false;
274
+ isPrimaryKey: false;
275
+ isAutoincrement: false;
276
+ hasRuntimeDefault: false;
277
+ enumValues: [string, ...string[]];
278
+ baseColumn: never;
279
+ identity: undefined;
280
+ generated: undefined;
281
+ }, {}, {
282
+ length: 255;
283
+ }>;
284
+ originalQuantity: import("drizzle-orm/pg-core").PgColumn<{
285
+ name: "original_quantity";
286
+ tableName: "inventory_lots";
287
+ dataType: "number";
288
+ columnType: "PgInteger";
289
+ data: number;
290
+ driverParam: string | number;
291
+ notNull: true;
292
+ hasDefault: false;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: undefined;
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}, {}>;
301
+ currentQuantity: import("drizzle-orm/pg-core").PgColumn<{
302
+ name: "current_quantity";
303
+ tableName: "inventory_lots";
304
+ dataType: "number";
305
+ columnType: "PgInteger";
306
+ data: number;
307
+ driverParam: string | number;
308
+ notNull: true;
309
+ hasDefault: false;
310
+ isPrimaryKey: false;
311
+ isAutoincrement: false;
312
+ hasRuntimeDefault: false;
313
+ enumValues: undefined;
314
+ baseColumn: never;
315
+ identity: undefined;
316
+ generated: undefined;
317
+ }, {}, {}>;
318
+ allocatedQuantity: import("drizzle-orm/pg-core").PgColumn<{
319
+ name: "allocated_quantity";
320
+ tableName: "inventory_lots";
321
+ dataType: "number";
322
+ columnType: "PgInteger";
323
+ data: number;
324
+ driverParam: string | number;
325
+ notNull: true;
326
+ hasDefault: true;
327
+ isPrimaryKey: false;
328
+ isAutoincrement: false;
329
+ hasRuntimeDefault: false;
330
+ enumValues: undefined;
331
+ baseColumn: never;
332
+ identity: undefined;
333
+ generated: undefined;
334
+ }, {}, {}>;
335
+ quarantinedQuantity: import("drizzle-orm/pg-core").PgColumn<{
336
+ name: "quarantined_quantity";
337
+ tableName: "inventory_lots";
338
+ dataType: "number";
339
+ columnType: "PgInteger";
340
+ data: number;
341
+ driverParam: string | number;
342
+ notNull: true;
343
+ hasDefault: true;
344
+ isPrimaryKey: false;
345
+ isAutoincrement: false;
346
+ hasRuntimeDefault: false;
347
+ enumValues: undefined;
348
+ baseColumn: never;
349
+ identity: undefined;
350
+ generated: undefined;
351
+ }, {}, {}>;
352
+ damagedQuantity: import("drizzle-orm/pg-core").PgColumn<{
353
+ name: "damaged_quantity";
354
+ tableName: "inventory_lots";
355
+ dataType: "number";
356
+ columnType: "PgInteger";
357
+ data: number;
358
+ driverParam: string | number;
359
+ notNull: true;
360
+ hasDefault: true;
361
+ isPrimaryKey: false;
362
+ isAutoincrement: false;
363
+ hasRuntimeDefault: false;
364
+ enumValues: undefined;
365
+ baseColumn: never;
366
+ identity: undefined;
367
+ generated: undefined;
368
+ }, {}, {}>;
369
+ soldQuantity: import("drizzle-orm/pg-core").PgColumn<{
370
+ name: "sold_quantity";
371
+ tableName: "inventory_lots";
372
+ dataType: "number";
373
+ columnType: "PgInteger";
374
+ data: number;
375
+ driverParam: string | number;
376
+ notNull: true;
377
+ hasDefault: true;
378
+ isPrimaryKey: false;
379
+ isAutoincrement: false;
380
+ hasRuntimeDefault: false;
381
+ enumValues: undefined;
382
+ baseColumn: never;
383
+ identity: undefined;
384
+ generated: undefined;
385
+ }, {}, {}>;
386
+ returnedQuantity: import("drizzle-orm/pg-core").PgColumn<{
387
+ name: "returned_quantity";
388
+ tableName: "inventory_lots";
389
+ dataType: "number";
390
+ columnType: "PgInteger";
391
+ data: number;
392
+ driverParam: string | number;
393
+ notNull: true;
394
+ hasDefault: true;
395
+ isPrimaryKey: false;
396
+ isAutoincrement: false;
397
+ hasRuntimeDefault: false;
398
+ enumValues: undefined;
399
+ baseColumn: never;
400
+ identity: undefined;
401
+ generated: undefined;
402
+ }, {}, {}>;
403
+ availableQuantity: import("drizzle-orm/pg-core").PgColumn<{
404
+ name: "available_quantity";
405
+ tableName: "inventory_lots";
406
+ dataType: "number";
407
+ columnType: "PgInteger";
408
+ data: number;
409
+ driverParam: string | number;
410
+ notNull: true;
411
+ hasDefault: true;
412
+ isPrimaryKey: false;
413
+ isAutoincrement: false;
414
+ hasRuntimeDefault: false;
415
+ enumValues: undefined;
416
+ baseColumn: never;
417
+ identity: undefined;
418
+ generated: undefined;
419
+ }, {}, {}>;
420
+ reservedQuantity: import("drizzle-orm/pg-core").PgColumn<{
421
+ name: "reserved_quantity";
422
+ tableName: "inventory_lots";
423
+ dataType: "number";
424
+ columnType: "PgInteger";
425
+ data: number;
426
+ driverParam: string | number;
427
+ notNull: true;
428
+ hasDefault: true;
429
+ isPrimaryKey: false;
430
+ isAutoincrement: false;
431
+ hasRuntimeDefault: false;
432
+ enumValues: undefined;
433
+ baseColumn: never;
434
+ identity: undefined;
435
+ generated: undefined;
436
+ }, {}, {}>;
437
+ reorderPoint: import("drizzle-orm/pg-core").PgColumn<{
438
+ name: "reorder_point";
439
+ tableName: "inventory_lots";
440
+ dataType: "number";
441
+ columnType: "PgInteger";
442
+ data: number;
443
+ driverParam: string | number;
444
+ notNull: false;
445
+ hasDefault: false;
446
+ isPrimaryKey: false;
447
+ isAutoincrement: false;
448
+ hasRuntimeDefault: false;
449
+ enumValues: undefined;
450
+ baseColumn: never;
451
+ identity: undefined;
452
+ generated: undefined;
453
+ }, {}, {}>;
454
+ maxStockLevel: import("drizzle-orm/pg-core").PgColumn<{
455
+ name: "max_stock_level";
456
+ tableName: "inventory_lots";
457
+ dataType: "number";
458
+ columnType: "PgInteger";
459
+ data: number;
460
+ driverParam: string | number;
461
+ notNull: false;
462
+ hasDefault: false;
463
+ isPrimaryKey: false;
464
+ isAutoincrement: false;
465
+ hasRuntimeDefault: false;
466
+ enumValues: undefined;
467
+ baseColumn: never;
468
+ identity: undefined;
469
+ generated: undefined;
470
+ }, {}, {}>;
471
+ safetyStock: import("drizzle-orm/pg-core").PgColumn<{
472
+ name: "safety_stock";
473
+ tableName: "inventory_lots";
474
+ dataType: "number";
475
+ columnType: "PgInteger";
476
+ data: number;
477
+ driverParam: string | number;
478
+ notNull: true;
479
+ hasDefault: true;
480
+ isPrimaryKey: false;
481
+ isAutoincrement: false;
482
+ hasRuntimeDefault: false;
483
+ enumValues: undefined;
484
+ baseColumn: never;
485
+ identity: undefined;
486
+ generated: undefined;
487
+ }, {}, {}>;
488
+ unitOfMeasure: import("drizzle-orm/pg-core").PgColumn<{
489
+ name: "unit_of_measure";
490
+ tableName: "inventory_lots";
491
+ dataType: "string";
492
+ columnType: "PgVarchar";
493
+ data: string;
494
+ driverParam: string;
495
+ notNull: true;
496
+ hasDefault: true;
497
+ isPrimaryKey: false;
498
+ isAutoincrement: false;
499
+ hasRuntimeDefault: false;
500
+ enumValues: [string, ...string[]];
501
+ baseColumn: never;
502
+ identity: undefined;
503
+ generated: undefined;
504
+ }, {}, {
505
+ length: 50;
506
+ }>;
507
+ trackSerial: import("drizzle-orm/pg-core").PgColumn<{
508
+ name: "track_serial";
509
+ tableName: "inventory_lots";
510
+ dataType: "boolean";
511
+ columnType: "PgBoolean";
512
+ data: boolean;
513
+ driverParam: boolean;
514
+ notNull: true;
515
+ hasDefault: true;
516
+ isPrimaryKey: false;
517
+ isAutoincrement: false;
518
+ hasRuntimeDefault: false;
519
+ enumValues: undefined;
520
+ baseColumn: never;
521
+ identity: undefined;
522
+ generated: undefined;
523
+ }, {}, {}>;
524
+ serialNumbers: import("drizzle-orm/pg-core").PgColumn<{
525
+ name: "serial_numbers";
526
+ tableName: "inventory_lots";
527
+ dataType: "json";
528
+ columnType: "PgJsonb";
529
+ data: {
530
+ serialNumber: string;
531
+ status: "AVAILABLE" | "SOLD" | "RESERVED" | "DAMAGED" | "RETURNED";
532
+ soldTo?: string;
533
+ soldDate?: string;
534
+ reservedFor?: string;
535
+ reservedDate?: string;
536
+ }[];
537
+ driverParam: unknown;
538
+ notNull: false;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: undefined;
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, {}, {
548
+ $type: {
549
+ serialNumber: string;
550
+ status: "AVAILABLE" | "SOLD" | "RESERVED" | "DAMAGED" | "RETURNED";
551
+ soldTo?: string;
552
+ soldDate?: string;
553
+ reservedFor?: string;
554
+ reservedDate?: string;
555
+ }[];
556
+ }>;
557
+ isInitialInventory: import("drizzle-orm/pg-core").PgColumn<{
558
+ name: "is_initial_inventory";
559
+ tableName: "inventory_lots";
560
+ dataType: "boolean";
561
+ columnType: "PgBoolean";
562
+ data: boolean;
563
+ driverParam: boolean;
564
+ notNull: true;
565
+ hasDefault: true;
566
+ isPrimaryKey: false;
567
+ isAutoincrement: false;
568
+ hasRuntimeDefault: false;
569
+ enumValues: undefined;
570
+ baseColumn: never;
571
+ identity: undefined;
572
+ generated: undefined;
573
+ }, {}, {}>;
574
+ manufactureDate: import("drizzle-orm/pg-core").PgColumn<{
575
+ name: "manufacture_date";
576
+ tableName: "inventory_lots";
577
+ dataType: "string";
578
+ columnType: "PgDateString";
579
+ data: string;
580
+ driverParam: string;
581
+ notNull: false;
582
+ hasDefault: false;
583
+ isPrimaryKey: false;
584
+ isAutoincrement: false;
585
+ hasRuntimeDefault: false;
586
+ enumValues: undefined;
587
+ baseColumn: never;
588
+ identity: undefined;
589
+ generated: undefined;
590
+ }, {}, {}>;
591
+ expiryDate: import("drizzle-orm/pg-core").PgColumn<{
592
+ name: "expiry_date";
593
+ tableName: "inventory_lots";
594
+ dataType: "string";
595
+ columnType: "PgDateString";
596
+ data: string;
597
+ driverParam: string;
598
+ notNull: false;
599
+ hasDefault: false;
600
+ isPrimaryKey: false;
601
+ isAutoincrement: false;
602
+ hasRuntimeDefault: false;
603
+ enumValues: undefined;
604
+ baseColumn: never;
605
+ identity: undefined;
606
+ generated: undefined;
607
+ }, {}, {}>;
608
+ bestBeforeDate: import("drizzle-orm/pg-core").PgColumn<{
609
+ name: "best_before_date";
610
+ tableName: "inventory_lots";
611
+ dataType: "string";
612
+ columnType: "PgDateString";
613
+ data: string;
614
+ driverParam: string;
615
+ notNull: false;
616
+ hasDefault: false;
617
+ isPrimaryKey: false;
618
+ isAutoincrement: false;
619
+ hasRuntimeDefault: false;
620
+ enumValues: undefined;
621
+ baseColumn: never;
622
+ identity: undefined;
623
+ generated: undefined;
624
+ }, {}, {}>;
625
+ receivedDate: import("drizzle-orm/pg-core").PgColumn<{
626
+ name: "received_date";
627
+ tableName: "inventory_lots";
628
+ dataType: "date";
629
+ columnType: "PgTimestamp";
630
+ data: Date;
631
+ driverParam: string;
632
+ notNull: true;
633
+ hasDefault: false;
634
+ isPrimaryKey: false;
635
+ isAutoincrement: false;
636
+ hasRuntimeDefault: false;
637
+ enumValues: undefined;
638
+ baseColumn: never;
639
+ identity: undefined;
640
+ generated: undefined;
641
+ }, {}, {}>;
642
+ firstUseDate: import("drizzle-orm/pg-core").PgColumn<{
643
+ name: "first_use_date";
644
+ tableName: "inventory_lots";
645
+ dataType: "date";
646
+ columnType: "PgTimestamp";
647
+ data: Date;
648
+ driverParam: string;
649
+ notNull: false;
650
+ hasDefault: false;
651
+ isPrimaryKey: false;
652
+ isAutoincrement: false;
653
+ hasRuntimeDefault: false;
654
+ enumValues: undefined;
655
+ baseColumn: never;
656
+ identity: undefined;
657
+ generated: undefined;
658
+ }, {}, {}>;
659
+ lastMovementDate: import("drizzle-orm/pg-core").PgColumn<{
660
+ name: "last_movement_date";
661
+ tableName: "inventory_lots";
662
+ dataType: "date";
663
+ columnType: "PgTimestamp";
664
+ data: Date;
665
+ driverParam: string;
666
+ notNull: false;
667
+ hasDefault: false;
668
+ isPrimaryKey: false;
669
+ isAutoincrement: false;
670
+ hasRuntimeDefault: false;
671
+ enumValues: undefined;
672
+ baseColumn: never;
673
+ identity: undefined;
674
+ generated: undefined;
675
+ }, {}, {}>;
676
+ status: import("drizzle-orm/pg-core").PgColumn<{
677
+ name: "status";
678
+ tableName: "inventory_lots";
679
+ dataType: "string";
680
+ columnType: "PgEnumColumn";
681
+ data: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "PO_INCOMING" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED";
682
+ driverParam: string;
683
+ notNull: true;
684
+ hasDefault: true;
685
+ isPrimaryKey: false;
686
+ isAutoincrement: false;
687
+ hasRuntimeDefault: false;
688
+ enumValues: ["PO_INCOMING", "PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"];
689
+ baseColumn: never;
690
+ identity: undefined;
691
+ generated: undefined;
692
+ }, {}, {}>;
693
+ qcStatus: import("drizzle-orm/pg-core").PgColumn<{
694
+ name: "qc_status";
695
+ tableName: "inventory_lots";
696
+ dataType: "string";
697
+ columnType: "PgEnumColumn";
698
+ data: "PENDING" | "FAILED" | "PASSED" | "NOT_REQUIRED";
699
+ driverParam: string;
700
+ notNull: true;
701
+ hasDefault: true;
702
+ isPrimaryKey: false;
703
+ isAutoincrement: false;
704
+ hasRuntimeDefault: false;
705
+ enumValues: ["NOT_REQUIRED", "PENDING", "PASSED", "FAILED"];
706
+ baseColumn: never;
707
+ identity: undefined;
708
+ generated: undefined;
709
+ }, {}, {}>;
710
+ qualityControlId: import("drizzle-orm/pg-core").PgColumn<{
711
+ name: "quality_control_id";
712
+ tableName: "inventory_lots";
713
+ dataType: "string";
714
+ columnType: "PgText";
715
+ data: string;
716
+ driverParam: string;
717
+ notNull: false;
718
+ hasDefault: false;
719
+ isPrimaryKey: false;
720
+ isAutoincrement: false;
721
+ hasRuntimeDefault: false;
722
+ enumValues: [string, ...string[]];
723
+ baseColumn: never;
724
+ identity: undefined;
725
+ generated: undefined;
726
+ }, {}, {}>;
727
+ lastQcDate: import("drizzle-orm/pg-core").PgColumn<{
728
+ name: "last_qc_date";
729
+ tableName: "inventory_lots";
730
+ dataType: "date";
731
+ columnType: "PgTimestamp";
732
+ data: Date;
733
+ driverParam: string;
734
+ notNull: false;
735
+ hasDefault: false;
736
+ isPrimaryKey: false;
737
+ isAutoincrement: false;
738
+ hasRuntimeDefault: false;
739
+ enumValues: undefined;
740
+ baseColumn: never;
741
+ identity: undefined;
742
+ generated: undefined;
743
+ }, {}, {}>;
744
+ parentLotId: import("drizzle-orm/pg-core").PgColumn<{
745
+ name: "parent_lot_id";
746
+ tableName: "inventory_lots";
747
+ dataType: "string";
748
+ columnType: "PgText";
749
+ data: string;
750
+ driverParam: string;
751
+ notNull: false;
752
+ hasDefault: false;
753
+ isPrimaryKey: false;
754
+ isAutoincrement: false;
755
+ hasRuntimeDefault: false;
756
+ enumValues: [string, ...string[]];
757
+ baseColumn: never;
758
+ identity: undefined;
759
+ generated: undefined;
760
+ }, {}, {}>;
761
+ genealogy: import("drizzle-orm/pg-core").PgColumn<{
762
+ name: "genealogy";
763
+ tableName: "inventory_lots";
764
+ dataType: "json";
765
+ columnType: "PgJsonb";
766
+ data: {
767
+ ancestors?: Array<{
768
+ lotId: string;
769
+ lotNumber: string;
770
+ generation: number;
771
+ splitDate: string;
772
+ }>;
773
+ descendants?: Array<{
774
+ lotId: string;
775
+ lotNumber: string;
776
+ generation: number;
777
+ splitDate: string;
778
+ }>;
779
+ };
780
+ driverParam: unknown;
781
+ notNull: false;
782
+ hasDefault: false;
783
+ isPrimaryKey: false;
784
+ isAutoincrement: false;
785
+ hasRuntimeDefault: false;
786
+ enumValues: undefined;
787
+ baseColumn: never;
788
+ identity: undefined;
789
+ generated: undefined;
790
+ }, {}, {
791
+ $type: {
792
+ ancestors?: Array<{
793
+ lotId: string;
794
+ lotNumber: string;
795
+ generation: number;
796
+ splitDate: string;
797
+ }>;
798
+ descendants?: Array<{
799
+ lotId: string;
800
+ lotNumber: string;
801
+ generation: number;
802
+ splitDate: string;
803
+ }>;
804
+ };
805
+ }>;
806
+ splitCount: import("drizzle-orm/pg-core").PgColumn<{
807
+ name: "split_count";
808
+ tableName: "inventory_lots";
809
+ dataType: "number";
810
+ columnType: "PgInteger";
811
+ data: number;
812
+ driverParam: string | number;
813
+ notNull: true;
814
+ hasDefault: true;
815
+ isPrimaryKey: false;
816
+ isAutoincrement: false;
817
+ hasRuntimeDefault: false;
818
+ enumValues: undefined;
819
+ baseColumn: never;
820
+ identity: undefined;
821
+ generated: undefined;
822
+ }, {}, {}>;
823
+ qcCertificateNumber: import("drizzle-orm/pg-core").PgColumn<{
824
+ name: "qc_certificate_number";
825
+ tableName: "inventory_lots";
826
+ dataType: "string";
827
+ columnType: "PgVarchar";
828
+ data: string;
829
+ driverParam: string;
830
+ notNull: false;
831
+ hasDefault: false;
832
+ isPrimaryKey: false;
833
+ isAutoincrement: false;
834
+ hasRuntimeDefault: false;
835
+ enumValues: [string, ...string[]];
836
+ baseColumn: never;
837
+ identity: undefined;
838
+ generated: undefined;
839
+ }, {}, {
840
+ length: 255;
841
+ }>;
842
+ qcNotes: import("drizzle-orm/pg-core").PgColumn<{
843
+ name: "qc_notes";
844
+ tableName: "inventory_lots";
845
+ dataType: "string";
846
+ columnType: "PgText";
847
+ data: string;
848
+ driverParam: string;
849
+ notNull: false;
850
+ hasDefault: false;
851
+ isPrimaryKey: false;
852
+ isAutoincrement: false;
853
+ hasRuntimeDefault: false;
854
+ enumValues: [string, ...string[]];
855
+ baseColumn: never;
856
+ identity: undefined;
857
+ generated: undefined;
858
+ }, {}, {}>;
859
+ regulatoryCompliance: import("drizzle-orm/pg-core").PgColumn<{
860
+ name: "regulatory_compliance";
861
+ tableName: "inventory_lots";
862
+ dataType: "json";
863
+ columnType: "PgJsonb";
864
+ data: {
865
+ fda?: {
866
+ approved: boolean;
867
+ number?: string;
868
+ };
869
+ iso?: {
870
+ certified: boolean;
871
+ number?: string;
872
+ };
873
+ gmp?: {
874
+ compliant: boolean;
875
+ auditDate?: string;
876
+ };
877
+ };
878
+ driverParam: unknown;
879
+ notNull: false;
880
+ hasDefault: false;
881
+ isPrimaryKey: false;
882
+ isAutoincrement: false;
883
+ hasRuntimeDefault: false;
884
+ enumValues: undefined;
885
+ baseColumn: never;
886
+ identity: undefined;
887
+ generated: undefined;
888
+ }, {}, {
889
+ $type: {
890
+ fda?: {
891
+ approved: boolean;
892
+ number?: string;
893
+ };
894
+ iso?: {
895
+ certified: boolean;
896
+ number?: string;
897
+ };
898
+ gmp?: {
899
+ compliant: boolean;
900
+ auditDate?: string;
901
+ };
902
+ };
903
+ }>;
904
+ certificates: import("drizzle-orm/pg-core").PgColumn<{
905
+ name: "certificates";
906
+ tableName: "inventory_lots";
907
+ dataType: "json";
908
+ columnType: "PgJsonb";
909
+ data: {
910
+ type: string;
911
+ number: string;
912
+ issuedDate: string;
913
+ expiryDate?: string;
914
+ issuer: string;
915
+ }[];
916
+ driverParam: unknown;
917
+ notNull: false;
918
+ hasDefault: false;
919
+ isPrimaryKey: false;
920
+ isAutoincrement: false;
921
+ hasRuntimeDefault: false;
922
+ enumValues: undefined;
923
+ baseColumn: never;
924
+ identity: undefined;
925
+ generated: undefined;
926
+ }, {}, {
927
+ $type: {
928
+ type: string;
929
+ number: string;
930
+ issuedDate: string;
931
+ expiryDate?: string;
932
+ issuer: string;
933
+ }[];
934
+ }>;
935
+ requiresRecall: import("drizzle-orm/pg-core").PgColumn<{
936
+ name: "requires_recall";
937
+ tableName: "inventory_lots";
938
+ dataType: "boolean";
939
+ columnType: "PgBoolean";
940
+ data: boolean;
941
+ driverParam: boolean;
942
+ notNull: true;
943
+ hasDefault: true;
944
+ isPrimaryKey: false;
945
+ isAutoincrement: false;
946
+ hasRuntimeDefault: false;
947
+ enumValues: undefined;
948
+ baseColumn: never;
949
+ identity: undefined;
950
+ generated: undefined;
951
+ }, {}, {}>;
952
+ recallDate: import("drizzle-orm/pg-core").PgColumn<{
953
+ name: "recall_date";
954
+ tableName: "inventory_lots";
955
+ dataType: "date";
956
+ columnType: "PgTimestamp";
957
+ data: Date;
958
+ driverParam: string;
959
+ notNull: false;
960
+ hasDefault: false;
961
+ isPrimaryKey: false;
962
+ isAutoincrement: false;
963
+ hasRuntimeDefault: false;
964
+ enumValues: undefined;
965
+ baseColumn: never;
966
+ identity: undefined;
967
+ generated: undefined;
968
+ }, {}, {}>;
969
+ recallReason: import("drizzle-orm/pg-core").PgColumn<{
970
+ name: "recall_reason";
971
+ tableName: "inventory_lots";
972
+ dataType: "string";
973
+ columnType: "PgText";
974
+ data: string;
975
+ driverParam: string;
976
+ notNull: false;
977
+ hasDefault: false;
978
+ isPrimaryKey: false;
979
+ isAutoincrement: false;
980
+ hasRuntimeDefault: false;
981
+ enumValues: [string, ...string[]];
982
+ baseColumn: never;
983
+ identity: undefined;
984
+ generated: undefined;
985
+ }, {}, {}>;
986
+ storageLocationId: import("drizzle-orm/pg-core").PgColumn<{
987
+ name: "storage_location_id";
988
+ tableName: "inventory_lots";
989
+ dataType: "string";
990
+ columnType: "PgText";
991
+ data: string;
992
+ driverParam: string;
993
+ notNull: false;
994
+ hasDefault: false;
995
+ isPrimaryKey: false;
996
+ isAutoincrement: false;
997
+ hasRuntimeDefault: false;
998
+ enumValues: [string, ...string[]];
999
+ baseColumn: never;
1000
+ identity: undefined;
1001
+ generated: undefined;
1002
+ }, {}, {}>;
1003
+ storageZone: import("drizzle-orm/pg-core").PgColumn<{
1004
+ name: "storage_zone";
1005
+ tableName: "inventory_lots";
1006
+ dataType: "string";
1007
+ columnType: "PgVarchar";
1008
+ data: string;
1009
+ driverParam: string;
1010
+ notNull: false;
1011
+ hasDefault: false;
1012
+ isPrimaryKey: false;
1013
+ isAutoincrement: false;
1014
+ hasRuntimeDefault: false;
1015
+ enumValues: [string, ...string[]];
1016
+ baseColumn: never;
1017
+ identity: undefined;
1018
+ generated: undefined;
1019
+ }, {}, {
1020
+ length: 255;
1021
+ }>;
1022
+ storageTempMin: import("drizzle-orm/pg-core").PgColumn<{
1023
+ name: "storage_temp_min";
1024
+ tableName: "inventory_lots";
1025
+ dataType: "string";
1026
+ columnType: "PgNumeric";
1027
+ data: string;
1028
+ driverParam: string;
1029
+ notNull: false;
1030
+ hasDefault: false;
1031
+ isPrimaryKey: false;
1032
+ isAutoincrement: false;
1033
+ hasRuntimeDefault: false;
1034
+ enumValues: undefined;
1035
+ baseColumn: never;
1036
+ identity: undefined;
1037
+ generated: undefined;
1038
+ }, {}, {}>;
1039
+ storageTempMax: import("drizzle-orm/pg-core").PgColumn<{
1040
+ name: "storage_temp_max";
1041
+ tableName: "inventory_lots";
1042
+ dataType: "string";
1043
+ columnType: "PgNumeric";
1044
+ data: string;
1045
+ driverParam: string;
1046
+ notNull: false;
1047
+ hasDefault: false;
1048
+ isPrimaryKey: false;
1049
+ isAutoincrement: false;
1050
+ hasRuntimeDefault: false;
1051
+ enumValues: undefined;
1052
+ baseColumn: never;
1053
+ identity: undefined;
1054
+ generated: undefined;
1055
+ }, {}, {}>;
1056
+ storageHumidityMin: import("drizzle-orm/pg-core").PgColumn<{
1057
+ name: "storage_humidity_min";
1058
+ tableName: "inventory_lots";
1059
+ dataType: "string";
1060
+ columnType: "PgNumeric";
1061
+ data: string;
1062
+ driverParam: string;
1063
+ notNull: false;
1064
+ hasDefault: false;
1065
+ isPrimaryKey: false;
1066
+ isAutoincrement: false;
1067
+ hasRuntimeDefault: false;
1068
+ enumValues: undefined;
1069
+ baseColumn: never;
1070
+ identity: undefined;
1071
+ generated: undefined;
1072
+ }, {}, {}>;
1073
+ storageHumidityMax: import("drizzle-orm/pg-core").PgColumn<{
1074
+ name: "storage_humidity_max";
1075
+ tableName: "inventory_lots";
1076
+ dataType: "string";
1077
+ columnType: "PgNumeric";
1078
+ data: string;
1079
+ driverParam: string;
1080
+ notNull: false;
1081
+ hasDefault: false;
1082
+ isPrimaryKey: false;
1083
+ isAutoincrement: false;
1084
+ hasRuntimeDefault: false;
1085
+ enumValues: undefined;
1086
+ baseColumn: never;
1087
+ identity: undefined;
1088
+ generated: undefined;
1089
+ }, {}, {}>;
1090
+ specialHandling: import("drizzle-orm/pg-core").PgColumn<{
1091
+ name: "special_handling";
1092
+ tableName: "inventory_lots";
1093
+ dataType: "json";
1094
+ columnType: "PgJsonb";
1095
+ data: {
1096
+ refrigerated?: boolean;
1097
+ frozen?: boolean;
1098
+ hazardous?: boolean;
1099
+ fragile?: boolean;
1100
+ instructions?: string;
1101
+ };
1102
+ driverParam: unknown;
1103
+ notNull: false;
1104
+ hasDefault: false;
1105
+ isPrimaryKey: false;
1106
+ isAutoincrement: false;
1107
+ hasRuntimeDefault: false;
1108
+ enumValues: undefined;
1109
+ baseColumn: never;
1110
+ identity: undefined;
1111
+ generated: undefined;
1112
+ }, {}, {
1113
+ $type: {
1114
+ refrigerated?: boolean;
1115
+ frozen?: boolean;
1116
+ hazardous?: boolean;
1117
+ fragile?: boolean;
1118
+ instructions?: string;
1119
+ };
1120
+ }>;
1121
+ unitCost: import("drizzle-orm/pg-core").PgColumn<{
1122
+ name: "unit_cost";
1123
+ tableName: "inventory_lots";
1124
+ dataType: "string";
1125
+ columnType: "PgNumeric";
1126
+ data: string;
1127
+ driverParam: string;
1128
+ notNull: false;
1129
+ hasDefault: false;
1130
+ isPrimaryKey: false;
1131
+ isAutoincrement: false;
1132
+ hasRuntimeDefault: false;
1133
+ enumValues: undefined;
1134
+ baseColumn: never;
1135
+ identity: undefined;
1136
+ generated: undefined;
1137
+ }, {}, {}>;
1138
+ landedCost: import("drizzle-orm/pg-core").PgColumn<{
1139
+ name: "landed_cost";
1140
+ tableName: "inventory_lots";
1141
+ dataType: "string";
1142
+ columnType: "PgNumeric";
1143
+ data: string;
1144
+ driverParam: string;
1145
+ notNull: false;
1146
+ hasDefault: false;
1147
+ isPrimaryKey: false;
1148
+ isAutoincrement: false;
1149
+ hasRuntimeDefault: false;
1150
+ enumValues: undefined;
1151
+ baseColumn: never;
1152
+ identity: undefined;
1153
+ generated: undefined;
1154
+ }, {}, {}>;
1155
+ totalCost: import("drizzle-orm/pg-core").PgColumn<{
1156
+ name: "total_cost";
1157
+ tableName: "inventory_lots";
1158
+ dataType: "string";
1159
+ columnType: "PgNumeric";
1160
+ data: string;
1161
+ driverParam: string;
1162
+ notNull: false;
1163
+ hasDefault: false;
1164
+ isPrimaryKey: false;
1165
+ isAutoincrement: false;
1166
+ hasRuntimeDefault: false;
1167
+ enumValues: undefined;
1168
+ baseColumn: never;
1169
+ identity: undefined;
1170
+ generated: undefined;
1171
+ }, {}, {}>;
1172
+ currency: import("drizzle-orm/pg-core").PgColumn<{
1173
+ name: "currency";
1174
+ tableName: "inventory_lots";
1175
+ dataType: "string";
1176
+ columnType: "PgVarchar";
1177
+ data: string;
1178
+ driverParam: string;
1179
+ notNull: true;
1180
+ hasDefault: true;
1181
+ isPrimaryKey: false;
1182
+ isAutoincrement: false;
1183
+ hasRuntimeDefault: false;
1184
+ enumValues: [string, ...string[]];
1185
+ baseColumn: never;
1186
+ identity: undefined;
1187
+ generated: undefined;
1188
+ }, {}, {
1189
+ length: 3;
1190
+ }>;
1191
+ expiryAlertDays: import("drizzle-orm/pg-core").PgColumn<{
1192
+ name: "expiry_alert_days";
1193
+ tableName: "inventory_lots";
1194
+ dataType: "number";
1195
+ columnType: "PgInteger";
1196
+ data: number;
1197
+ driverParam: string | number;
1198
+ notNull: true;
1199
+ hasDefault: true;
1200
+ isPrimaryKey: false;
1201
+ isAutoincrement: false;
1202
+ hasRuntimeDefault: false;
1203
+ enumValues: undefined;
1204
+ baseColumn: never;
1205
+ identity: undefined;
1206
+ generated: undefined;
1207
+ }, {}, {}>;
1208
+ lowQuantityAlert: import("drizzle-orm/pg-core").PgColumn<{
1209
+ name: "low_quantity_alert";
1210
+ tableName: "inventory_lots";
1211
+ dataType: "number";
1212
+ columnType: "PgInteger";
1213
+ data: number;
1214
+ driverParam: string | number;
1215
+ notNull: false;
1216
+ hasDefault: false;
1217
+ isPrimaryKey: false;
1218
+ isAutoincrement: false;
1219
+ hasRuntimeDefault: false;
1220
+ enumValues: undefined;
1221
+ baseColumn: never;
1222
+ identity: undefined;
1223
+ generated: undefined;
1224
+ }, {}, {}>;
1225
+ alertRecipients: import("drizzle-orm/pg-core").PgColumn<{
1226
+ name: "alert_recipients";
1227
+ tableName: "inventory_lots";
1228
+ dataType: "json";
1229
+ columnType: "PgJsonb";
1230
+ data: {
1231
+ type: "email" | "sms" | "push";
1232
+ address: string;
1233
+ }[];
1234
+ driverParam: unknown;
1235
+ notNull: false;
1236
+ hasDefault: false;
1237
+ isPrimaryKey: false;
1238
+ isAutoincrement: false;
1239
+ hasRuntimeDefault: false;
1240
+ enumValues: undefined;
1241
+ baseColumn: never;
1242
+ identity: undefined;
1243
+ generated: undefined;
1244
+ }, {}, {
1245
+ $type: {
1246
+ type: "email" | "sms" | "push";
1247
+ address: string;
1248
+ }[];
1249
+ }>;
1250
+ customAttributes: import("drizzle-orm/pg-core").PgColumn<{
1251
+ name: "custom_attributes";
1252
+ tableName: "inventory_lots";
1253
+ dataType: "json";
1254
+ columnType: "PgJsonb";
1255
+ data: Record<string, any>;
1256
+ driverParam: unknown;
1257
+ notNull: false;
1258
+ hasDefault: true;
1259
+ isPrimaryKey: false;
1260
+ isAutoincrement: false;
1261
+ hasRuntimeDefault: false;
1262
+ enumValues: undefined;
1263
+ baseColumn: never;
1264
+ identity: undefined;
1265
+ generated: undefined;
1266
+ }, {}, {
1267
+ $type: Record<string, any>;
1268
+ }>;
1269
+ tags: import("drizzle-orm/pg-core").PgColumn<{
1270
+ name: "tags";
1271
+ tableName: "inventory_lots";
1272
+ dataType: "array";
1273
+ columnType: "PgArray";
1274
+ data: string[];
1275
+ driverParam: string | string[];
1276
+ notNull: false;
1277
+ hasDefault: false;
1278
+ isPrimaryKey: false;
1279
+ isAutoincrement: false;
1280
+ hasRuntimeDefault: false;
1281
+ enumValues: [string, ...string[]];
1282
+ baseColumn: import("drizzle-orm").Column<{
1283
+ name: "tags";
1284
+ tableName: "inventory_lots";
1285
+ dataType: "string";
1286
+ columnType: "PgText";
1287
+ data: string;
1288
+ driverParam: string;
1289
+ notNull: false;
1290
+ hasDefault: false;
1291
+ isPrimaryKey: false;
1292
+ isAutoincrement: false;
1293
+ hasRuntimeDefault: false;
1294
+ enumValues: [string, ...string[]];
1295
+ baseColumn: never;
1296
+ identity: undefined;
1297
+ generated: undefined;
1298
+ }, {}, {}>;
1299
+ identity: undefined;
1300
+ generated: undefined;
1301
+ }, {}, {
1302
+ size: undefined;
1303
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
1304
+ name: "tags";
1305
+ dataType: "string";
1306
+ columnType: "PgText";
1307
+ data: string;
1308
+ enumValues: [string, ...string[]];
1309
+ driverParam: string;
1310
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
1311
+ }>;
1312
+ notes: import("drizzle-orm/pg-core").PgColumn<{
1313
+ name: "notes";
1314
+ tableName: "inventory_lots";
1315
+ dataType: "string";
1316
+ columnType: "PgText";
1317
+ data: string;
1318
+ driverParam: string;
1319
+ notNull: false;
1320
+ hasDefault: false;
1321
+ isPrimaryKey: false;
1322
+ isAutoincrement: false;
1323
+ hasRuntimeDefault: false;
1324
+ enumValues: [string, ...string[]];
1325
+ baseColumn: never;
1326
+ identity: undefined;
1327
+ generated: undefined;
1328
+ }, {}, {}>;
1329
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1330
+ name: "created_at";
1331
+ tableName: "inventory_lots";
1332
+ dataType: "date";
1333
+ columnType: "PgTimestamp";
1334
+ data: Date;
1335
+ driverParam: string;
1336
+ notNull: true;
1337
+ hasDefault: true;
1338
+ isPrimaryKey: false;
1339
+ isAutoincrement: false;
1340
+ hasRuntimeDefault: false;
1341
+ enumValues: undefined;
1342
+ baseColumn: never;
1343
+ identity: undefined;
1344
+ generated: undefined;
1345
+ }, {}, {}>;
1346
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1347
+ name: "updated_at";
1348
+ tableName: "inventory_lots";
1349
+ dataType: "date";
1350
+ columnType: "PgTimestamp";
1351
+ data: Date;
1352
+ driverParam: string;
1353
+ notNull: true;
1354
+ hasDefault: true;
1355
+ isPrimaryKey: false;
1356
+ isAutoincrement: false;
1357
+ hasRuntimeDefault: false;
1358
+ enumValues: undefined;
1359
+ baseColumn: never;
1360
+ identity: undefined;
1361
+ generated: undefined;
1362
+ }, {}, {}>;
1363
+ createdBy: import("drizzle-orm/pg-core").PgColumn<{
1364
+ name: "created_by";
1365
+ tableName: "inventory_lots";
1366
+ dataType: "string";
1367
+ columnType: "PgText";
1368
+ data: string;
1369
+ driverParam: string;
1370
+ notNull: false;
1371
+ hasDefault: false;
1372
+ isPrimaryKey: false;
1373
+ isAutoincrement: false;
1374
+ hasRuntimeDefault: false;
1375
+ enumValues: [string, ...string[]];
1376
+ baseColumn: never;
1377
+ identity: undefined;
1378
+ generated: undefined;
1379
+ }, {}, {}>;
1380
+ updatedBy: import("drizzle-orm/pg-core").PgColumn<{
1381
+ name: "updated_by";
1382
+ tableName: "inventory_lots";
1383
+ dataType: "string";
1384
+ columnType: "PgText";
1385
+ data: string;
1386
+ driverParam: string;
1387
+ notNull: false;
1388
+ hasDefault: false;
1389
+ isPrimaryKey: false;
1390
+ isAutoincrement: false;
1391
+ hasRuntimeDefault: false;
1392
+ enumValues: [string, ...string[]];
1393
+ baseColumn: never;
1394
+ identity: undefined;
1395
+ generated: undefined;
1396
+ }, {}, {}>;
1397
+ isActive: import("drizzle-orm/pg-core").PgColumn<{
1398
+ name: "is_active";
1399
+ tableName: "inventory_lots";
1400
+ dataType: "boolean";
1401
+ columnType: "PgBoolean";
1402
+ data: boolean;
1403
+ driverParam: boolean;
1404
+ notNull: true;
1405
+ hasDefault: true;
1406
+ isPrimaryKey: false;
1407
+ isAutoincrement: false;
1408
+ hasRuntimeDefault: false;
1409
+ enumValues: undefined;
1410
+ baseColumn: never;
1411
+ identity: undefined;
1412
+ generated: undefined;
1413
+ }, {}, {}>;
1414
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
1415
+ name: "deleted_at";
1416
+ tableName: "inventory_lots";
1417
+ dataType: "date";
1418
+ columnType: "PgTimestamp";
1419
+ data: Date;
1420
+ driverParam: string;
1421
+ notNull: false;
1422
+ hasDefault: false;
1423
+ isPrimaryKey: false;
1424
+ isAutoincrement: false;
1425
+ hasRuntimeDefault: false;
1426
+ enumValues: undefined;
1427
+ baseColumn: never;
1428
+ identity: undefined;
1429
+ generated: undefined;
1430
+ }, {}, {}>;
1431
+ deletedBy: import("drizzle-orm/pg-core").PgColumn<{
1432
+ name: "deleted_by";
1433
+ tableName: "inventory_lots";
1434
+ dataType: "string";
1435
+ columnType: "PgText";
1436
+ data: string;
1437
+ driverParam: string;
1438
+ notNull: false;
1439
+ hasDefault: false;
1440
+ isPrimaryKey: false;
1441
+ isAutoincrement: false;
1442
+ hasRuntimeDefault: false;
1443
+ enumValues: [string, ...string[]];
1444
+ baseColumn: never;
1445
+ identity: undefined;
1446
+ generated: undefined;
1447
+ }, {}, {}>;
1448
+ };
1449
+ dialect: "pg";
1450
+ }>;
1451
+ export declare const inventoryLotMovements: import("drizzle-orm/pg-core").PgTableWithColumns<{
1452
+ name: "inventory_lot_movements";
1453
+ schema: undefined;
1454
+ columns: {
1455
+ id: import("drizzle-orm/pg-core").PgColumn<{
1456
+ name: "id";
1457
+ tableName: "inventory_lot_movements";
1458
+ dataType: "string";
1459
+ columnType: "PgText";
1460
+ data: string;
1461
+ driverParam: string;
1462
+ notNull: true;
1463
+ hasDefault: true;
1464
+ isPrimaryKey: true;
1465
+ isAutoincrement: false;
1466
+ hasRuntimeDefault: true;
1467
+ enumValues: [string, ...string[]];
1468
+ baseColumn: never;
1469
+ identity: undefined;
1470
+ generated: undefined;
1471
+ }, {}, {}>;
1472
+ lotId: import("drizzle-orm/pg-core").PgColumn<{
1473
+ name: "lot_id";
1474
+ tableName: "inventory_lot_movements";
1475
+ dataType: "string";
1476
+ columnType: "PgText";
1477
+ data: string;
1478
+ driverParam: string;
1479
+ notNull: true;
1480
+ hasDefault: false;
1481
+ isPrimaryKey: false;
1482
+ isAutoincrement: false;
1483
+ hasRuntimeDefault: false;
1484
+ enumValues: [string, ...string[]];
1485
+ baseColumn: never;
1486
+ identity: undefined;
1487
+ generated: undefined;
1488
+ }, {}, {}>;
1489
+ storeId: import("drizzle-orm/pg-core").PgColumn<{
1490
+ name: "store_id";
1491
+ tableName: "inventory_lot_movements";
1492
+ dataType: "string";
1493
+ columnType: "PgText";
1494
+ data: string;
1495
+ driverParam: string;
1496
+ notNull: true;
1497
+ hasDefault: false;
1498
+ isPrimaryKey: false;
1499
+ isAutoincrement: false;
1500
+ hasRuntimeDefault: false;
1501
+ enumValues: [string, ...string[]];
1502
+ baseColumn: never;
1503
+ identity: undefined;
1504
+ generated: undefined;
1505
+ }, {}, {}>;
1506
+ movementType: import("drizzle-orm/pg-core").PgColumn<{
1507
+ name: "movement_type";
1508
+ tableName: "inventory_lot_movements";
1509
+ dataType: "string";
1510
+ columnType: "PgEnumColumn";
1511
+ data: "DAMAGED" | "RETURN_FROM_CUSTOMER" | "ADJUSTMENT_INCREASE" | "SALE" | "RETURN_TO_SUPPLIER" | "ADJUSTMENT_DECREASE" | "SAMPLE" | "CYCLE_COUNT_ADJUSTMENT" | "RESERVE" | "UNRESERVE" | "QUARANTINE" | "PO_INCOMING" | "RECEIPT" | "TRANSFER" | "ADJUSTMENT" | "RELEASE" | "SPLIT" | "MERGE" | "DISPOSAL" | "RECALL" | "EXPIRY" | "PRODUCTION_USE";
1512
+ driverParam: string;
1513
+ notNull: true;
1514
+ hasDefault: false;
1515
+ isPrimaryKey: false;
1516
+ isAutoincrement: false;
1517
+ hasRuntimeDefault: false;
1518
+ enumValues: ["RECEIPT", "SALE", "TRANSFER", "ADJUSTMENT", "ADJUSTMENT_INCREASE", "ADJUSTMENT_DECREASE", "RETURN_FROM_CUSTOMER", "RETURN_TO_SUPPLIER", "QUARANTINE", "RELEASE", "SPLIT", "MERGE", "DISPOSAL", "RECALL", "EXPIRY", "PRODUCTION_USE", "SAMPLE", "DAMAGED", "RESERVE", "UNRESERVE", "CYCLE_COUNT_ADJUSTMENT", "PO_INCOMING"];
1519
+ baseColumn: never;
1520
+ identity: undefined;
1521
+ generated: undefined;
1522
+ }, {}, {}>;
1523
+ quantityMoved: import("drizzle-orm/pg-core").PgColumn<{
1524
+ name: "quantity_moved";
1525
+ tableName: "inventory_lot_movements";
1526
+ dataType: "number";
1527
+ columnType: "PgInteger";
1528
+ data: number;
1529
+ driverParam: string | number;
1530
+ notNull: true;
1531
+ hasDefault: false;
1532
+ isPrimaryKey: false;
1533
+ isAutoincrement: false;
1534
+ hasRuntimeDefault: false;
1535
+ enumValues: undefined;
1536
+ baseColumn: never;
1537
+ identity: undefined;
1538
+ generated: undefined;
1539
+ }, {}, {}>;
1540
+ quantityBefore: import("drizzle-orm/pg-core").PgColumn<{
1541
+ name: "quantity_before";
1542
+ tableName: "inventory_lot_movements";
1543
+ dataType: "number";
1544
+ columnType: "PgInteger";
1545
+ data: number;
1546
+ driverParam: string | number;
1547
+ notNull: true;
1548
+ hasDefault: false;
1549
+ isPrimaryKey: false;
1550
+ isAutoincrement: false;
1551
+ hasRuntimeDefault: false;
1552
+ enumValues: undefined;
1553
+ baseColumn: never;
1554
+ identity: undefined;
1555
+ generated: undefined;
1556
+ }, {}, {}>;
1557
+ quantityAfter: import("drizzle-orm/pg-core").PgColumn<{
1558
+ name: "quantity_after";
1559
+ tableName: "inventory_lot_movements";
1560
+ dataType: "number";
1561
+ columnType: "PgInteger";
1562
+ data: number;
1563
+ driverParam: string | number;
1564
+ notNull: true;
1565
+ hasDefault: false;
1566
+ isPrimaryKey: false;
1567
+ isAutoincrement: false;
1568
+ hasRuntimeDefault: false;
1569
+ enumValues: undefined;
1570
+ baseColumn: never;
1571
+ identity: undefined;
1572
+ generated: undefined;
1573
+ }, {}, {}>;
1574
+ fromLocationId: import("drizzle-orm/pg-core").PgColumn<{
1575
+ name: "from_location_id";
1576
+ tableName: "inventory_lot_movements";
1577
+ dataType: "string";
1578
+ columnType: "PgText";
1579
+ data: string;
1580
+ driverParam: string;
1581
+ notNull: false;
1582
+ hasDefault: false;
1583
+ isPrimaryKey: false;
1584
+ isAutoincrement: false;
1585
+ hasRuntimeDefault: false;
1586
+ enumValues: [string, ...string[]];
1587
+ baseColumn: never;
1588
+ identity: undefined;
1589
+ generated: undefined;
1590
+ }, {}, {}>;
1591
+ toLocationId: import("drizzle-orm/pg-core").PgColumn<{
1592
+ name: "to_location_id";
1593
+ tableName: "inventory_lot_movements";
1594
+ dataType: "string";
1595
+ columnType: "PgText";
1596
+ data: string;
1597
+ driverParam: string;
1598
+ notNull: false;
1599
+ hasDefault: false;
1600
+ isPrimaryKey: false;
1601
+ isAutoincrement: false;
1602
+ hasRuntimeDefault: false;
1603
+ enumValues: [string, ...string[]];
1604
+ baseColumn: never;
1605
+ identity: undefined;
1606
+ generated: undefined;
1607
+ }, {}, {}>;
1608
+ fromStatus: import("drizzle-orm/pg-core").PgColumn<{
1609
+ name: "from_status";
1610
+ tableName: "inventory_lot_movements";
1611
+ dataType: "string";
1612
+ columnType: "PgEnumColumn";
1613
+ data: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "PO_INCOMING" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED";
1614
+ driverParam: string;
1615
+ notNull: false;
1616
+ hasDefault: false;
1617
+ isPrimaryKey: false;
1618
+ isAutoincrement: false;
1619
+ hasRuntimeDefault: false;
1620
+ enumValues: ["PO_INCOMING", "PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"];
1621
+ baseColumn: never;
1622
+ identity: undefined;
1623
+ generated: undefined;
1624
+ }, {}, {}>;
1625
+ toStatus: import("drizzle-orm/pg-core").PgColumn<{
1626
+ name: "to_status";
1627
+ tableName: "inventory_lot_movements";
1628
+ dataType: "string";
1629
+ columnType: "PgEnumColumn";
1630
+ data: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "PO_INCOMING" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED";
1631
+ driverParam: string;
1632
+ notNull: false;
1633
+ hasDefault: false;
1634
+ isPrimaryKey: false;
1635
+ isAutoincrement: false;
1636
+ hasRuntimeDefault: false;
1637
+ enumValues: ["PO_INCOMING", "PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"];
1638
+ baseColumn: never;
1639
+ identity: undefined;
1640
+ generated: undefined;
1641
+ }, {}, {}>;
1642
+ orderId: import("drizzle-orm/pg-core").PgColumn<{
1643
+ name: "order_id";
1644
+ tableName: "inventory_lot_movements";
1645
+ dataType: "string";
1646
+ columnType: "PgText";
1647
+ data: string;
1648
+ driverParam: string;
1649
+ notNull: false;
1650
+ hasDefault: false;
1651
+ isPrimaryKey: false;
1652
+ isAutoincrement: false;
1653
+ hasRuntimeDefault: false;
1654
+ enumValues: [string, ...string[]];
1655
+ baseColumn: never;
1656
+ identity: undefined;
1657
+ generated: undefined;
1658
+ }, {}, {}>;
1659
+ transferId: import("drizzle-orm/pg-core").PgColumn<{
1660
+ name: "transfer_id";
1661
+ tableName: "inventory_lot_movements";
1662
+ dataType: "string";
1663
+ columnType: "PgText";
1664
+ data: string;
1665
+ driverParam: string;
1666
+ notNull: false;
1667
+ hasDefault: false;
1668
+ isPrimaryKey: false;
1669
+ isAutoincrement: false;
1670
+ hasRuntimeDefault: false;
1671
+ enumValues: [string, ...string[]];
1672
+ baseColumn: never;
1673
+ identity: undefined;
1674
+ generated: undefined;
1675
+ }, {}, {}>;
1676
+ adjustmentId: import("drizzle-orm/pg-core").PgColumn<{
1677
+ name: "adjustment_id";
1678
+ tableName: "inventory_lot_movements";
1679
+ dataType: "string";
1680
+ columnType: "PgText";
1681
+ data: string;
1682
+ driverParam: string;
1683
+ notNull: false;
1684
+ hasDefault: false;
1685
+ isPrimaryKey: false;
1686
+ isAutoincrement: false;
1687
+ hasRuntimeDefault: false;
1688
+ enumValues: [string, ...string[]];
1689
+ baseColumn: never;
1690
+ identity: undefined;
1691
+ generated: undefined;
1692
+ }, {}, {}>;
1693
+ returnId: import("drizzle-orm/pg-core").PgColumn<{
1694
+ name: "return_id";
1695
+ tableName: "inventory_lot_movements";
1696
+ dataType: "string";
1697
+ columnType: "PgText";
1698
+ data: string;
1699
+ driverParam: string;
1700
+ notNull: false;
1701
+ hasDefault: false;
1702
+ isPrimaryKey: false;
1703
+ isAutoincrement: false;
1704
+ hasRuntimeDefault: false;
1705
+ enumValues: [string, ...string[]];
1706
+ baseColumn: never;
1707
+ identity: undefined;
1708
+ generated: undefined;
1709
+ }, {}, {}>;
1710
+ performedBy: import("drizzle-orm/pg-core").PgColumn<{
1711
+ name: "performed_by";
1712
+ tableName: "inventory_lot_movements";
1713
+ dataType: "string";
1714
+ columnType: "PgText";
1715
+ data: string;
1716
+ driverParam: string;
1717
+ notNull: true;
1718
+ hasDefault: false;
1719
+ isPrimaryKey: false;
1720
+ isAutoincrement: false;
1721
+ hasRuntimeDefault: false;
1722
+ enumValues: [string, ...string[]];
1723
+ baseColumn: never;
1724
+ identity: undefined;
1725
+ generated: undefined;
1726
+ }, {}, {}>;
1727
+ reason: import("drizzle-orm/pg-core").PgColumn<{
1728
+ name: "reason";
1729
+ tableName: "inventory_lot_movements";
1730
+ dataType: "string";
1731
+ columnType: "PgText";
1732
+ data: string;
1733
+ driverParam: string;
1734
+ notNull: false;
1735
+ hasDefault: false;
1736
+ isPrimaryKey: false;
1737
+ isAutoincrement: false;
1738
+ hasRuntimeDefault: false;
1739
+ enumValues: [string, ...string[]];
1740
+ baseColumn: never;
1741
+ identity: undefined;
1742
+ generated: undefined;
1743
+ }, {}, {}>;
1744
+ notes: import("drizzle-orm/pg-core").PgColumn<{
1745
+ name: "notes";
1746
+ tableName: "inventory_lot_movements";
1747
+ dataType: "string";
1748
+ columnType: "PgText";
1749
+ data: string;
1750
+ driverParam: string;
1751
+ notNull: false;
1752
+ hasDefault: false;
1753
+ isPrimaryKey: false;
1754
+ isAutoincrement: false;
1755
+ hasRuntimeDefault: false;
1756
+ enumValues: [string, ...string[]];
1757
+ baseColumn: never;
1758
+ identity: undefined;
1759
+ generated: undefined;
1760
+ }, {}, {}>;
1761
+ movementDate: import("drizzle-orm/pg-core").PgColumn<{
1762
+ name: "movement_date";
1763
+ tableName: "inventory_lot_movements";
1764
+ dataType: "date";
1765
+ columnType: "PgTimestamp";
1766
+ data: Date;
1767
+ driverParam: string;
1768
+ notNull: true;
1769
+ hasDefault: true;
1770
+ isPrimaryKey: false;
1771
+ isAutoincrement: false;
1772
+ hasRuntimeDefault: false;
1773
+ enumValues: undefined;
1774
+ baseColumn: never;
1775
+ identity: undefined;
1776
+ generated: undefined;
1777
+ }, {}, {}>;
1778
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1779
+ name: "created_at";
1780
+ tableName: "inventory_lot_movements";
1781
+ dataType: "date";
1782
+ columnType: "PgTimestamp";
1783
+ data: Date;
1784
+ driverParam: string;
1785
+ notNull: true;
1786
+ hasDefault: true;
1787
+ isPrimaryKey: false;
1788
+ isAutoincrement: false;
1789
+ hasRuntimeDefault: false;
1790
+ enumValues: undefined;
1791
+ baseColumn: never;
1792
+ identity: undefined;
1793
+ generated: undefined;
1794
+ }, {}, {}>;
1795
+ };
1796
+ dialect: "pg";
1797
+ }>;
1798
+ export declare const inventoryLotSplits: import("drizzle-orm/pg-core").PgTableWithColumns<{
1799
+ name: "inventory_lot_splits";
1800
+ schema: undefined;
1801
+ columns: {
1802
+ id: import("drizzle-orm/pg-core").PgColumn<{
1803
+ name: "id";
1804
+ tableName: "inventory_lot_splits";
1805
+ dataType: "string";
1806
+ columnType: "PgText";
1807
+ data: string;
1808
+ driverParam: string;
1809
+ notNull: true;
1810
+ hasDefault: true;
1811
+ isPrimaryKey: true;
1812
+ isAutoincrement: false;
1813
+ hasRuntimeDefault: true;
1814
+ enumValues: [string, ...string[]];
1815
+ baseColumn: never;
1816
+ identity: undefined;
1817
+ generated: undefined;
1818
+ }, {}, {}>;
1819
+ parentLotId: import("drizzle-orm/pg-core").PgColumn<{
1820
+ name: "parent_lot_id";
1821
+ tableName: "inventory_lot_splits";
1822
+ dataType: "string";
1823
+ columnType: "PgText";
1824
+ data: string;
1825
+ driverParam: string;
1826
+ notNull: true;
1827
+ hasDefault: false;
1828
+ isPrimaryKey: false;
1829
+ isAutoincrement: false;
1830
+ hasRuntimeDefault: false;
1831
+ enumValues: [string, ...string[]];
1832
+ baseColumn: never;
1833
+ identity: undefined;
1834
+ generated: undefined;
1835
+ }, {}, {}>;
1836
+ splitDate: import("drizzle-orm/pg-core").PgColumn<{
1837
+ name: "split_date";
1838
+ tableName: "inventory_lot_splits";
1839
+ dataType: "date";
1840
+ columnType: "PgTimestamp";
1841
+ data: Date;
1842
+ driverParam: string;
1843
+ notNull: true;
1844
+ hasDefault: false;
1845
+ isPrimaryKey: false;
1846
+ isAutoincrement: false;
1847
+ hasRuntimeDefault: false;
1848
+ enumValues: undefined;
1849
+ baseColumn: never;
1850
+ identity: undefined;
1851
+ generated: undefined;
1852
+ }, {}, {}>;
1853
+ splitReason: import("drizzle-orm/pg-core").PgColumn<{
1854
+ name: "split_reason";
1855
+ tableName: "inventory_lot_splits";
1856
+ dataType: "string";
1857
+ columnType: "PgText";
1858
+ data: string;
1859
+ driverParam: string;
1860
+ notNull: false;
1861
+ hasDefault: false;
1862
+ isPrimaryKey: false;
1863
+ isAutoincrement: false;
1864
+ hasRuntimeDefault: false;
1865
+ enumValues: [string, ...string[]];
1866
+ baseColumn: never;
1867
+ identity: undefined;
1868
+ generated: undefined;
1869
+ }, {}, {}>;
1870
+ originalQuantity: import("drizzle-orm/pg-core").PgColumn<{
1871
+ name: "original_quantity";
1872
+ tableName: "inventory_lot_splits";
1873
+ dataType: "number";
1874
+ columnType: "PgInteger";
1875
+ data: number;
1876
+ driverParam: string | number;
1877
+ notNull: true;
1878
+ hasDefault: false;
1879
+ isPrimaryKey: false;
1880
+ isAutoincrement: false;
1881
+ hasRuntimeDefault: false;
1882
+ enumValues: undefined;
1883
+ baseColumn: never;
1884
+ identity: undefined;
1885
+ generated: undefined;
1886
+ }, {}, {}>;
1887
+ childLots: import("drizzle-orm/pg-core").PgColumn<{
1888
+ name: "child_lots";
1889
+ tableName: "inventory_lot_splits";
1890
+ dataType: "json";
1891
+ columnType: "PgJsonb";
1892
+ data: {
1893
+ lotId: string;
1894
+ lotNumber: string;
1895
+ quantity: number;
1896
+ }[];
1897
+ driverParam: unknown;
1898
+ notNull: true;
1899
+ hasDefault: false;
1900
+ isPrimaryKey: false;
1901
+ isAutoincrement: false;
1902
+ hasRuntimeDefault: false;
1903
+ enumValues: undefined;
1904
+ baseColumn: never;
1905
+ identity: undefined;
1906
+ generated: undefined;
1907
+ }, {}, {
1908
+ $type: {
1909
+ lotId: string;
1910
+ lotNumber: string;
1911
+ quantity: number;
1912
+ }[];
1913
+ }>;
1914
+ performedBy: import("drizzle-orm/pg-core").PgColumn<{
1915
+ name: "performed_by";
1916
+ tableName: "inventory_lot_splits";
1917
+ dataType: "string";
1918
+ columnType: "PgText";
1919
+ data: string;
1920
+ driverParam: string;
1921
+ notNull: true;
1922
+ hasDefault: false;
1923
+ isPrimaryKey: false;
1924
+ isAutoincrement: false;
1925
+ hasRuntimeDefault: false;
1926
+ enumValues: [string, ...string[]];
1927
+ baseColumn: never;
1928
+ identity: undefined;
1929
+ generated: undefined;
1930
+ }, {}, {}>;
1931
+ notes: import("drizzle-orm/pg-core").PgColumn<{
1932
+ name: "notes";
1933
+ tableName: "inventory_lot_splits";
1934
+ dataType: "string";
1935
+ columnType: "PgText";
1936
+ data: string;
1937
+ driverParam: string;
1938
+ notNull: false;
1939
+ hasDefault: false;
1940
+ isPrimaryKey: false;
1941
+ isAutoincrement: false;
1942
+ hasRuntimeDefault: false;
1943
+ enumValues: [string, ...string[]];
1944
+ baseColumn: never;
1945
+ identity: undefined;
1946
+ generated: undefined;
1947
+ }, {}, {}>;
1948
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1949
+ name: "created_at";
1950
+ tableName: "inventory_lot_splits";
1951
+ dataType: "date";
1952
+ columnType: "PgTimestamp";
1953
+ data: Date;
1954
+ driverParam: string;
1955
+ notNull: true;
1956
+ hasDefault: true;
1957
+ isPrimaryKey: false;
1958
+ isAutoincrement: false;
1959
+ hasRuntimeDefault: false;
1960
+ enumValues: undefined;
1961
+ baseColumn: never;
1962
+ identity: undefined;
1963
+ generated: undefined;
1964
+ }, {}, {}>;
1965
+ };
1966
+ dialect: "pg";
1967
+ }>;
1968
+ export declare const inventoryLotMerges: import("drizzle-orm/pg-core").PgTableWithColumns<{
1969
+ name: "inventory_lot_merges";
1970
+ schema: undefined;
1971
+ columns: {
1972
+ id: import("drizzle-orm/pg-core").PgColumn<{
1973
+ name: "id";
1974
+ tableName: "inventory_lot_merges";
1975
+ dataType: "string";
1976
+ columnType: "PgText";
1977
+ data: string;
1978
+ driverParam: string;
1979
+ notNull: true;
1980
+ hasDefault: true;
1981
+ isPrimaryKey: true;
1982
+ isAutoincrement: false;
1983
+ hasRuntimeDefault: true;
1984
+ enumValues: [string, ...string[]];
1985
+ baseColumn: never;
1986
+ identity: undefined;
1987
+ generated: undefined;
1988
+ }, {}, {}>;
1989
+ targetLotId: import("drizzle-orm/pg-core").PgColumn<{
1990
+ name: "target_lot_id";
1991
+ tableName: "inventory_lot_merges";
1992
+ dataType: "string";
1993
+ columnType: "PgText";
1994
+ data: string;
1995
+ driverParam: string;
1996
+ notNull: true;
1997
+ hasDefault: false;
1998
+ isPrimaryKey: false;
1999
+ isAutoincrement: false;
2000
+ hasRuntimeDefault: false;
2001
+ enumValues: [string, ...string[]];
2002
+ baseColumn: never;
2003
+ identity: undefined;
2004
+ generated: undefined;
2005
+ }, {}, {}>;
2006
+ mergeDate: import("drizzle-orm/pg-core").PgColumn<{
2007
+ name: "merge_date";
2008
+ tableName: "inventory_lot_merges";
2009
+ dataType: "date";
2010
+ columnType: "PgTimestamp";
2011
+ data: Date;
2012
+ driverParam: string;
2013
+ notNull: true;
2014
+ hasDefault: false;
2015
+ isPrimaryKey: false;
2016
+ isAutoincrement: false;
2017
+ hasRuntimeDefault: false;
2018
+ enumValues: undefined;
2019
+ baseColumn: never;
2020
+ identity: undefined;
2021
+ generated: undefined;
2022
+ }, {}, {}>;
2023
+ mergeReason: import("drizzle-orm/pg-core").PgColumn<{
2024
+ name: "merge_reason";
2025
+ tableName: "inventory_lot_merges";
2026
+ dataType: "string";
2027
+ columnType: "PgText";
2028
+ data: string;
2029
+ driverParam: string;
2030
+ notNull: false;
2031
+ hasDefault: false;
2032
+ isPrimaryKey: false;
2033
+ isAutoincrement: false;
2034
+ hasRuntimeDefault: false;
2035
+ enumValues: [string, ...string[]];
2036
+ baseColumn: never;
2037
+ identity: undefined;
2038
+ generated: undefined;
2039
+ }, {}, {}>;
2040
+ sourceLots: import("drizzle-orm/pg-core").PgColumn<{
2041
+ name: "source_lots";
2042
+ tableName: "inventory_lot_merges";
2043
+ dataType: "json";
2044
+ columnType: "PgJsonb";
2045
+ data: {
2046
+ lotId: string;
2047
+ lotNumber: string;
2048
+ quantity: number;
2049
+ }[];
2050
+ driverParam: unknown;
2051
+ notNull: true;
2052
+ hasDefault: false;
2053
+ isPrimaryKey: false;
2054
+ isAutoincrement: false;
2055
+ hasRuntimeDefault: false;
2056
+ enumValues: undefined;
2057
+ baseColumn: never;
2058
+ identity: undefined;
2059
+ generated: undefined;
2060
+ }, {}, {
2061
+ $type: {
2062
+ lotId: string;
2063
+ lotNumber: string;
2064
+ quantity: number;
2065
+ }[];
2066
+ }>;
2067
+ totalQuantity: import("drizzle-orm/pg-core").PgColumn<{
2068
+ name: "total_quantity";
2069
+ tableName: "inventory_lot_merges";
2070
+ dataType: "number";
2071
+ columnType: "PgInteger";
2072
+ data: number;
2073
+ driverParam: string | number;
2074
+ notNull: true;
2075
+ hasDefault: false;
2076
+ isPrimaryKey: false;
2077
+ isAutoincrement: false;
2078
+ hasRuntimeDefault: false;
2079
+ enumValues: undefined;
2080
+ baseColumn: never;
2081
+ identity: undefined;
2082
+ generated: undefined;
2083
+ }, {}, {}>;
2084
+ compatibilityCheck: import("drizzle-orm/pg-core").PgColumn<{
2085
+ name: "compatibility_check";
2086
+ tableName: "inventory_lot_merges";
2087
+ dataType: "json";
2088
+ columnType: "PgJsonb";
2089
+ data: {
2090
+ compatible: boolean;
2091
+ checks: Array<{
2092
+ criterion: string;
2093
+ passed: boolean;
2094
+ details: string;
2095
+ }>;
2096
+ };
2097
+ driverParam: unknown;
2098
+ notNull: false;
2099
+ hasDefault: false;
2100
+ isPrimaryKey: false;
2101
+ isAutoincrement: false;
2102
+ hasRuntimeDefault: false;
2103
+ enumValues: undefined;
2104
+ baseColumn: never;
2105
+ identity: undefined;
2106
+ generated: undefined;
2107
+ }, {}, {
2108
+ $type: {
2109
+ compatible: boolean;
2110
+ checks: Array<{
2111
+ criterion: string;
2112
+ passed: boolean;
2113
+ details: string;
2114
+ }>;
2115
+ };
2116
+ }>;
2117
+ approvedBy: import("drizzle-orm/pg-core").PgColumn<{
2118
+ name: "approved_by";
2119
+ tableName: "inventory_lot_merges";
2120
+ dataType: "string";
2121
+ columnType: "PgText";
2122
+ data: string;
2123
+ driverParam: string;
2124
+ notNull: false;
2125
+ hasDefault: false;
2126
+ isPrimaryKey: false;
2127
+ isAutoincrement: false;
2128
+ hasRuntimeDefault: false;
2129
+ enumValues: [string, ...string[]];
2130
+ baseColumn: never;
2131
+ identity: undefined;
2132
+ generated: undefined;
2133
+ }, {}, {}>;
2134
+ performedBy: import("drizzle-orm/pg-core").PgColumn<{
2135
+ name: "performed_by";
2136
+ tableName: "inventory_lot_merges";
2137
+ dataType: "string";
2138
+ columnType: "PgText";
2139
+ data: string;
2140
+ driverParam: string;
2141
+ notNull: true;
2142
+ hasDefault: false;
2143
+ isPrimaryKey: false;
2144
+ isAutoincrement: false;
2145
+ hasRuntimeDefault: false;
2146
+ enumValues: [string, ...string[]];
2147
+ baseColumn: never;
2148
+ identity: undefined;
2149
+ generated: undefined;
2150
+ }, {}, {}>;
2151
+ notes: import("drizzle-orm/pg-core").PgColumn<{
2152
+ name: "notes";
2153
+ tableName: "inventory_lot_merges";
2154
+ dataType: "string";
2155
+ columnType: "PgText";
2156
+ data: string;
2157
+ driverParam: string;
2158
+ notNull: false;
2159
+ hasDefault: false;
2160
+ isPrimaryKey: false;
2161
+ isAutoincrement: false;
2162
+ hasRuntimeDefault: false;
2163
+ enumValues: [string, ...string[]];
2164
+ baseColumn: never;
2165
+ identity: undefined;
2166
+ generated: undefined;
2167
+ }, {}, {}>;
2168
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
2169
+ name: "created_at";
2170
+ tableName: "inventory_lot_merges";
2171
+ dataType: "date";
2172
+ columnType: "PgTimestamp";
2173
+ data: Date;
2174
+ driverParam: string;
2175
+ notNull: true;
2176
+ hasDefault: true;
2177
+ isPrimaryKey: false;
2178
+ isAutoincrement: false;
2179
+ hasRuntimeDefault: false;
2180
+ enumValues: undefined;
2181
+ baseColumn: never;
2182
+ identity: undefined;
2183
+ generated: undefined;
2184
+ }, {}, {}>;
2185
+ };
2186
+ dialect: "pg";
2187
+ }>;
2188
+ export declare const inventoryLotAlerts: import("drizzle-orm/pg-core").PgTableWithColumns<{
2189
+ name: "inventory_lot_alerts";
2190
+ schema: undefined;
2191
+ columns: {
2192
+ id: import("drizzle-orm/pg-core").PgColumn<{
2193
+ name: "id";
2194
+ tableName: "inventory_lot_alerts";
2195
+ dataType: "string";
2196
+ columnType: "PgText";
2197
+ data: string;
2198
+ driverParam: string;
2199
+ notNull: true;
2200
+ hasDefault: true;
2201
+ isPrimaryKey: true;
2202
+ isAutoincrement: false;
2203
+ hasRuntimeDefault: true;
2204
+ enumValues: [string, ...string[]];
2205
+ baseColumn: never;
2206
+ identity: undefined;
2207
+ generated: undefined;
2208
+ }, {}, {}>;
2209
+ lotId: import("drizzle-orm/pg-core").PgColumn<{
2210
+ name: "lot_id";
2211
+ tableName: "inventory_lot_alerts";
2212
+ dataType: "string";
2213
+ columnType: "PgText";
2214
+ data: string;
2215
+ driverParam: string;
2216
+ notNull: true;
2217
+ hasDefault: false;
2218
+ isPrimaryKey: false;
2219
+ isAutoincrement: false;
2220
+ hasRuntimeDefault: false;
2221
+ enumValues: [string, ...string[]];
2222
+ baseColumn: never;
2223
+ identity: undefined;
2224
+ generated: undefined;
2225
+ }, {}, {}>;
2226
+ storeId: import("drizzle-orm/pg-core").PgColumn<{
2227
+ name: "store_id";
2228
+ tableName: "inventory_lot_alerts";
2229
+ dataType: "string";
2230
+ columnType: "PgText";
2231
+ data: string;
2232
+ driverParam: string;
2233
+ notNull: true;
2234
+ hasDefault: false;
2235
+ isPrimaryKey: false;
2236
+ isAutoincrement: false;
2237
+ hasRuntimeDefault: false;
2238
+ enumValues: [string, ...string[]];
2239
+ baseColumn: never;
2240
+ identity: undefined;
2241
+ generated: undefined;
2242
+ }, {}, {}>;
2243
+ alertType: import("drizzle-orm/pg-core").PgColumn<{
2244
+ name: "alert_type";
2245
+ tableName: "inventory_lot_alerts";
2246
+ dataType: "string";
2247
+ columnType: "PgEnumColumn";
2248
+ data: "EXPIRED" | "EXPIRY_WARNING" | "EXPIRING_SOON" | "LOW_QUANTITY" | "QUALITY_ISSUE" | "RECALL_REQUIRED" | "TEMPERATURE_BREACH" | "STORAGE_VIOLATION" | "COMPLIANCE_DUE";
2249
+ driverParam: string;
2250
+ notNull: true;
2251
+ hasDefault: false;
2252
+ isPrimaryKey: false;
2253
+ isAutoincrement: false;
2254
+ hasRuntimeDefault: false;
2255
+ enumValues: ["EXPIRY_WARNING", "EXPIRING_SOON", "EXPIRED", "LOW_QUANTITY", "QUALITY_ISSUE", "RECALL_REQUIRED", "TEMPERATURE_BREACH", "STORAGE_VIOLATION", "COMPLIANCE_DUE"];
2256
+ baseColumn: never;
2257
+ identity: undefined;
2258
+ generated: undefined;
2259
+ }, {}, {}>;
2260
+ severity: import("drizzle-orm/pg-core").PgColumn<{
2261
+ name: "severity";
2262
+ tableName: "inventory_lot_alerts";
2263
+ dataType: "string";
2264
+ columnType: "PgEnumColumn";
2265
+ data: "CRITICAL" | "WARNING" | "INFO";
2266
+ driverParam: string;
2267
+ notNull: true;
2268
+ hasDefault: false;
2269
+ isPrimaryKey: false;
2270
+ isAutoincrement: false;
2271
+ hasRuntimeDefault: false;
2272
+ enumValues: ["INFO", "WARNING", "CRITICAL"];
2273
+ baseColumn: never;
2274
+ identity: undefined;
2275
+ generated: undefined;
2276
+ }, {}, {}>;
2277
+ message: import("drizzle-orm/pg-core").PgColumn<{
2278
+ name: "message";
2279
+ tableName: "inventory_lot_alerts";
2280
+ dataType: "string";
2281
+ columnType: "PgText";
2282
+ data: string;
2283
+ driverParam: string;
2284
+ notNull: true;
2285
+ hasDefault: false;
2286
+ isPrimaryKey: false;
2287
+ isAutoincrement: false;
2288
+ hasRuntimeDefault: false;
2289
+ enumValues: [string, ...string[]];
2290
+ baseColumn: never;
2291
+ identity: undefined;
2292
+ generated: undefined;
2293
+ }, {}, {}>;
2294
+ status: import("drizzle-orm/pg-core").PgColumn<{
2295
+ name: "status";
2296
+ tableName: "inventory_lot_alerts";
2297
+ dataType: "string";
2298
+ columnType: "PgEnumColumn";
2299
+ data: "PENDING" | "RESOLVED" | "DISMISSED" | "ACKNOWLEDGED";
2300
+ driverParam: string;
2301
+ notNull: true;
2302
+ hasDefault: true;
2303
+ isPrimaryKey: false;
2304
+ isAutoincrement: false;
2305
+ hasRuntimeDefault: false;
2306
+ enumValues: ["PENDING", "ACKNOWLEDGED", "RESOLVED", "DISMISSED"];
2307
+ baseColumn: never;
2308
+ identity: undefined;
2309
+ generated: undefined;
2310
+ }, {}, {}>;
2311
+ acknowledged: import("drizzle-orm/pg-core").PgColumn<{
2312
+ name: "acknowledged";
2313
+ tableName: "inventory_lot_alerts";
2314
+ dataType: "boolean";
2315
+ columnType: "PgBoolean";
2316
+ data: boolean;
2317
+ driverParam: boolean;
2318
+ notNull: true;
2319
+ hasDefault: true;
2320
+ isPrimaryKey: false;
2321
+ isAutoincrement: false;
2322
+ hasRuntimeDefault: false;
2323
+ enumValues: undefined;
2324
+ baseColumn: never;
2325
+ identity: undefined;
2326
+ generated: undefined;
2327
+ }, {}, {}>;
2328
+ acknowledgedBy: import("drizzle-orm/pg-core").PgColumn<{
2329
+ name: "acknowledged_by";
2330
+ tableName: "inventory_lot_alerts";
2331
+ dataType: "string";
2332
+ columnType: "PgText";
2333
+ data: string;
2334
+ driverParam: string;
2335
+ notNull: false;
2336
+ hasDefault: false;
2337
+ isPrimaryKey: false;
2338
+ isAutoincrement: false;
2339
+ hasRuntimeDefault: false;
2340
+ enumValues: [string, ...string[]];
2341
+ baseColumn: never;
2342
+ identity: undefined;
2343
+ generated: undefined;
2344
+ }, {}, {}>;
2345
+ acknowledgedAt: import("drizzle-orm/pg-core").PgColumn<{
2346
+ name: "acknowledged_at";
2347
+ tableName: "inventory_lot_alerts";
2348
+ dataType: "date";
2349
+ columnType: "PgTimestamp";
2350
+ data: Date;
2351
+ driverParam: string;
2352
+ notNull: false;
2353
+ hasDefault: false;
2354
+ isPrimaryKey: false;
2355
+ isAutoincrement: false;
2356
+ hasRuntimeDefault: false;
2357
+ enumValues: undefined;
2358
+ baseColumn: never;
2359
+ identity: undefined;
2360
+ generated: undefined;
2361
+ }, {}, {}>;
2362
+ resolved: import("drizzle-orm/pg-core").PgColumn<{
2363
+ name: "resolved";
2364
+ tableName: "inventory_lot_alerts";
2365
+ dataType: "boolean";
2366
+ columnType: "PgBoolean";
2367
+ data: boolean;
2368
+ driverParam: boolean;
2369
+ notNull: true;
2370
+ hasDefault: true;
2371
+ isPrimaryKey: false;
2372
+ isAutoincrement: false;
2373
+ hasRuntimeDefault: false;
2374
+ enumValues: undefined;
2375
+ baseColumn: never;
2376
+ identity: undefined;
2377
+ generated: undefined;
2378
+ }, {}, {}>;
2379
+ resolvedBy: import("drizzle-orm/pg-core").PgColumn<{
2380
+ name: "resolved_by";
2381
+ tableName: "inventory_lot_alerts";
2382
+ dataType: "string";
2383
+ columnType: "PgText";
2384
+ data: string;
2385
+ driverParam: string;
2386
+ notNull: false;
2387
+ hasDefault: false;
2388
+ isPrimaryKey: false;
2389
+ isAutoincrement: false;
2390
+ hasRuntimeDefault: false;
2391
+ enumValues: [string, ...string[]];
2392
+ baseColumn: never;
2393
+ identity: undefined;
2394
+ generated: undefined;
2395
+ }, {}, {}>;
2396
+ resolvedAt: import("drizzle-orm/pg-core").PgColumn<{
2397
+ name: "resolved_at";
2398
+ tableName: "inventory_lot_alerts";
2399
+ dataType: "date";
2400
+ columnType: "PgTimestamp";
2401
+ data: Date;
2402
+ driverParam: string;
2403
+ notNull: false;
2404
+ hasDefault: false;
2405
+ isPrimaryKey: false;
2406
+ isAutoincrement: false;
2407
+ hasRuntimeDefault: false;
2408
+ enumValues: undefined;
2409
+ baseColumn: never;
2410
+ identity: undefined;
2411
+ generated: undefined;
2412
+ }, {}, {}>;
2413
+ resolutionNotes: import("drizzle-orm/pg-core").PgColumn<{
2414
+ name: "resolution_notes";
2415
+ tableName: "inventory_lot_alerts";
2416
+ dataType: "string";
2417
+ columnType: "PgText";
2418
+ data: string;
2419
+ driverParam: string;
2420
+ notNull: false;
2421
+ hasDefault: false;
2422
+ isPrimaryKey: false;
2423
+ isAutoincrement: false;
2424
+ hasRuntimeDefault: false;
2425
+ enumValues: [string, ...string[]];
2426
+ baseColumn: never;
2427
+ identity: undefined;
2428
+ generated: undefined;
2429
+ }, {}, {}>;
2430
+ notificationSent: import("drizzle-orm/pg-core").PgColumn<{
2431
+ name: "notification_sent";
2432
+ tableName: "inventory_lot_alerts";
2433
+ dataType: "boolean";
2434
+ columnType: "PgBoolean";
2435
+ data: boolean;
2436
+ driverParam: boolean;
2437
+ notNull: true;
2438
+ hasDefault: true;
2439
+ isPrimaryKey: false;
2440
+ isAutoincrement: false;
2441
+ hasRuntimeDefault: false;
2442
+ enumValues: undefined;
2443
+ baseColumn: never;
2444
+ identity: undefined;
2445
+ generated: undefined;
2446
+ }, {}, {}>;
2447
+ notificationChannels: import("drizzle-orm/pg-core").PgColumn<{
2448
+ name: "notification_channels";
2449
+ tableName: "inventory_lot_alerts";
2450
+ dataType: "json";
2451
+ columnType: "PgJsonb";
2452
+ data: ("push" | "email" | "sms")[];
2453
+ driverParam: unknown;
2454
+ notNull: false;
2455
+ hasDefault: false;
2456
+ isPrimaryKey: false;
2457
+ isAutoincrement: false;
2458
+ hasRuntimeDefault: false;
2459
+ enumValues: undefined;
2460
+ baseColumn: never;
2461
+ identity: undefined;
2462
+ generated: undefined;
2463
+ }, {}, {
2464
+ $type: ("push" | "email" | "sms")[];
2465
+ }>;
2466
+ recipients: import("drizzle-orm/pg-core").PgColumn<{
2467
+ name: "recipients";
2468
+ tableName: "inventory_lot_alerts";
2469
+ dataType: "json";
2470
+ columnType: "PgJsonb";
2471
+ data: string[];
2472
+ driverParam: unknown;
2473
+ notNull: false;
2474
+ hasDefault: false;
2475
+ isPrimaryKey: false;
2476
+ isAutoincrement: false;
2477
+ hasRuntimeDefault: false;
2478
+ enumValues: undefined;
2479
+ baseColumn: never;
2480
+ identity: undefined;
2481
+ generated: undefined;
2482
+ }, {}, {
2483
+ $type: string[];
2484
+ }>;
2485
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
2486
+ name: "created_at";
2487
+ tableName: "inventory_lot_alerts";
2488
+ dataType: "date";
2489
+ columnType: "PgTimestamp";
2490
+ data: Date;
2491
+ driverParam: string;
2492
+ notNull: true;
2493
+ hasDefault: true;
2494
+ isPrimaryKey: false;
2495
+ isAutoincrement: false;
2496
+ hasRuntimeDefault: false;
2497
+ enumValues: undefined;
2498
+ baseColumn: never;
2499
+ identity: undefined;
2500
+ generated: undefined;
2501
+ }, {}, {}>;
2502
+ };
2503
+ dialect: "pg";
2504
+ }>;
2505
+ import { z } from "zod";
2506
+ export declare const LotSchema: z.ZodObject<{
2507
+ id: z.ZodString;
2508
+ storeId: z.ZodString;
2509
+ lotNumber: z.ZodString;
2510
+ batchNumber: z.ZodOptional<z.ZodString>;
2511
+ internalCode: z.ZodOptional<z.ZodString>;
2512
+ productId: z.ZodString;
2513
+ variantId: z.ZodOptional<z.ZodString>;
2514
+ sku: z.ZodString;
2515
+ locationId: z.ZodString;
2516
+ locationType: z.ZodEnum<["WAREHOUSE", "POS"]>;
2517
+ supplierId: z.ZodOptional<z.ZodString>;
2518
+ supplierLotNumber: z.ZodOptional<z.ZodString>;
2519
+ supplierBatchNumber: z.ZodOptional<z.ZodString>;
2520
+ supplierInvoiceNumber: z.ZodOptional<z.ZodString>;
2521
+ originalQuantity: z.ZodNumber;
2522
+ currentQuantity: z.ZodNumber;
2523
+ availableQuantity: z.ZodNumber;
2524
+ allocatedQuantity: z.ZodDefault<z.ZodNumber>;
2525
+ reservedQuantity: z.ZodDefault<z.ZodNumber>;
2526
+ quarantinedQuantity: z.ZodDefault<z.ZodNumber>;
2527
+ damagedQuantity: z.ZodDefault<z.ZodNumber>;
2528
+ soldQuantity: z.ZodDefault<z.ZodNumber>;
2529
+ returnedQuantity: z.ZodDefault<z.ZodNumber>;
2530
+ reorderPoint: z.ZodOptional<z.ZodNumber>;
2531
+ maxStockLevel: z.ZodOptional<z.ZodNumber>;
2532
+ safetyStock: z.ZodDefault<z.ZodNumber>;
2533
+ unitOfMeasure: z.ZodDefault<z.ZodString>;
2534
+ trackSerial: z.ZodDefault<z.ZodBoolean>;
2535
+ serialNumbers: z.ZodOptional<z.ZodArray<z.ZodObject<{
2536
+ serialNumber: z.ZodString;
2537
+ status: z.ZodEnum<["AVAILABLE", "SOLD", "RESERVED", "DAMAGED", "RETURNED"]>;
2538
+ soldTo: z.ZodOptional<z.ZodString>;
2539
+ soldDate: z.ZodOptional<z.ZodString>;
2540
+ reservedFor: z.ZodOptional<z.ZodString>;
2541
+ reservedDate: z.ZodOptional<z.ZodString>;
2542
+ }, "strip", z.ZodTypeAny, {
2543
+ status: "RESERVED" | "DAMAGED" | "RETURNED" | "AVAILABLE" | "SOLD";
2544
+ serialNumber: string;
2545
+ soldTo?: string | undefined;
2546
+ soldDate?: string | undefined;
2547
+ reservedFor?: string | undefined;
2548
+ reservedDate?: string | undefined;
2549
+ }, {
2550
+ status: "RESERVED" | "DAMAGED" | "RETURNED" | "AVAILABLE" | "SOLD";
2551
+ serialNumber: string;
2552
+ soldTo?: string | undefined;
2553
+ soldDate?: string | undefined;
2554
+ reservedFor?: string | undefined;
2555
+ reservedDate?: string | undefined;
2556
+ }>, "many">>;
2557
+ isInitialInventory: z.ZodDefault<z.ZodBoolean>;
2558
+ manufactureDate: z.ZodOptional<z.ZodDate>;
2559
+ expiryDate: z.ZodOptional<z.ZodDate>;
2560
+ bestBeforeDate: z.ZodOptional<z.ZodDate>;
2561
+ receivedDate: z.ZodDate;
2562
+ firstUseDate: z.ZodOptional<z.ZodDate>;
2563
+ lastMovementDate: z.ZodOptional<z.ZodDate>;
2564
+ status: z.ZodEnum<["PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"]>;
2565
+ qualityControlId: z.ZodOptional<z.ZodString>;
2566
+ qcCertificateNumber: z.ZodOptional<z.ZodString>;
2567
+ qcNotes: z.ZodOptional<z.ZodString>;
2568
+ unitCost: z.ZodOptional<z.ZodNumber>;
2569
+ landedCost: z.ZodOptional<z.ZodNumber>;
2570
+ totalCost: z.ZodOptional<z.ZodNumber>;
2571
+ currency: z.ZodDefault<z.ZodString>;
2572
+ notes: z.ZodOptional<z.ZodString>;
2573
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2574
+ customAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
2575
+ createdAt: z.ZodDate;
2576
+ updatedAt: z.ZodDate;
2577
+ createdBy: z.ZodOptional<z.ZodString>;
2578
+ updatedBy: z.ZodOptional<z.ZodString>;
2579
+ isActive: z.ZodDefault<z.ZodBoolean>;
2580
+ }, "strip", z.ZodTypeAny, {
2581
+ id: string;
2582
+ status: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED";
2583
+ storeId: string;
2584
+ currency: string;
2585
+ isActive: boolean;
2586
+ productId: string;
2587
+ sku: string;
2588
+ updatedAt: Date;
2589
+ createdAt: Date;
2590
+ locationId: string;
2591
+ locationType: "WAREHOUSE" | "POS";
2592
+ lotNumber: string;
2593
+ safetyStock: number;
2594
+ unitOfMeasure: string;
2595
+ receivedDate: Date;
2596
+ trackSerial: boolean;
2597
+ damagedQuantity: number;
2598
+ quarantinedQuantity: number;
2599
+ originalQuantity: number;
2600
+ currentQuantity: number;
2601
+ allocatedQuantity: number;
2602
+ soldQuantity: number;
2603
+ returnedQuantity: number;
2604
+ availableQuantity: number;
2605
+ reservedQuantity: number;
2606
+ isInitialInventory: boolean;
2607
+ createdBy?: string | undefined;
2608
+ variantId?: string | undefined;
2609
+ tags?: string[] | undefined;
2610
+ batchNumber?: string | undefined;
2611
+ notes?: string | undefined;
2612
+ expiryDate?: Date | undefined;
2613
+ unitCost?: number | undefined;
2614
+ updatedBy?: string | undefined;
2615
+ customAttributes?: Record<string, any> | undefined;
2616
+ serialNumbers?: {
2617
+ status: "RESERVED" | "DAMAGED" | "RETURNED" | "AVAILABLE" | "SOLD";
2618
+ serialNumber: string;
2619
+ soldTo?: string | undefined;
2620
+ soldDate?: string | undefined;
2621
+ reservedFor?: string | undefined;
2622
+ reservedDate?: string | undefined;
2623
+ }[] | undefined;
2624
+ reorderPoint?: number | undefined;
2625
+ maxStockLevel?: number | undefined;
2626
+ manufactureDate?: Date | undefined;
2627
+ lastMovementDate?: Date | undefined;
2628
+ supplierId?: string | undefined;
2629
+ totalCost?: number | undefined;
2630
+ internalCode?: string | undefined;
2631
+ supplierLotNumber?: string | undefined;
2632
+ supplierBatchNumber?: string | undefined;
2633
+ supplierInvoiceNumber?: string | undefined;
2634
+ bestBeforeDate?: Date | undefined;
2635
+ firstUseDate?: Date | undefined;
2636
+ qualityControlId?: string | undefined;
2637
+ qcCertificateNumber?: string | undefined;
2638
+ qcNotes?: string | undefined;
2639
+ landedCost?: number | undefined;
2640
+ }, {
2641
+ id: string;
2642
+ status: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED";
2643
+ storeId: string;
2644
+ productId: string;
2645
+ sku: string;
2646
+ updatedAt: Date;
2647
+ createdAt: Date;
2648
+ locationId: string;
2649
+ locationType: "WAREHOUSE" | "POS";
2650
+ lotNumber: string;
2651
+ receivedDate: Date;
2652
+ originalQuantity: number;
2653
+ currentQuantity: number;
2654
+ availableQuantity: number;
2655
+ currency?: string | undefined;
2656
+ isActive?: boolean | undefined;
2657
+ createdBy?: string | undefined;
2658
+ variantId?: string | undefined;
2659
+ tags?: string[] | undefined;
2660
+ batchNumber?: string | undefined;
2661
+ notes?: string | undefined;
2662
+ expiryDate?: Date | undefined;
2663
+ unitCost?: number | undefined;
2664
+ updatedBy?: string | undefined;
2665
+ customAttributes?: Record<string, any> | undefined;
2666
+ serialNumbers?: {
2667
+ status: "RESERVED" | "DAMAGED" | "RETURNED" | "AVAILABLE" | "SOLD";
2668
+ serialNumber: string;
2669
+ soldTo?: string | undefined;
2670
+ soldDate?: string | undefined;
2671
+ reservedFor?: string | undefined;
2672
+ reservedDate?: string | undefined;
2673
+ }[] | undefined;
2674
+ reorderPoint?: number | undefined;
2675
+ maxStockLevel?: number | undefined;
2676
+ safetyStock?: number | undefined;
2677
+ unitOfMeasure?: string | undefined;
2678
+ manufactureDate?: Date | undefined;
2679
+ lastMovementDate?: Date | undefined;
2680
+ supplierId?: string | undefined;
2681
+ trackSerial?: boolean | undefined;
2682
+ damagedQuantity?: number | undefined;
2683
+ quarantinedQuantity?: number | undefined;
2684
+ totalCost?: number | undefined;
2685
+ internalCode?: string | undefined;
2686
+ supplierLotNumber?: string | undefined;
2687
+ supplierBatchNumber?: string | undefined;
2688
+ supplierInvoiceNumber?: string | undefined;
2689
+ allocatedQuantity?: number | undefined;
2690
+ soldQuantity?: number | undefined;
2691
+ returnedQuantity?: number | undefined;
2692
+ reservedQuantity?: number | undefined;
2693
+ isInitialInventory?: boolean | undefined;
2694
+ bestBeforeDate?: Date | undefined;
2695
+ firstUseDate?: Date | undefined;
2696
+ qualityControlId?: string | undefined;
2697
+ qcCertificateNumber?: string | undefined;
2698
+ qcNotes?: string | undefined;
2699
+ landedCost?: number | undefined;
2700
+ }>;
2701
+ export declare const InitializeProductInventorySchema: z.ZodObject<{
2702
+ productId: z.ZodString;
2703
+ variantId: z.ZodOptional<z.ZodString>;
2704
+ sku: z.ZodOptional<z.ZodString>;
2705
+ locations: z.ZodArray<z.ZodObject<{
2706
+ locationId: z.ZodString;
2707
+ locationType: z.ZodEnum<["WAREHOUSE", "POS"]>;
2708
+ initialQuantity: z.ZodNumber;
2709
+ barcode: z.ZodOptional<z.ZodString>;
2710
+ reorderPoint: z.ZodOptional<z.ZodNumber>;
2711
+ maxStockLevel: z.ZodOptional<z.ZodNumber>;
2712
+ safetyStock: z.ZodDefault<z.ZodNumber>;
2713
+ unitOfMeasure: z.ZodDefault<z.ZodString>;
2714
+ unitCost: z.ZodOptional<z.ZodNumber>;
2715
+ landedCost: z.ZodOptional<z.ZodNumber>;
2716
+ expiryDate: z.ZodOptional<z.ZodDate>;
2717
+ manufactureDate: z.ZodOptional<z.ZodDate>;
2718
+ supplierId: z.ZodOptional<z.ZodString>;
2719
+ supplierLotNumber: z.ZodOptional<z.ZodString>;
2720
+ trackSerial: z.ZodDefault<z.ZodBoolean>;
2721
+ serialNumbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2722
+ notes: z.ZodOptional<z.ZodString>;
2723
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2724
+ }, "strip", z.ZodTypeAny, {
2725
+ locationId: string;
2726
+ locationType: "WAREHOUSE" | "POS";
2727
+ safetyStock: number;
2728
+ unitOfMeasure: string;
2729
+ trackSerial: boolean;
2730
+ initialQuantity: number;
2731
+ tags?: string[] | undefined;
2732
+ barcode?: string | undefined;
2733
+ notes?: string | undefined;
2734
+ expiryDate?: Date | undefined;
2735
+ unitCost?: number | undefined;
2736
+ serialNumbers?: string[] | undefined;
2737
+ reorderPoint?: number | undefined;
2738
+ maxStockLevel?: number | undefined;
2739
+ manufactureDate?: Date | undefined;
2740
+ supplierId?: string | undefined;
2741
+ supplierLotNumber?: string | undefined;
2742
+ landedCost?: number | undefined;
2743
+ }, {
2744
+ locationId: string;
2745
+ locationType: "WAREHOUSE" | "POS";
2746
+ initialQuantity: number;
2747
+ tags?: string[] | undefined;
2748
+ barcode?: string | undefined;
2749
+ notes?: string | undefined;
2750
+ expiryDate?: Date | undefined;
2751
+ unitCost?: number | undefined;
2752
+ serialNumbers?: string[] | undefined;
2753
+ reorderPoint?: number | undefined;
2754
+ maxStockLevel?: number | undefined;
2755
+ safetyStock?: number | undefined;
2756
+ unitOfMeasure?: string | undefined;
2757
+ manufactureDate?: Date | undefined;
2758
+ supplierId?: string | undefined;
2759
+ trackSerial?: boolean | undefined;
2760
+ supplierLotNumber?: string | undefined;
2761
+ landedCost?: number | undefined;
2762
+ }>, "many">;
2763
+ }, "strip", z.ZodTypeAny, {
2764
+ productId: string;
2765
+ locations: {
2766
+ locationId: string;
2767
+ locationType: "WAREHOUSE" | "POS";
2768
+ safetyStock: number;
2769
+ unitOfMeasure: string;
2770
+ trackSerial: boolean;
2771
+ initialQuantity: number;
2772
+ tags?: string[] | undefined;
2773
+ barcode?: string | undefined;
2774
+ notes?: string | undefined;
2775
+ expiryDate?: Date | undefined;
2776
+ unitCost?: number | undefined;
2777
+ serialNumbers?: string[] | undefined;
2778
+ reorderPoint?: number | undefined;
2779
+ maxStockLevel?: number | undefined;
2780
+ manufactureDate?: Date | undefined;
2781
+ supplierId?: string | undefined;
2782
+ supplierLotNumber?: string | undefined;
2783
+ landedCost?: number | undefined;
2784
+ }[];
2785
+ variantId?: string | undefined;
2786
+ sku?: string | undefined;
2787
+ }, {
2788
+ productId: string;
2789
+ locations: {
2790
+ locationId: string;
2791
+ locationType: "WAREHOUSE" | "POS";
2792
+ initialQuantity: number;
2793
+ tags?: string[] | undefined;
2794
+ barcode?: string | undefined;
2795
+ notes?: string | undefined;
2796
+ expiryDate?: Date | undefined;
2797
+ unitCost?: number | undefined;
2798
+ serialNumbers?: string[] | undefined;
2799
+ reorderPoint?: number | undefined;
2800
+ maxStockLevel?: number | undefined;
2801
+ safetyStock?: number | undefined;
2802
+ unitOfMeasure?: string | undefined;
2803
+ manufactureDate?: Date | undefined;
2804
+ supplierId?: string | undefined;
2805
+ trackSerial?: boolean | undefined;
2806
+ supplierLotNumber?: string | undefined;
2807
+ landedCost?: number | undefined;
2808
+ }[];
2809
+ variantId?: string | undefined;
2810
+ sku?: string | undefined;
2811
+ }>;
2812
+ export declare const CreateLotSchema: z.ZodObject<{
2813
+ storeId: z.ZodString;
2814
+ lotNumber: z.ZodOptional<z.ZodString>;
2815
+ batchNumber: z.ZodOptional<z.ZodString>;
2816
+ productId: z.ZodString;
2817
+ variantId: z.ZodOptional<z.ZodString>;
2818
+ sku: z.ZodString;
2819
+ barcode: z.ZodOptional<z.ZodString>;
2820
+ locationId: z.ZodString;
2821
+ locationType: z.ZodEnum<["WAREHOUSE", "POS"]>;
2822
+ supplierId: z.ZodOptional<z.ZodString>;
2823
+ supplierLotNumber: z.ZodOptional<z.ZodString>;
2824
+ supplierBatchNumber: z.ZodOptional<z.ZodString>;
2825
+ supplierInvoiceNumber: z.ZodOptional<z.ZodString>;
2826
+ originalQuantity: z.ZodNumber;
2827
+ reorderPoint: z.ZodOptional<z.ZodNumber>;
2828
+ maxStockLevel: z.ZodOptional<z.ZodNumber>;
2829
+ safetyStock: z.ZodDefault<z.ZodNumber>;
2830
+ unitOfMeasure: z.ZodDefault<z.ZodString>;
2831
+ expiryDate: z.ZodOptional<z.ZodDate>;
2832
+ manufactureDate: z.ZodOptional<z.ZodDate>;
2833
+ receivedDate: z.ZodDefault<z.ZodDate>;
2834
+ unitCost: z.ZodOptional<z.ZodNumber>;
2835
+ landedCost: z.ZodOptional<z.ZodNumber>;
2836
+ storageLocationId: z.ZodOptional<z.ZodString>;
2837
+ storageZone: z.ZodOptional<z.ZodString>;
2838
+ storageTempMin: z.ZodOptional<z.ZodNumber>;
2839
+ storageTempMax: z.ZodOptional<z.ZodNumber>;
2840
+ trackSerial: z.ZodDefault<z.ZodBoolean>;
2841
+ serialNumbers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2842
+ isInitialInventory: z.ZodDefault<z.ZodBoolean>;
2843
+ notes: z.ZodOptional<z.ZodString>;
2844
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2845
+ customAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
2846
+ createdBy: z.ZodString;
2847
+ }, "strip", z.ZodTypeAny, {
2848
+ storeId: string;
2849
+ createdBy: string;
2850
+ productId: string;
2851
+ sku: string;
2852
+ locationId: string;
2853
+ locationType: "WAREHOUSE" | "POS";
2854
+ safetyStock: number;
2855
+ unitOfMeasure: string;
2856
+ receivedDate: Date;
2857
+ trackSerial: boolean;
2858
+ originalQuantity: number;
2859
+ isInitialInventory: boolean;
2860
+ variantId?: string | undefined;
2861
+ tags?: string[] | undefined;
2862
+ batchNumber?: string | undefined;
2863
+ barcode?: string | undefined;
2864
+ notes?: string | undefined;
2865
+ expiryDate?: Date | undefined;
2866
+ unitCost?: number | undefined;
2867
+ lotNumber?: string | undefined;
2868
+ customAttributes?: Record<string, any> | undefined;
2869
+ serialNumbers?: string[] | undefined;
2870
+ reorderPoint?: number | undefined;
2871
+ maxStockLevel?: number | undefined;
2872
+ manufactureDate?: Date | undefined;
2873
+ supplierId?: string | undefined;
2874
+ supplierLotNumber?: string | undefined;
2875
+ supplierBatchNumber?: string | undefined;
2876
+ supplierInvoiceNumber?: string | undefined;
2877
+ storageLocationId?: string | undefined;
2878
+ storageZone?: string | undefined;
2879
+ storageTempMin?: number | undefined;
2880
+ storageTempMax?: number | undefined;
2881
+ landedCost?: number | undefined;
2882
+ }, {
2883
+ storeId: string;
2884
+ createdBy: string;
2885
+ productId: string;
2886
+ sku: string;
2887
+ locationId: string;
2888
+ locationType: "WAREHOUSE" | "POS";
2889
+ originalQuantity: number;
2890
+ variantId?: string | undefined;
2891
+ tags?: string[] | undefined;
2892
+ batchNumber?: string | undefined;
2893
+ barcode?: string | undefined;
2894
+ notes?: string | undefined;
2895
+ expiryDate?: Date | undefined;
2896
+ unitCost?: number | undefined;
2897
+ lotNumber?: string | undefined;
2898
+ customAttributes?: Record<string, any> | undefined;
2899
+ serialNumbers?: string[] | undefined;
2900
+ reorderPoint?: number | undefined;
2901
+ maxStockLevel?: number | undefined;
2902
+ safetyStock?: number | undefined;
2903
+ unitOfMeasure?: string | undefined;
2904
+ manufactureDate?: Date | undefined;
2905
+ receivedDate?: Date | undefined;
2906
+ supplierId?: string | undefined;
2907
+ trackSerial?: boolean | undefined;
2908
+ supplierLotNumber?: string | undefined;
2909
+ supplierBatchNumber?: string | undefined;
2910
+ supplierInvoiceNumber?: string | undefined;
2911
+ isInitialInventory?: boolean | undefined;
2912
+ storageLocationId?: string | undefined;
2913
+ storageZone?: string | undefined;
2914
+ storageTempMin?: number | undefined;
2915
+ storageTempMax?: number | undefined;
2916
+ landedCost?: number | undefined;
2917
+ }>;
2918
+ export declare const ReserveLotQuantitySchema: z.ZodObject<{
2919
+ lotId: z.ZodString;
2920
+ quantity: z.ZodNumber;
2921
+ orderId: z.ZodOptional<z.ZodString>;
2922
+ customerId: z.ZodOptional<z.ZodString>;
2923
+ reason: z.ZodString;
2924
+ expiresAt: z.ZodOptional<z.ZodDate>;
2925
+ notes: z.ZodOptional<z.ZodString>;
2926
+ performedBy: z.ZodString;
2927
+ }, "strip", z.ZodTypeAny, {
2928
+ reason: string;
2929
+ performedBy: string;
2930
+ quantity: number;
2931
+ lotId: string;
2932
+ customerId?: string | undefined;
2933
+ orderId?: string | undefined;
2934
+ notes?: string | undefined;
2935
+ expiresAt?: Date | undefined;
2936
+ }, {
2937
+ reason: string;
2938
+ performedBy: string;
2939
+ quantity: number;
2940
+ lotId: string;
2941
+ customerId?: string | undefined;
2942
+ orderId?: string | undefined;
2943
+ notes?: string | undefined;
2944
+ expiresAt?: Date | undefined;
2945
+ }>;
2946
+ export declare const ReleaseLotReservationSchema: z.ZodObject<{
2947
+ lotId: z.ZodString;
2948
+ quantity: z.ZodNumber;
2949
+ reservationId: z.ZodOptional<z.ZodString>;
2950
+ reason: z.ZodString;
2951
+ performedBy: z.ZodString;
2952
+ }, "strip", z.ZodTypeAny, {
2953
+ reason: string;
2954
+ performedBy: string;
2955
+ quantity: number;
2956
+ lotId: string;
2957
+ reservationId?: string | undefined;
2958
+ }, {
2959
+ reason: string;
2960
+ performedBy: string;
2961
+ quantity: number;
2962
+ lotId: string;
2963
+ reservationId?: string | undefined;
2964
+ }>;
2965
+ export declare const AdjustLotQuantitySchema: z.ZodObject<{
2966
+ lotId: z.ZodString;
2967
+ quantityChange: z.ZodNumber;
2968
+ adjustmentType: z.ZodEnum<["CYCLE_COUNT", "DAMAGE", "FOUND", "LOST", "CORRECTION", "THEFT", "WASTE", "SAMPLE", "EXPIRED", "RETURNED"]>;
2969
+ reason: z.ZodString;
2970
+ notes: z.ZodOptional<z.ZodString>;
2971
+ performedBy: z.ZodString;
2972
+ }, "strip", z.ZodTypeAny, {
2973
+ reason: string;
2974
+ performedBy: string;
2975
+ lotId: string;
2976
+ quantityChange: number;
2977
+ adjustmentType: "EXPIRED" | "RETURNED" | "LOST" | "WASTE" | "SAMPLE" | "CYCLE_COUNT" | "DAMAGE" | "FOUND" | "CORRECTION" | "THEFT";
2978
+ notes?: string | undefined;
2979
+ }, {
2980
+ reason: string;
2981
+ performedBy: string;
2982
+ lotId: string;
2983
+ quantityChange: number;
2984
+ adjustmentType: "EXPIRED" | "RETURNED" | "LOST" | "WASTE" | "SAMPLE" | "CYCLE_COUNT" | "DAMAGE" | "FOUND" | "CORRECTION" | "THEFT";
2985
+ notes?: string | undefined;
2986
+ }>;
2987
+ export declare const TransferLotSchema: z.ZodObject<{
2988
+ lotId: z.ZodString;
2989
+ toLocationId: z.ZodString;
2990
+ toLocationType: z.ZodEnum<["WAREHOUSE", "POS"]>;
2991
+ quantity: z.ZodOptional<z.ZodNumber>;
2992
+ splitIfPartial: z.ZodDefault<z.ZodBoolean>;
2993
+ reason: z.ZodString;
2994
+ notes: z.ZodOptional<z.ZodString>;
2995
+ expectedArrivalDate: z.ZodOptional<z.ZodDate>;
2996
+ performedBy: z.ZodString;
2997
+ }, "strip", z.ZodTypeAny, {
2998
+ reason: string;
2999
+ performedBy: string;
3000
+ toLocationId: string;
3001
+ toLocationType: "WAREHOUSE" | "POS";
3002
+ lotId: string;
3003
+ splitIfPartial: boolean;
3004
+ quantity?: number | undefined;
3005
+ notes?: string | undefined;
3006
+ expectedArrivalDate?: Date | undefined;
3007
+ }, {
3008
+ reason: string;
3009
+ performedBy: string;
3010
+ toLocationId: string;
3011
+ toLocationType: "WAREHOUSE" | "POS";
3012
+ lotId: string;
3013
+ quantity?: number | undefined;
3014
+ notes?: string | undefined;
3015
+ splitIfPartial?: boolean | undefined;
3016
+ expectedArrivalDate?: Date | undefined;
3017
+ }>;
3018
+ export declare const MergeLotsSchema: z.ZodObject<{
3019
+ targetLotId: z.ZodString;
3020
+ sourceLotIds: z.ZodArray<z.ZodString, "many">;
3021
+ reason: z.ZodString;
3022
+ performedBy: z.ZodString;
3023
+ approvedBy: z.ZodOptional<z.ZodString>;
3024
+ notes: z.ZodOptional<z.ZodString>;
3025
+ }, "strip", z.ZodTypeAny, {
3026
+ reason: string;
3027
+ performedBy: string;
3028
+ targetLotId: string;
3029
+ sourceLotIds: string[];
3030
+ notes?: string | undefined;
3031
+ approvedBy?: string | undefined;
3032
+ }, {
3033
+ reason: string;
3034
+ performedBy: string;
3035
+ targetLotId: string;
3036
+ sourceLotIds: string[];
3037
+ notes?: string | undefined;
3038
+ approvedBy?: string | undefined;
3039
+ }>;
3040
+ export declare const SplitLotSchema: z.ZodObject<{
3041
+ parentLotId: z.ZodString;
3042
+ splits: z.ZodArray<z.ZodObject<{
3043
+ quantity: z.ZodNumber;
3044
+ locationId: z.ZodOptional<z.ZodString>;
3045
+ locationType: z.ZodOptional<z.ZodEnum<["WAREHOUSE", "POS"]>>;
3046
+ notes: z.ZodOptional<z.ZodString>;
3047
+ }, "strip", z.ZodTypeAny, {
3048
+ quantity: number;
3049
+ locationId?: string | undefined;
3050
+ notes?: string | undefined;
3051
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3052
+ }, {
3053
+ quantity: number;
3054
+ locationId?: string | undefined;
3055
+ notes?: string | undefined;
3056
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3057
+ }>, "many">;
3058
+ reason: z.ZodString;
3059
+ performedBy: z.ZodString;
3060
+ }, "strip", z.ZodTypeAny, {
3061
+ reason: string;
3062
+ performedBy: string;
3063
+ parentLotId: string;
3064
+ splits: {
3065
+ quantity: number;
3066
+ locationId?: string | undefined;
3067
+ notes?: string | undefined;
3068
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3069
+ }[];
3070
+ }, {
3071
+ reason: string;
3072
+ performedBy: string;
3073
+ parentLotId: string;
3074
+ splits: {
3075
+ quantity: number;
3076
+ locationId?: string | undefined;
3077
+ notes?: string | undefined;
3078
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3079
+ }[];
3080
+ }>;
3081
+ export declare const GetLotsQuerySchema: z.ZodObject<{
3082
+ storeId: z.ZodString;
3083
+ productId: z.ZodOptional<z.ZodString>;
3084
+ variantId: z.ZodOptional<z.ZodString>;
3085
+ sku: z.ZodOptional<z.ZodString>;
3086
+ status: z.ZodOptional<z.ZodEnum<["PENDING", "ACTIVE", "QUARANTINED", "ALLOCATED", "EXPIRED", "RECALLED", "DEPLETED", "RETURNED", "DISPOSED"]>>;
3087
+ locationId: z.ZodOptional<z.ZodString>;
3088
+ locationType: z.ZodOptional<z.ZodEnum<["WAREHOUSE", "POS"]>>;
3089
+ qualityControlId: z.ZodOptional<z.ZodString>;
3090
+ expiringBefore: z.ZodOptional<z.ZodDate>;
3091
+ isInitialInventory: z.ZodOptional<z.ZodBoolean>;
3092
+ lowStock: z.ZodOptional<z.ZodBoolean>;
3093
+ page: z.ZodDefault<z.ZodNumber>;
3094
+ limit: z.ZodDefault<z.ZodNumber>;
3095
+ sortBy: z.ZodDefault<z.ZodEnum<["lotNumber", "receivedDate", "expiryDate", "currentQuantity", "availableQuantity", "status"]>>;
3096
+ sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
3097
+ }, "strip", z.ZodTypeAny, {
3098
+ storeId: string;
3099
+ limit: number;
3100
+ page: number;
3101
+ sortBy: "status" | "expiryDate" | "lotNumber" | "receivedDate" | "currentQuantity" | "availableQuantity";
3102
+ sortOrder: "asc" | "desc";
3103
+ status?: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED" | undefined;
3104
+ productId?: string | undefined;
3105
+ variantId?: string | undefined;
3106
+ sku?: string | undefined;
3107
+ lowStock?: boolean | undefined;
3108
+ expiringBefore?: Date | undefined;
3109
+ locationId?: string | undefined;
3110
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3111
+ isInitialInventory?: boolean | undefined;
3112
+ qualityControlId?: string | undefined;
3113
+ }, {
3114
+ storeId: string;
3115
+ status?: "PENDING" | "QUARANTINED" | "ACTIVE" | "EXPIRED" | "RETURNED" | "ALLOCATED" | "RECALLED" | "DEPLETED" | "DISPOSED" | undefined;
3116
+ productId?: string | undefined;
3117
+ variantId?: string | undefined;
3118
+ sku?: string | undefined;
3119
+ limit?: number | undefined;
3120
+ lowStock?: boolean | undefined;
3121
+ page?: number | undefined;
3122
+ sortBy?: "status" | "expiryDate" | "lotNumber" | "receivedDate" | "currentQuantity" | "availableQuantity" | undefined;
3123
+ sortOrder?: "asc" | "desc" | undefined;
3124
+ expiringBefore?: Date | undefined;
3125
+ locationId?: string | undefined;
3126
+ locationType?: "WAREHOUSE" | "POS" | undefined;
3127
+ isInitialInventory?: boolean | undefined;
3128
+ qualityControlId?: string | undefined;
3129
+ }>;
3130
+ export declare const GetAvailableLotsSchema: z.ZodObject<{
3131
+ storeId: z.ZodString;
3132
+ productId: z.ZodString;
3133
+ variantId: z.ZodOptional<z.ZodString>;
3134
+ quantity: z.ZodNumber;
3135
+ locationId: z.ZodOptional<z.ZodString>;
3136
+ selectionMethod: z.ZodDefault<z.ZodEnum<["FIFO", "FEFO", "LIFO"]>>;
3137
+ }, "strip", z.ZodTypeAny, {
3138
+ storeId: string;
3139
+ productId: string;
3140
+ quantity: number;
3141
+ selectionMethod: "FIFO" | "LIFO" | "FEFO";
3142
+ variantId?: string | undefined;
3143
+ locationId?: string | undefined;
3144
+ }, {
3145
+ storeId: string;
3146
+ productId: string;
3147
+ quantity: number;
3148
+ variantId?: string | undefined;
3149
+ locationId?: string | undefined;
3150
+ selectionMethod?: "FIFO" | "LIFO" | "FEFO" | undefined;
3151
+ }>;
3152
+ export declare const LotAnalyticsSchema: z.ZodObject<{
3153
+ productId: z.ZodString;
3154
+ totalLots: z.ZodNumber;
3155
+ totalQuantity: z.ZodNumber;
3156
+ availableQuantity: z.ZodNumber;
3157
+ allocatedQuantity: z.ZodNumber;
3158
+ reservedQuantity: z.ZodNumber;
3159
+ quarantinedQuantity: z.ZodNumber;
3160
+ damagedQuantity: z.ZodNumber;
3161
+ byLocation: z.ZodArray<z.ZodObject<{
3162
+ locationId: z.ZodString;
3163
+ locationType: z.ZodEnum<["WAREHOUSE", "POS"]>;
3164
+ lotCount: z.ZodNumber;
3165
+ totalQuantity: z.ZodNumber;
3166
+ availableQuantity: z.ZodNumber;
3167
+ }, "strip", z.ZodTypeAny, {
3168
+ locationId: string;
3169
+ locationType: "WAREHOUSE" | "POS";
3170
+ availableQuantity: number;
3171
+ totalQuantity: number;
3172
+ lotCount: number;
3173
+ }, {
3174
+ locationId: string;
3175
+ locationType: "WAREHOUSE" | "POS";
3176
+ availableQuantity: number;
3177
+ totalQuantity: number;
3178
+ lotCount: number;
3179
+ }>, "many">;
3180
+ byStatus: z.ZodRecord<z.ZodString, z.ZodNumber>;
3181
+ expiringLots: z.ZodArray<z.ZodObject<{
3182
+ lotId: z.ZodString;
3183
+ lotNumber: z.ZodString;
3184
+ expiryDate: z.ZodDate;
3185
+ daysUntilExpiry: z.ZodNumber;
3186
+ currentQuantity: z.ZodNumber;
3187
+ }, "strip", z.ZodTypeAny, {
3188
+ expiryDate: Date;
3189
+ lotNumber: string;
3190
+ lotId: string;
3191
+ currentQuantity: number;
3192
+ daysUntilExpiry: number;
3193
+ }, {
3194
+ expiryDate: Date;
3195
+ lotNumber: string;
3196
+ lotId: string;
3197
+ currentQuantity: number;
3198
+ daysUntilExpiry: number;
3199
+ }>, "many">;
3200
+ lowStockLots: z.ZodArray<z.ZodObject<{
3201
+ lotId: z.ZodString;
3202
+ lotNumber: z.ZodString;
3203
+ currentQuantity: z.ZodNumber;
3204
+ reorderPoint: z.ZodNumber;
3205
+ shortfall: z.ZodNumber;
3206
+ }, "strip", z.ZodTypeAny, {
3207
+ lotNumber: string;
3208
+ reorderPoint: number;
3209
+ lotId: string;
3210
+ currentQuantity: number;
3211
+ shortfall: number;
3212
+ }, {
3213
+ lotNumber: string;
3214
+ reorderPoint: number;
3215
+ lotId: string;
3216
+ currentQuantity: number;
3217
+ shortfall: number;
3218
+ }>, "many">;
3219
+ }, "strip", z.ZodTypeAny, {
3220
+ productId: string;
3221
+ damagedQuantity: number;
3222
+ quarantinedQuantity: number;
3223
+ allocatedQuantity: number;
3224
+ availableQuantity: number;
3225
+ reservedQuantity: number;
3226
+ totalQuantity: number;
3227
+ totalLots: number;
3228
+ byLocation: {
3229
+ locationId: string;
3230
+ locationType: "WAREHOUSE" | "POS";
3231
+ availableQuantity: number;
3232
+ totalQuantity: number;
3233
+ lotCount: number;
3234
+ }[];
3235
+ byStatus: Record<string, number>;
3236
+ expiringLots: {
3237
+ expiryDate: Date;
3238
+ lotNumber: string;
3239
+ lotId: string;
3240
+ currentQuantity: number;
3241
+ daysUntilExpiry: number;
3242
+ }[];
3243
+ lowStockLots: {
3244
+ lotNumber: string;
3245
+ reorderPoint: number;
3246
+ lotId: string;
3247
+ currentQuantity: number;
3248
+ shortfall: number;
3249
+ }[];
3250
+ }, {
3251
+ productId: string;
3252
+ damagedQuantity: number;
3253
+ quarantinedQuantity: number;
3254
+ allocatedQuantity: number;
3255
+ availableQuantity: number;
3256
+ reservedQuantity: number;
3257
+ totalQuantity: number;
3258
+ totalLots: number;
3259
+ byLocation: {
3260
+ locationId: string;
3261
+ locationType: "WAREHOUSE" | "POS";
3262
+ availableQuantity: number;
3263
+ totalQuantity: number;
3264
+ lotCount: number;
3265
+ }[];
3266
+ byStatus: Record<string, number>;
3267
+ expiringLots: {
3268
+ expiryDate: Date;
3269
+ lotNumber: string;
3270
+ lotId: string;
3271
+ currentQuantity: number;
3272
+ daysUntilExpiry: number;
3273
+ }[];
3274
+ lowStockLots: {
3275
+ lotNumber: string;
3276
+ reorderPoint: number;
3277
+ lotId: string;
3278
+ currentQuantity: number;
3279
+ shortfall: number;
3280
+ }[];
3281
+ }>;