@open-mercato/core 0.10.1-develop.7709.1.046124599c → 0.10.1-develop.7714.1.9dbb8200d8
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.
- package/.turbo/turbo-build.log +2 -2
- package/dist/generated/entities/asn/index.js +19 -0
- package/dist/generated/entities/asn/index.js.map +7 -0
- package/dist/generated/entities/putaway_task/index.js +25 -0
- package/dist/generated/entities/putaway_task/index.js.map +7 -0
- package/dist/generated/entities/receiving_line/index.js +21 -0
- package/dist/generated/entities/receiving_line/index.js.map +7 -0
- package/dist/generated/entities.ids.generated.js +4 -1
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +34 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/communication_channels/lib/sanitize-channel-html.js +22 -3
- package/dist/modules/communication_channels/lib/sanitize-channel-html.js.map +2 -2
- package/dist/modules/communication_channels/widgets/injection/channel-payload-renderer/widget.client.js +40 -11
- package/dist/modules/communication_channels/widgets/injection/channel-payload-renderer/widget.client.js.map +2 -2
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js +13 -2
- package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +2 -2
- package/dist/modules/wms/acl.js +2 -0
- package/dist/modules/wms/acl.js.map +2 -2
- package/dist/modules/wms/api/asns/[id]/complete/route.js +61 -0
- package/dist/modules/wms/api/asns/[id]/complete/route.js.map +7 -0
- package/dist/modules/wms/api/asns/[id]/receive/route.js +68 -0
- package/dist/modules/wms/api/asns/[id]/receive/route.js.map +7 -0
- package/dist/modules/wms/api/asns/route.js +197 -0
- package/dist/modules/wms/api/asns/route.js.map +7 -0
- package/dist/modules/wms/api/inventory/helpers.js +42 -34
- package/dist/modules/wms/api/inventory/helpers.js.map +2 -2
- package/dist/modules/wms/api/inventory/receive/route.js +1 -1
- package/dist/modules/wms/api/inventory/receive/route.js.map +2 -2
- package/dist/modules/wms/api/listEnrichers.js +23 -0
- package/dist/modules/wms/api/listEnrichers.js.map +2 -2
- package/dist/modules/wms/api/putaway-tasks/[id]/assign/route.js +56 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/assign/route.js.map +7 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/cancel/route.js +56 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/cancel/route.js.map +7 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/complete/route.js +65 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/complete/route.js.map +7 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/start/route.js +56 -0
- package/dist/modules/wms/api/putaway-tasks/[id]/start/route.js.map +7 -0
- package/dist/modules/wms/api/putaway-tasks/create-from-balance/route.js +51 -0
- package/dist/modules/wms/api/putaway-tasks/create-from-balance/route.js.map +7 -0
- package/dist/modules/wms/api/putaway-tasks/route.js +192 -0
- package/dist/modules/wms/api/putaway-tasks/route.js.map +7 -0
- package/dist/modules/wms/api/receiving-lines/route.js +180 -0
- package/dist/modules/wms/api/receiving-lines/route.js.map +7 -0
- package/dist/modules/wms/api/scan/putaway/route.js +104 -0
- package/dist/modules/wms/api/scan/putaway/route.js.map +7 -0
- package/dist/modules/wms/api/scan/receive/route.js +109 -0
- package/dist/modules/wms/api/scan/receive/route.js.map +7 -0
- package/dist/modules/wms/api/scan/resolve-location/route.js +89 -0
- package/dist/modules/wms/api/scan/resolve-location/route.js.map +7 -0
- package/dist/modules/wms/api/scan/resolve-lot/route.js +89 -0
- package/dist/modules/wms/api/scan/resolve-lot/route.js.map +7 -0
- package/dist/modules/wms/backend/wms/asns/[id]/page.js +9 -0
- package/dist/modules/wms/backend/wms/asns/[id]/page.js.map +7 -0
- package/dist/modules/wms/backend/wms/asns/[id]/page.meta.js +18 -0
- package/dist/modules/wms/backend/wms/asns/[id]/page.meta.js.map +7 -0
- package/dist/modules/wms/backend/wms/asns/page.js +9 -0
- package/dist/modules/wms/backend/wms/asns/page.js.map +7 -0
- package/dist/modules/wms/backend/wms/asns/page.meta.js +18 -0
- package/dist/modules/wms/backend/wms/asns/page.meta.js.map +7 -0
- package/dist/modules/wms/backend/wms/putaway/page.js +9 -0
- package/dist/modules/wms/backend/wms/putaway/page.js.map +7 -0
- package/dist/modules/wms/backend/wms/putaway/page.meta.js +18 -0
- package/dist/modules/wms/backend/wms/putaway/page.meta.js.map +7 -0
- package/dist/modules/wms/backend/wms/receiving/page.js +8 -0
- package/dist/modules/wms/backend/wms/receiving/page.js.map +7 -0
- package/dist/modules/wms/backend/wms/receiving/page.meta.js +18 -0
- package/dist/modules/wms/backend/wms/receiving/page.meta.js.map +7 -0
- package/dist/modules/wms/ce.js +27 -0
- package/dist/modules/wms/ce.js.map +2 -2
- package/dist/modules/wms/commands/asn.js +1746 -0
- package/dist/modules/wms/commands/asn.js.map +7 -0
- package/dist/modules/wms/commands/index.js +2 -0
- package/dist/modules/wms/commands/index.js.map +2 -2
- package/dist/modules/wms/commands/inventory-actions.js +347 -243
- package/dist/modules/wms/commands/inventory-actions.js.map +2 -2
- package/dist/modules/wms/commands/putaway.js +945 -0
- package/dist/modules/wms/commands/putaway.js.map +7 -0
- package/dist/modules/wms/commands/shared.js +51 -0
- package/dist/modules/wms/commands/shared.js.map +2 -2
- package/dist/modules/wms/components/backend/AssignPutawayTaskDialog.js +278 -0
- package/dist/modules/wms/components/backend/AssignPutawayTaskDialog.js.map +7 -0
- package/dist/modules/wms/components/backend/CompletePutawayTaskDialog.js +327 -0
- package/dist/modules/wms/components/backend/CompletePutawayTaskDialog.js.map +7 -0
- package/dist/modules/wms/components/backend/CreateAsnDialog.js +404 -0
- package/dist/modules/wms/components/backend/CreateAsnDialog.js.map +7 -0
- package/dist/modules/wms/components/backend/InventoryOperationsSection.js +16 -3
- package/dist/modules/wms/components/backend/InventoryOperationsSection.js.map +2 -2
- package/dist/modules/wms/components/backend/ReceiveAsnLineDialog.js +476 -0
- package/dist/modules/wms/components/backend/ReceiveAsnLineDialog.js.map +7 -0
- package/dist/modules/wms/components/backend/ReceiveInventoryDialog.js +2 -2
- package/dist/modules/wms/components/backend/ReceiveInventoryDialog.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsAsnDetailPage.js +524 -0
- package/dist/modules/wms/components/backend/WmsAsnDetailPage.js.map +7 -0
- package/dist/modules/wms/components/backend/WmsAsnsListPage.js +339 -0
- package/dist/modules/wms/components/backend/WmsAsnsListPage.js.map +7 -0
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +5 -6
- package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js +5 -6
- package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js +14 -10
- package/dist/modules/wms/components/backend/WmsOperationalDashboardPage.js.map +2 -2
- package/dist/modules/wms/components/backend/WmsPutawayQueuePage.js +598 -0
- package/dist/modules/wms/components/backend/WmsPutawayQueuePage.js.map +7 -0
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +5 -6
- package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
- package/dist/modules/wms/components/backend/asnCompleteOptimisticLock.js +32 -0
- package/dist/modules/wms/components/backend/asnCompleteOptimisticLock.js.map +7 -0
- package/dist/modules/wms/components/backend/asnReceivingLinesLoader.js +36 -0
- package/dist/modules/wms/components/backend/asnReceivingLinesLoader.js.map +7 -0
- package/dist/modules/wms/components/backend/inboundStatusUi.js +106 -0
- package/dist/modules/wms/components/backend/inboundStatusUi.js.map +7 -0
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js +17 -0
- package/dist/modules/wms/components/backend/inventoryMutationLoaders.js.map +2 -2
- package/dist/modules/wms/components/backend/putawayQueueOptimisticLock.js +14 -0
- package/dist/modules/wms/components/backend/putawayQueueOptimisticLock.js.map +7 -0
- package/dist/modules/wms/components/backend/useWmsInventoryMutationAccess.js +4 -0
- package/dist/modules/wms/components/backend/useWmsInventoryMutationAccess.js.map +2 -2
- package/dist/modules/wms/data/enrichers.js +117 -12
- package/dist/modules/wms/data/enrichers.js.map +2 -2
- package/dist/modules/wms/data/entities.js +150 -1
- package/dist/modules/wms/data/entities.js.map +2 -2
- package/dist/modules/wms/data/validators.js +214 -0
- package/dist/modules/wms/data/validators.js.map +2 -2
- package/dist/modules/wms/events.js +12 -1
- package/dist/modules/wms/events.js.map +2 -2
- package/dist/modules/wms/extension-points.js +3 -1
- package/dist/modules/wms/extension-points.js.map +2 -2
- package/dist/modules/wms/lib/asnReceiving.js +124 -0
- package/dist/modules/wms/lib/asnReceiving.js.map +7 -0
- package/dist/modules/wms/lib/asnVendor.js +52 -0
- package/dist/modules/wms/lib/asnVendor.js.map +7 -0
- package/dist/modules/wms/lib/flashMutationError.js +4 -0
- package/dist/modules/wms/lib/flashMutationError.js.map +2 -2
- package/dist/modules/wms/lib/inventoryDisplayUi.js +24 -0
- package/dist/modules/wms/lib/inventoryDisplayUi.js.map +2 -2
- package/dist/modules/wms/lib/inventoryPolicy.js +17 -0
- package/dist/modules/wms/lib/inventoryPolicy.js.map +2 -2
- package/dist/modules/wms/lib/loadOperationalDashboard.js +67 -1
- package/dist/modules/wms/lib/loadOperationalDashboard.js.map +2 -2
- package/dist/modules/wms/lib/putaway.js +141 -0
- package/dist/modules/wms/lib/putaway.js.map +7 -0
- package/dist/modules/wms/lib/roleFeatures.js +3 -1
- package/dist/modules/wms/lib/roleFeatures.js.map +2 -2
- package/dist/modules/wms/lib/salesOrderInventoryAutomation.js +99 -1
- package/dist/modules/wms/lib/salesOrderInventoryAutomation.js.map +2 -2
- package/dist/modules/wms/lib/scanResolve.js +147 -0
- package/dist/modules/wms/lib/scanResolve.js.map +7 -0
- package/dist/modules/wms/lib/wmsIntegrationToggles.js +1 -1
- package/dist/modules/wms/lib/wmsIntegrationToggles.js.map +2 -2
- package/dist/modules/wms/migrations/Migration20260812120000.js +43 -0
- package/dist/modules/wms/migrations/Migration20260812120000.js.map +7 -0
- package/dist/modules/wms/migrations/Migration20260812130000.js +30 -0
- package/dist/modules/wms/migrations/Migration20260812130000.js.map +7 -0
- package/dist/modules/wms/migrations/Migration20260822120000.js +17 -0
- package/dist/modules/wms/migrations/Migration20260822120000.js.map +7 -0
- package/dist/modules/wms/migrations/Migration20260822130000.js +17 -0
- package/dist/modules/wms/migrations/Migration20260822130000.js.map +7 -0
- package/dist/modules/wms/migrations/Migration20261029120000.js +13 -0
- package/dist/modules/wms/migrations/Migration20261029120000.js.map +7 -0
- package/dist/modules/wms/search.js +85 -0
- package/dist/modules/wms/search.js.map +2 -2
- package/dist/modules/wms/subscribers/asn-line-received-reevaluate-reservations.js +14 -0
- package/dist/modules/wms/subscribers/asn-line-received-reevaluate-reservations.js.map +7 -0
- package/dist/modules/wms/subscribers/invalidate-enricher-cache-asn.js +12 -0
- package/dist/modules/wms/subscribers/invalidate-enricher-cache-asn.js.map +7 -0
- package/dist/modules/wms/subscribers/procurement-goods-receipt-created.js +163 -0
- package/dist/modules/wms/subscribers/procurement-goods-receipt-created.js.map +7 -0
- package/dist/modules/wms/subscribers/putaway-completed-reevaluate-reservations.js +14 -0
- package/dist/modules/wms/subscribers/putaway-completed-reevaluate-reservations.js.map +7 -0
- package/dist/modules/wms/widgets/injection/sales-order-stock-context/widget.client.js +37 -8
- package/dist/modules/wms/widgets/injection/sales-order-stock-context/widget.client.js.map +2 -2
- package/generated/entities/asn/index.ts +8 -0
- package/generated/entities/putaway_task/index.ts +11 -0
- package/generated/entities/receiving_line/index.ts +9 -0
- package/generated/entities.ids.generated.ts +4 -1
- package/generated/entity-fields-registry.ts +34 -0
- package/package.json +7 -7
- package/src/modules/auth/i18n/de.json +2 -0
- package/src/modules/auth/i18n/en.json +2 -0
- package/src/modules/auth/i18n/es.json +2 -0
- package/src/modules/auth/i18n/ko.json +2 -0
- package/src/modules/auth/i18n/pl.json +2 -0
- package/src/modules/communication_channels/i18n/de.json +2 -0
- package/src/modules/communication_channels/i18n/en.json +2 -0
- package/src/modules/communication_channels/i18n/es.json +2 -0
- package/src/modules/communication_channels/i18n/ko.json +2 -0
- package/src/modules/communication_channels/i18n/pl.json +2 -0
- package/src/modules/communication_channels/lib/sanitize-channel-html.ts +23 -3
- package/src/modules/communication_channels/widgets/injection/channel-payload-renderer/widget.client.tsx +44 -12
- package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +16 -2
- package/src/modules/wms/acl.ts +2 -0
- package/src/modules/wms/api/asns/[id]/complete/route.ts +62 -0
- package/src/modules/wms/api/asns/[id]/receive/route.ts +74 -0
- package/src/modules/wms/api/asns/route.ts +200 -0
- package/src/modules/wms/api/inventory/helpers.ts +57 -34
- package/src/modules/wms/api/inventory/receive/route.ts +2 -1
- package/src/modules/wms/api/listEnrichers.ts +38 -0
- package/src/modules/wms/api/putaway-tasks/[id]/assign/route.ts +56 -0
- package/src/modules/wms/api/putaway-tasks/[id]/cancel/route.ts +56 -0
- package/src/modules/wms/api/putaway-tasks/[id]/complete/route.ts +66 -0
- package/src/modules/wms/api/putaway-tasks/[id]/start/route.ts +56 -0
- package/src/modules/wms/api/putaway-tasks/create-from-balance/route.ts +50 -0
- package/src/modules/wms/api/putaway-tasks/route.ts +199 -0
- package/src/modules/wms/api/receiving-lines/route.ts +180 -0
- package/src/modules/wms/api/scan/putaway/route.ts +108 -0
- package/src/modules/wms/api/scan/receive/route.ts +118 -0
- package/src/modules/wms/api/scan/resolve-location/route.ts +92 -0
- package/src/modules/wms/api/scan/resolve-lot/route.ts +92 -0
- package/src/modules/wms/backend/wms/asns/[id]/page.meta.ts +14 -0
- package/src/modules/wms/backend/wms/asns/[id]/page.tsx +5 -0
- package/src/modules/wms/backend/wms/asns/page.meta.ts +14 -0
- package/src/modules/wms/backend/wms/asns/page.tsx +5 -0
- package/src/modules/wms/backend/wms/putaway/page.meta.ts +14 -0
- package/src/modules/wms/backend/wms/putaway/page.tsx +5 -0
- package/src/modules/wms/backend/wms/receiving/page.meta.ts +14 -0
- package/src/modules/wms/backend/wms/receiving/page.tsx +5 -0
- package/src/modules/wms/ce.ts +27 -0
- package/src/modules/wms/commands/asn.ts +2122 -0
- package/src/modules/wms/commands/index.ts +2 -0
- package/src/modules/wms/commands/inventory-actions.ts +413 -243
- package/src/modules/wms/commands/putaway.ts +1169 -0
- package/src/modules/wms/commands/shared.ts +51 -0
- package/src/modules/wms/components/backend/AssignPutawayTaskDialog.tsx +328 -0
- package/src/modules/wms/components/backend/CompletePutawayTaskDialog.tsx +366 -0
- package/src/modules/wms/components/backend/CreateAsnDialog.tsx +427 -0
- package/src/modules/wms/components/backend/InventoryOperationsSection.tsx +20 -2
- package/src/modules/wms/components/backend/ReceiveAsnLineDialog.tsx +535 -0
- package/src/modules/wms/components/backend/ReceiveInventoryDialog.tsx +2 -2
- package/src/modules/wms/components/backend/WmsAsnDetailPage.tsx +647 -0
- package/src/modules/wms/components/backend/WmsAsnsListPage.tsx +407 -0
- package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +4 -5
- package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +4 -5
- package/src/modules/wms/components/backend/WmsOperationalDashboardPage.tsx +12 -8
- package/src/modules/wms/components/backend/WmsPutawayQueuePage.tsx +677 -0
- package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +4 -5
- package/src/modules/wms/components/backend/asnCompleteOptimisticLock.ts +52 -0
- package/src/modules/wms/components/backend/asnReceivingLinesLoader.ts +83 -0
- package/src/modules/wms/components/backend/inboundStatusUi.ts +154 -0
- package/src/modules/wms/components/backend/inventoryMutationLoaders.ts +20 -0
- package/src/modules/wms/components/backend/putawayQueueOptimisticLock.ts +20 -0
- package/src/modules/wms/components/backend/useWmsInventoryMutationAccess.ts +4 -0
- package/src/modules/wms/data/enrichers.ts +175 -13
- package/src/modules/wms/data/entities.ts +155 -0
- package/src/modules/wms/data/validators.ts +256 -0
- package/src/modules/wms/events.ts +11 -0
- package/src/modules/wms/extension-points.ts +2 -0
- package/src/modules/wms/i18n/de.json +205 -3
- package/src/modules/wms/i18n/en.json +205 -3
- package/src/modules/wms/i18n/es.json +205 -3
- package/src/modules/wms/i18n/ko.json +205 -3
- package/src/modules/wms/i18n/pl.json +205 -3
- package/src/modules/wms/lib/asnReceiving.ts +226 -0
- package/src/modules/wms/lib/asnVendor.ts +80 -0
- package/src/modules/wms/lib/flashMutationError.ts +4 -0
- package/src/modules/wms/lib/inventoryDisplayUi.ts +46 -0
- package/src/modules/wms/lib/inventoryPolicy.ts +31 -1
- package/src/modules/wms/lib/loadOperationalDashboard.ts +89 -1
- package/src/modules/wms/lib/putaway.ts +210 -0
- package/src/modules/wms/lib/roleFeatures.ts +2 -0
- package/src/modules/wms/lib/salesOrderInventoryAutomation.ts +150 -1
- package/src/modules/wms/lib/scanResolve.ts +185 -0
- package/src/modules/wms/lib/wmsIntegrationToggles.ts +2 -1
- package/src/modules/wms/migrations/.snapshot-open-mercato.json +1000 -0
- package/src/modules/wms/migrations/Migration20260812120000.ts +43 -0
- package/src/modules/wms/migrations/Migration20260812130000.ts +28 -0
- package/src/modules/wms/migrations/Migration20260822120000.ts +17 -0
- package/src/modules/wms/migrations/Migration20260822130000.ts +15 -0
- package/src/modules/wms/migrations/Migration20261029120000.ts +11 -0
- package/src/modules/wms/search.ts +95 -0
- package/src/modules/wms/subscribers/asn-line-received-reevaluate-reservations.ts +21 -0
- package/src/modules/wms/subscribers/invalidate-enricher-cache-asn.ts +12 -0
- package/src/modules/wms/subscribers/procurement-goods-receipt-created.ts +238 -0
- package/src/modules/wms/subscribers/putaway-completed-reevaluate-reservations.ts +21 -0
- package/src/modules/wms/widgets/injection/sales-order-stock-context/widget.client.tsx +63 -13
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/wms/data/entities.ts"],
|
|
4
|
-
"sourcesContent": ["import { Collection, OptionalProps } from '@mikro-orm/core'\nimport {\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryKey,\n Property,\n} from '@mikro-orm/decorators/legacy'\nimport type { JsonValue } from '@open-mercato/shared/lib/json'\n\nexport type WarehouseLocationType = 'zone' | 'aisle' | 'rack' | 'bin' | 'slot' | 'dock' | 'staging'\nexport type InventoryStrategy = 'fifo' | 'lifo' | 'fefo'\nexport type InventoryLotStatus = 'available' | 'hold' | 'quarantine' | 'expired'\nexport type InventoryReservationSourceType = 'order' | 'transfer' | 'manual'\nexport type InventoryReservationStatus = 'active' | 'released' | 'fulfilled'\nexport type InventoryMovementType =\n | 'receipt'\n | 'putaway'\n | 'pick'\n | 'pack'\n | 'ship'\n | 'adjust'\n | 'transfer'\n | 'cycle_count'\n | 'return_receive'\nexport type InventoryMovementReferenceType = 'po' | 'so' | 'transfer' | 'manual' | 'qc' | 'rma'\ntype WmsOptionalProps = 'createdAt' | 'updatedAt' | 'deletedAt' | 'metadata'\n\nabstract class WmsScopedEntity {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: JsonValue | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'wms_warehouses' })\n@Index({ name: 'wms_warehouses_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_warehouses_org_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouses_org_code_unique_idx\" on \"wms_warehouses\" (\"organization_id\", \"code\") where deleted_at is null',\n})\n@Index({\n name: 'wms_warehouses_org_primary_unique_idx',\n expression:\n 'create unique index \"wms_warehouses_org_primary_unique_idx\" on \"wms_warehouses\" (\"organization_id\") where deleted_at is null and is_primary = true',\n})\nexport class Warehouse extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'isActive' | 'isPrimary' | 'addressLine1' | 'city' | 'postalCode' | 'country' | 'timezone'\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\n\n @Property({ name: 'address_line1', type: 'text', nullable: true })\n addressLine1?: string | null\n\n @Property({ type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ type: 'text', nullable: true })\n country?: string | null\n\n @Property({ type: 'text', nullable: true })\n timezone?: string | null\n\n @OneToMany(() => WarehouseZone, (zone) => zone.warehouse)\n zones = new Collection<WarehouseZone>(this)\n\n @OneToMany(() => WarehouseLocation, (location) => location.warehouse)\n locations = new Collection<WarehouseLocation>(this)\n}\n\n@Entity({ tableName: 'wms_warehouse_zones' })\n@Index({ name: 'wms_warehouse_zones_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_warehouse_zones_warehouse_idx', properties: ['warehouse'] })\n@Index({\n name: 'wms_warehouse_zones_warehouse_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouse_zones_warehouse_code_unique_idx\" on \"wms_warehouse_zones\" (\"warehouse_id\", \"code\") where deleted_at is null',\n})\nexport class WarehouseZone extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'priority'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'integer', default: 0 })\n priority: number = 0\n}\n\n@Entity({ tableName: 'wms_warehouse_locations' })\n@Index({ name: 'wms_warehouse_locations_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_warehouse_locations_warehouse_idx', properties: ['warehouse'] })\n@Index({ name: 'wms_warehouse_locations_parent_idx', properties: ['parent'] })\n@Index({\n name: 'wms_warehouse_locations_warehouse_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouse_locations_warehouse_code_unique_idx\" on \"wms_warehouse_locations\" (\"warehouse_id\", \"code\") where deleted_at is null',\n})\nexport class WarehouseLocation extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'parent' | 'isActive' | 'capacityUnits' | 'capacityWeight' | 'constraints'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n type!: WarehouseLocationType\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'parent_id', nullable: true })\n parent?: WarehouseLocation | null\n\n @OneToMany(() => WarehouseLocation, (location) => location.parent)\n children = new Collection<WarehouseLocation>(this)\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'capacity_units', type: 'numeric', precision: 16, scale: 4, nullable: true })\n capacityUnits?: string | null\n\n @Property({ name: 'capacity_weight', type: 'numeric', precision: 16, scale: 4, nullable: true })\n capacityWeight?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n constraints?: JsonValue | null\n}\n\n@Entity({ tableName: 'wms_product_inventory_profiles' })\n@Index({ name: 'wms_inventory_profiles_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_inventory_profiles_variant_unique_idx',\n expression:\n 'create unique index \"wms_inventory_profiles_variant_unique_idx\" on \"wms_product_inventory_profiles\" (\"organization_id\", \"catalog_variant_id\") where deleted_at is null and catalog_variant_id is not null',\n})\n@Index({\n name: 'wms_inventory_profiles_product_unique_idx',\n expression:\n 'create unique index \"wms_inventory_profiles_product_unique_idx\" on \"wms_product_inventory_profiles\" (\"organization_id\", \"catalog_product_id\") where deleted_at is null and catalog_variant_id is null',\n})\nexport class ProductInventoryProfile extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'catalogVariantId' | 'trackLot' | 'trackSerial' | 'trackExpiration' | 'reorderPoint' | 'safetyStock'\n\n @Property({ name: 'catalog_product_id', type: 'uuid' })\n catalogProductId!: string\n\n @Property({ name: 'catalog_variant_id', type: 'uuid', nullable: true })\n catalogVariantId?: string | null\n\n @Property({ name: 'default_uom', type: 'text' })\n defaultUom!: string\n\n @Property({ name: 'track_lot', type: 'boolean', default: false })\n trackLot: boolean = false\n\n @Property({ name: 'track_serial', type: 'boolean', default: false })\n trackSerial: boolean = false\n\n @Property({ name: 'track_expiration', type: 'boolean', default: false })\n trackExpiration: boolean = false\n\n @Property({ name: 'default_strategy', type: 'text' })\n defaultStrategy!: InventoryStrategy\n\n @Property({ name: 'reorder_point', type: 'numeric', precision: 16, scale: 4, default: '0' })\n reorderPoint: string = '0'\n\n @Property({ name: 'safety_stock', type: 'numeric', precision: 16, scale: 4, default: '0' })\n safetyStock: string = '0'\n}\n\n@Entity({ tableName: 'wms_inventory_lots' })\n@Index({ name: 'wms_inventory_lots_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_lots_variant_idx', properties: ['catalogVariantId'] })\n@Index({\n name: 'wms_inventory_lots_variant_lot_unique_idx',\n expression:\n 'create unique index \"wms_inventory_lots_variant_lot_unique_idx\" on \"wms_inventory_lots\" (\"organization_id\", \"catalog_variant_id\", \"lot_number\") where deleted_at is null',\n})\nexport class InventoryLot extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'batchNumber' | 'manufacturedAt' | 'bestBeforeAt' | 'expiresAt'\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @Property({ type: 'text' })\n sku!: string\n\n @Property({ name: 'lot_number', type: 'text' })\n lotNumber!: string\n\n @Property({ name: 'batch_number', type: 'text', nullable: true })\n batchNumber?: string | null\n\n @Property({ name: 'manufactured_at', type: Date, nullable: true })\n manufacturedAt?: Date | null\n\n @Property({ name: 'best_before_at', type: Date, nullable: true })\n bestBeforeAt?: Date | null\n\n @Property({ name: 'expires_at', type: Date, nullable: true })\n expiresAt?: Date | null\n\n @Property({ type: 'text', default: 'available' })\n status: InventoryLotStatus = 'available'\n}\n\n@Entity({ tableName: 'wms_inventory_balances' })\n@Index({ name: 'wms_inventory_balances_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_balances_org_warehouse_variant_idx', properties: ['organizationId', 'warehouse', 'catalogVariantId'] })\n@Index({ name: 'wms_inventory_balances_org_location_variant_idx', properties: ['organizationId', 'location', 'catalogVariantId'] })\n@Index({\n name: 'wms_inventory_balances_org_lot_idx',\n expression:\n 'create index \"wms_inventory_balances_org_lot_idx\" on \"wms_inventory_balances\" (\"organization_id\", \"lot_id\") where lot_id is not null and deleted_at is null',\n})\n@Index({\n name: 'wms_inventory_balances_serial_unique_idx',\n expression:\n 'create unique index \"wms_inventory_balances_serial_unique_idx\" on \"wms_inventory_balances\" (\"organization_id\", \"warehouse_id\", \"location_id\", \"catalog_variant_id\", \"serial_number\") where serial_number is not null and deleted_at is null',\n})\nexport class InventoryBalance extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'lot' | 'serialNumber' | 'quantityAvailable'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_id' })\n location!: WarehouseLocation\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ name: 'quantity_on_hand', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityOnHand: string = '0'\n\n @Property({ name: 'quantity_reserved', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityReserved: string = '0'\n\n @Property({ name: 'quantity_allocated', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityAllocated: string = '0'\n\n @Property({\n name: 'quantity_available',\n type: 'numeric',\n precision: 16,\n scale: 4,\n generated: (cols) => `(${cols.quantityOnHand} - ${cols.quantityReserved} - ${cols.quantityAllocated}) stored`,\n hidden: true,\n })\n quantityAvailable!: string\n}\n\n@Entity({ tableName: 'wms_inventory_reservations' })\n@Index({ name: 'wms_inventory_reservations_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_reservations_source_idx', properties: ['organizationId', 'sourceType', 'sourceId'] })\n@Index({ name: 'wms_inventory_reservations_status_idx', properties: ['organizationId', 'warehouse', 'catalogVariantId', 'status'] })\n@Index({\n name: 'wms_inventory_reservations_idempotency_unique_idx',\n expression:\n 'create unique index \"wms_inventory_reservations_idempotency_unique_idx\" on \"wms_inventory_reservations\" (\"organization_id\", \"idempotency_key\") where idempotency_key is not null and deleted_at is null and status = \\'active\\'',\n})\nexport class InventoryReservation extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'lot' | 'serialNumber' | 'expiresAt' | 'idempotencyKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ type: 'numeric', precision: 16, scale: 4 })\n quantity!: string\n\n @Property({ name: 'source_type', type: 'text' })\n sourceType!: InventoryReservationSourceType\n\n @Property({ name: 'source_id', type: 'uuid' })\n sourceId!: string\n\n @Property({ name: 'expires_at', type: Date, nullable: true })\n expiresAt?: Date | null\n\n @Property({ type: 'text', default: 'active' })\n status: InventoryReservationStatus = 'active'\n\n @Property({ name: 'idempotency_key', type: 'text', nullable: true })\n idempotencyKey?: string | null\n}\n\n@Entity({ tableName: 'wms_sales_order_warehouse_assignments' })\n@Index({ name: 'wms_sowa_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_sowa_warehouse_idx',\n expression:\n 'create index \"wms_sowa_warehouse_idx\" on \"wms_sales_order_warehouse_assignments\" (\"warehouse_id\")',\n})\n@Index({\n name: 'wms_sowa_org_order_unique_idx',\n expression:\n 'create unique index \"wms_sowa_org_order_unique_idx\" on \"wms_sales_order_warehouse_assignments\" (\"organization_id\", \"sales_order_id\") where deleted_at is null',\n})\nexport class SalesOrderWarehouseAssignment extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'assignedBy' | 'notes'\n\n @Property({ name: 'sales_order_id', type: 'uuid' })\n salesOrderId!: string\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'assigned_by', type: 'uuid', nullable: true })\n assignedBy?: string | null\n\n @Property({ type: 'text', nullable: true })\n notes?: string | null\n}\n\n@Entity({ tableName: 'wms_inventory_movements' })\n@Index({ name: 'wms_inventory_movements_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_inventory_movements_variant_received_at_idx',\n expression:\n 'create index \"wms_inventory_movements_variant_received_at_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"catalog_variant_id\", \"received_at\" desc) where deleted_at is null',\n})\n@Index({ name: 'wms_inventory_movements_reference_idx', properties: ['organizationId', 'referenceType', 'referenceId'] })\n@Index({\n name: 'wms_inventory_movements_warehouse_performed_at_idx',\n expression:\n 'create index \"wms_inventory_movements_warehouse_performed_at_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"warehouse_id\", \"performed_at\" desc) where deleted_at is null',\n})\n@Index({\n name: 'wms_inventory_movements_idempotency_unique_idx',\n expression:\n 'create unique index \"wms_inventory_movements_idempotency_unique_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"idempotency_key\") where idempotency_key is not null and deleted_at is null',\n})\nexport class InventoryMovement extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'locationFrom' | 'locationTo' | 'lot' | 'serialNumber' | 'reason' | 'reasonCode' | 'idempotencyKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_from_id', nullable: true })\n locationFrom?: WarehouseLocation | null\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_to_id', nullable: true })\n locationTo?: WarehouseLocation | null\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ type: 'numeric', precision: 16, scale: 4 })\n quantity!: string\n\n @Property({ type: 'text' })\n type!: InventoryMovementType\n\n @Property({ name: 'reference_type', type: 'text' })\n referenceType!: InventoryMovementReferenceType\n\n @Property({ name: 'reference_id', type: 'uuid' })\n referenceId!: string\n\n @Property({ name: 'performed_by', type: 'uuid' })\n performedBy!: string\n\n @Property({ name: 'performed_at', type: Date })\n performedAt!: Date\n\n @Property({ name: 'received_at', type: Date })\n receivedAt!: Date\n\n @Property({ type: 'text', nullable: true })\n reason?: string | null\n\n @Property({ name: 'reason_code', type: 'text', nullable: true })\n reasonCode?: string | null\n\n @Property({ name: 'idempotency_key', type: 'text', nullable: true })\n idempotencyKey?: string | null\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { Collection, OptionalProps } from '@mikro-orm/core'\nimport {\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryKey,\n Property,\n} from '@mikro-orm/decorators/legacy'\nimport type { JsonValue } from '@open-mercato/shared/lib/json'\n\nexport type WarehouseLocationType = 'zone' | 'aisle' | 'rack' | 'bin' | 'slot' | 'dock' | 'staging'\nexport type InventoryStrategy = 'fifo' | 'lifo' | 'fefo'\nexport type InventoryLotStatus = 'available' | 'hold' | 'quarantine' | 'expired'\nexport type InventoryReservationSourceType = 'order' | 'transfer' | 'manual'\nexport type InventoryReservationStatus = 'active' | 'released' | 'fulfilled'\nexport type InventoryMovementType =\n | 'receipt'\n | 'putaway'\n | 'pick'\n | 'pack'\n | 'ship'\n | 'adjust'\n | 'transfer'\n | 'cycle_count'\n | 'return_receive'\nexport type InventoryMovementReferenceType = 'po' | 'so' | 'transfer' | 'manual' | 'qc' | 'rma'\nexport type AsnStatus = 'draft' | 'in_transit' | 'received' | 'closed'\nexport type ReceivingLineQcStatus = 'pending' | 'passed' | 'failed'\nexport type PutawayTaskStatus = 'open' | 'in_progress' | 'done' | 'cancelled'\ntype WmsOptionalProps = 'createdAt' | 'updatedAt' | 'deletedAt' | 'metadata'\n\nabstract class WmsScopedEntity {\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'jsonb', nullable: true })\n metadata?: JsonValue | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'wms_warehouses' })\n@Index({ name: 'wms_warehouses_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_warehouses_org_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouses_org_code_unique_idx\" on \"wms_warehouses\" (\"organization_id\", \"code\") where deleted_at is null',\n})\n@Index({\n name: 'wms_warehouses_org_primary_unique_idx',\n expression:\n 'create unique index \"wms_warehouses_org_primary_unique_idx\" on \"wms_warehouses\" (\"organization_id\") where deleted_at is null and is_primary = true',\n})\nexport class Warehouse extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'isActive' | 'isPrimary' | 'addressLine1' | 'city' | 'postalCode' | 'country' | 'timezone'\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'is_primary', type: 'boolean', default: false })\n isPrimary: boolean = false\n\n @Property({ name: 'address_line1', type: 'text', nullable: true })\n addressLine1?: string | null\n\n @Property({ type: 'text', nullable: true })\n city?: string | null\n\n @Property({ name: 'postal_code', type: 'text', nullable: true })\n postalCode?: string | null\n\n @Property({ type: 'text', nullable: true })\n country?: string | null\n\n @Property({ type: 'text', nullable: true })\n timezone?: string | null\n\n @OneToMany(() => WarehouseZone, (zone) => zone.warehouse)\n zones = new Collection<WarehouseZone>(this)\n\n @OneToMany(() => WarehouseLocation, (location) => location.warehouse)\n locations = new Collection<WarehouseLocation>(this)\n}\n\n@Entity({ tableName: 'wms_warehouse_zones' })\n@Index({ name: 'wms_warehouse_zones_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_warehouse_zones_warehouse_idx', properties: ['warehouse'] })\n@Index({\n name: 'wms_warehouse_zones_warehouse_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouse_zones_warehouse_code_unique_idx\" on \"wms_warehouse_zones\" (\"warehouse_id\", \"code\") where deleted_at is null',\n})\nexport class WarehouseZone extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'priority'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'integer', default: 0 })\n priority: number = 0\n}\n\n@Entity({ tableName: 'wms_warehouse_locations' })\n@Index({ name: 'wms_warehouse_locations_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_warehouse_locations_warehouse_idx', properties: ['warehouse'] })\n@Index({ name: 'wms_warehouse_locations_parent_idx', properties: ['parent'] })\n@Index({\n name: 'wms_warehouse_locations_warehouse_code_unique_idx',\n expression:\n 'create unique index \"wms_warehouse_locations_warehouse_code_unique_idx\" on \"wms_warehouse_locations\" (\"warehouse_id\", \"code\") where deleted_at is null',\n})\nexport class WarehouseLocation extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'parent' | 'isActive' | 'capacityUnits' | 'capacityWeight' | 'constraints'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n type!: WarehouseLocationType\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'parent_id', nullable: true })\n parent?: WarehouseLocation | null\n\n @OneToMany(() => WarehouseLocation, (location) => location.parent)\n children = new Collection<WarehouseLocation>(this)\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'capacity_units', type: 'numeric', precision: 16, scale: 4, nullable: true })\n capacityUnits?: string | null\n\n @Property({ name: 'capacity_weight', type: 'numeric', precision: 16, scale: 4, nullable: true })\n capacityWeight?: string | null\n\n @Property({ type: 'jsonb', nullable: true })\n constraints?: JsonValue | null\n}\n\n@Entity({ tableName: 'wms_product_inventory_profiles' })\n@Index({ name: 'wms_inventory_profiles_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_inventory_profiles_variant_unique_idx',\n expression:\n 'create unique index \"wms_inventory_profiles_variant_unique_idx\" on \"wms_product_inventory_profiles\" (\"organization_id\", \"catalog_variant_id\") where deleted_at is null and catalog_variant_id is not null',\n})\n@Index({\n name: 'wms_inventory_profiles_product_unique_idx',\n expression:\n 'create unique index \"wms_inventory_profiles_product_unique_idx\" on \"wms_product_inventory_profiles\" (\"organization_id\", \"catalog_product_id\") where deleted_at is null and catalog_variant_id is null',\n})\nexport class ProductInventoryProfile extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'catalogVariantId' | 'trackLot' | 'trackSerial' | 'trackExpiration' | 'reorderPoint' | 'safetyStock'\n\n @Property({ name: 'catalog_product_id', type: 'uuid' })\n catalogProductId!: string\n\n @Property({ name: 'catalog_variant_id', type: 'uuid', nullable: true })\n catalogVariantId?: string | null\n\n @Property({ name: 'default_uom', type: 'text' })\n defaultUom!: string\n\n @Property({ name: 'track_lot', type: 'boolean', default: false })\n trackLot: boolean = false\n\n @Property({ name: 'track_serial', type: 'boolean', default: false })\n trackSerial: boolean = false\n\n @Property({ name: 'track_expiration', type: 'boolean', default: false })\n trackExpiration: boolean = false\n\n @Property({ name: 'default_strategy', type: 'text' })\n defaultStrategy!: InventoryStrategy\n\n @Property({ name: 'reorder_point', type: 'numeric', precision: 16, scale: 4, default: '0' })\n reorderPoint: string = '0'\n\n @Property({ name: 'safety_stock', type: 'numeric', precision: 16, scale: 4, default: '0' })\n safetyStock: string = '0'\n}\n\n@Entity({ tableName: 'wms_inventory_lots' })\n@Index({ name: 'wms_inventory_lots_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_lots_variant_idx', properties: ['catalogVariantId'] })\n@Index({\n name: 'wms_inventory_lots_variant_lot_unique_idx',\n expression:\n 'create unique index \"wms_inventory_lots_variant_lot_unique_idx\" on \"wms_inventory_lots\" (\"organization_id\", \"catalog_variant_id\", \"lot_number\") where deleted_at is null',\n})\nexport class InventoryLot extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'batchNumber' | 'manufacturedAt' | 'bestBeforeAt' | 'expiresAt'\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @Property({ type: 'text' })\n sku!: string\n\n @Property({ name: 'lot_number', type: 'text' })\n lotNumber!: string\n\n @Property({ name: 'batch_number', type: 'text', nullable: true })\n batchNumber?: string | null\n\n @Property({ name: 'manufactured_at', type: Date, nullable: true })\n manufacturedAt?: Date | null\n\n @Property({ name: 'best_before_at', type: Date, nullable: true })\n bestBeforeAt?: Date | null\n\n @Property({ name: 'expires_at', type: Date, nullable: true })\n expiresAt?: Date | null\n\n @Property({ type: 'text', default: 'available' })\n status: InventoryLotStatus = 'available'\n}\n\n@Entity({ tableName: 'wms_inventory_balances' })\n@Index({ name: 'wms_inventory_balances_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_balances_org_warehouse_variant_idx', properties: ['organizationId', 'warehouse', 'catalogVariantId'] })\n@Index({ name: 'wms_inventory_balances_org_location_variant_idx', properties: ['organizationId', 'location', 'catalogVariantId'] })\n@Index({\n name: 'wms_inventory_balances_org_lot_idx',\n expression:\n 'create index \"wms_inventory_balances_org_lot_idx\" on \"wms_inventory_balances\" (\"organization_id\", \"lot_id\") where lot_id is not null and deleted_at is null',\n})\n@Index({\n name: 'wms_inventory_balances_serial_unique_idx',\n expression:\n 'create unique index \"wms_inventory_balances_serial_unique_idx\" on \"wms_inventory_balances\" (\"organization_id\", \"warehouse_id\", \"location_id\", \"catalog_variant_id\", \"serial_number\") where serial_number is not null and deleted_at is null',\n})\nexport class InventoryBalance extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'lot' | 'serialNumber' | 'quantityAvailable'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_id' })\n location!: WarehouseLocation\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ name: 'quantity_on_hand', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityOnHand: string = '0'\n\n @Property({ name: 'quantity_reserved', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityReserved: string = '0'\n\n @Property({ name: 'quantity_allocated', type: 'numeric', precision: 16, scale: 4, default: '0' })\n quantityAllocated: string = '0'\n\n @Property({\n name: 'quantity_available',\n type: 'numeric',\n precision: 16,\n scale: 4,\n generated: (cols) => `(${cols.quantityOnHand} - ${cols.quantityReserved} - ${cols.quantityAllocated}) stored`,\n hidden: true,\n })\n quantityAvailable!: string\n}\n\n@Entity({ tableName: 'wms_inventory_reservations' })\n@Index({ name: 'wms_inventory_reservations_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_inventory_reservations_source_idx', properties: ['organizationId', 'sourceType', 'sourceId'] })\n@Index({ name: 'wms_inventory_reservations_status_idx', properties: ['organizationId', 'warehouse', 'catalogVariantId', 'status'] })\n@Index({\n name: 'wms_inventory_reservations_idempotency_unique_idx',\n expression:\n 'create unique index \"wms_inventory_reservations_idempotency_unique_idx\" on \"wms_inventory_reservations\" (\"organization_id\", \"idempotency_key\") where idempotency_key is not null and deleted_at is null and status = \\'active\\'',\n})\nexport class InventoryReservation extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'lot' | 'serialNumber' | 'expiresAt' | 'idempotencyKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ type: 'numeric', precision: 16, scale: 4 })\n quantity!: string\n\n @Property({ name: 'source_type', type: 'text' })\n sourceType!: InventoryReservationSourceType\n\n @Property({ name: 'source_id', type: 'uuid' })\n sourceId!: string\n\n @Property({ name: 'expires_at', type: Date, nullable: true })\n expiresAt?: Date | null\n\n @Property({ type: 'text', default: 'active' })\n status: InventoryReservationStatus = 'active'\n\n @Property({ name: 'idempotency_key', type: 'text', nullable: true })\n idempotencyKey?: string | null\n}\n\n@Entity({ tableName: 'wms_sales_order_warehouse_assignments' })\n@Index({ name: 'wms_sowa_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_sowa_warehouse_idx',\n expression:\n 'create index \"wms_sowa_warehouse_idx\" on \"wms_sales_order_warehouse_assignments\" (\"warehouse_id\")',\n})\n@Index({\n name: 'wms_sowa_org_order_unique_idx',\n expression:\n 'create unique index \"wms_sowa_org_order_unique_idx\" on \"wms_sales_order_warehouse_assignments\" (\"organization_id\", \"sales_order_id\") where deleted_at is null',\n})\nexport class SalesOrderWarehouseAssignment extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'assignedBy' | 'notes'\n\n @Property({ name: 'sales_order_id', type: 'uuid' })\n salesOrderId!: string\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'assigned_by', type: 'uuid', nullable: true })\n assignedBy?: string | null\n\n @Property({ type: 'text', nullable: true })\n notes?: string | null\n}\n\n@Entity({ tableName: 'wms_inventory_movements' })\n@Index({ name: 'wms_inventory_movements_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_inventory_movements_variant_received_at_idx',\n expression:\n 'create index \"wms_inventory_movements_variant_received_at_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"catalog_variant_id\", \"received_at\" desc) where deleted_at is null',\n})\n@Index({ name: 'wms_inventory_movements_reference_idx', properties: ['organizationId', 'referenceType', 'referenceId'] })\n@Index({\n name: 'wms_inventory_movements_warehouse_performed_at_idx',\n expression:\n 'create index \"wms_inventory_movements_warehouse_performed_at_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"warehouse_id\", \"performed_at\" desc) where deleted_at is null',\n})\n@Index({\n name: 'wms_inventory_movements_idempotency_unique_idx',\n expression:\n 'create unique index \"wms_inventory_movements_idempotency_unique_idx\" on \"wms_inventory_movements\" (\"organization_id\", \"idempotency_key\") where idempotency_key is not null and deleted_at is null',\n})\nexport class InventoryMovement extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'locationFrom' | 'locationTo' | 'lot' | 'serialNumber' | 'reason' | 'reasonCode' | 'idempotencyKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_from_id', nullable: true })\n locationFrom?: WarehouseLocation | null\n\n @ManyToOne(() => WarehouseLocation, { fieldName: 'location_to_id', nullable: true })\n locationTo?: WarehouseLocation | null\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @ManyToOne(() => InventoryLot, { fieldName: 'lot_id', nullable: true })\n lot?: InventoryLot | null\n\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ type: 'numeric', precision: 16, scale: 4 })\n quantity!: string\n\n @Property({ type: 'text' })\n type!: InventoryMovementType\n\n @Property({ name: 'reference_type', type: 'text' })\n referenceType!: InventoryMovementReferenceType\n\n @Property({ name: 'reference_id', type: 'uuid' })\n referenceId!: string\n\n @Property({ name: 'performed_by', type: 'uuid' })\n performedBy!: string\n\n @Property({ name: 'performed_at', type: Date })\n performedAt!: Date\n\n @Property({ name: 'received_at', type: Date })\n receivedAt!: Date\n\n @Property({ type: 'text', nullable: true })\n reason?: string | null\n\n @Property({ name: 'reason_code', type: 'text', nullable: true })\n reasonCode?: string | null\n\n @Property({ name: 'idempotency_key', type: 'text', nullable: true })\n idempotencyKey?: string | null\n}\n\n@Entity({ tableName: 'wms_asns' })\n@Index({ name: 'wms_asns_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_asns_org_warehouse_status_expected_idx',\n properties: ['organizationId', 'warehouse', 'status', 'expectedAt'],\n})\n@Index({\n name: 'wms_asns_org_vendor_expected_idx',\n expression:\n 'create index \"wms_asns_org_vendor_expected_idx\" on \"wms_asns\" (\"organization_id\", \"vendor_id\", \"expected_at\" desc) where deleted_at is null',\n})\n@Index({\n name: 'wms_asns_org_source_key_unique_idx',\n expression:\n 'create unique index \"wms_asns_org_source_key_unique_idx\" on \"wms_asns\" (\"organization_id\", \"source_key\") where source_key is not null and deleted_at is null',\n})\nexport class Asn extends WmsScopedEntity {\n [OptionalProps]?: WmsOptionalProps | 'vendorId' | 'referenceNumber' | 'notes' | 'status' | 'sourceKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'vendor_id', type: 'uuid', nullable: true })\n vendorId?: string | null\n\n @Property({ type: 'text', default: 'draft' })\n status: AsnStatus = 'draft'\n\n @Property({ name: 'expected_at', type: Date })\n expectedAt!: Date\n\n @Property({ name: 'reference_number', type: 'text', nullable: true })\n referenceNumber?: string | null\n\n /** Stable external linkage key (e.g. procurement goods receipt) for find-or-create. */\n @Property({ name: 'source_key', type: 'text', nullable: true })\n sourceKey?: string | null\n\n @Property({ type: 'text', nullable: true })\n notes?: string | null\n\n @OneToMany(() => ReceivingLine, (line) => line.asn)\n lines = new Collection<ReceivingLine>(this)\n}\n\n@Entity({ tableName: 'wms_receiving_lines' })\n@Index({ name: 'wms_receiving_lines_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({ name: 'wms_receiving_lines_org_asn_idx', properties: ['organizationId', 'asn'] })\n@Index({\n name: 'wms_receiving_lines_org_variant_qc_idx',\n properties: ['organizationId', 'catalogVariantId', 'qcStatus'],\n})\nexport class ReceivingLine extends WmsScopedEntity {\n [OptionalProps]?:\n | WmsOptionalProps\n | 'lotNumber'\n | 'serialNumbers'\n | 'targetStagingLocationId'\n | 'rejectionReason'\n | 'receivedQty'\n | 'qcStatus'\n\n @ManyToOne(() => Asn, { fieldName: 'asn_id' })\n asn!: Asn\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @Property({ name: 'expected_qty', type: 'numeric', precision: 16, scale: 4 })\n expectedQty!: string\n\n @Property({ name: 'received_qty', type: 'numeric', precision: 16, scale: 4, default: '0' })\n receivedQty: string = '0'\n\n @Property({ name: 'lot_number', type: 'text', nullable: true })\n lotNumber?: string | null\n\n @Property({ name: 'serial_numbers', type: 'jsonb', nullable: true })\n serialNumbers?: string[] | null\n\n @Property({ name: 'qc_status', type: 'text', default: 'pending' })\n qcStatus: ReceivingLineQcStatus = 'pending'\n\n @Property({ name: 'target_staging_location_id', type: 'uuid', nullable: true })\n targetStagingLocationId?: string | null\n\n @Property({ name: 'rejection_reason', type: 'text', nullable: true })\n rejectionReason?: string | null\n}\n\n@Entity({ tableName: 'wms_putaway_tasks' })\n@Index({ name: 'wms_putaway_tasks_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Index({\n name: 'wms_putaway_tasks_org_warehouse_status_priority_idx',\n properties: ['organizationId', 'warehouse', 'status', 'priority'],\n})\n@Index({\n name: 'wms_putaway_tasks_org_assigned_status_idx',\n properties: ['organizationId', 'assignedTo', 'status'],\n})\n@Index({\n name: 'wms_putaway_tasks_org_putaway_key_unique_idx',\n expression:\n 'create unique index \"wms_putaway_tasks_org_putaway_key_unique_idx\" on \"wms_putaway_tasks\" (\"organization_id\", \"putaway_key\") where putaway_key is not null and deleted_at is null and status <> \\'cancelled\\'',\n})\nexport class PutawayTask extends WmsScopedEntity {\n [OptionalProps]?:\n | WmsOptionalProps\n | 'targetLocationId'\n | 'lotId'\n | 'serialNumber'\n | 'assignedTo'\n | 'priority'\n | 'status'\n | 'putawayKey'\n\n @ManyToOne(() => Warehouse, { fieldName: 'warehouse_id' })\n warehouse!: Warehouse\n\n @Property({ name: 'source_location_id', type: 'uuid' })\n sourceLocationId!: string\n\n @Property({ name: 'target_location_id', type: 'uuid', nullable: true })\n targetLocationId?: string | null\n\n @Property({ name: 'catalog_variant_id', type: 'uuid' })\n catalogVariantId!: string\n\n @Property({ name: 'lot_id', type: 'uuid', nullable: true })\n lotId?: string | null\n\n /** Set on quantity-one tasks created for a serial-tracked receipt. Null for aggregate tasks. */\n @Property({ name: 'serial_number', type: 'text', nullable: true })\n serialNumber?: string | null\n\n @Property({ type: 'numeric', precision: 16, scale: 4 })\n quantity!: string\n\n @Property({ type: 'text', default: 'open' })\n status: PutawayTaskStatus = 'open'\n\n @Property({ name: 'assigned_to', type: 'uuid', nullable: true })\n assignedTo?: string | null\n\n @Property({ type: 'integer', default: 5 })\n priority: number = 5\n\n /** Stable ASN-receive attempt key for find-or-create without scanning newest-N metadata. */\n @Property({ name: 'putaway_key', type: 'text', nullable: true })\n putawayKey?: string | null\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA,SAAS,YAAY,qBAAqB;AAC1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAwBP,MAAe,gBAAgB;AAAA,EAA/B;AAcE,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAI7B;AAnBE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GADhD,gBAEb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GAJtC,gBAKb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAPhC,gBAQb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GAV9B,gBAWb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAb3D,gBAcb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAhB3D,gBAiBb;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAnB/C,gBAoBb;AAeK,IAAM,YAAN,eAAwB,sBAC5B,eAD4B,IAAgB;AAAA,EAAxC;AAAA;AAUL,oBAAoB;AAGpB,qBAAqB;AAkBrB,iBAAQ,IAAI,WAA0B,IAAI;AAG1C,qBAAY,IAAI,WAA8B,IAAI;AAAA;AACpD;AA/BE;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAHf,UAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GANf,UAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GATpD,UAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAZtD,UAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAftD,UAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlB/B,UAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GArBpD,UAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAxB/B,UAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3B/B,UA4BX;AAGA;AAAA,EADC,UAAU,MAAM,eAAe,CAAC,SAAS,KAAK,SAAS;AAAA,GA9B7C,UA+BX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,CAAC,aAAa,SAAS,SAAS;AAAA,GAjCzD,UAkCX;AAlCW,YAAN;AAAA,EAZN,OAAO,EAAE,WAAW,iBAAiB,CAAC;AAAA,EACtC,MAAM,EAAE,MAAM,iCAAiC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC3F,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AA6CN,IAAM,gBAAN,eAA4B,sBAChC,eADgC,IAAgB;AAAA,EAA5C;AAAA;AAaL,oBAAmB;AAAA;AACrB;AAVE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,cAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GANf,cAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GATf,cAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,SAAS,EAAE,CAAC;AAAA,GAZ9B,cAaX;AAbW,gBAAN;AAAA,EARN,OAAO,EAAE,WAAW,sBAAsB,CAAC;AAAA,EAC3C,MAAM,EAAE,MAAM,sCAAsC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAChG,MAAM,EAAE,MAAM,qCAAqC,YAAY,CAAC,WAAW,EAAE,CAAC;AAAA,EAC9E,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AAyBN,IAAM,oBAAN,eAAgC,sBACpC,eADoC,IAAgB;AAAA,EAAhD;AAAA;AAgBL,oBAAW,IAAI,WAA8B,IAAI;AAGjD,oBAAoB;AAAA;AAUtB;AAzBE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,kBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GANf,kBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GATf,kBAUX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,EAAE,WAAW,aAAa,UAAU,KAAK,CAAC;AAAA,GAZnE,kBAaX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,CAAC,aAAa,SAAS,MAAM;AAAA,GAftD,kBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GAlBpD,kBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GArBnF,kBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GAxBpF,kBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA3BhC,kBA4BX;AA5BW,oBAAN;AAAA,EATN,OAAO,EAAE,WAAW,0BAA0B,CAAC;AAAA,EAC/C,MAAM,EAAE,MAAM,0CAA0C,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACpG,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,WAAW,EAAE,CAAC;AAAA,EAClF,MAAM,EAAE,MAAM,sCAAsC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAAA,EAC5E,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AA2CN,IAAM,0BAAN,eAAsC,sBAC1C,eAD0C,IAAgB;AAAA,EAAtD;AAAA;AAaL,oBAAoB;AAGpB,uBAAuB;AAGvB,2BAA2B;AAM3B,wBAAuB;AAGvB,uBAAsB;AAAA;AACxB;AAzBE;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAH3C,wBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAN3D,wBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,OAAO,CAAC;AAAA,GATpC,wBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAZrD,wBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAfxD,wBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAlB5D,wBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,OAAO,CAAC;AAAA,GArBzC,wBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GAxBhF,wBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GA3B/E,wBA4BX;AA5BW,0BAAN;AAAA,EAZN,OAAO,EAAE,WAAW,iCAAiC,CAAC;AAAA,EACtD,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACnG,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AAuCN,IAAM,eAAN,eAA2B,sBAC/B,eAD+B,IAAgB;AAAA,EAA3C;AAAA;AAyBL,kBAA6B;AAAA;AAC/B;AAtBE;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAH3C,aAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GANf,aAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,OAAO,CAAC;AAAA,GATnC,aAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAZrD,aAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAftD,aAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAlBrD,aAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GArBjD,aAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,YAAY,CAAC;AAAA,GAxBrC,aAyBX;AAzBW,eAAN;AAAA,EARN,OAAO,EAAE,WAAW,qBAAqB,CAAC;AAAA,EAC1C,MAAM,EAAE,MAAM,qCAAqC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC/F,MAAM,EAAE,MAAM,kCAAkC,YAAY,CAAC,kBAAkB,EAAE,CAAC;AAAA,EAClF,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AA0CN,IAAM,mBAAN,eAA+B,sBACnC,eADmC,IAAgB;AAAA,EAA/C;AAAA;AAmBL,0BAAyB;AAGzB,4BAA2B;AAG3B,6BAA4B;AAAA;AAW9B;AAhCE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,iBAIX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,EAAE,WAAW,cAAc,CAAC;AAAA,GANrD,iBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAT3C,iBAUX;AAGA;AAAA,EADC,UAAU,MAAM,cAAc,EAAE,WAAW,UAAU,UAAU,KAAK,CAAC;AAAA,GAZ3D,iBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAftD,iBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GAlBnF,iBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GArBpF,iBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GAxBrF,iBAyBX;AAUA;AAAA,EARC,SAAS;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,OAAO;AAAA,IACP,WAAW,CAAC,SAAS,IAAI,KAAK,cAAc,MAAM,KAAK,gBAAgB,MAAM,KAAK,iBAAiB;AAAA,IACnG,QAAQ;AAAA,EACV,CAAC;AAAA,GAlCU,iBAmCX;AAnCW,mBAAN;AAAA,EAdN,OAAO,EAAE,WAAW,yBAAyB,CAAC;AAAA,EAC9C,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACnG,MAAM,EAAE,MAAM,oDAAoD,YAAY,CAAC,kBAAkB,aAAa,kBAAkB,EAAE,CAAC;AAAA,EACnI,MAAM,EAAE,MAAM,mDAAmD,YAAY,CAAC,kBAAkB,YAAY,kBAAkB,EAAE,CAAC;AAAA,EACjI,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AA+CN,IAAM,uBAAN,eAAmC,sBACvC,eADuC,IAAgB;AAAA,EAAnD;AAAA;AA4BL,kBAAqC;AAAA;AAIvC;AA5BE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,qBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAN3C,qBAOX;AAGA;AAAA,EADC,UAAU,MAAM,cAAc,EAAE,WAAW,UAAU,UAAU,KAAK,CAAC;AAAA,GAT3D,qBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAZtD,qBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,WAAW,IAAI,OAAO,EAAE,CAAC;AAAA,GAf3C,qBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,OAAO,CAAC;AAAA,GAlBpC,qBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GArBlC,qBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAxBjD,qBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,SAAS,CAAC;AAAA,GA3BlC,qBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA9BxD,qBA+BX;AA/BW,uBAAN;AAAA,EATN,OAAO,EAAE,WAAW,6BAA6B,CAAC;AAAA,EAClD,MAAM,EAAE,MAAM,6CAA6C,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACvG,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,kBAAkB,cAAc,UAAU,EAAE,CAAC;AAAA,EACjH,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,kBAAkB,aAAa,oBAAoB,QAAQ,EAAE,CAAC;AAAA,EAClI,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AA8CN,IAAM,gCAAN,eAA4C,sBAChD,eADgD,IAAgB;AAcnE;AAVE;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,OAAO,CAAC;AAAA,GAHvC,8BAIX;AAGA;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAN9C,8BAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GATpD,8BAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAZ/B,8BAaX;AAbW,gCAAN;AAAA,EAZN,OAAO,EAAE,WAAW,wCAAwC,CAAC;AAAA,EAC7D,MAAM,EAAE,MAAM,2BAA2B,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACrF,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AAkCN,IAAM,oBAAN,eAAgC,sBACpC,eADoC,IAAgB;AAkDvD;AA9CE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,kBAIX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,EAAE,WAAW,oBAAoB,UAAU,KAAK,CAAC;AAAA,GAN1E,kBAOX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,EAAE,WAAW,kBAAkB,UAAU,KAAK,CAAC;AAAA,GATxE,kBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAZ3C,kBAaX;AAGA;AAAA,EADC,UAAU,MAAM,cAAc,EAAE,WAAW,UAAU,UAAU,KAAK,CAAC;AAAA,GAf3D,kBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlBtD,kBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,WAAW,IAAI,OAAO,EAAE,CAAC;AAAA,GArB3C,kBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAxBf,kBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,OAAO,CAAC;AAAA,GA3BvC,kBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,OAAO,CAAC;AAAA,GA9BrC,kBA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,OAAO,CAAC;AAAA,GAjCrC,kBAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,KAAK,CAAC;AAAA,GApCnC,kBAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,KAAK,CAAC;AAAA,GAvClC,kBAwCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA1C/B,kBA2CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA7CpD,kBA8CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAhDxD,kBAiDX;AAjDW,oBAAN;AAAA,EAlBN,OAAO,EAAE,WAAW,0BAA0B,CAAC;AAAA,EAC/C,MAAM,EAAE,MAAM,0CAA0C,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACpG,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM,EAAE,MAAM,yCAAyC,YAAY,CAAC,kBAAkB,iBAAiB,aAAa,EAAE,CAAC;AAAA,EACvH,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AAoEN,IAAM,MAAN,eAAkB,sBACtB,eADsB,IAAgB;AAAA,EAAlC;AAAA;AAUL,kBAAoB;AAgBpB,iBAAQ,IAAI,WAA0B,IAAI;AAAA;AAC5C;AAvBE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAH9C,IAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GANlD,IAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,QAAQ,CAAC;AAAA,GATjC,IAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,KAAK,CAAC;AAAA,GAZlC,IAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAfzD,IAgBX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAnBnD,IAoBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAtB/B,IAuBX;AAGA;AAAA,EADC,UAAU,MAAM,eAAe,CAAC,SAAS,KAAK,GAAG;AAAA,GAzBvC,IA0BX;AA1BW,MAAN;AAAA,EAhBN,OAAO,EAAE,WAAW,WAAW,CAAC;AAAA,EAChC,MAAM,EAAE,MAAM,2BAA2B,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACrF,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,aAAa,UAAU,YAAY;AAAA,EACpE,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;AAoCN,IAAM,gBAAN,eAA4B,sBAChC,eADgC,IAAgB;AAAA,EAA5C;AAAA;AAoBL,uBAAsB;AAStB,oBAAkC;AAAA;AAOpC;AAzBE;AAAA,EADC,UAAU,MAAM,KAAK,EAAE,WAAW,SAAS,CAAC;AAAA,GAVlC,cAWX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAb3C,cAcX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,OAAO,EAAE,CAAC;AAAA,GAhBjE,cAiBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GAnB/E,cAoBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAtBnD,cAuBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GAzBxD,cA0BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,QAAQ,SAAS,UAAU,CAAC;AAAA,GA5BtD,cA6BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,8BAA8B,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA/BnE,cAgCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlCzD,cAmCX;AAnCW,gBAAN;AAAA,EAPN,OAAO,EAAE,WAAW,sBAAsB,CAAC;AAAA,EAC3C,MAAM,EAAE,MAAM,sCAAsC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAChG,MAAM,EAAE,MAAM,mCAAmC,YAAY,CAAC,kBAAkB,KAAK,EAAE,CAAC;AAAA,EACxF,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,oBAAoB,UAAU;AAAA,EAC/D,CAAC;AAAA,GACY;AAqDN,IAAM,cAAN,eAA0B,sBAC9B,eAD8B,IAAgB;AAAA,EAA1C;AAAA;AAkCL,kBAA4B;AAM5B,oBAAmB;AAAA;AAKrB;AAjCE;AAAA,EADC,UAAU,MAAM,WAAW,EAAE,WAAW,eAAe,CAAC;AAAA,GAX9C,YAYX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GAd3C,YAeX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAjB3D,YAkBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,OAAO,CAAC;AAAA,GApB3C,YAqBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,UAAU,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAvB/C,YAwBX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3BtD,YA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,WAAW,IAAI,OAAO,EAAE,CAAC;AAAA,GA9B3C,YA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,OAAO,CAAC;AAAA,GAjChC,YAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GApCpD,YAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,SAAS,EAAE,CAAC;AAAA,GAvC9B,YAwCX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3CpD,YA4CX;AA5CW,cAAN;AAAA,EAfN,OAAO,EAAE,WAAW,oBAAoB,CAAC;AAAA,EACzC,MAAM,EAAE,MAAM,oCAAoC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC9F,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,aAAa,UAAU,UAAU;AAAA,EAClE,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,cAAc,QAAQ;AAAA,EACvD,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YACE;AAAA,EACJ,CAAC;AAAA,GACY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -180,6 +180,7 @@ const inventoryReceiveSchema = scopedSchema.extend({
|
|
|
180
180
|
receivedAt: z.coerce.date().optional(),
|
|
181
181
|
performedAt: z.coerce.date().optional(),
|
|
182
182
|
reason: z.string().trim().max(500).optional(),
|
|
183
|
+
reasonCode: z.string().trim().max(80).optional(),
|
|
183
184
|
metadata: metadataSchema
|
|
184
185
|
});
|
|
185
186
|
const inventoryReservationCreateSchema = scopedSchema.extend({
|
|
@@ -269,6 +270,197 @@ const inventoryMovementCreateSchema = scopedSchema.extend({
|
|
|
269
270
|
reason: z.string().trim().max(500).optional(),
|
|
270
271
|
metadata: metadataSchema
|
|
271
272
|
});
|
|
273
|
+
const asnWritableStatusSchema = z.enum(["draft", "in_transit"]);
|
|
274
|
+
const receivingLineCreateFieldsSchema = z.object({
|
|
275
|
+
catalogVariantId: uuid(),
|
|
276
|
+
expectedQty: positiveQuantity,
|
|
277
|
+
lotNumber: z.string().trim().max(120).optional().nullable(),
|
|
278
|
+
serialNumbers: z.array(z.string().trim().min(1).max(120)).optional().nullable(),
|
|
279
|
+
targetStagingLocationId: uuid().optional().nullable(),
|
|
280
|
+
metadata: metadataSchema
|
|
281
|
+
});
|
|
282
|
+
const asnCreateSchema = scopedSchema.extend({
|
|
283
|
+
warehouseId: uuid(),
|
|
284
|
+
vendorId: uuid().optional().nullable(),
|
|
285
|
+
status: asnWritableStatusSchema.optional(),
|
|
286
|
+
expectedAt: z.coerce.date(),
|
|
287
|
+
referenceNumber: z.string().trim().max(120).optional().nullable(),
|
|
288
|
+
/**
|
|
289
|
+
* Stable external linkage key; unique per org when set (procurement goods receipt, etc.).
|
|
290
|
+
* Server/system creates only — public HTTP create strips this; authenticated clients cannot set it.
|
|
291
|
+
*/
|
|
292
|
+
sourceKey: z.string().trim().min(1).max(200).optional().nullable(),
|
|
293
|
+
notes: z.string().trim().max(2e3).optional().nullable(),
|
|
294
|
+
lines: z.array(receivingLineCreateFieldsSchema).optional(),
|
|
295
|
+
metadata: metadataSchema
|
|
296
|
+
});
|
|
297
|
+
const asnCreatePublicSchema = asnCreateSchema.omit({ sourceKey: true });
|
|
298
|
+
const asnUpdateSchema = z.object({ id: uuid() }).merge(
|
|
299
|
+
scopedSchema.extend({
|
|
300
|
+
warehouseId: uuid(),
|
|
301
|
+
vendorId: uuid().nullable(),
|
|
302
|
+
status: asnWritableStatusSchema,
|
|
303
|
+
expectedAt: z.coerce.date(),
|
|
304
|
+
referenceNumber: z.string().trim().max(120).nullable(),
|
|
305
|
+
notes: z.string().trim().max(2e3).nullable(),
|
|
306
|
+
metadata: metadataSchema
|
|
307
|
+
}).partial()
|
|
308
|
+
);
|
|
309
|
+
const receivingLineCreateSchema = scopedSchema.extend({
|
|
310
|
+
asnId: uuid(),
|
|
311
|
+
catalogVariantId: uuid(),
|
|
312
|
+
expectedQty: positiveQuantity,
|
|
313
|
+
lotNumber: z.string().trim().max(120).optional().nullable(),
|
|
314
|
+
serialNumbers: z.array(z.string().trim().min(1).max(120)).optional().nullable(),
|
|
315
|
+
targetStagingLocationId: uuid().optional().nullable(),
|
|
316
|
+
metadata: metadataSchema
|
|
317
|
+
});
|
|
318
|
+
const receivingLineUpdateSchema = z.object({ id: uuid() }).merge(
|
|
319
|
+
scopedSchema.extend({
|
|
320
|
+
catalogVariantId: uuid(),
|
|
321
|
+
expectedQty: positiveQuantity,
|
|
322
|
+
lotNumber: z.string().trim().max(120).nullable(),
|
|
323
|
+
serialNumbers: z.array(z.string().trim().min(1).max(120)).nullable(),
|
|
324
|
+
targetStagingLocationId: uuid().nullable(),
|
|
325
|
+
metadata: metadataSchema
|
|
326
|
+
}).partial()
|
|
327
|
+
);
|
|
328
|
+
const asnReceiveLineSchema = scopedSchema.extend({
|
|
329
|
+
asnId: uuid(),
|
|
330
|
+
lineId: uuid(),
|
|
331
|
+
receivedQty: positiveQuantity,
|
|
332
|
+
/**
|
|
333
|
+
* Absolute received quantity the client intends after this attempt.
|
|
334
|
+
* Required for QC-pass and QC-fail so retries after success remain
|
|
335
|
+
* idempotent (applyQty=0) even if prior qty advanced. Do not derive from
|
|
336
|
+
* delta alone — QC-fail still advances audit receivedQty.
|
|
337
|
+
*/
|
|
338
|
+
targetReceivedQty: positiveQuantity.optional(),
|
|
339
|
+
/** Optional client-stable attempt id; extra stabilizer alongside absolute target. */
|
|
340
|
+
idempotencyKey: uuid().optional(),
|
|
341
|
+
targetStagingLocationId: uuid().optional(),
|
|
342
|
+
lotId: uuid().optional(),
|
|
343
|
+
lotNumber: z.string().trim().max(120).optional(),
|
|
344
|
+
serialNumbers: z.array(z.string().trim().min(1).max(120)).optional(),
|
|
345
|
+
qcStatus: z.enum(["passed", "failed"]),
|
|
346
|
+
rejectionReason: z.string().trim().max(500).optional(),
|
|
347
|
+
performedBy: uuid(),
|
|
348
|
+
receivedAt: z.coerce.date().optional(),
|
|
349
|
+
metadata: metadataSchema
|
|
350
|
+
}).superRefine((value, ctx) => {
|
|
351
|
+
if (value.targetReceivedQty == null) {
|
|
352
|
+
ctx.addIssue({
|
|
353
|
+
code: z.ZodIssueCode.custom,
|
|
354
|
+
path: ["targetReceivedQty"],
|
|
355
|
+
message: "target_received_qty_required"
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
const asnCloseSchema = scopedSchema.extend({
|
|
360
|
+
id: uuid(),
|
|
361
|
+
closeWhenShort: z.boolean().optional()
|
|
362
|
+
});
|
|
363
|
+
const putawayTaskCreateSchema = scopedSchema.extend({
|
|
364
|
+
warehouseId: uuid(),
|
|
365
|
+
sourceLocationId: uuid(),
|
|
366
|
+
targetLocationId: uuid().optional().nullable(),
|
|
367
|
+
catalogVariantId: uuid(),
|
|
368
|
+
lotId: uuid().optional().nullable(),
|
|
369
|
+
quantity: positiveQuantity,
|
|
370
|
+
priority: z.coerce.number().int().min(0).max(100).optional(),
|
|
371
|
+
assignedTo: uuid().optional().nullable(),
|
|
372
|
+
metadata: metadataSchema
|
|
373
|
+
});
|
|
374
|
+
const putawayTaskUpdateSchema = z.object({ id: uuid() }).merge(
|
|
375
|
+
scopedSchema.extend({
|
|
376
|
+
warehouseId: uuid(),
|
|
377
|
+
sourceLocationId: uuid(),
|
|
378
|
+
targetLocationId: uuid().nullable(),
|
|
379
|
+
catalogVariantId: uuid(),
|
|
380
|
+
lotId: uuid().nullable(),
|
|
381
|
+
quantity: positiveQuantity,
|
|
382
|
+
priority: z.coerce.number().int().min(0).max(100),
|
|
383
|
+
metadata: metadataSchema
|
|
384
|
+
}).partial()
|
|
385
|
+
);
|
|
386
|
+
const putawayTaskCreateFromBalanceSchema = scopedSchema.extend({
|
|
387
|
+
warehouseId: uuid(),
|
|
388
|
+
sourceLocationId: uuid(),
|
|
389
|
+
targetLocationId: uuid(),
|
|
390
|
+
catalogVariantId: uuid(),
|
|
391
|
+
lotId: uuid().optional(),
|
|
392
|
+
quantity: positiveQuantity,
|
|
393
|
+
priority: z.coerce.number().int().min(0).max(100).optional(),
|
|
394
|
+
assignedTo: uuid().optional().nullable(),
|
|
395
|
+
metadata: metadataSchema
|
|
396
|
+
});
|
|
397
|
+
const putawayTaskAssignSchema = scopedSchema.extend({
|
|
398
|
+
id: uuid(),
|
|
399
|
+
assignedTo: uuid()
|
|
400
|
+
});
|
|
401
|
+
const putawayTaskStartSchema = scopedSchema.extend({
|
|
402
|
+
id: uuid()
|
|
403
|
+
});
|
|
404
|
+
const putawayTaskCompleteSchema = scopedSchema.extend({
|
|
405
|
+
id: uuid(),
|
|
406
|
+
confirmedQuantity: positiveQuantity,
|
|
407
|
+
targetLocationId: uuid(),
|
|
408
|
+
lotId: uuid().optional(),
|
|
409
|
+
performedBy: uuid(),
|
|
410
|
+
performedAt: z.coerce.date().optional(),
|
|
411
|
+
reason: z.string().trim().min(1).max(500).optional(),
|
|
412
|
+
metadata: metadataSchema
|
|
413
|
+
});
|
|
414
|
+
const putawayTaskCancelSchema = scopedSchema.extend({
|
|
415
|
+
id: uuid()
|
|
416
|
+
});
|
|
417
|
+
const scanResolveLocationSchema = scopedSchema.extend({
|
|
418
|
+
warehouseId: uuid(),
|
|
419
|
+
code: z.string().trim().min(1).max(120)
|
|
420
|
+
});
|
|
421
|
+
const scanResolveLotSchema = scopedSchema.extend({
|
|
422
|
+
catalogVariantId: uuid(),
|
|
423
|
+
lotNumber: z.string().trim().min(1).max(120)
|
|
424
|
+
});
|
|
425
|
+
const scanReceiveSchema = scopedSchema.extend({
|
|
426
|
+
asnId: uuid(),
|
|
427
|
+
lineId: uuid(),
|
|
428
|
+
locationCode: z.string().trim().min(1).max(120),
|
|
429
|
+
lotNumber: z.string().trim().max(120).optional(),
|
|
430
|
+
serialNumbers: z.array(z.string().trim().min(1).max(120)).optional(),
|
|
431
|
+
receivedQty: positiveQuantity,
|
|
432
|
+
/**
|
|
433
|
+
* Absolute received quantity after this attempt. Required for QC-pass and
|
|
434
|
+
* QC-fail so identical retries no-op (applyQty=0). Do not derive as
|
|
435
|
+
* prior+delta in scan resolve — that doubles stock/audit qty on retry.
|
|
436
|
+
*/
|
|
437
|
+
targetReceivedQty: positiveQuantity.optional(),
|
|
438
|
+
/** Optional client-stable attempt id; extra stabilizer alongside absolute target. */
|
|
439
|
+
idempotencyKey: uuid().optional(),
|
|
440
|
+
qcStatus: z.enum(["passed", "failed"]),
|
|
441
|
+
rejectionReason: z.string().trim().max(500).optional(),
|
|
442
|
+
performedBy: uuid(),
|
|
443
|
+
receivedAt: z.coerce.date().optional(),
|
|
444
|
+
metadata: metadataSchema
|
|
445
|
+
}).superRefine((value, ctx) => {
|
|
446
|
+
if (value.targetReceivedQty == null) {
|
|
447
|
+
ctx.addIssue({
|
|
448
|
+
code: z.ZodIssueCode.custom,
|
|
449
|
+
path: ["targetReceivedQty"],
|
|
450
|
+
message: "target_received_qty_required"
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
const scanPutawaySchema = scopedSchema.extend({
|
|
455
|
+
taskId: uuid(),
|
|
456
|
+
targetLocationCode: z.string().trim().min(1).max(120),
|
|
457
|
+
confirmedQuantity: positiveQuantity,
|
|
458
|
+
lotId: uuid().optional(),
|
|
459
|
+
performedBy: uuid(),
|
|
460
|
+
performedAt: z.coerce.date().optional(),
|
|
461
|
+
reason: z.string().trim().min(1).max(500).optional(),
|
|
462
|
+
metadata: metadataSchema
|
|
463
|
+
});
|
|
272
464
|
const salesOrderWarehouseAssignBodySchema = scopedSchema.extend({
|
|
273
465
|
warehouseId: uuid(),
|
|
274
466
|
notes: z.string().trim().max(500).optional(),
|
|
@@ -355,13 +547,21 @@ const operationalDashboardResponseSchema = z.object({
|
|
|
355
547
|
variantId: z.string().uuid(),
|
|
356
548
|
referenceType: z.string().nullable(),
|
|
357
549
|
referenceId: z.string().nullable(),
|
|
550
|
+
referenceLabel: z.string().nullable().optional(),
|
|
358
551
|
reason: z.string().nullable(),
|
|
552
|
+
reasonCode: z.string().nullable().optional(),
|
|
553
|
+
source: z.string().nullable().optional(),
|
|
359
554
|
locationLabel: z.string(),
|
|
360
555
|
performedAt: z.string()
|
|
361
556
|
})
|
|
362
557
|
)
|
|
363
558
|
});
|
|
364
559
|
export {
|
|
560
|
+
asnCloseSchema,
|
|
561
|
+
asnCreatePublicSchema,
|
|
562
|
+
asnCreateSchema,
|
|
563
|
+
asnReceiveLineSchema,
|
|
564
|
+
asnUpdateSchema,
|
|
365
565
|
inventoryAdjustSchema,
|
|
366
566
|
inventoryBalanceListQuerySchema,
|
|
367
567
|
inventoryCycleCountSchema,
|
|
@@ -386,9 +586,23 @@ export {
|
|
|
386
586
|
operationalDashboardResponseSchema,
|
|
387
587
|
productInventoryProfileCreateSchema,
|
|
388
588
|
productInventoryProfileUpdateSchema,
|
|
589
|
+
putawayTaskAssignSchema,
|
|
590
|
+
putawayTaskCancelSchema,
|
|
591
|
+
putawayTaskCompleteSchema,
|
|
592
|
+
putawayTaskCreateFromBalanceSchema,
|
|
593
|
+
putawayTaskCreateSchema,
|
|
594
|
+
putawayTaskStartSchema,
|
|
595
|
+
putawayTaskUpdateSchema,
|
|
596
|
+
receivingLineCreateFieldsSchema,
|
|
597
|
+
receivingLineCreateSchema,
|
|
598
|
+
receivingLineUpdateSchema,
|
|
389
599
|
salesOrderWarehouseAssignBodySchema,
|
|
390
600
|
salesOrderWarehouseAssignSchema,
|
|
391
601
|
salesOrderWarehouseUnassignSchema,
|
|
602
|
+
scanPutawaySchema,
|
|
603
|
+
scanReceiveSchema,
|
|
604
|
+
scanResolveLocationSchema,
|
|
605
|
+
scanResolveLotSchema,
|
|
392
606
|
warehouseCreateSchema,
|
|
393
607
|
warehouseLocationCreateSchema,
|
|
394
608
|
warehouseLocationUpdateSchema,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/wms/data/validators.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from 'zod'\n\nconst uuid = () => z.string().uuid()\nconst numericQuantity = z.coerce.number().finite()\nconst positiveQuantity = numericQuantity.gt(0)\nconst nonNegativeQuantity = numericQuantity.min(0)\n\nconst scopedSchema = z.object({\n organizationId: uuid(),\n tenantId: uuid(),\n})\n\nconst warehouseLocationTypeSchema = z.enum(['zone', 'aisle', 'rack', 'bin', 'slot', 'dock', 'staging'])\nconst inventoryStrategySchema = z.enum(['fifo', 'lifo', 'fefo'])\nconst inventoryLotStatusSchema = z.enum(['available', 'hold', 'quarantine', 'expired'])\nconst inventoryReservationSourceTypeSchema = z.enum(['order', 'transfer', 'manual'])\nconst inventoryReservationStatusSchema = z.enum(['active', 'released', 'fulfilled'])\nconst inventoryMovementTypeSchema = z.enum([\n 'receipt',\n 'putaway',\n 'pick',\n 'pack',\n 'ship',\n 'adjust',\n 'transfer',\n 'cycle_count',\n 'return_receive',\n])\nconst inventoryMovementReferenceTypeSchema = z.enum(['po', 'so', 'transfer', 'manual', 'qc', 'rma'])\n\nconst metadataSchema = z.record(z.string(), z.unknown()).optional()\n\nconst enforcePrimaryRequiresActiveWarehouse = (\n payload: { isActive?: boolean; isPrimary?: boolean },\n ctx: z.RefinementCtx,\n) => {\n if (payload.isPrimary === true && payload.isActive === false) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['isPrimary'],\n message: 'Inactive warehouses cannot be marked as primary.',\n })\n }\n}\n\nconst warehouseFieldsSchema = scopedSchema.extend({\n name: z.string().trim().min(1).max(200),\n code: z.string().trim().min(1).max(80),\n isActive: z.boolean().optional(),\n isPrimary: z.boolean().optional(),\n addressLine1: z.string().trim().max(255).optional(),\n city: z.string().trim().max(150).optional(),\n postalCode: z.string().trim().max(40).optional(),\n country: z.string().trim().max(120).optional(),\n timezone: z.string().trim().max(120).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseCreateSchema = warehouseFieldsSchema.superRefine(enforcePrimaryRequiresActiveWarehouse)\n\nexport const warehouseUpdateSchema = z\n .object({ id: uuid() })\n .merge(warehouseFieldsSchema.partial())\n .superRefine(enforcePrimaryRequiresActiveWarehouse)\n\nexport const warehouseZoneCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n code: z.string().trim().min(1).max(80),\n name: z.string().trim().min(1).max(200),\n priority: z.coerce.number().int().min(0).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseZoneUpdateSchema = z.object({ id: uuid() }).merge(warehouseZoneCreateSchema.partial())\n\nexport const warehouseLocationCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n code: z.string().trim().min(1).max(120),\n type: warehouseLocationTypeSchema,\n parentId: uuid().nullable().optional(),\n isActive: z.boolean().optional(),\n capacityUnits: nonNegativeQuantity.optional(),\n capacityWeight: nonNegativeQuantity.optional(),\n constraints: z.record(z.string(), z.unknown()).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseLocationUpdateSchema = z.object({ id: uuid() }).merge(warehouseLocationCreateSchema.partial())\n\nconst productInventoryProfileBaseSchema = scopedSchema.extend({\n catalogProductId: uuid(),\n catalogVariantId: uuid().nullable().optional(),\n defaultUom: z.string().trim().min(1).max(32),\n trackLot: z.boolean().optional(),\n trackSerial: z.boolean().optional(),\n trackExpiration: z.boolean().optional(),\n defaultStrategy: inventoryStrategySchema,\n reorderPoint: nonNegativeQuantity.optional(),\n safetyStock: nonNegativeQuantity.optional(),\n metadata: metadataSchema,\n})\n\nconst enforceFefoWhenExpirationTracked = (\n payload: { trackExpiration?: boolean; defaultStrategy?: 'fifo' | 'lifo' | 'fefo' },\n ctx: z.RefinementCtx,\n) => {\n if (\n payload.trackExpiration === true &&\n payload.defaultStrategy !== undefined &&\n payload.defaultStrategy !== 'fefo'\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['defaultStrategy'],\n message: 'FEFO is required when expiration tracking is enabled.',\n })\n }\n}\n\nexport const productInventoryProfileCreateSchema =\n productInventoryProfileBaseSchema.superRefine(enforceFefoWhenExpirationTracked)\n\nexport const productInventoryProfileUpdateSchema = z\n .object({ id: uuid() })\n .merge(productInventoryProfileBaseSchema.partial())\n .superRefine(enforceFefoWhenExpirationTracked)\n\nconst inventoryLotBaseSchema = scopedSchema.extend({\n catalogVariantId: uuid(),\n sku: z.string().trim().min(1).max(120),\n lotNumber: z.string().trim().min(1).max(120),\n batchNumber: z.string().trim().max(120).optional(),\n manufacturedAt: z.coerce.date().optional(),\n bestBeforeAt: z.coerce.date().optional(),\n expiresAt: z.coerce.date().optional(),\n status: inventoryLotStatusSchema.optional(),\n metadata: metadataSchema,\n})\n\nconst enforceLotDateOrdering = (\n payload: { manufacturedAt?: Date; bestBeforeAt?: Date; expiresAt?: Date },\n ctx: z.RefinementCtx,\n) => {\n if (payload.manufacturedAt && payload.bestBeforeAt && payload.bestBeforeAt < payload.manufacturedAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['bestBeforeAt'],\n message: 'Best-before date must be on or after manufactured date.',\n })\n }\n if (payload.bestBeforeAt && payload.expiresAt && payload.expiresAt < payload.bestBeforeAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['expiresAt'],\n message: 'Expiration date must be on or after best-before date.',\n })\n }\n if (payload.manufacturedAt && payload.expiresAt && payload.expiresAt < payload.manufacturedAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['expiresAt'],\n message: 'Expiration date must be on or after manufactured date.',\n })\n }\n}\n\nexport const inventoryLotCreateSchema = inventoryLotBaseSchema.superRefine(enforceLotDateOrdering)\n\nexport const inventoryLotUpdateSchema = z\n .object({\n id: uuid(),\n // Optional status-change note merged into lot.metadata.notes by the update command.\n notes: z.string().trim().max(500).optional(),\n })\n .merge(inventoryLotBaseSchema.partial())\n .superRefine(enforceLotDateOrdering)\n\nconst inventoryLowStockFilterSchema = z.enum(['belowReorder', 'belowSafety'])\n\nexport const inventoryBalanceListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n locationId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n lowStock: inventoryLowStockFilterSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryMovementListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n locationId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n referenceType: inventoryMovementReferenceTypeSchema.optional(),\n referenceId: uuid().optional(),\n type: inventoryMovementTypeSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryReservationListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n sourceType: inventoryReservationSourceTypeSchema.optional(),\n sourceId: uuid().optional(),\n status: inventoryReservationStatusSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryReceiveSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n lotNumber: z.string().trim().max(120).optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n referenceType: inventoryMovementReferenceTypeSchema,\n referenceId: uuid(),\n performedBy: uuid(),\n receivedAt: z.coerce.date().optional(),\n performedAt: z.coerce.date().optional(),\n reason: z.string().trim().max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n sourceType: inventoryReservationSourceTypeSchema,\n sourceId: uuid(),\n expiresAt: z.coerce.date().optional(),\n strategy: inventoryStrategySchema.optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationReleaseSchema = scopedSchema.extend({\n reservationId: uuid(),\n reason: z.string().trim().min(1).max(120),\n reasonCode: z.string().trim().max(80).optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationAllocateSchema = scopedSchema.extend({\n reservationId: uuid(),\n metadata: metadataSchema,\n})\n\nexport const inventoryAdjustSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n delta: numericQuantity.refine((value) => value !== 0, {\n message: 'Inventory delta must be non-zero.',\n }),\n reason: z.string().trim().min(1).max(500),\n reasonCode: z.string().trim().max(80).optional(),\n referenceType: inventoryMovementReferenceTypeSchema.default('manual'),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryMoveSchema = scopedSchema.extend({\n warehouseId: uuid(),\n fromLocationId: uuid(),\n toLocationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n type: inventoryMovementTypeSchema.optional(),\n reason: z.string().trim().min(1).max(500),\n reasonCode: z.string().trim().max(80).optional(),\n referenceType: inventoryMovementReferenceTypeSchema.default('manual'),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryCycleCountSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n countedQuantity: nonNegativeQuantity,\n autoAdjust: z.boolean().default(true),\n reason: z.string().trim().min(1).max(500),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryMovementCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationFromId: uuid().optional(),\n locationToId: uuid().optional(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n type: inventoryMovementTypeSchema,\n referenceType: inventoryMovementReferenceTypeSchema,\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date(),\n receivedAt: z.coerce.date(),\n reason: z.string().trim().max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport type WarehouseCreateInput = z.infer<typeof warehouseCreateSchema>\nexport type WarehouseUpdateInput = z.infer<typeof warehouseUpdateSchema>\nexport type WarehouseZoneCreateInput = z.infer<typeof warehouseZoneCreateSchema>\nexport type WarehouseZoneUpdateInput = z.infer<typeof warehouseZoneUpdateSchema>\nexport type WarehouseLocationCreateInput = z.infer<typeof warehouseLocationCreateSchema>\nexport type WarehouseLocationUpdateInput = z.infer<typeof warehouseLocationUpdateSchema>\nexport type ProductInventoryProfileCreateInput = z.infer<typeof productInventoryProfileCreateSchema>\nexport type ProductInventoryProfileUpdateInput = z.infer<typeof productInventoryProfileUpdateSchema>\nexport type InventoryLotCreateInput = z.infer<typeof inventoryLotCreateSchema>\nexport type InventoryLotUpdateInput = z.infer<typeof inventoryLotUpdateSchema>\nexport type InventoryReceiveInput = z.infer<typeof inventoryReceiveSchema>\nexport type InventoryReservationCreateInput = z.infer<typeof inventoryReservationCreateSchema>\nexport type InventoryReservationReleaseInput = z.infer<typeof inventoryReservationReleaseSchema>\nexport type InventoryReservationAllocateInput = z.infer<typeof inventoryReservationAllocateSchema>\nexport type InventoryAdjustInput = z.infer<typeof inventoryAdjustSchema>\nexport type InventoryMoveInput = z.infer<typeof inventoryMoveSchema>\nexport type InventoryCycleCountInput = z.infer<typeof inventoryCycleCountSchema>\n\nexport const salesOrderWarehouseAssignBodySchema = scopedSchema.extend({\n warehouseId: uuid(),\n notes: z.string().trim().max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport const salesOrderWarehouseAssignSchema = salesOrderWarehouseAssignBodySchema.extend({\n salesOrderId: uuid(),\n})\n\nexport const salesOrderWarehouseUnassignSchema = scopedSchema.extend({\n salesOrderId: uuid(),\n metadata: metadataSchema,\n})\n\nexport type SalesOrderWarehouseAssignInput = z.infer<typeof salesOrderWarehouseAssignSchema>\nexport type SalesOrderWarehouseUnassignInput = z.infer<typeof salesOrderWarehouseUnassignSchema>\n\nexport const inventoryImportRawRowSchema = z.object({\n warehouseCode: z.string().trim().optional(),\n warehouseId: uuid().optional(),\n locationCode: z.string().trim().optional(),\n locationId: uuid().optional(),\n sku: z.string().trim().optional(),\n catalogVariantId: uuid().optional(),\n quantity: z.string().trim().optional(),\n lotNumber: z.string().trim().optional(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().optional(),\n})\n\nexport const inventoryImportModeSchema = z.enum(['additive', 'reconcile']).default('additive')\n\nexport const inventoryImportValidateSchema = scopedSchema.extend({\n importBatchId: uuid().optional(),\n skipDuplicates: z.boolean().optional(),\n mode: inventoryImportModeSchema,\n rows: z.array(inventoryImportRawRowSchema).min(1).max(5000),\n})\n\nexport const inventoryImportApplyRowSchema = z.object({\n rowNumber: z.number().int().positive(),\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n quantity: nonNegativeQuantity,\n delta: numericQuantity,\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n})\n\nexport const inventoryImportApplySchema = scopedSchema.extend({\n importBatchId: uuid(),\n reason: z.string().trim().min(1).max(500).default('CSV import inventory receipt'),\n continueOnError: z.boolean().optional(),\n mode: inventoryImportModeSchema,\n rows: z.array(inventoryImportApplyRowSchema).min(1).max(5000),\n})\n\nexport type InventoryImportApplyServerInput = z.infer<typeof inventoryImportApplySchema> & {\n performedBy: string\n}\n\nexport type InventoryImportMode = z.infer<typeof inventoryImportModeSchema>\nexport type InventoryImportValidateInput = z.infer<typeof inventoryImportValidateSchema>\nexport type InventoryImportApplyInput = InventoryImportApplyServerInput\nexport type InventoryImportApplyRowInput = z.infer<typeof inventoryImportApplyRowSchema>\n\nexport const operationalDashboardQuerySchema = z.object({\n warehouseId: z.string().uuid().optional(),\n})\n\nexport const operationalDashboardKpiSchema = z.object({\n id: z.enum(['lowStock', 'reorderCritical', 'expiringSoon', 'pastDue', 'agingReservations', 'todaysMoves']),\n count: z.number(),\n deltaSinceYesterday: z.number().nullable(),\n sparkline: z.array(z.number()),\n})\n\nexport const operationalDashboardExpiryLotSchema = z.object({\n id: z.string().uuid(),\n lotNumber: z.string(),\n sku: z.string(),\n expiresAt: z.string(),\n availableQuantity: z.number(),\n category: z.enum(['expiringSoon', 'pastDue']),\n})\n\nexport const operationalDashboardResponseSchema = z.object({\n lastUpdatedAt: z.string(),\n warehouseId: z.string().uuid().nullable(),\n kpis: z.array(operationalDashboardKpiSchema),\n expiryLots: z.array(operationalDashboardExpiryLotSchema),\n monthlyTrends: z.array(\n z.object({\n month: z.string(),\n receive: z.number(),\n allocate: z.number(),\n }),\n ),\n recentActivity: z.array(\n z.object({\n id: z.string().uuid(),\n movementType: z.string(),\n quantity: z.number(),\n variantSku: z.string().nullable(),\n variantId: z.string().uuid(),\n referenceType: z.string().nullable(),\n referenceId: z.string().nullable(),\n reason: z.string().nullable(),\n locationLabel: z.string(),\n performedAt: z.string(),\n }),\n ),\n})\n\nexport type OperationalDashboardQueryInput = z.infer<typeof operationalDashboardQuerySchema>\nexport type OperationalDashboardResponse = z.infer<typeof operationalDashboardResponseSchema>\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { z } from 'zod'\n\nconst uuid = () => z.string().uuid()\nconst numericQuantity = z.coerce.number().finite()\nconst positiveQuantity = numericQuantity.gt(0)\nconst nonNegativeQuantity = numericQuantity.min(0)\n\nconst scopedSchema = z.object({\n organizationId: uuid(),\n tenantId: uuid(),\n})\n\nconst warehouseLocationTypeSchema = z.enum(['zone', 'aisle', 'rack', 'bin', 'slot', 'dock', 'staging'])\nconst inventoryStrategySchema = z.enum(['fifo', 'lifo', 'fefo'])\nconst inventoryLotStatusSchema = z.enum(['available', 'hold', 'quarantine', 'expired'])\nconst inventoryReservationSourceTypeSchema = z.enum(['order', 'transfer', 'manual'])\nconst inventoryReservationStatusSchema = z.enum(['active', 'released', 'fulfilled'])\nconst inventoryMovementTypeSchema = z.enum([\n 'receipt',\n 'putaway',\n 'pick',\n 'pack',\n 'ship',\n 'adjust',\n 'transfer',\n 'cycle_count',\n 'return_receive',\n])\nconst inventoryMovementReferenceTypeSchema = z.enum(['po', 'so', 'transfer', 'manual', 'qc', 'rma'])\n\nconst metadataSchema = z.record(z.string(), z.unknown()).optional()\n\nconst enforcePrimaryRequiresActiveWarehouse = (\n payload: { isActive?: boolean; isPrimary?: boolean },\n ctx: z.RefinementCtx,\n) => {\n if (payload.isPrimary === true && payload.isActive === false) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['isPrimary'],\n message: 'Inactive warehouses cannot be marked as primary.',\n })\n }\n}\n\nconst warehouseFieldsSchema = scopedSchema.extend({\n name: z.string().trim().min(1).max(200),\n code: z.string().trim().min(1).max(80),\n isActive: z.boolean().optional(),\n isPrimary: z.boolean().optional(),\n addressLine1: z.string().trim().max(255).optional(),\n city: z.string().trim().max(150).optional(),\n postalCode: z.string().trim().max(40).optional(),\n country: z.string().trim().max(120).optional(),\n timezone: z.string().trim().max(120).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseCreateSchema = warehouseFieldsSchema.superRefine(enforcePrimaryRequiresActiveWarehouse)\n\nexport const warehouseUpdateSchema = z\n .object({ id: uuid() })\n .merge(warehouseFieldsSchema.partial())\n .superRefine(enforcePrimaryRequiresActiveWarehouse)\n\nexport const warehouseZoneCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n code: z.string().trim().min(1).max(80),\n name: z.string().trim().min(1).max(200),\n priority: z.coerce.number().int().min(0).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseZoneUpdateSchema = z.object({ id: uuid() }).merge(warehouseZoneCreateSchema.partial())\n\nexport const warehouseLocationCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n code: z.string().trim().min(1).max(120),\n type: warehouseLocationTypeSchema,\n parentId: uuid().nullable().optional(),\n isActive: z.boolean().optional(),\n capacityUnits: nonNegativeQuantity.optional(),\n capacityWeight: nonNegativeQuantity.optional(),\n constraints: z.record(z.string(), z.unknown()).optional(),\n metadata: metadataSchema,\n})\n\nexport const warehouseLocationUpdateSchema = z.object({ id: uuid() }).merge(warehouseLocationCreateSchema.partial())\n\nconst productInventoryProfileBaseSchema = scopedSchema.extend({\n catalogProductId: uuid(),\n catalogVariantId: uuid().nullable().optional(),\n defaultUom: z.string().trim().min(1).max(32),\n trackLot: z.boolean().optional(),\n trackSerial: z.boolean().optional(),\n trackExpiration: z.boolean().optional(),\n defaultStrategy: inventoryStrategySchema,\n reorderPoint: nonNegativeQuantity.optional(),\n safetyStock: nonNegativeQuantity.optional(),\n metadata: metadataSchema,\n})\n\nconst enforceFefoWhenExpirationTracked = (\n payload: { trackExpiration?: boolean; defaultStrategy?: 'fifo' | 'lifo' | 'fefo' },\n ctx: z.RefinementCtx,\n) => {\n if (\n payload.trackExpiration === true &&\n payload.defaultStrategy !== undefined &&\n payload.defaultStrategy !== 'fefo'\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['defaultStrategy'],\n message: 'FEFO is required when expiration tracking is enabled.',\n })\n }\n}\n\nexport const productInventoryProfileCreateSchema =\n productInventoryProfileBaseSchema.superRefine(enforceFefoWhenExpirationTracked)\n\nexport const productInventoryProfileUpdateSchema = z\n .object({ id: uuid() })\n .merge(productInventoryProfileBaseSchema.partial())\n .superRefine(enforceFefoWhenExpirationTracked)\n\nconst inventoryLotBaseSchema = scopedSchema.extend({\n catalogVariantId: uuid(),\n sku: z.string().trim().min(1).max(120),\n lotNumber: z.string().trim().min(1).max(120),\n batchNumber: z.string().trim().max(120).optional(),\n manufacturedAt: z.coerce.date().optional(),\n bestBeforeAt: z.coerce.date().optional(),\n expiresAt: z.coerce.date().optional(),\n status: inventoryLotStatusSchema.optional(),\n metadata: metadataSchema,\n})\n\nconst enforceLotDateOrdering = (\n payload: { manufacturedAt?: Date; bestBeforeAt?: Date; expiresAt?: Date },\n ctx: z.RefinementCtx,\n) => {\n if (payload.manufacturedAt && payload.bestBeforeAt && payload.bestBeforeAt < payload.manufacturedAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['bestBeforeAt'],\n message: 'Best-before date must be on or after manufactured date.',\n })\n }\n if (payload.bestBeforeAt && payload.expiresAt && payload.expiresAt < payload.bestBeforeAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['expiresAt'],\n message: 'Expiration date must be on or after best-before date.',\n })\n }\n if (payload.manufacturedAt && payload.expiresAt && payload.expiresAt < payload.manufacturedAt) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['expiresAt'],\n message: 'Expiration date must be on or after manufactured date.',\n })\n }\n}\n\nexport const inventoryLotCreateSchema = inventoryLotBaseSchema.superRefine(enforceLotDateOrdering)\n\nexport const inventoryLotUpdateSchema = z\n .object({\n id: uuid(),\n // Optional status-change note merged into lot.metadata.notes by the update command.\n notes: z.string().trim().max(500).optional(),\n })\n .merge(inventoryLotBaseSchema.partial())\n .superRefine(enforceLotDateOrdering)\n\nconst inventoryLowStockFilterSchema = z.enum(['belowReorder', 'belowSafety'])\n\nexport const inventoryBalanceListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n locationId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n lowStock: inventoryLowStockFilterSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryMovementListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n locationId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n referenceType: inventoryMovementReferenceTypeSchema.optional(),\n referenceId: uuid().optional(),\n type: inventoryMovementTypeSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryReservationListQuerySchema = z.object({\n page: z.coerce.number().min(1).default(1),\n pageSize: z.coerce.number().min(1).max(100).default(25),\n warehouseId: uuid().optional(),\n catalogVariantId: uuid().optional(),\n lotId: uuid().optional(),\n sourceType: inventoryReservationSourceTypeSchema.optional(),\n sourceId: uuid().optional(),\n status: inventoryReservationStatusSchema.optional(),\n search: z.string().optional(),\n}).passthrough()\n\nexport const inventoryReceiveSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n lotNumber: z.string().trim().max(120).optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n referenceType: inventoryMovementReferenceTypeSchema,\n referenceId: uuid(),\n performedBy: uuid(),\n receivedAt: z.coerce.date().optional(),\n performedAt: z.coerce.date().optional(),\n reason: z.string().trim().max(500).optional(),\n reasonCode: z.string().trim().max(80).optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n sourceType: inventoryReservationSourceTypeSchema,\n sourceId: uuid(),\n expiresAt: z.coerce.date().optional(),\n strategy: inventoryStrategySchema.optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationReleaseSchema = scopedSchema.extend({\n reservationId: uuid(),\n reason: z.string().trim().min(1).max(120),\n reasonCode: z.string().trim().max(80).optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryReservationAllocateSchema = scopedSchema.extend({\n reservationId: uuid(),\n metadata: metadataSchema,\n})\n\nexport const inventoryAdjustSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n delta: numericQuantity.refine((value) => value !== 0, {\n message: 'Inventory delta must be non-zero.',\n }),\n reason: z.string().trim().min(1).max(500),\n reasonCode: z.string().trim().max(80).optional(),\n referenceType: inventoryMovementReferenceTypeSchema.default('manual'),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryMoveSchema = scopedSchema.extend({\n warehouseId: uuid(),\n fromLocationId: uuid(),\n toLocationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n type: inventoryMovementTypeSchema.optional(),\n reason: z.string().trim().min(1).max(500),\n reasonCode: z.string().trim().max(80).optional(),\n referenceType: inventoryMovementReferenceTypeSchema.default('manual'),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryCycleCountSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n countedQuantity: nonNegativeQuantity,\n autoAdjust: z.boolean().default(true),\n reason: z.string().trim().min(1).max(500),\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n})\n\nexport const inventoryMovementCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n locationFromId: uuid().optional(),\n locationToId: uuid().optional(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n quantity: positiveQuantity,\n type: inventoryMovementTypeSchema,\n referenceType: inventoryMovementReferenceTypeSchema,\n referenceId: uuid(),\n performedBy: uuid(),\n performedAt: z.coerce.date(),\n receivedAt: z.coerce.date(),\n reason: z.string().trim().max(500).optional(),\n metadata: metadataSchema,\n})\n\n/** Statuses clients may set on create/update \u2014 terminal received/closed come from receive/complete. */\nconst asnWritableStatusSchema = z.enum(['draft', 'in_transit'])\n\nexport const receivingLineCreateFieldsSchema = z.object({\n catalogVariantId: uuid(),\n expectedQty: positiveQuantity,\n lotNumber: z.string().trim().max(120).optional().nullable(),\n serialNumbers: z.array(z.string().trim().min(1).max(120)).optional().nullable(),\n targetStagingLocationId: uuid().optional().nullable(),\n metadata: metadataSchema,\n})\n\nexport const asnCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n vendorId: uuid().optional().nullable(),\n status: asnWritableStatusSchema.optional(),\n expectedAt: z.coerce.date(),\n referenceNumber: z.string().trim().max(120).optional().nullable(),\n /**\n * Stable external linkage key; unique per org when set (procurement goods receipt, etc.).\n * Server/system creates only \u2014 public HTTP create strips this; authenticated clients cannot set it.\n */\n sourceKey: z.string().trim().min(1).max(200).optional().nullable(),\n notes: z.string().trim().max(2000).optional().nullable(),\n lines: z.array(receivingLineCreateFieldsSchema).optional(),\n metadata: metadataSchema,\n})\n\n/** Public ASN create body \u2014 omits `sourceKey` so clients cannot spoof procurement linkage. */\nexport const asnCreatePublicSchema = asnCreateSchema.omit({ sourceKey: true })\n\nexport const asnUpdateSchema = z\n .object({ id: uuid() })\n .merge(\n scopedSchema\n .extend({\n warehouseId: uuid(),\n vendorId: uuid().nullable(),\n status: asnWritableStatusSchema,\n expectedAt: z.coerce.date(),\n referenceNumber: z.string().trim().max(120).nullable(),\n notes: z.string().trim().max(2000).nullable(),\n metadata: metadataSchema,\n })\n .partial(),\n )\n\nexport const receivingLineCreateSchema = scopedSchema.extend({\n asnId: uuid(),\n catalogVariantId: uuid(),\n expectedQty: positiveQuantity,\n lotNumber: z.string().trim().max(120).optional().nullable(),\n serialNumbers: z.array(z.string().trim().min(1).max(120)).optional().nullable(),\n targetStagingLocationId: uuid().optional().nullable(),\n metadata: metadataSchema,\n})\n\n// Lifecycle fields (receivedQty / qcStatus / rejectionReason) are intentionally\n// omitted \u2014 only `wms.asns.receive-line` may mutate them.\nexport const receivingLineUpdateSchema = z\n .object({ id: uuid() })\n .merge(\n scopedSchema\n .extend({\n catalogVariantId: uuid(),\n expectedQty: positiveQuantity,\n lotNumber: z.string().trim().max(120).nullable(),\n serialNumbers: z.array(z.string().trim().min(1).max(120)).nullable(),\n targetStagingLocationId: uuid().nullable(),\n metadata: metadataSchema,\n })\n .partial(),\n )\n\nexport const asnReceiveLineSchema = scopedSchema\n .extend({\n asnId: uuid(),\n lineId: uuid(),\n receivedQty: positiveQuantity,\n /**\n * Absolute received quantity the client intends after this attempt.\n * Required for QC-pass and QC-fail so retries after success remain\n * idempotent (applyQty=0) even if prior qty advanced. Do not derive from\n * delta alone \u2014 QC-fail still advances audit receivedQty.\n */\n targetReceivedQty: positiveQuantity.optional(),\n /** Optional client-stable attempt id; extra stabilizer alongside absolute target. */\n idempotencyKey: uuid().optional(),\n targetStagingLocationId: uuid().optional(),\n lotId: uuid().optional(),\n lotNumber: z.string().trim().max(120).optional(),\n serialNumbers: z.array(z.string().trim().min(1).max(120)).optional(),\n qcStatus: z.enum(['passed', 'failed']),\n rejectionReason: z.string().trim().max(500).optional(),\n performedBy: uuid(),\n receivedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n })\n .superRefine((value, ctx) => {\n if (value.targetReceivedQty == null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['targetReceivedQty'],\n message: 'target_received_qty_required',\n })\n }\n })\n\nexport const asnCloseSchema = scopedSchema.extend({\n id: uuid(),\n closeWhenShort: z.boolean().optional(),\n})\n\nexport const putawayTaskCreateSchema = scopedSchema.extend({\n warehouseId: uuid(),\n sourceLocationId: uuid(),\n targetLocationId: uuid().optional().nullable(),\n catalogVariantId: uuid(),\n lotId: uuid().optional().nullable(),\n quantity: positiveQuantity,\n priority: z.coerce.number().int().min(0).max(100).optional(),\n assignedTo: uuid().optional().nullable(),\n metadata: metadataSchema,\n})\n\n// Status and assignee transitions are intentionally omitted \u2014 only lifecycle\n// commands (assign/start/complete/cancel) may change those fields.\nexport const putawayTaskUpdateSchema = z\n .object({ id: uuid() })\n .merge(\n scopedSchema\n .extend({\n warehouseId: uuid(),\n sourceLocationId: uuid(),\n targetLocationId: uuid().nullable(),\n catalogVariantId: uuid(),\n lotId: uuid().nullable(),\n quantity: positiveQuantity,\n priority: z.coerce.number().int().min(0).max(100),\n metadata: metadataSchema,\n })\n .partial(),\n )\n\nexport const putawayTaskCreateFromBalanceSchema = scopedSchema.extend({\n warehouseId: uuid(),\n sourceLocationId: uuid(),\n targetLocationId: uuid(),\n catalogVariantId: uuid(),\n lotId: uuid().optional(),\n quantity: positiveQuantity,\n priority: z.coerce.number().int().min(0).max(100).optional(),\n assignedTo: uuid().optional().nullable(),\n metadata: metadataSchema,\n})\n\nexport const putawayTaskAssignSchema = scopedSchema.extend({\n id: uuid(),\n assignedTo: uuid(),\n})\n\nexport const putawayTaskStartSchema = scopedSchema.extend({\n id: uuid(),\n})\n\nexport const putawayTaskCompleteSchema = scopedSchema.extend({\n id: uuid(),\n confirmedQuantity: positiveQuantity,\n targetLocationId: uuid(),\n lotId: uuid().optional(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n reason: z.string().trim().min(1).max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport const putawayTaskCancelSchema = scopedSchema.extend({\n id: uuid(),\n})\n\nexport type WarehouseCreateInput = z.infer<typeof warehouseCreateSchema>\nexport type WarehouseUpdateInput = z.infer<typeof warehouseUpdateSchema>\nexport type WarehouseZoneCreateInput = z.infer<typeof warehouseZoneCreateSchema>\nexport type WarehouseZoneUpdateInput = z.infer<typeof warehouseZoneUpdateSchema>\nexport type WarehouseLocationCreateInput = z.infer<typeof warehouseLocationCreateSchema>\nexport type WarehouseLocationUpdateInput = z.infer<typeof warehouseLocationUpdateSchema>\nexport type ProductInventoryProfileCreateInput = z.infer<typeof productInventoryProfileCreateSchema>\nexport type ProductInventoryProfileUpdateInput = z.infer<typeof productInventoryProfileUpdateSchema>\nexport type InventoryLotCreateInput = z.infer<typeof inventoryLotCreateSchema>\nexport type InventoryLotUpdateInput = z.infer<typeof inventoryLotUpdateSchema>\nexport type InventoryReceiveInput = z.infer<typeof inventoryReceiveSchema>\nexport type InventoryReservationCreateInput = z.infer<typeof inventoryReservationCreateSchema>\nexport type InventoryReservationReleaseInput = z.infer<typeof inventoryReservationReleaseSchema>\nexport type InventoryReservationAllocateInput = z.infer<typeof inventoryReservationAllocateSchema>\nexport type InventoryAdjustInput = z.infer<typeof inventoryAdjustSchema>\nexport type InventoryMoveInput = z.infer<typeof inventoryMoveSchema>\nexport type InventoryCycleCountInput = z.infer<typeof inventoryCycleCountSchema>\nexport type AsnCreateInput = z.infer<typeof asnCreateSchema>\nexport type AsnCreatePublicInput = z.infer<typeof asnCreatePublicSchema>\nexport type AsnUpdateInput = z.infer<typeof asnUpdateSchema>\nexport type ReceivingLineCreateInput = z.infer<typeof receivingLineCreateSchema>\nexport type ReceivingLineUpdateInput = z.infer<typeof receivingLineUpdateSchema>\nexport type AsnReceiveLineInput = z.infer<typeof asnReceiveLineSchema>\nexport type AsnCloseInput = z.infer<typeof asnCloseSchema>\nexport type PutawayTaskCreateInput = z.infer<typeof putawayTaskCreateSchema>\nexport type PutawayTaskUpdateInput = z.infer<typeof putawayTaskUpdateSchema>\nexport type PutawayTaskCreateFromBalanceInput = z.infer<typeof putawayTaskCreateFromBalanceSchema>\nexport type PutawayTaskAssignInput = z.infer<typeof putawayTaskAssignSchema>\nexport type PutawayTaskStartInput = z.infer<typeof putawayTaskStartSchema>\nexport type PutawayTaskCompleteInput = z.infer<typeof putawayTaskCompleteSchema>\nexport type PutawayTaskCancelInput = z.infer<typeof putawayTaskCancelSchema>\n\nexport const scanResolveLocationSchema = scopedSchema.extend({\n warehouseId: uuid(),\n code: z.string().trim().min(1).max(120),\n})\n\nexport const scanResolveLotSchema = scopedSchema.extend({\n catalogVariantId: uuid(),\n lotNumber: z.string().trim().min(1).max(120),\n})\n\nexport const scanReceiveSchema = scopedSchema\n .extend({\n asnId: uuid(),\n lineId: uuid(),\n locationCode: z.string().trim().min(1).max(120),\n lotNumber: z.string().trim().max(120).optional(),\n serialNumbers: z.array(z.string().trim().min(1).max(120)).optional(),\n receivedQty: positiveQuantity,\n /**\n * Absolute received quantity after this attempt. Required for QC-pass and\n * QC-fail so identical retries no-op (applyQty=0). Do not derive as\n * prior+delta in scan resolve \u2014 that doubles stock/audit qty on retry.\n */\n targetReceivedQty: positiveQuantity.optional(),\n /** Optional client-stable attempt id; extra stabilizer alongside absolute target. */\n idempotencyKey: uuid().optional(),\n qcStatus: z.enum(['passed', 'failed']),\n rejectionReason: z.string().trim().max(500).optional(),\n performedBy: uuid(),\n receivedAt: z.coerce.date().optional(),\n metadata: metadataSchema,\n })\n .superRefine((value, ctx) => {\n if (value.targetReceivedQty == null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['targetReceivedQty'],\n message: 'target_received_qty_required',\n })\n }\n })\n\nexport const scanPutawaySchema = scopedSchema.extend({\n taskId: uuid(),\n targetLocationCode: z.string().trim().min(1).max(120),\n confirmedQuantity: positiveQuantity,\n lotId: uuid().optional(),\n performedBy: uuid(),\n performedAt: z.coerce.date().optional(),\n reason: z.string().trim().min(1).max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport type ScanResolveLocationInput = z.infer<typeof scanResolveLocationSchema>\nexport type ScanResolveLotInput = z.infer<typeof scanResolveLotSchema>\nexport type ScanReceiveInput = z.infer<typeof scanReceiveSchema>\nexport type ScanPutawayInput = z.infer<typeof scanPutawaySchema>\n\nexport const salesOrderWarehouseAssignBodySchema = scopedSchema.extend({\n warehouseId: uuid(),\n notes: z.string().trim().max(500).optional(),\n metadata: metadataSchema,\n})\n\nexport const salesOrderWarehouseAssignSchema = salesOrderWarehouseAssignBodySchema.extend({\n salesOrderId: uuid(),\n})\n\nexport const salesOrderWarehouseUnassignSchema = scopedSchema.extend({\n salesOrderId: uuid(),\n metadata: metadataSchema,\n})\n\nexport type SalesOrderWarehouseAssignInput = z.infer<typeof salesOrderWarehouseAssignSchema>\nexport type SalesOrderWarehouseUnassignInput = z.infer<typeof salesOrderWarehouseUnassignSchema>\n\nexport const inventoryImportRawRowSchema = z.object({\n warehouseCode: z.string().trim().optional(),\n warehouseId: uuid().optional(),\n locationCode: z.string().trim().optional(),\n locationId: uuid().optional(),\n sku: z.string().trim().optional(),\n catalogVariantId: uuid().optional(),\n quantity: z.string().trim().optional(),\n lotNumber: z.string().trim().optional(),\n lotId: uuid().optional(),\n serialNumber: z.string().trim().optional(),\n})\n\nexport const inventoryImportModeSchema = z.enum(['additive', 'reconcile']).default('additive')\n\nexport const inventoryImportValidateSchema = scopedSchema.extend({\n importBatchId: uuid().optional(),\n skipDuplicates: z.boolean().optional(),\n mode: inventoryImportModeSchema,\n rows: z.array(inventoryImportRawRowSchema).min(1).max(5000),\n})\n\nexport const inventoryImportApplyRowSchema = z.object({\n rowNumber: z.number().int().positive(),\n warehouseId: uuid(),\n locationId: uuid(),\n catalogVariantId: uuid(),\n quantity: nonNegativeQuantity,\n delta: numericQuantity,\n lotId: uuid().optional(),\n serialNumber: z.string().trim().max(120).optional(),\n})\n\nexport const inventoryImportApplySchema = scopedSchema.extend({\n importBatchId: uuid(),\n reason: z.string().trim().min(1).max(500).default('CSV import inventory receipt'),\n continueOnError: z.boolean().optional(),\n mode: inventoryImportModeSchema,\n rows: z.array(inventoryImportApplyRowSchema).min(1).max(5000),\n})\n\nexport type InventoryImportApplyServerInput = z.infer<typeof inventoryImportApplySchema> & {\n performedBy: string\n}\n\nexport type InventoryImportMode = z.infer<typeof inventoryImportModeSchema>\nexport type InventoryImportValidateInput = z.infer<typeof inventoryImportValidateSchema>\nexport type InventoryImportApplyInput = InventoryImportApplyServerInput\nexport type InventoryImportApplyRowInput = z.infer<typeof inventoryImportApplyRowSchema>\n\nexport const operationalDashboardQuerySchema = z.object({\n warehouseId: z.string().uuid().optional(),\n})\n\nexport const operationalDashboardKpiSchema = z.object({\n id: z.enum(['lowStock', 'reorderCritical', 'expiringSoon', 'pastDue', 'agingReservations', 'todaysMoves']),\n count: z.number(),\n deltaSinceYesterday: z.number().nullable(),\n sparkline: z.array(z.number()),\n})\n\nexport const operationalDashboardExpiryLotSchema = z.object({\n id: z.string().uuid(),\n lotNumber: z.string(),\n sku: z.string(),\n expiresAt: z.string(),\n availableQuantity: z.number(),\n category: z.enum(['expiringSoon', 'pastDue']),\n})\n\nexport const operationalDashboardResponseSchema = z.object({\n lastUpdatedAt: z.string(),\n warehouseId: z.string().uuid().nullable(),\n kpis: z.array(operationalDashboardKpiSchema),\n expiryLots: z.array(operationalDashboardExpiryLotSchema),\n monthlyTrends: z.array(\n z.object({\n month: z.string(),\n receive: z.number(),\n allocate: z.number(),\n }),\n ),\n recentActivity: z.array(\n z.object({\n id: z.string().uuid(),\n movementType: z.string(),\n quantity: z.number(),\n variantSku: z.string().nullable(),\n variantId: z.string().uuid(),\n referenceType: z.string().nullable(),\n referenceId: z.string().nullable(),\n referenceLabel: z.string().nullable().optional(),\n reason: z.string().nullable(),\n reasonCode: z.string().nullable().optional(),\n source: z.string().nullable().optional(),\n locationLabel: z.string(),\n performedAt: z.string(),\n }),\n ),\n})\n\nexport type OperationalDashboardQueryInput = z.infer<typeof operationalDashboardQuerySchema>\nexport type OperationalDashboardResponse = z.infer<typeof operationalDashboardResponseSchema>\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -27,7 +27,18 @@ const events = [
|
|
|
27
27
|
{ id: "wms.inventory.reconciled", label: "Inventory Reconciled", entity: "inventory", category: "custom" },
|
|
28
28
|
{ id: "wms.inventory.low_stock", label: "Inventory Low Stock", entity: "inventory", category: "lifecycle" },
|
|
29
29
|
{ id: "wms.inventory.balance_drift", label: "Inventory Balance Drift", entity: "inventory", category: "lifecycle" },
|
|
30
|
-
{ id: "wms.inventory.reservation_shortfall", label: "Inventory Reservation Shortfall", entity: "inventory", category: "lifecycle" }
|
|
30
|
+
{ id: "wms.inventory.reservation_shortfall", label: "Inventory Reservation Shortfall", entity: "inventory", category: "lifecycle" },
|
|
31
|
+
{ id: "wms.inventory.receipt_qc_failed", label: "Inventory Receipt QC Failed", entity: "inventory", category: "custom" },
|
|
32
|
+
{ id: "wms.asn.created", label: "ASN Created", entity: "asn", category: "crud" },
|
|
33
|
+
{ id: "wms.asn.updated", label: "ASN Updated", entity: "asn", category: "crud" },
|
|
34
|
+
{ id: "wms.asn.receiving_started", label: "ASN Receiving Started", entity: "asn", category: "lifecycle" },
|
|
35
|
+
{ id: "wms.asn.line_received", label: "ASN Line Received", entity: "asn", category: "custom" },
|
|
36
|
+
{ id: "wms.asn.received", label: "ASN Received", entity: "asn", category: "lifecycle" },
|
|
37
|
+
{ id: "wms.putaway.created", label: "Putaway Task Created", entity: "putaway", category: "crud" },
|
|
38
|
+
{ id: "wms.putaway.assigned", label: "Putaway Task Assigned", entity: "putaway", category: "lifecycle" },
|
|
39
|
+
{ id: "wms.putaway.started", label: "Putaway Task Started", entity: "putaway", category: "lifecycle" },
|
|
40
|
+
{ id: "wms.putaway.completed", label: "Putaway Task Completed", entity: "putaway", category: "lifecycle" },
|
|
41
|
+
{ id: "wms.putaway.cancelled", label: "Putaway Task Cancelled", entity: "putaway", category: "lifecycle" }
|
|
31
42
|
];
|
|
32
43
|
const eventsConfig = createModuleEvents({
|
|
33
44
|
moduleId: "wms",
|