@sagebox-be/prisma-inventory 0.0.2 → 0.0.3

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.
@@ -122,7 +122,7 @@ exports.Prisma.InventoryReservationScalarFieldEnum = {
122
122
  id: 'id',
123
123
  warehouseId: 'warehouseId',
124
124
  orderId: 'orderId',
125
- sku: 'sku',
125
+ skuId: 'skuId',
126
126
  quantity: 'quantity',
127
127
  status: 'status',
128
128
  expiredAt: 'expiredAt',
@@ -132,8 +132,9 @@ exports.Prisma.InventoryReservationScalarFieldEnum = {
132
132
 
133
133
  exports.Prisma.InventoryLedgerScalarFieldEnum = {
134
134
  id: 'id',
135
+ inventoryItemId: 'inventoryItemId',
135
136
  warehouseId: 'warehouseId',
136
- sku: 'sku',
137
+ skuId: 'skuId',
137
138
  type: 'type',
138
139
  amount: 'amount',
139
140
  balanceAfter: 'balanceAfter',
@@ -239,8 +240,8 @@ const config = {
239
240
  }
240
241
  }
241
242
  },
242
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = env(\"PRISMA_CLIENT_INVENTORY_OUTPUT\")\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_INVENTORY_URL\")\n}\n\n// ============================================================================\n// MODELS\n// ============================================================================\n\n/// Represents a physical warehouse location\nmodel Warehouse {\n id String @id @default(uuid()) @db.Uuid\n code String @unique(map: \"warehouse_code\") @db.VarChar(50)\n name String @db.VarChar(255)\n province String? @db.VarChar(100)\n district String? @db.VarChar(100)\n ward String? @db.VarChar(100)\n address String? @db.VarChar(500)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n inventoryItems InventoryItem[]\n reservations InventoryReservation[]\n ledgers InventoryLedger[]\n\n @@index([code], map: \"warehouses_code\")\n @@index([isActive], map: \"warehouses_is_active\")\n @@map(\"warehouses\")\n}\n\n/// Represents the stock snapshot for a SKU in a specific warehouse\n/// Uses Optimistic Locking via the `version` field to handle concurrency\nmodel InventoryItem {\n id String @id @default(uuid()) @db.Uuid\n productId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.VarChar(100)\n quantityOnHand Int @default(0)\n quantityReserved Int @default(0)\n version Int @default(1) // Optimistic Locking version field\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([warehouseId, skuId], map: \"inventory_items_warehouse_sku\")\n @@index([skuId], map: \"inventory_items_sku\")\n @@index([warehouseId], map: \"inventory_items_warehouse_id\")\n @@map(\"inventory_items\")\n}\n\n/// Temporary hold for the Two-Phase Reservation (Saga pattern)\n/// Ensures idempotency via unique constraint on [orderId, sku]\nmodel InventoryReservation {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n orderId String @db.VarChar(100)\n sku String @db.VarChar(100)\n quantity Int\n status String @default(\"Pending\") @db.VarChar(20) // Pending, Confirmed, Cancelled, Expired\n expiredAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([orderId, sku], map: \"reservations_order_sku\")\n @@index([orderId], map: \"reservations_order_id\")\n @@index([sku], map: \"reservations_sku\")\n @@index([status], map: \"reservations_status\")\n @@index([expiredAt], map: \"reservations_expired_at\")\n @@index([warehouseId], map: \"reservations_warehouse_id\")\n @@map(\"inventory_reservations\")\n}\n\n/// Immutable audit log for all stock movements\n/// Records every change to inventory with full traceability\nmodel InventoryLedger {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n sku String @db.VarChar(100)\n type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer\n amount Int // Can be negative (e.g., for sales)\n balanceAfter Int\n referenceId String @db.VarChar(100) // e.g., order ID, PO ID\n note String? @db.VarChar(500)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@index([sku], map: \"ledgers_sku\")\n @@index([referenceId], map: \"ledgers_reference_id\")\n @@index([type], map: \"ledgers_type\")\n @@index([warehouseId], map: \"ledgers_warehouse_id\")\n @@index([createdAt], map: \"ledgers_created_at\")\n @@map(\"inventory_ledgers\")\n}\n\nmodel Inbox {\n eventId String @id @default(uuid()) @db.Uuid\n eventType String @db.VarChar(255)\n payload Json\n status String @db.VarChar(50)\n retryCount Int @default(0)\n lastError String? @db.VarChar(1000)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n processedAt DateTime?\n\n @@index([status], map: \"inbox_events_status\")\n @@index([eventType], map: \"inbox_events_event_type\")\n @@map(\"inbox_events\")\n}\n",
243
- "inlineSchemaHash": "8af4bb16b02116f9c65ea16d2ba2c4b33f8a0afea225870d9d226e2a3530a663",
243
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = env(\"PRISMA_CLIENT_INVENTORY_OUTPUT\")\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_INVENTORY_URL\")\n}\n\n// ============================================================================\n// MODELS\n// ============================================================================\n\n/// Represents a physical warehouse location\nmodel Warehouse {\n id String @id @default(uuid()) @db.Uuid\n code String @unique(map: \"warehouse_code\") @db.VarChar(50)\n name String @db.VarChar(255)\n province String? @db.VarChar(100)\n district String? @db.VarChar(100)\n ward String? @db.VarChar(100)\n address String? @db.VarChar(500)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n inventoryItems InventoryItem[]\n reservations InventoryReservation[]\n ledgers InventoryLedger[]\n\n @@index([code], map: \"warehouses_code\")\n @@index([isActive], map: \"warehouses_is_active\")\n @@map(\"warehouses\")\n}\n\n/// Represents the stock snapshot for a SKU in a specific warehouse\n/// Uses Optimistic Locking via the `version` field to handle concurrency\nmodel InventoryItem {\n id String @id @default(uuid()) @db.Uuid\n productId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.Uuid\n quantityOnHand Int @default(0)\n quantityReserved Int @default(0)\n version Int @default(1) // Optimistic Locking version field\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([warehouseId, skuId], map: \"inventory_items_warehouse_sku\")\n @@index([skuId], map: \"inventory_items_sku\")\n @@index([warehouseId], map: \"inventory_items_warehouse_id\")\n @@map(\"inventory_items\")\n}\n\n/// Temporary hold for the Two-Phase Reservation (Saga pattern)\n/// Ensures idempotency via unique constraint on [orderId, sku]\nmodel InventoryReservation {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n orderId String @db.Uuid\n skuId String @db.Uuid\n quantity Int\n status String @default(\"Pending\") @db.VarChar(20) // Pending, Confirmed, Cancelled, Expired\n expiredAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([orderId, skuId], map: \"reservations_order_sku\")\n @@index([orderId], map: \"reservations_order_id\")\n @@index([skuId], map: \"reservations_sku\")\n @@index([status], map: \"reservations_status\")\n @@index([expiredAt], map: \"reservations_expired_at\")\n @@index([warehouseId], map: \"reservations_warehouse_id\")\n @@map(\"inventory_reservations\")\n}\n\n/// Immutable audit log for all stock movements\n/// Records every change to inventory with full traceability\nmodel InventoryLedger {\n id String @id @default(uuid()) @db.Uuid\n inventoryItemId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.Uuid\n type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer\n amount Int // Can be negative (e.g., for sales)\n balanceAfter Int\n referenceId String @db.VarChar(100) // e.g., order ID, PO ID\n note String? @db.VarChar(500)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@index([skuId], map: \"ledgers_sku\")\n @@index([referenceId], map: \"ledgers_reference_id\")\n @@index([type], map: \"ledgers_type\")\n @@index([warehouseId], map: \"ledgers_warehouse_id\")\n @@index([createdAt], map: \"ledgers_created_at\")\n @@map(\"inventory_ledgers\")\n}\n\nmodel Inbox {\n eventId String @id @default(uuid()) @db.Uuid\n eventType String @db.VarChar(255)\n payload Json\n status String @db.VarChar(50)\n retryCount Int @default(0)\n lastError String? @db.VarChar(1000)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n processedAt DateTime?\n\n @@index([status], map: \"inbox_events_status\")\n @@index([eventType], map: \"inbox_events_event_type\")\n @@map(\"inbox_events\")\n}\n",
244
+ "inlineSchemaHash": "df2dd5aa412199abfc112ae14b5cdd1aa3cd20659bb6ddb6a6fcc18d1b3dc8da",
244
245
  "copyEngine": true
245
246
  }
246
247
 
@@ -261,7 +262,7 @@ if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) {
261
262
  config.isBundled = true
262
263
  }
263
264
 
264
- config.runtimeDataModel = JSON.parse("{\"models\":{\"Warehouse\":{\"dbName\":\"warehouses\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"50\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"province\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"district\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ward\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"500\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"inventoryItems\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryItem\",\"nativeType\":null,\"relationName\":\"InventoryItemToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryReservation\",\"nativeType\":null,\"relationName\":\"InventoryReservationToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledgers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryLedger\",\"nativeType\":null,\"relationName\":\"InventoryLedgerToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false,\"documentation\":\"Represents a physical warehouse location\"},\"InventoryItem\":{\"dbName\":\"inventory_items\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"productId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skuId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantityOnHand\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantityReserved\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"version\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryItemToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"warehouseId\",\"skuId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"warehouseId\",\"skuId\"]}],\"isGenerated\":false,\"documentation\":\"Represents the stock snapshot for a SKU in a specific warehouse\\\\nUses Optimistic Locking via the `version` field to handle concurrency\"},\"InventoryReservation\":{\"dbName\":\"inventory_reservations\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"orderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sku\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantity\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"default\":\"Pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiredAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryReservationToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"orderId\",\"sku\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"orderId\",\"sku\"]}],\"isGenerated\":false,\"documentation\":\"Temporary hold for the Two-Phase Reservation (Saga pattern)\\\\nEnsures idempotency via unique constraint on [orderId, sku]\"},\"InventoryLedger\":{\"dbName\":\"inventory_ledgers\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"sku\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"balanceAfter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"referenceId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"note\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"500\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryLedgerToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false,\"documentation\":\"Immutable audit log for all stock movements\\\\nRecords every change to inventory with full traceability\"},\"Inbox\":{\"dbName\":\"inbox_events\",\"schema\":null,\"fields\":[{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"payload\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"50\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"retryCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastError\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"1000\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
265
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Warehouse\":{\"dbName\":\"warehouses\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"50\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"province\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"district\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ward\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"address\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"500\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"isActive\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":true,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"inventoryItems\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryItem\",\"nativeType\":null,\"relationName\":\"InventoryItemToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reservations\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryReservation\",\"nativeType\":null,\"relationName\":\"InventoryReservationToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ledgers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"InventoryLedger\",\"nativeType\":null,\"relationName\":\"InventoryLedgerToWarehouse\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false,\"documentation\":\"Represents a physical warehouse location\"},\"InventoryItem\":{\"dbName\":\"inventory_items\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"productId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skuId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantityOnHand\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantityReserved\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"version\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":1,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryItemToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"warehouseId\",\"skuId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"warehouseId\",\"skuId\"]}],\"isGenerated\":false,\"documentation\":\"Represents the stock snapshot for a SKU in a specific warehouse\\\\nUses Optimistic Locking via the `version` field to handle concurrency\"},\"InventoryReservation\":{\"dbName\":\"inventory_reservations\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"orderId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skuId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"quantity\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"default\":\"Pending\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiredAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryReservationToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"orderId\",\"skuId\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"orderId\",\"skuId\"]}],\"isGenerated\":false,\"documentation\":\"Temporary hold for the Two-Phase Reservation (Saga pattern)\\\\nEnsures idempotency via unique constraint on [orderId, sku]\"},\"InventoryLedger\":{\"dbName\":\"inventory_ledgers\",\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"inventoryItemId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"skuId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"amount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"balanceAfter\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"referenceId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"100\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"note\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"500\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"warehouse\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Warehouse\",\"nativeType\":null,\"relationName\":\"InventoryLedgerToWarehouse\",\"relationFromFields\":[\"warehouseId\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false,\"documentation\":\"Immutable audit log for all stock movements\\\\nRecords every change to inventory with full traceability\"},\"Inbox\":{\"dbName\":\"inbox_events\",\"schema\":null,\"fields\":[{\"name\":\"eventId\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":[\"Uuid\",[]],\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"eventType\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"payload\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"50\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"retryCount\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Int\",\"nativeType\":null,\"default\":0,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"lastError\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"1000\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":null,\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":true},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
265
266
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
266
267
  config.engineWasm = undefined
267
268
  config.compilerWasm = undefined
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-6ba7532b32e37cc037111cf41a08683037567ba94542db396479d5e5ca7e67f5",
2
+ "name": "prisma-client-a85de388a632f33461c2cb0817b653c3515ecc4f03a8a2f38afc7f38859ee844",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "default.js",
@@ -46,7 +46,7 @@ model InventoryItem {
46
46
  id String @id @default(uuid()) @db.Uuid
47
47
  productId String @db.Uuid
48
48
  warehouseId String @db.Uuid
49
- skuId String @db.VarChar(100)
49
+ skuId String @db.Uuid
50
50
  quantityOnHand Int @default(0)
51
51
  quantityReserved Int @default(0)
52
52
  version Int @default(1) // Optimistic Locking version field
@@ -67,8 +67,8 @@ model InventoryItem {
67
67
  model InventoryReservation {
68
68
  id String @id @default(uuid()) @db.Uuid
69
69
  warehouseId String @db.Uuid
70
- orderId String @db.VarChar(100)
71
- sku String @db.VarChar(100)
70
+ orderId String @db.Uuid
71
+ skuId String @db.Uuid
72
72
  quantity Int
73
73
  status String @default("Pending") @db.VarChar(20) // Pending, Confirmed, Cancelled, Expired
74
74
  expiredAt DateTime
@@ -78,9 +78,9 @@ model InventoryReservation {
78
78
  // Relations
79
79
  warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)
80
80
 
81
- @@unique([orderId, sku], map: "reservations_order_sku")
81
+ @@unique([orderId, skuId], map: "reservations_order_sku")
82
82
  @@index([orderId], map: "reservations_order_id")
83
- @@index([sku], map: "reservations_sku")
83
+ @@index([skuId], map: "reservations_sku")
84
84
  @@index([status], map: "reservations_status")
85
85
  @@index([expiredAt], map: "reservations_expired_at")
86
86
  @@index([warehouseId], map: "reservations_warehouse_id")
@@ -90,21 +90,22 @@ model InventoryReservation {
90
90
  /// Immutable audit log for all stock movements
91
91
  /// Records every change to inventory with full traceability
92
92
  model InventoryLedger {
93
- id String @id @default(uuid()) @db.Uuid
94
- warehouseId String @db.Uuid
95
- sku String @db.VarChar(100)
96
- type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer
97
- amount Int // Can be negative (e.g., for sales)
98
- balanceAfter Int
99
- referenceId String @db.VarChar(100) // e.g., order ID, PO ID
100
- note String? @db.VarChar(500)
101
- createdAt DateTime @default(now())
102
- updatedAt DateTime @updatedAt
93
+ id String @id @default(uuid()) @db.Uuid
94
+ inventoryItemId String @db.Uuid
95
+ warehouseId String @db.Uuid
96
+ skuId String @db.Uuid
97
+ type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer
98
+ amount Int // Can be negative (e.g., for sales)
99
+ balanceAfter Int
100
+ referenceId String @db.VarChar(100) // e.g., order ID, PO ID
101
+ note String? @db.VarChar(500)
102
+ createdAt DateTime @default(now())
103
+ updatedAt DateTime @updatedAt
103
104
 
104
105
  // Relations
105
106
  warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)
106
107
 
107
- @@index([sku], map: "ledgers_sku")
108
+ @@index([skuId], map: "ledgers_sku")
108
109
  @@index([referenceId], map: "ledgers_reference_id")
109
110
  @@index([type], map: "ledgers_type")
110
111
  @@index([warehouseId], map: "ledgers_warehouse_id")
@@ -121,7 +121,7 @@ exports.Prisma.InventoryReservationScalarFieldEnum = {
121
121
  id: 'id',
122
122
  warehouseId: 'warehouseId',
123
123
  orderId: 'orderId',
124
- sku: 'sku',
124
+ skuId: 'skuId',
125
125
  quantity: 'quantity',
126
126
  status: 'status',
127
127
  expiredAt: 'expiredAt',
@@ -131,8 +131,9 @@ exports.Prisma.InventoryReservationScalarFieldEnum = {
131
131
 
132
132
  exports.Prisma.InventoryLedgerScalarFieldEnum = {
133
133
  id: 'id',
134
+ inventoryItemId: 'inventoryItemId',
134
135
  warehouseId: 'warehouseId',
135
- sku: 'sku',
136
+ skuId: 'skuId',
136
137
  type: 'type',
137
138
  amount: 'amount',
138
139
  balanceAfter: 'balanceAfter',
@@ -238,13 +239,13 @@ const config = {
238
239
  }
239
240
  }
240
241
  },
241
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = env(\"PRISMA_CLIENT_INVENTORY_OUTPUT\")\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_INVENTORY_URL\")\n}\n\n// ============================================================================\n// MODELS\n// ============================================================================\n\n/// Represents a physical warehouse location\nmodel Warehouse {\n id String @id @default(uuid()) @db.Uuid\n code String @unique(map: \"warehouse_code\") @db.VarChar(50)\n name String @db.VarChar(255)\n province String? @db.VarChar(100)\n district String? @db.VarChar(100)\n ward String? @db.VarChar(100)\n address String? @db.VarChar(500)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n inventoryItems InventoryItem[]\n reservations InventoryReservation[]\n ledgers InventoryLedger[]\n\n @@index([code], map: \"warehouses_code\")\n @@index([isActive], map: \"warehouses_is_active\")\n @@map(\"warehouses\")\n}\n\n/// Represents the stock snapshot for a SKU in a specific warehouse\n/// Uses Optimistic Locking via the `version` field to handle concurrency\nmodel InventoryItem {\n id String @id @default(uuid()) @db.Uuid\n productId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.VarChar(100)\n quantityOnHand Int @default(0)\n quantityReserved Int @default(0)\n version Int @default(1) // Optimistic Locking version field\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([warehouseId, skuId], map: \"inventory_items_warehouse_sku\")\n @@index([skuId], map: \"inventory_items_sku\")\n @@index([warehouseId], map: \"inventory_items_warehouse_id\")\n @@map(\"inventory_items\")\n}\n\n/// Temporary hold for the Two-Phase Reservation (Saga pattern)\n/// Ensures idempotency via unique constraint on [orderId, sku]\nmodel InventoryReservation {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n orderId String @db.VarChar(100)\n sku String @db.VarChar(100)\n quantity Int\n status String @default(\"Pending\") @db.VarChar(20) // Pending, Confirmed, Cancelled, Expired\n expiredAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([orderId, sku], map: \"reservations_order_sku\")\n @@index([orderId], map: \"reservations_order_id\")\n @@index([sku], map: \"reservations_sku\")\n @@index([status], map: \"reservations_status\")\n @@index([expiredAt], map: \"reservations_expired_at\")\n @@index([warehouseId], map: \"reservations_warehouse_id\")\n @@map(\"inventory_reservations\")\n}\n\n/// Immutable audit log for all stock movements\n/// Records every change to inventory with full traceability\nmodel InventoryLedger {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n sku String @db.VarChar(100)\n type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer\n amount Int // Can be negative (e.g., for sales)\n balanceAfter Int\n referenceId String @db.VarChar(100) // e.g., order ID, PO ID\n note String? @db.VarChar(500)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@index([sku], map: \"ledgers_sku\")\n @@index([referenceId], map: \"ledgers_reference_id\")\n @@index([type], map: \"ledgers_type\")\n @@index([warehouseId], map: \"ledgers_warehouse_id\")\n @@index([createdAt], map: \"ledgers_created_at\")\n @@map(\"inventory_ledgers\")\n}\n\nmodel Inbox {\n eventId String @id @default(uuid()) @db.Uuid\n eventType String @db.VarChar(255)\n payload Json\n status String @db.VarChar(50)\n retryCount Int @default(0)\n lastError String? @db.VarChar(1000)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n processedAt DateTime?\n\n @@index([status], map: \"inbox_events_status\")\n @@index([eventType], map: \"inbox_events_event_type\")\n @@map(\"inbox_events\")\n}\n",
242
- "inlineSchemaHash": "8af4bb16b02116f9c65ea16d2ba2c4b33f8a0afea225870d9d226e2a3530a663",
242
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = env(\"PRISMA_CLIENT_INVENTORY_OUTPUT\")\n binaryTargets = [\"native\", \"linux-musl-openssl-3.0.x\"]\n}\n\ngenerator json {\n provider = \"prisma-json-types-generator\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_INVENTORY_URL\")\n}\n\n// ============================================================================\n// MODELS\n// ============================================================================\n\n/// Represents a physical warehouse location\nmodel Warehouse {\n id String @id @default(uuid()) @db.Uuid\n code String @unique(map: \"warehouse_code\") @db.VarChar(50)\n name String @db.VarChar(255)\n province String? @db.VarChar(100)\n district String? @db.VarChar(100)\n ward String? @db.VarChar(100)\n address String? @db.VarChar(500)\n isActive Boolean @default(true)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n inventoryItems InventoryItem[]\n reservations InventoryReservation[]\n ledgers InventoryLedger[]\n\n @@index([code], map: \"warehouses_code\")\n @@index([isActive], map: \"warehouses_is_active\")\n @@map(\"warehouses\")\n}\n\n/// Represents the stock snapshot for a SKU in a specific warehouse\n/// Uses Optimistic Locking via the `version` field to handle concurrency\nmodel InventoryItem {\n id String @id @default(uuid()) @db.Uuid\n productId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.Uuid\n quantityOnHand Int @default(0)\n quantityReserved Int @default(0)\n version Int @default(1) // Optimistic Locking version field\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([warehouseId, skuId], map: \"inventory_items_warehouse_sku\")\n @@index([skuId], map: \"inventory_items_sku\")\n @@index([warehouseId], map: \"inventory_items_warehouse_id\")\n @@map(\"inventory_items\")\n}\n\n/// Temporary hold for the Two-Phase Reservation (Saga pattern)\n/// Ensures idempotency via unique constraint on [orderId, sku]\nmodel InventoryReservation {\n id String @id @default(uuid()) @db.Uuid\n warehouseId String @db.Uuid\n orderId String @db.Uuid\n skuId String @db.Uuid\n quantity Int\n status String @default(\"Pending\") @db.VarChar(20) // Pending, Confirmed, Cancelled, Expired\n expiredAt DateTime\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@unique([orderId, skuId], map: \"reservations_order_sku\")\n @@index([orderId], map: \"reservations_order_id\")\n @@index([skuId], map: \"reservations_sku\")\n @@index([status], map: \"reservations_status\")\n @@index([expiredAt], map: \"reservations_expired_at\")\n @@index([warehouseId], map: \"reservations_warehouse_id\")\n @@map(\"inventory_reservations\")\n}\n\n/// Immutable audit log for all stock movements\n/// Records every change to inventory with full traceability\nmodel InventoryLedger {\n id String @id @default(uuid()) @db.Uuid\n inventoryItemId String @db.Uuid\n warehouseId String @db.Uuid\n skuId String @db.Uuid\n type String @db.VarChar(20) // Import, Sale, Return, Adjustment, Transfer\n amount Int // Can be negative (e.g., for sales)\n balanceAfter Int\n referenceId String @db.VarChar(100) // e.g., order ID, PO ID\n note String? @db.VarChar(500)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Relations\n warehouse Warehouse @relation(fields: [warehouseId], references: [id], onDelete: Cascade)\n\n @@index([skuId], map: \"ledgers_sku\")\n @@index([referenceId], map: \"ledgers_reference_id\")\n @@index([type], map: \"ledgers_type\")\n @@index([warehouseId], map: \"ledgers_warehouse_id\")\n @@index([createdAt], map: \"ledgers_created_at\")\n @@map(\"inventory_ledgers\")\n}\n\nmodel Inbox {\n eventId String @id @default(uuid()) @db.Uuid\n eventType String @db.VarChar(255)\n payload Json\n status String @db.VarChar(50)\n retryCount Int @default(0)\n lastError String? @db.VarChar(1000)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n processedAt DateTime?\n\n @@index([status], map: \"inbox_events_status\")\n @@index([eventType], map: \"inbox_events_event_type\")\n @@map(\"inbox_events\")\n}\n",
243
+ "inlineSchemaHash": "df2dd5aa412199abfc112ae14b5cdd1aa3cd20659bb6ddb6a6fcc18d1b3dc8da",
243
244
  "copyEngine": true
244
245
  }
245
246
  config.dirname = '/'
246
247
 
247
- config.runtimeDataModel = JSON.parse("{\"models\":{\"Warehouse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"province\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"district\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ward\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"inventoryItems\",\"kind\":\"object\",\"type\":\"InventoryItem\",\"relationName\":\"InventoryItemToWarehouse\"},{\"name\":\"reservations\",\"kind\":\"object\",\"type\":\"InventoryReservation\",\"relationName\":\"InventoryReservationToWarehouse\"},{\"name\":\"ledgers\",\"kind\":\"object\",\"type\":\"InventoryLedger\",\"relationName\":\"InventoryLedgerToWarehouse\"}],\"dbName\":\"warehouses\"},\"InventoryItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"productId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skuId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantityOnHand\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"quantityReserved\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryItemToWarehouse\"}],\"dbName\":\"inventory_items\"},\"InventoryReservation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiredAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryReservationToWarehouse\"}],\"dbName\":\"inventory_reservations\"},\"InventoryLedger\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sku\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"balanceAfter\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"referenceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryLedgerToWarehouse\"}],\"dbName\":\"inventory_ledgers\"},\"Inbox\":{\"fields\":[{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retryCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"lastError\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"inbox_events\"}},\"enums\":{},\"types\":{}}")
248
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Warehouse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"province\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"district\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ward\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"inventoryItems\",\"kind\":\"object\",\"type\":\"InventoryItem\",\"relationName\":\"InventoryItemToWarehouse\"},{\"name\":\"reservations\",\"kind\":\"object\",\"type\":\"InventoryReservation\",\"relationName\":\"InventoryReservationToWarehouse\"},{\"name\":\"ledgers\",\"kind\":\"object\",\"type\":\"InventoryLedger\",\"relationName\":\"InventoryLedgerToWarehouse\"}],\"dbName\":\"warehouses\"},\"InventoryItem\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"productId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skuId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantityOnHand\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"quantityReserved\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryItemToWarehouse\"}],\"dbName\":\"inventory_items\"},\"InventoryReservation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"orderId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skuId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expiredAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryReservationToWarehouse\"}],\"dbName\":\"inventory_reservations\"},\"InventoryLedger\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"inventoryItemId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"warehouseId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skuId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"balanceAfter\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"referenceId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"warehouse\",\"kind\":\"object\",\"type\":\"Warehouse\",\"relationName\":\"InventoryLedgerToWarehouse\"}],\"dbName\":\"inventory_ledgers\"},\"Inbox\":{\"fields\":[{\"name\":\"eventId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"eventType\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retryCount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"lastError\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"processedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"inbox_events\"}},\"enums\":{},\"types\":{}}")
248
249
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
249
250
  config.engineWasm = {
250
251
  getRuntime: async () => require('./query_engine_bg.js'),