@sagebox-be/prisma-inventory 0.0.1

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/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # prisma-inventory
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build prisma-inventory` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test prisma-inventory` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@sagebox-be/prisma-inventory",
3
+ "description": "Sagebox Prisma inventory client",
4
+ "keywords": [
5
+ "prisma",
6
+ "sagebox",
7
+ "inventory"
8
+ ],
9
+ "version": "0.0.1",
10
+ "type": "commonjs",
11
+ "main": "prisma/client/index.js",
12
+ "types": "prisma/client/index.d.ts",
13
+ "files": [
14
+ "prisma/client/**"
15
+ ],
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "dependencies": {
20
+ "@prisma/client": "^6.17.1",
21
+ "prisma-json-types-generator": "^3.6.2",
22
+ "tslib": "^2.3.0"
23
+ }
24
+ }
@@ -0,0 +1 @@
1
+ export * from "./index"
@@ -0,0 +1,4 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ module.exports = { ...require('.') }
@@ -0,0 +1 @@
1
+ export * from "./index"
@@ -0,0 +1,4 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ module.exports = { ...require('#main-entry-point') }
@@ -0,0 +1 @@
1
+ export * from "./default"
@@ -0,0 +1,240 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+
7
+ const {
8
+ PrismaClientKnownRequestError,
9
+ PrismaClientUnknownRequestError,
10
+ PrismaClientRustPanicError,
11
+ PrismaClientInitializationError,
12
+ PrismaClientValidationError,
13
+ getPrismaClient,
14
+ sqltag,
15
+ empty,
16
+ join,
17
+ raw,
18
+ skip,
19
+ Decimal,
20
+ Debug,
21
+ objectEnumValues,
22
+ makeStrictEnum,
23
+ Extensions,
24
+ warnOnce,
25
+ defineDmmfProperty,
26
+ Public,
27
+ getRuntime,
28
+ createParam,
29
+ } = require('./runtime/edge.js')
30
+
31
+
32
+ const Prisma = {}
33
+
34
+ exports.Prisma = Prisma
35
+ exports.$Enums = {}
36
+
37
+ /**
38
+ * Prisma Client JS version: 6.17.1
39
+ * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
40
+ */
41
+ Prisma.prismaVersion = {
42
+ client: "6.17.1",
43
+ engine: "272a37d34178c2894197e17273bf937f25acdeac"
44
+ }
45
+
46
+ Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
47
+ Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
48
+ Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
49
+ Prisma.PrismaClientInitializationError = PrismaClientInitializationError
50
+ Prisma.PrismaClientValidationError = PrismaClientValidationError
51
+ Prisma.Decimal = Decimal
52
+
53
+ /**
54
+ * Re-export of sql-template-tag
55
+ */
56
+ Prisma.sql = sqltag
57
+ Prisma.empty = empty
58
+ Prisma.join = join
59
+ Prisma.raw = raw
60
+ Prisma.validator = Public.validator
61
+
62
+ /**
63
+ * Extensions
64
+ */
65
+ Prisma.getExtensionContext = Extensions.getExtensionContext
66
+ Prisma.defineExtension = Extensions.defineExtension
67
+
68
+ /**
69
+ * Shorthand utilities for JSON filtering
70
+ */
71
+ Prisma.DbNull = objectEnumValues.instances.DbNull
72
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
73
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
74
+
75
+ Prisma.NullTypes = {
76
+ DbNull: objectEnumValues.classes.DbNull,
77
+ JsonNull: objectEnumValues.classes.JsonNull,
78
+ AnyNull: objectEnumValues.classes.AnyNull
79
+ }
80
+
81
+
82
+
83
+
84
+
85
+ /**
86
+ * Enums
87
+ */
88
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
89
+ ReadUncommitted: 'ReadUncommitted',
90
+ ReadCommitted: 'ReadCommitted',
91
+ RepeatableRead: 'RepeatableRead',
92
+ Serializable: 'Serializable'
93
+ });
94
+
95
+ exports.Prisma.WarehouseScalarFieldEnum = {
96
+ id: 'id',
97
+ code: 'code',
98
+ name: 'name',
99
+ province: 'province',
100
+ district: 'district',
101
+ ward: 'ward',
102
+ address: 'address',
103
+ isActive: 'isActive',
104
+ createdAt: 'createdAt',
105
+ updatedAt: 'updatedAt'
106
+ };
107
+
108
+ exports.Prisma.InventoryItemScalarFieldEnum = {
109
+ id: 'id',
110
+ warehouseId: 'warehouseId',
111
+ sku: 'sku',
112
+ quantityOnHand: 'quantityOnHand',
113
+ quantityReserved: 'quantityReserved',
114
+ version: 'version',
115
+ createdAt: 'createdAt',
116
+ updatedAt: 'updatedAt'
117
+ };
118
+
119
+ exports.Prisma.InventoryReservationScalarFieldEnum = {
120
+ id: 'id',
121
+ warehouseId: 'warehouseId',
122
+ orderId: 'orderId',
123
+ sku: 'sku',
124
+ quantity: 'quantity',
125
+ status: 'status',
126
+ expiredAt: 'expiredAt',
127
+ createdAt: 'createdAt',
128
+ updatedAt: 'updatedAt'
129
+ };
130
+
131
+ exports.Prisma.InventoryLedgerScalarFieldEnum = {
132
+ id: 'id',
133
+ warehouseId: 'warehouseId',
134
+ sku: 'sku',
135
+ type: 'type',
136
+ amount: 'amount',
137
+ balanceAfter: 'balanceAfter',
138
+ referenceId: 'referenceId',
139
+ note: 'note',
140
+ createdAt: 'createdAt'
141
+ };
142
+
143
+ exports.Prisma.SortOrder = {
144
+ asc: 'asc',
145
+ desc: 'desc'
146
+ };
147
+
148
+ exports.Prisma.QueryMode = {
149
+ default: 'default',
150
+ insensitive: 'insensitive'
151
+ };
152
+
153
+ exports.Prisma.NullsOrder = {
154
+ first: 'first',
155
+ last: 'last'
156
+ };
157
+
158
+
159
+ exports.Prisma.ModelName = {
160
+ Warehouse: 'Warehouse',
161
+ InventoryItem: 'InventoryItem',
162
+ InventoryReservation: 'InventoryReservation',
163
+ InventoryLedger: 'InventoryLedger'
164
+ };
165
+ /**
166
+ * Create the Client
167
+ */
168
+ const config = {
169
+ "generator": {
170
+ "name": "client",
171
+ "provider": {
172
+ "fromEnvVar": null,
173
+ "value": "prisma-client-js"
174
+ },
175
+ "output": {
176
+ "value": "/Users/oreka/Downloads/sagebox/sagebox-be/libs/prisma-inventory/prisma/client",
177
+ "fromEnvVar": null
178
+ },
179
+ "config": {
180
+ "engineType": "library"
181
+ },
182
+ "binaryTargets": [
183
+ {
184
+ "fromEnvVar": null,
185
+ "value": "darwin-arm64",
186
+ "native": true
187
+ },
188
+ {
189
+ "fromEnvVar": null,
190
+ "value": "linux-musl-openssl-3.0.x"
191
+ }
192
+ ],
193
+ "previewFeatures": [],
194
+ "sourceFilePath": "/Users/oreka/Downloads/sagebox/sagebox-be/libs/prisma-inventory/prisma/schema.prisma",
195
+ "isCustomOutput": true
196
+ },
197
+ "relativeEnvPaths": {
198
+ "rootEnvPath": null
199
+ },
200
+ "relativePath": "..",
201
+ "clientVersion": "6.17.1",
202
+ "engineVersion": "272a37d34178c2894197e17273bf937f25acdeac",
203
+ "datasourceNames": [
204
+ "db"
205
+ ],
206
+ "activeProvider": "postgresql",
207
+ "postinstall": false,
208
+ "inlineDatasources": {
209
+ "db": {
210
+ "url": {
211
+ "fromEnvVar": "DATABASE_INVENTORY_URL",
212
+ "value": null
213
+ }
214
+ }
215
+ },
216
+ "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 warehouseId String @db.Uuid\n sku 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, sku], map: \"inventory_items_warehouse_sku\")\n @@index([sku], 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\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",
217
+ "inlineSchemaHash": "93bbcef5de3b188d71944d803396764b31692d8a953394f425d307174f0fc051",
218
+ "copyEngine": true
219
+ }
220
+ config.dirname = '/'
221
+
222
+ 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\":\"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\":\"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\",\"sku\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"warehouseId\",\"sku\"]}],\"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\":\"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\"}},\"enums\":{},\"types\":{}}")
223
+ defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
224
+ config.engineWasm = undefined
225
+ config.compilerWasm = undefined
226
+
227
+ config.injectableEdgeEnv = () => ({
228
+ parsed: {
229
+ DATABASE_INVENTORY_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_INVENTORY_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_INVENTORY_URL || undefined
230
+ }
231
+ })
232
+
233
+ if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
234
+ Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
235
+ }
236
+
237
+ const PrismaClient = getPrismaClient(config)
238
+ exports.PrismaClient = PrismaClient
239
+ Object.assign(exports, Prisma)
240
+
@@ -0,0 +1,223 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+
7
+ const {
8
+ Decimal,
9
+ objectEnumValues,
10
+ makeStrictEnum,
11
+ Public,
12
+ getRuntime,
13
+ skip
14
+ } = require('./runtime/index-browser.js')
15
+
16
+
17
+ const Prisma = {}
18
+
19
+ exports.Prisma = Prisma
20
+ exports.$Enums = {}
21
+
22
+ /**
23
+ * Prisma Client JS version: 6.17.1
24
+ * Query Engine version: 272a37d34178c2894197e17273bf937f25acdeac
25
+ */
26
+ Prisma.prismaVersion = {
27
+ client: "6.17.1",
28
+ engine: "272a37d34178c2894197e17273bf937f25acdeac"
29
+ }
30
+
31
+ Prisma.PrismaClientKnownRequestError = () => {
32
+ const runtimeName = getRuntime().prettyName;
33
+ throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
34
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
35
+ )};
36
+ Prisma.PrismaClientUnknownRequestError = () => {
37
+ const runtimeName = getRuntime().prettyName;
38
+ throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
39
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
40
+ )}
41
+ Prisma.PrismaClientRustPanicError = () => {
42
+ const runtimeName = getRuntime().prettyName;
43
+ throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
44
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
45
+ )}
46
+ Prisma.PrismaClientInitializationError = () => {
47
+ const runtimeName = getRuntime().prettyName;
48
+ throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
49
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
50
+ )}
51
+ Prisma.PrismaClientValidationError = () => {
52
+ const runtimeName = getRuntime().prettyName;
53
+ throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
54
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
55
+ )}
56
+ Prisma.Decimal = Decimal
57
+
58
+ /**
59
+ * Re-export of sql-template-tag
60
+ */
61
+ Prisma.sql = () => {
62
+ const runtimeName = getRuntime().prettyName;
63
+ throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
64
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
65
+ )}
66
+ Prisma.empty = () => {
67
+ const runtimeName = getRuntime().prettyName;
68
+ throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
69
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
70
+ )}
71
+ Prisma.join = () => {
72
+ const runtimeName = getRuntime().prettyName;
73
+ throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
74
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
75
+ )}
76
+ Prisma.raw = () => {
77
+ const runtimeName = getRuntime().prettyName;
78
+ throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
79
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
80
+ )}
81
+ Prisma.validator = Public.validator
82
+
83
+ /**
84
+ * Extensions
85
+ */
86
+ Prisma.getExtensionContext = () => {
87
+ const runtimeName = getRuntime().prettyName;
88
+ throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
89
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
90
+ )}
91
+ Prisma.defineExtension = () => {
92
+ const runtimeName = getRuntime().prettyName;
93
+ throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}).
94
+ In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`,
95
+ )}
96
+
97
+ /**
98
+ * Shorthand utilities for JSON filtering
99
+ */
100
+ Prisma.DbNull = objectEnumValues.instances.DbNull
101
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
102
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
103
+
104
+ Prisma.NullTypes = {
105
+ DbNull: objectEnumValues.classes.DbNull,
106
+ JsonNull: objectEnumValues.classes.JsonNull,
107
+ AnyNull: objectEnumValues.classes.AnyNull
108
+ }
109
+
110
+
111
+
112
+ /**
113
+ * Enums
114
+ */
115
+
116
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
117
+ ReadUncommitted: 'ReadUncommitted',
118
+ ReadCommitted: 'ReadCommitted',
119
+ RepeatableRead: 'RepeatableRead',
120
+ Serializable: 'Serializable'
121
+ });
122
+
123
+ exports.Prisma.WarehouseScalarFieldEnum = {
124
+ id: 'id',
125
+ code: 'code',
126
+ name: 'name',
127
+ province: 'province',
128
+ district: 'district',
129
+ ward: 'ward',
130
+ address: 'address',
131
+ isActive: 'isActive',
132
+ createdAt: 'createdAt',
133
+ updatedAt: 'updatedAt'
134
+ };
135
+
136
+ exports.Prisma.InventoryItemScalarFieldEnum = {
137
+ id: 'id',
138
+ warehouseId: 'warehouseId',
139
+ sku: 'sku',
140
+ quantityOnHand: 'quantityOnHand',
141
+ quantityReserved: 'quantityReserved',
142
+ version: 'version',
143
+ createdAt: 'createdAt',
144
+ updatedAt: 'updatedAt'
145
+ };
146
+
147
+ exports.Prisma.InventoryReservationScalarFieldEnum = {
148
+ id: 'id',
149
+ warehouseId: 'warehouseId',
150
+ orderId: 'orderId',
151
+ sku: 'sku',
152
+ quantity: 'quantity',
153
+ status: 'status',
154
+ expiredAt: 'expiredAt',
155
+ createdAt: 'createdAt',
156
+ updatedAt: 'updatedAt'
157
+ };
158
+
159
+ exports.Prisma.InventoryLedgerScalarFieldEnum = {
160
+ id: 'id',
161
+ warehouseId: 'warehouseId',
162
+ sku: 'sku',
163
+ type: 'type',
164
+ amount: 'amount',
165
+ balanceAfter: 'balanceAfter',
166
+ referenceId: 'referenceId',
167
+ note: 'note',
168
+ createdAt: 'createdAt'
169
+ };
170
+
171
+ exports.Prisma.SortOrder = {
172
+ asc: 'asc',
173
+ desc: 'desc'
174
+ };
175
+
176
+ exports.Prisma.QueryMode = {
177
+ default: 'default',
178
+ insensitive: 'insensitive'
179
+ };
180
+
181
+ exports.Prisma.NullsOrder = {
182
+ first: 'first',
183
+ last: 'last'
184
+ };
185
+
186
+
187
+ exports.Prisma.ModelName = {
188
+ Warehouse: 'Warehouse',
189
+ InventoryItem: 'InventoryItem',
190
+ InventoryReservation: 'InventoryReservation',
191
+ InventoryLedger: 'InventoryLedger'
192
+ };
193
+
194
+ /**
195
+ * This is a stub Prisma Client that will error at runtime if called.
196
+ */
197
+ class PrismaClient {
198
+ constructor() {
199
+ return new Proxy(this, {
200
+ get(target, prop) {
201
+ let message
202
+ const runtime = getRuntime()
203
+ if (runtime.isEdge) {
204
+ message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either:
205
+ - Use Prisma Accelerate: https://pris.ly/d/accelerate
206
+ - Use Driver Adapters: https://pris.ly/d/driver-adapters
207
+ `;
208
+ } else {
209
+ message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).'
210
+ }
211
+
212
+ message += `
213
+ If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report`
214
+
215
+ throw new Error(message)
216
+ }
217
+ })
218
+ }
219
+ }
220
+
221
+ exports.PrismaClient = PrismaClient
222
+
223
+ Object.assign(exports, Prisma)