@axova/shared 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +2 -0
  3. package/dist/lib/db.d.ts +34406 -1
  4. package/dist/lib/db.js +21 -1
  5. package/dist/middleware/storeOwnership.js +22 -3
  6. package/dist/middleware/storeValidationMiddleware.js +16 -39
  7. package/dist/schemas/admin/admin-schema.d.ts +2 -2
  8. package/dist/schemas/ai-moderation/ai-moderation-schema.d.ts +6 -6
  9. package/dist/schemas/common/common-schemas.d.ts +71 -71
  10. package/dist/schemas/compliance/compliance-schema.d.ts +20 -20
  11. package/dist/schemas/compliance/kyc-schema.d.ts +8 -8
  12. package/dist/schemas/customer/customer-schema.d.ts +18 -18
  13. package/dist/schemas/index.d.ts +28 -0
  14. package/dist/schemas/index.js +134 -3
  15. package/dist/schemas/inventory/inventory-tables.d.ts +188 -188
  16. package/dist/schemas/inventory/lot-tables.d.ts +102 -102
  17. package/dist/schemas/order/cart-schema.d.ts +2865 -0
  18. package/dist/schemas/order/cart-schema.js +396 -0
  19. package/dist/schemas/order/order-schema.d.ts +19 -19
  20. package/dist/schemas/order/order-schema.js +8 -2
  21. package/dist/schemas/product/discount-schema.d.ts +3 -3
  22. package/dist/schemas/product/product-schema.d.ts +3 -3
  23. package/dist/schemas/store/store-audit-schema.d.ts +20 -20
  24. package/dist/schemas/store/store-schema.d.ts +182 -2
  25. package/dist/schemas/store/store-schema.js +19 -0
  26. package/dist/schemas/store/storefront-config-schema.d.ts +434 -823
  27. package/dist/schemas/store/storefront-config-schema.js +35 -62
  28. package/dist/utils/subdomain.d.ts +1 -1
  29. package/dist/utils/subdomain.js +10 -15
  30. package/package.json +1 -1
  31. package/src/configs/index.ts +654 -654
  32. package/src/index.ts +26 -23
  33. package/src/interfaces/customer-events.ts +106 -106
  34. package/src/interfaces/inventory-events.ts +545 -545
  35. package/src/interfaces/inventory-types.ts +1004 -1004
  36. package/src/interfaces/order-events.ts +381 -381
  37. package/src/lib/auditLogger.ts +1117 -1117
  38. package/src/lib/authOrganization.ts +153 -153
  39. package/src/lib/db.ts +84 -64
  40. package/src/middleware/serviceAuth.ts +328 -328
  41. package/src/middleware/storeOwnership.ts +199 -181
  42. package/src/middleware/storeValidationMiddleware.ts +17 -50
  43. package/src/middleware/userAuth.ts +248 -248
  44. package/src/schemas/admin/admin-schema.ts +208 -208
  45. package/src/schemas/ai-moderation/ai-moderation-schema.ts +180 -180
  46. package/src/schemas/common/common-schemas.ts +108 -108
  47. package/src/schemas/compliance/compliance-schema.ts +927 -0
  48. package/src/schemas/compliance/kyc-schema.ts +649 -0
  49. package/src/schemas/customer/customer-schema.ts +576 -0
  50. package/src/schemas/index.ts +202 -3
  51. package/src/schemas/inventory/inventory-tables.ts +1927 -0
  52. package/src/schemas/inventory/lot-tables.ts +799 -0
  53. package/src/schemas/order/cart-schema.ts +652 -0
  54. package/src/schemas/order/order-schema.ts +1406 -0
  55. package/src/schemas/product/discount-relations.ts +44 -0
  56. package/src/schemas/product/discount-schema.ts +464 -0
  57. package/src/schemas/product/product-relations.ts +187 -0
  58. package/src/schemas/product/product-schema.ts +955 -0
  59. package/src/schemas/store/ethiopian_business_api.md.resolved +212 -0
  60. package/src/schemas/store/store-audit-schema.ts +1257 -0
  61. package/src/schemas/store/store-schema.ts +682 -0
  62. package/src/schemas/store/store-settings-schema.ts +231 -0
  63. package/src/schemas/store/storefront-config-schema.ts +382 -0
  64. package/src/schemas/types.ts +67 -67
  65. package/src/types/events.ts +646 -646
  66. package/src/utils/errorHandler.ts +44 -44
  67. package/src/utils/subdomain.ts +19 -23
  68. package/tsconfig.json +21 -21
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cartActivityLogRelations = exports.cartAddressesRelations = exports.cartItemsRelations = exports.shoppingCartsRelations = exports.cartActivityLog = exports.cartAddresses = exports.cartItems = exports.shoppingCarts = exports.cartTypeEnum = exports.cartStatusEnum = void 0;
4
+ const cuid2_1 = require("@paralleldrive/cuid2");
5
+ const drizzle_orm_1 = require("drizzle-orm");
6
+ const pg_core_1 = require("drizzle-orm/pg-core");
7
+ // =====================================================
8
+ // CART ENUMS
9
+ // =====================================================
10
+ exports.cartStatusEnum = (0, pg_core_1.pgEnum)("cart_status", [
11
+ "ACTIVE",
12
+ "ABANDONED",
13
+ "CONVERTED",
14
+ "EXPIRED",
15
+ "MERGED",
16
+ "ARCHIVED",
17
+ ]);
18
+ exports.cartTypeEnum = (0, pg_core_1.pgEnum)("cart_type", [
19
+ "STANDARD",
20
+ "WISHLIST",
21
+ "SAVE_FOR_LATER",
22
+ "QUOTE",
23
+ "SUBSCRIPTION",
24
+ "RECURRING",
25
+ ]);
26
+ // =====================================================
27
+ // SHOPPING CARTS TABLE
28
+ // =====================================================
29
+ exports.shoppingCarts = (0, pg_core_1.pgTable)("shopping_carts", {
30
+ id: (0, pg_core_1.text)("id")
31
+ .primaryKey()
32
+ .$defaultFn(() => (0, cuid2_1.createId)()),
33
+ // Ownership
34
+ storeId: (0, pg_core_1.text)("store_id").notNull(),
35
+ customerId: (0, pg_core_1.text)("customer_id"), // Null for guest carts
36
+ userId: (0, pg_core_1.text)("user_id"),
37
+ sessionId: (0, pg_core_1.text)("session_id").notNull(), // Browser/device session
38
+ deviceFingerprint: (0, pg_core_1.text)("device_fingerprint"),
39
+ // Cart Classification
40
+ cartType: (0, exports.cartTypeEnum)("cart_type").notNull().default("STANDARD"),
41
+ status: (0, exports.cartStatusEnum)("status").notNull().default("ACTIVE"),
42
+ isGuestCart: (0, pg_core_1.boolean)("is_guest_cart").notNull().default(false),
43
+ isCheckoutStarted: (0, pg_core_1.boolean)("is_checkout_started").notNull().default(false),
44
+ // Contact Information (for guest carts)
45
+ guestEmail: (0, pg_core_1.varchar)("guest_email", { length: 255 }),
46
+ guestPhone: (0, pg_core_1.varchar)("guest_phone", { length: 20 }),
47
+ guestName: (0, pg_core_1.varchar)("guest_name", { length: 100 }),
48
+ // Financial Information
49
+ currency: (0, pg_core_1.varchar)("currency", { length: 3 }).notNull().default("USD"),
50
+ // Calculated Amounts
51
+ subtotalAmount: (0, pg_core_1.decimal)("subtotal_amount", { precision: 12, scale: 2 })
52
+ .notNull()
53
+ .default("0.00"),
54
+ taxAmount: (0, pg_core_1.decimal)("tax_amount", { precision: 12, scale: 2 })
55
+ .notNull()
56
+ .default("0.00"),
57
+ shippingAmount: (0, pg_core_1.decimal)("shipping_amount", { precision: 12, scale: 2 })
58
+ .notNull()
59
+ .default("0.00"),
60
+ discountAmount: (0, pg_core_1.decimal)("discount_amount", { precision: 12, scale: 2 })
61
+ .notNull()
62
+ .default("0.00"),
63
+ totalAmount: (0, pg_core_1.decimal)("total_amount", { precision: 12, scale: 2 })
64
+ .notNull()
65
+ .default("0.00"),
66
+ // Item Summary
67
+ itemCount: (0, pg_core_1.integer)("item_count").notNull().default(0),
68
+ totalQuantity: (0, pg_core_1.integer)("total_quantity").notNull().default(0),
69
+ // Discount and Promotion
70
+ appliedCoupons: (0, pg_core_1.jsonb)("applied_coupons").$type().default([]),
71
+ availableDiscounts: (0, pg_core_1.jsonb)("available_discounts").$type().default([]),
72
+ // Shipping Information
73
+ selectedShippingMethod: (0, pg_core_1.jsonb)("selected_shipping_method").$type(),
74
+ shippingAddressId: (0, pg_core_1.text)("shipping_address_id"),
75
+ billingAddressId: (0, pg_core_1.text)("billing_address_id"),
76
+ // Checkout Progress
77
+ checkoutStep: (0, pg_core_1.varchar)("checkout_step", { length: 50 }).$type().default("CART"),
78
+ checkoutStartedAt: (0, pg_core_1.timestamp)("checkout_started_at", { withTimezone: true }),
79
+ checkoutCompletedAt: (0, pg_core_1.timestamp)("checkout_completed_at", {
80
+ withTimezone: true,
81
+ }),
82
+ // Conversion Tracking
83
+ convertedOrderId: (0, pg_core_1.text)("converted_order_id"),
84
+ conversionRate: (0, pg_core_1.decimal)("conversion_rate", { precision: 5, scale: 2 }),
85
+ // Abandonment Tracking
86
+ abandonedAt: (0, pg_core_1.timestamp)("abandoned_at", { withTimezone: true }),
87
+ abandonmentReason: (0, pg_core_1.varchar)("abandonment_reason", { length: 100 }).$type(),
88
+ recoveryEmailSent: (0, pg_core_1.boolean)("recovery_email_sent")
89
+ .notNull()
90
+ .default(false),
91
+ recoveryEmailSentAt: (0, pg_core_1.timestamp)("recovery_email_sent_at", {
92
+ withTimezone: true,
93
+ }),
94
+ recoveryEmailCount: (0, pg_core_1.integer)("recovery_email_count").notNull().default(0),
95
+ isRecovered: (0, pg_core_1.boolean)("is_recovered").notNull().default(false),
96
+ recoveredAt: (0, pg_core_1.timestamp)("recovered_at", { withTimezone: true }),
97
+ // Expiration and Cleanup
98
+ expiresAt: (0, pg_core_1.timestamp)("expires_at", { withTimezone: true }),
99
+ autoExpireDays: (0, pg_core_1.integer)("auto_expire_days").notNull().default(30),
100
+ // Marketing Attribution
101
+ referrerUrl: (0, pg_core_1.text)("referrer_url"),
102
+ utmSource: (0, pg_core_1.varchar)("utm_source", { length: 100 }),
103
+ utmMedium: (0, pg_core_1.varchar)("utm_medium", { length: 100 }),
104
+ utmCampaign: (0, pg_core_1.varchar)("utm_campaign", { length: 100 }),
105
+ affiliateId: (0, pg_core_1.text)("affiliate_id"),
106
+ // Technical Information
107
+ userAgent: (0, pg_core_1.text)("user_agent"),
108
+ ipAddress: (0, pg_core_1.varchar)("ip_address", { length: 45 }),
109
+ browserInfo: (0, pg_core_1.jsonb)("browser_info").$type(),
110
+ deviceInfo: (0, pg_core_1.jsonb)("device_info").$type(),
111
+ // Cart Rules and Validation
112
+ validationErrors: (0, pg_core_1.jsonb)("validation_errors").$type().default([]),
113
+ minimumOrderMet: (0, pg_core_1.boolean)("minimum_order_met").notNull().default(true),
114
+ stockAvailable: (0, pg_core_1.boolean)("stock_available").notNull().default(true),
115
+ // Special Features
116
+ isGiftCart: (0, pg_core_1.boolean)("is_gift_cart").notNull().default(false),
117
+ giftMessage: (0, pg_core_1.text)("gift_message"),
118
+ notes: (0, pg_core_1.text)("notes"),
119
+ customerNotes: (0, pg_core_1.text)("customer_notes"),
120
+ internalNotes: (0, pg_core_1.text)("internal_notes"),
121
+ // Merge Tracking
122
+ mergedFromCartId: (0, pg_core_1.text)("merged_from_cart_id"),
123
+ mergedToCartId: (0, pg_core_1.text)("merged_to_cart_id"),
124
+ mergedAt: (0, pg_core_1.timestamp)("merged_at", { withTimezone: true }),
125
+ // Analytics and Insights
126
+ totalViewTime: (0, pg_core_1.integer)("total_view_time").notNull().default(0), // seconds
127
+ modificationsCount: (0, pg_core_1.integer)("modifications_count").notNull().default(0),
128
+ lastModifiedBy: (0, pg_core_1.varchar)("last_modified_by", { length: 50 }).$type(),
129
+ // Custom Fields
130
+ customFields: (0, pg_core_1.jsonb)("custom_fields")
131
+ .$type()
132
+ .default({}),
133
+ metadata: (0, pg_core_1.jsonb)("metadata").$type().default({}),
134
+ tags: (0, pg_core_1.jsonb)("tags").$type().default([]),
135
+ // Timestamps
136
+ createdAt: (0, pg_core_1.timestamp)("created_at", { withTimezone: true })
137
+ .defaultNow()
138
+ .notNull(),
139
+ updatedAt: (0, pg_core_1.timestamp)("updated_at", { withTimezone: true })
140
+ .defaultNow()
141
+ .notNull(),
142
+ lastActivityAt: (0, pg_core_1.timestamp)("last_activity_at", { withTimezone: true })
143
+ .defaultNow()
144
+ .notNull(),
145
+ deletedAt: (0, pg_core_1.timestamp)("deleted_at", { withTimezone: true }),
146
+ }, (table) => ({
147
+ // Primary Indexes
148
+ sessionIndex: (0, pg_core_1.index)("idx_carts_session").on(table.sessionId),
149
+ customerIndex: (0, pg_core_1.index)("idx_carts_customer").on(table.customerId),
150
+ userIndex: (0, pg_core_1.index)("idx_carts_user").on(table.userId),
151
+ guestEmailIndex: (0, pg_core_1.index)("idx_carts_guest_email").on(table.guestEmail),
152
+ // Status and Type Indexes
153
+ statusIndex: (0, pg_core_1.index)("idx_carts_status").on(table.status),
154
+ cartTypeIndex: (0, pg_core_1.index)("idx_carts_type").on(table.cartType),
155
+ guestCartIndex: (0, pg_core_1.index)("idx_carts_guest").on(table.isGuestCart),
156
+ // Store Indexes
157
+ storeIndex: (0, pg_core_1.index)("idx_carts_store").on(table.storeId),
158
+ // Conversion Tracking
159
+ convertedOrderIndex: (0, pg_core_1.index)("idx_carts_converted_order").on(table.convertedOrderId),
160
+ checkoutStartedIndex: (0, pg_core_1.index)("idx_carts_checkout_started").on(table.isCheckoutStarted),
161
+ // Abandonment Tracking
162
+ abandonedIndex: (0, pg_core_1.index)("idx_carts_abandoned").on(table.abandonedAt),
163
+ recoveryIndex: (0, pg_core_1.index)("idx_carts_recovery").on(table.recoveryEmailSent),
164
+ // Expiration
165
+ expiresAtIndex: (0, pg_core_1.index)("idx_carts_expires_at").on(table.expiresAt),
166
+ // Activity Tracking
167
+ lastActivityIndex: (0, pg_core_1.index)("idx_carts_last_activity").on(table.lastActivityAt),
168
+ createdAtIndex: (0, pg_core_1.index)("idx_carts_created_at").on(table.createdAt),
169
+ // Composite Indexes
170
+ storeStatusIndex: (0, pg_core_1.index)("idx_carts_store_status").on(table.storeId, table.status),
171
+ storeCustomerIndex: (0, pg_core_1.index)("idx_carts_store_customer").on(table.storeId, table.customerId),
172
+ sessionStoreIndex: (0, pg_core_1.index)("idx_carts_session_store").on(table.sessionId, table.storeId),
173
+ customerStatusIndex: (0, pg_core_1.index)("idx_carts_customer_status").on(table.customerId, table.status),
174
+ // Unique Constraints
175
+ activeCartPerSession: (0, pg_core_1.unique)("unq_active_cart_session").on(table.sessionId, table.storeId, table.status),
176
+ }));
177
+ // =====================================================
178
+ // CART ITEMS TABLE
179
+ // =====================================================
180
+ exports.cartItems = (0, pg_core_1.pgTable)("cart_items", {
181
+ id: (0, pg_core_1.text)("id")
182
+ .primaryKey()
183
+ .$defaultFn(() => (0, cuid2_1.createId)()),
184
+ cartId: (0, pg_core_1.text)("cart_id")
185
+ .notNull()
186
+ .references(() => exports.shoppingCarts.id, { onDelete: "cascade" }),
187
+ // Product Information
188
+ productId: (0, pg_core_1.text)("product_id").notNull(),
189
+ variantId: (0, pg_core_1.text)("variant_id"),
190
+ sku: (0, pg_core_1.varchar)("sku", { length: 100 }).notNull(),
191
+ productHandle: (0, pg_core_1.varchar)("product_handle", { length: 255 }),
192
+ // Product Details (snapshot)
193
+ productTitle: (0, pg_core_1.varchar)("product_title", { length: 255 }).notNull(),
194
+ variantTitle: (0, pg_core_1.varchar)("variant_title", { length: 255 }),
195
+ productType: (0, pg_core_1.varchar)("product_type", { length: 50 }),
196
+ vendor: (0, pg_core_1.varchar)("vendor", { length: 100 }),
197
+ productImage: (0, pg_core_1.text)("product_image"),
198
+ // Quantity and Availability
199
+ quantity: (0, pg_core_1.integer)("quantity").notNull().default(1),
200
+ availableQuantity: (0, pg_core_1.integer)("available_quantity"),
201
+ isInStock: (0, pg_core_1.boolean)("is_in_stock").notNull().default(true),
202
+ isBackordered: (0, pg_core_1.boolean)("is_backordered").notNull().default(false),
203
+ estimatedRestockDate: (0, pg_core_1.timestamp)("estimated_restock_date", {
204
+ withTimezone: true,
205
+ }),
206
+ // Pricing
207
+ unitPrice: (0, pg_core_1.decimal)("unit_price", { precision: 12, scale: 2 }).notNull(),
208
+ compareAtPrice: (0, pg_core_1.decimal)("compare_at_price", { precision: 12, scale: 2 }),
209
+ salePrice: (0, pg_core_1.decimal)("sale_price", { precision: 12, scale: 2 }),
210
+ lineTotal: (0, pg_core_1.decimal)("line_total", { precision: 12, scale: 2 }).notNull(),
211
+ // Discounts
212
+ discountAmount: (0, pg_core_1.decimal)("discount_amount", { precision: 12, scale: 2 })
213
+ .notNull()
214
+ .default("0.00"),
215
+ appliedDiscounts: (0, pg_core_1.jsonb)("applied_discounts").$type().default([]),
216
+ // Product Options and Customization
217
+ selectedOptions: (0, pg_core_1.jsonb)("selected_options").$type().default({}),
218
+ customization: (0, pg_core_1.jsonb)("customization").$type(),
219
+ // Subscription Information
220
+ isSubscription: (0, pg_core_1.boolean)("is_subscription").notNull().default(false),
221
+ subscriptionFrequency: (0, pg_core_1.varchar)("subscription_frequency", { length: 20 }),
222
+ subscriptionDiscount: (0, pg_core_1.decimal)("subscription_discount", {
223
+ precision: 5,
224
+ scale: 2,
225
+ }),
226
+ // Item Flags
227
+ isGiftWrap: (0, pg_core_1.boolean)("is_gift_wrap").notNull().default(false),
228
+ requiresShipping: (0, pg_core_1.boolean)("requires_shipping").notNull().default(true),
229
+ isDigital: (0, pg_core_1.boolean)("is_digital").notNull().default(false),
230
+ isFreeShipping: (0, pg_core_1.boolean)("is_free_shipping").notNull().default(false),
231
+ // Inventory Location
232
+ inventoryLocationId: (0, pg_core_1.text)("inventory_location_id"),
233
+ warehouseId: (0, pg_core_1.text)("warehouse_id"),
234
+ // Product Snapshot (preserve data)
235
+ productSnapshot: (0, pg_core_1.jsonb)("product_snapshot").$type(),
236
+ // Validation
237
+ hasErrors: (0, pg_core_1.boolean)("has_errors").notNull().default(false),
238
+ validationErrors: (0, pg_core_1.jsonb)("validation_errors").$type().default([]),
239
+ // Tracking
240
+ addedBy: (0, pg_core_1.varchar)("added_by", { length: 50 }).$type().default("CUSTOMER"),
241
+ source: (0, pg_core_1.varchar)("source", { length: 50 }).$type().default("PRODUCT_PAGE"),
242
+ // Save for Later
243
+ savedForLater: (0, pg_core_1.boolean)("saved_for_later").notNull().default(false),
244
+ savedForLaterAt: (0, pg_core_1.timestamp)("saved_for_later_at", { withTimezone: true }),
245
+ // Notes
246
+ itemNotes: (0, pg_core_1.text)("item_notes"),
247
+ // Analytics
248
+ viewCount: (0, pg_core_1.integer)("view_count").notNull().default(0),
249
+ lastViewedAt: (0, pg_core_1.timestamp)("last_viewed_at", { withTimezone: true }),
250
+ // Timestamps
251
+ addedAt: (0, pg_core_1.timestamp)("added_at", { withTimezone: true })
252
+ .defaultNow()
253
+ .notNull(),
254
+ updatedAt: (0, pg_core_1.timestamp)("updated_at", { withTimezone: true })
255
+ .defaultNow()
256
+ .notNull(),
257
+ }, (table) => ({
258
+ // Foreign Key Indexes
259
+ cartIdIndex: (0, pg_core_1.index)("idx_cart_items_cart_id").on(table.cartId),
260
+ productIdIndex: (0, pg_core_1.index)("idx_cart_items_product_id").on(table.productId),
261
+ variantIdIndex: (0, pg_core_1.index)("idx_cart_items_variant_id").on(table.variantId),
262
+ skuIndex: (0, pg_core_1.index)("idx_cart_items_sku").on(table.sku),
263
+ // Inventory
264
+ inventoryLocationIndex: (0, pg_core_1.index)("idx_cart_items_inventory_location").on(table.inventoryLocationId),
265
+ warehouseIndex: (0, pg_core_1.index)("idx_cart_items_warehouse").on(table.warehouseId),
266
+ // Stock Status
267
+ inStockIndex: (0, pg_core_1.index)("idx_cart_items_in_stock").on(table.isInStock),
268
+ backorderedIndex: (0, pg_core_1.index)("idx_cart_items_backordered").on(table.isBackordered),
269
+ // Item Flags
270
+ savedForLaterIndex: (0, pg_core_1.index)("idx_cart_items_saved_for_later").on(table.savedForLater),
271
+ subscriptionIndex: (0, pg_core_1.index)("idx_cart_items_subscription").on(table.isSubscription),
272
+ // Composite Indexes
273
+ cartProductIndex: (0, pg_core_1.index)("idx_cart_items_cart_product").on(table.cartId, table.productId),
274
+ cartSkuIndex: (0, pg_core_1.index)("idx_cart_items_cart_sku").on(table.cartId, table.sku),
275
+ // Unique Constraint - prevent duplicate items in same cart
276
+ uniqueCartProduct: (0, pg_core_1.unique)("unq_cart_product_variant").on(table.cartId, table.productId, table.variantId),
277
+ }));
278
+ // =====================================================
279
+ // CART ADDRESSES TABLE
280
+ // =====================================================
281
+ exports.cartAddresses = (0, pg_core_1.pgTable)("cart_addresses", {
282
+ id: (0, pg_core_1.text)("id")
283
+ .primaryKey()
284
+ .$defaultFn(() => (0, cuid2_1.createId)()),
285
+ cartId: (0, pg_core_1.text)("cart_id")
286
+ .notNull()
287
+ .references(() => exports.shoppingCarts.id, { onDelete: "cascade" }),
288
+ addressType: (0, pg_core_1.varchar)("address_type", { length: 20 })
289
+ .notNull()
290
+ .$type(),
291
+ // Contact Information
292
+ firstName: (0, pg_core_1.varchar)("first_name", { length: 100 }),
293
+ lastName: (0, pg_core_1.varchar)("last_name", { length: 100 }),
294
+ company: (0, pg_core_1.varchar)("company", { length: 100 }),
295
+ email: (0, pg_core_1.varchar)("email", { length: 255 }),
296
+ phone: (0, pg_core_1.varchar)("phone", { length: 20 }),
297
+ // Address Information
298
+ address1: (0, pg_core_1.varchar)("address1", { length: 255 }).notNull(),
299
+ address2: (0, pg_core_1.varchar)("address2", { length: 255 }),
300
+ city: (0, pg_core_1.varchar)("city", { length: 100 }).notNull(),
301
+ province: (0, pg_core_1.varchar)("province", { length: 100 }),
302
+ provinceCode: (0, pg_core_1.varchar)("province_code", { length: 10 }),
303
+ country: (0, pg_core_1.varchar)("country", { length: 100 }).notNull(),
304
+ countryCode: (0, pg_core_1.varchar)("country_code", { length: 2 }).notNull(),
305
+ postalCode: (0, pg_core_1.varchar)("postal_code", { length: 20 }),
306
+ // Validation
307
+ isValidated: (0, pg_core_1.boolean)("is_validated").notNull().default(false),
308
+ isResidential: (0, pg_core_1.boolean)("is_residential").notNull().default(true),
309
+ // Delivery Preferences
310
+ deliveryInstructions: (0, pg_core_1.text)("delivery_instructions"),
311
+ isDefaultShipping: (0, pg_core_1.boolean)("is_default_shipping").notNull().default(false),
312
+ isDefaultBilling: (0, pg_core_1.boolean)("is_default_billing").notNull().default(false),
313
+ // Timestamps
314
+ createdAt: (0, pg_core_1.timestamp)("created_at", { withTimezone: true })
315
+ .defaultNow()
316
+ .notNull(),
317
+ updatedAt: (0, pg_core_1.timestamp)("updated_at", { withTimezone: true })
318
+ .defaultNow()
319
+ .notNull(),
320
+ }, (table) => ({
321
+ cartIdIndex: (0, pg_core_1.index)("idx_cart_addresses_cart_id").on(table.cartId),
322
+ addressTypeIndex: (0, pg_core_1.index)("idx_cart_addresses_type").on(table.addressType),
323
+ // Ensure one address per type per cart
324
+ uniqueCartAddressType: (0, pg_core_1.unique)("unq_cart_address_type").on(table.cartId, table.addressType),
325
+ }));
326
+ // =====================================================
327
+ // CART ACTIVITY LOG TABLE
328
+ // =====================================================
329
+ exports.cartActivityLog = (0, pg_core_1.pgTable)("cart_activity_log", {
330
+ id: (0, pg_core_1.text)("id")
331
+ .primaryKey()
332
+ .$defaultFn(() => (0, cuid2_1.createId)()),
333
+ cartId: (0, pg_core_1.text)("cart_id")
334
+ .notNull()
335
+ .references(() => exports.shoppingCarts.id, { onDelete: "cascade" }),
336
+ // Activity Information
337
+ activityType: (0, pg_core_1.varchar)("activity_type", { length: 50 })
338
+ .notNull()
339
+ .$type(),
340
+ // Details
341
+ activityDetails: (0, pg_core_1.jsonb)("activity_details")
342
+ .$type()
343
+ .default({}),
344
+ itemId: (0, pg_core_1.text)("item_id"), // Reference to cart item if applicable
345
+ productId: (0, pg_core_1.text)("product_id"),
346
+ variantId: (0, pg_core_1.text)("variant_id"),
347
+ // Change Tracking
348
+ previousValue: (0, pg_core_1.jsonb)("previous_value").$type(),
349
+ newValue: (0, pg_core_1.jsonb)("new_value").$type(),
350
+ // Actor Information
351
+ actorType: (0, pg_core_1.varchar)("actor_type", { length: 20 })
352
+ .notNull()
353
+ .$type(),
354
+ actorId: (0, pg_core_1.text)("actor_id"),
355
+ // Context
356
+ sessionId: (0, pg_core_1.text)("session_id"),
357
+ ipAddress: (0, pg_core_1.varchar)("ip_address", { length: 45 }),
358
+ userAgent: (0, pg_core_1.text)("user_agent"),
359
+ // Timestamps
360
+ occurredAt: (0, pg_core_1.timestamp)("occurred_at", { withTimezone: true })
361
+ .defaultNow()
362
+ .notNull(),
363
+ }, (table) => ({
364
+ cartIdIndex: (0, pg_core_1.index)("idx_cart_activity_cart_id").on(table.cartId),
365
+ activityTypeIndex: (0, pg_core_1.index)("idx_cart_activity_type").on(table.activityType),
366
+ productIdIndex: (0, pg_core_1.index)("idx_cart_activity_product").on(table.productId),
367
+ occurredAtIndex: (0, pg_core_1.index)("idx_cart_activity_occurred_at").on(table.occurredAt),
368
+ // Composite Indexes
369
+ cartActivityIndex: (0, pg_core_1.index)("idx_cart_activity_cart_type").on(table.cartId, table.activityType),
370
+ }));
371
+ // =====================================================
372
+ // RELATIONS
373
+ // =====================================================
374
+ exports.shoppingCartsRelations = (0, drizzle_orm_1.relations)(exports.shoppingCarts, ({ many }) => ({
375
+ items: many(exports.cartItems),
376
+ addresses: many(exports.cartAddresses),
377
+ activityLog: many(exports.cartActivityLog),
378
+ }));
379
+ exports.cartItemsRelations = (0, drizzle_orm_1.relations)(exports.cartItems, ({ one }) => ({
380
+ cart: one(exports.shoppingCarts, {
381
+ fields: [exports.cartItems.cartId],
382
+ references: [exports.shoppingCarts.id],
383
+ }),
384
+ }));
385
+ exports.cartAddressesRelations = (0, drizzle_orm_1.relations)(exports.cartAddresses, ({ one }) => ({
386
+ cart: one(exports.shoppingCarts, {
387
+ fields: [exports.cartAddresses.cartId],
388
+ references: [exports.shoppingCarts.id],
389
+ }),
390
+ }));
391
+ exports.cartActivityLogRelations = (0, drizzle_orm_1.relations)(exports.cartActivityLog, ({ one }) => ({
392
+ cart: one(exports.shoppingCarts, {
393
+ fields: [exports.cartActivityLog.cartId],
394
+ references: [exports.shoppingCarts.id],
395
+ }),
396
+ }));
@@ -173,7 +173,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
173
173
  tableName: "orders";
174
174
  dataType: "string";
175
175
  columnType: "PgEnumColumn";
176
- data: "PHONE" | "WHOLESALE" | "ONLINE" | "POS" | "DELIVERY" | "PICKUP" | "MARKETPLACE" | "SUBSCRIPTION" | "SUBSCRIPTION_RENEWAL";
176
+ data: "PHONE" | "ONLINE" | "POS" | "PICKUP" | "DELIVERY" | "MARKETPLACE" | "WHOLESALE" | "SUBSCRIPTION" | "SUBSCRIPTION_RENEWAL";
177
177
  driverParam: string;
178
178
  notNull: true;
179
179
  hasDefault: false;
@@ -190,7 +190,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
190
190
  tableName: "orders";
191
191
  dataType: "string";
192
192
  columnType: "PgVarchar";
193
- data: "ADMIN" | "EMAIL" | "WEB" | "MOBILE_APP" | "API" | "PHONE" | "SOCIAL_MEDIA" | "POS" | "MARKETPLACE" | "SUBSCRIPTION_RENEWAL" | "IMPORT";
193
+ data: "ADMIN" | "EMAIL" | "WEB" | "MOBILE_APP" | "API" | "PHONE" | "IMPORT" | "POS" | "MARKETPLACE" | "SUBSCRIPTION_RENEWAL" | "SOCIAL_MEDIA";
194
194
  driverParam: string;
195
195
  notNull: true;
196
196
  hasDefault: false;
@@ -203,7 +203,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
203
203
  generated: undefined;
204
204
  }, {}, {
205
205
  length: 50;
206
- $type: "ADMIN" | "EMAIL" | "WEB" | "MOBILE_APP" | "API" | "PHONE" | "SOCIAL_MEDIA" | "POS" | "MARKETPLACE" | "SUBSCRIPTION_RENEWAL" | "IMPORT";
206
+ $type: "ADMIN" | "EMAIL" | "WEB" | "MOBILE_APP" | "API" | "PHONE" | "IMPORT" | "POS" | "MARKETPLACE" | "SUBSCRIPTION_RENEWAL" | "SOCIAL_MEDIA";
207
207
  }>;
208
208
  marketplaceInfo: import("drizzle-orm/pg-core").PgColumn<{
209
209
  name: "marketplace_info";
@@ -241,7 +241,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
241
241
  tableName: "orders";
242
242
  dataType: "string";
243
243
  columnType: "PgEnumColumn";
244
- data: "PENDING" | "COMPLETED" | "CANCELLED" | "PROCESSING" | "FAILED" | "DRAFT" | "RETURNED" | "DISPUTED" | "CONFIRMED" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "PARTIALLY_RETURNED" | "ON_HOLD";
244
+ data: "PENDING" | "FAILED" | "COMPLETED" | "CANCELLED" | "DRAFT" | "CONFIRMED" | "PROCESSING" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "RETURNED" | "PARTIALLY_RETURNED" | "DISPUTED" | "ON_HOLD";
245
245
  driverParam: string;
246
246
  notNull: true;
247
247
  hasDefault: true;
@@ -258,7 +258,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
258
258
  tableName: "orders";
259
259
  dataType: "string";
260
260
  columnType: "PgEnumColumn";
261
- data: "PENDING" | "CANCELLED" | "FAILED" | "DISPUTED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "AUTHORIZED" | "PAID" | "PARTIALLY_PAID" | "VOIDED" | "CHARGEBACK";
261
+ data: "PENDING" | "FAILED" | "CANCELLED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "DISPUTED" | "AUTHORIZED" | "PAID" | "PARTIALLY_PAID" | "VOIDED" | "CHARGEBACK";
262
262
  driverParam: string;
263
263
  notNull: true;
264
264
  hasDefault: true;
@@ -275,7 +275,7 @@ export declare const orders: import("drizzle-orm/pg-core").PgTableWithColumns<{
275
275
  tableName: "orders";
276
276
  dataType: "string";
277
277
  columnType: "PgEnumColumn";
278
- data: "PENDING" | "CANCELLED" | "IN_TRANSIT" | "LOST" | "ALLOCATED" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "PICKED" | "READY_FOR_PICKUP" | "ATTEMPTED_DELIVERY" | "DELIVERY_FAILED" | "RETURNED_TO_SENDER";
278
+ data: "PENDING" | "CANCELLED" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "ALLOCATED" | "PICKED" | "READY_FOR_PICKUP" | "IN_TRANSIT" | "ATTEMPTED_DELIVERY" | "DELIVERY_FAILED" | "RETURNED_TO_SENDER" | "LOST";
279
279
  driverParam: string;
280
280
  notNull: true;
281
281
  hasDefault: true;
@@ -2288,7 +2288,7 @@ export declare const orderAddresses: import("drizzle-orm/pg-core").PgTableWithCo
2288
2288
  tableName: "order_addresses";
2289
2289
  dataType: "string";
2290
2290
  columnType: "PgEnumColumn";
2291
- data: "BILLING" | "SHIPPING" | "DELIVERY" | "PICKUP";
2291
+ data: "SHIPPING" | "PICKUP" | "DELIVERY" | "BILLING";
2292
2292
  driverParam: string;
2293
2293
  notNull: true;
2294
2294
  hasDefault: false;
@@ -2897,7 +2897,7 @@ export declare const orderPayments: import("drizzle-orm/pg-core").PgTableWithCol
2897
2897
  tableName: "order_payments";
2898
2898
  dataType: "string";
2899
2899
  columnType: "PgEnumColumn";
2900
- data: "PENDING" | "CANCELLED" | "FAILED" | "DISPUTED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "AUTHORIZED" | "PAID" | "PARTIALLY_PAID" | "VOIDED" | "CHARGEBACK";
2900
+ data: "PENDING" | "FAILED" | "CANCELLED" | "REFUNDED" | "PARTIALLY_REFUNDED" | "DISPUTED" | "AUTHORIZED" | "PAID" | "PARTIALLY_PAID" | "VOIDED" | "CHARGEBACK";
2901
2901
  driverParam: string;
2902
2902
  notNull: true;
2903
2903
  hasDefault: true;
@@ -2914,7 +2914,7 @@ export declare const orderPayments: import("drizzle-orm/pg-core").PgTableWithCol
2914
2914
  tableName: "order_payments";
2915
2915
  dataType: "string";
2916
2916
  columnType: "PgVarchar";
2917
- data: "ADJUSTMENT" | "CHARGEBACK" | "PAYMENT" | "REFUND" | "PARTIAL_REFUND";
2917
+ data: "PAYMENT" | "CHARGEBACK" | "REFUND" | "PARTIAL_REFUND" | "ADJUSTMENT";
2918
2918
  driverParam: string;
2919
2919
  notNull: true;
2920
2920
  hasDefault: true;
@@ -2927,7 +2927,7 @@ export declare const orderPayments: import("drizzle-orm/pg-core").PgTableWithCol
2927
2927
  generated: undefined;
2928
2928
  }, {}, {
2929
2929
  length: 20;
2930
- $type: "ADJUSTMENT" | "CHARGEBACK" | "PAYMENT" | "REFUND" | "PARTIAL_REFUND";
2930
+ $type: "PAYMENT" | "CHARGEBACK" | "REFUND" | "PARTIAL_REFUND" | "ADJUSTMENT";
2931
2931
  }>;
2932
2932
  currency: import("drizzle-orm/pg-core").PgColumn<{
2933
2933
  name: "currency";
@@ -3563,7 +3563,7 @@ export declare const orderFulfillments: import("drizzle-orm/pg-core").PgTableWit
3563
3563
  tableName: "order_fulfillments";
3564
3564
  dataType: "string";
3565
3565
  columnType: "PgEnumColumn";
3566
- data: "PENDING" | "CANCELLED" | "IN_TRANSIT" | "LOST" | "ALLOCATED" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "PICKED" | "READY_FOR_PICKUP" | "ATTEMPTED_DELIVERY" | "DELIVERY_FAILED" | "RETURNED_TO_SENDER";
3566
+ data: "PENDING" | "CANCELLED" | "PICKING" | "PACKED" | "SHIPPED" | "OUT_FOR_DELIVERY" | "DELIVERED" | "ALLOCATED" | "PICKED" | "READY_FOR_PICKUP" | "IN_TRANSIT" | "ATTEMPTED_DELIVERY" | "DELIVERY_FAILED" | "RETURNED_TO_SENDER" | "LOST";
3567
3567
  driverParam: string;
3568
3568
  notNull: true;
3569
3569
  hasDefault: true;
@@ -3580,7 +3580,7 @@ export declare const orderFulfillments: import("drizzle-orm/pg-core").PgTableWit
3580
3580
  tableName: "order_fulfillments";
3581
3581
  dataType: "string";
3582
3582
  columnType: "PgVarchar";
3583
- data: "SERVICE" | "SHIPPING" | "DELIVERY" | "PICKUP" | "DIGITAL";
3583
+ data: "SERVICE" | "SHIPPING" | "PICKUP" | "DELIVERY" | "DIGITAL";
3584
3584
  driverParam: string;
3585
3585
  notNull: true;
3586
3586
  hasDefault: false;
@@ -3593,7 +3593,7 @@ export declare const orderFulfillments: import("drizzle-orm/pg-core").PgTableWit
3593
3593
  generated: undefined;
3594
3594
  }, {}, {
3595
3595
  length: 20;
3596
- $type: "SERVICE" | "SHIPPING" | "DELIVERY" | "PICKUP" | "DIGITAL";
3596
+ $type: "SERVICE" | "SHIPPING" | "PICKUP" | "DELIVERY" | "DIGITAL";
3597
3597
  }>;
3598
3598
  shippingCarrier: import("drizzle-orm/pg-core").PgColumn<{
3599
3599
  name: "shipping_carrier";
@@ -4375,7 +4375,7 @@ export declare const orderDiscounts: import("drizzle-orm/pg-core").PgTableWithCo
4375
4375
  tableName: "order_discounts";
4376
4376
  dataType: "string";
4377
4377
  columnType: "PgVarchar";
4378
- data: "MANUAL" | "REFERRAL" | "COUPON" | "BULK" | "PROMOTION" | "LOYALTY" | "AUTOMATIC";
4378
+ data: "PROMOTION" | "COUPON" | "BULK" | "MANUAL" | "LOYALTY" | "AUTOMATIC" | "REFERRAL";
4379
4379
  driverParam: string;
4380
4380
  notNull: true;
4381
4381
  hasDefault: false;
@@ -4388,7 +4388,7 @@ export declare const orderDiscounts: import("drizzle-orm/pg-core").PgTableWithCo
4388
4388
  generated: undefined;
4389
4389
  }, {}, {
4390
4390
  length: 50;
4391
- $type: "MANUAL" | "REFERRAL" | "COUPON" | "BULK" | "PROMOTION" | "LOYALTY" | "AUTOMATIC";
4391
+ $type: "PROMOTION" | "COUPON" | "BULK" | "MANUAL" | "LOYALTY" | "AUTOMATIC" | "REFERRAL";
4392
4392
  }>;
4393
4393
  title: import("drizzle-orm/pg-core").PgColumn<{
4394
4394
  name: "title";
@@ -5061,7 +5061,7 @@ export declare const orderHistory: import("drizzle-orm/pg-core").PgTableWithColu
5061
5061
  tableName: "order_history";
5062
5062
  dataType: "string";
5063
5063
  columnType: "PgVarchar";
5064
- data: "ADMIN" | "EMAIL" | "SYSTEM" | "WEB" | "API" | "PHONE" | "CHAT" | "POS" | "MOBILE";
5064
+ data: "ADMIN" | "EMAIL" | "SYSTEM" | "WEB" | "API" | "PHONE" | "POS" | "MOBILE" | "CHAT";
5065
5065
  driverParam: string;
5066
5066
  notNull: true;
5067
5067
  hasDefault: false;
@@ -5074,7 +5074,7 @@ export declare const orderHistory: import("drizzle-orm/pg-core").PgTableWithColu
5074
5074
  generated: undefined;
5075
5075
  }, {}, {
5076
5076
  length: 50;
5077
- $type: "ADMIN" | "EMAIL" | "SYSTEM" | "WEB" | "API" | "PHONE" | "CHAT" | "POS" | "MOBILE";
5077
+ $type: "ADMIN" | "EMAIL" | "SYSTEM" | "WEB" | "API" | "PHONE" | "POS" | "MOBILE" | "CHAT";
5078
5078
  }>;
5079
5079
  sessionId: import("drizzle-orm/pg-core").PgColumn<{
5080
5080
  name: "session_id";
@@ -5374,7 +5374,7 @@ export declare const orderNotes: import("drizzle-orm/pg-core").PgTableWithColumn
5374
5374
  tableName: "order_notes";
5375
5375
  dataType: "string";
5376
5376
  columnType: "PgVarchar";
5377
- data: "FRAUD" | "SHIPPING" | "GENERAL" | "FOLLOW_UP" | "PAYMENT" | "ESCALATION" | "CUSTOMER_SERVICE" | "FULFILLMENT" | "QUALITY" | "RETURNS";
5377
+ data: "PAYMENT" | "SHIPPING" | "CUSTOMER_SERVICE" | "ESCALATION" | "GENERAL" | "FULFILLMENT" | "FRAUD" | "QUALITY" | "RETURNS" | "FOLLOW_UP";
5378
5378
  driverParam: string;
5379
5379
  notNull: true;
5380
5380
  hasDefault: false;
@@ -5387,7 +5387,7 @@ export declare const orderNotes: import("drizzle-orm/pg-core").PgTableWithColumn
5387
5387
  generated: undefined;
5388
5388
  }, {}, {
5389
5389
  length: 30;
5390
- $type: "FRAUD" | "SHIPPING" | "GENERAL" | "FOLLOW_UP" | "PAYMENT" | "ESCALATION" | "CUSTOMER_SERVICE" | "FULFILLMENT" | "QUALITY" | "RETURNS";
5390
+ $type: "PAYMENT" | "SHIPPING" | "CUSTOMER_SERVICE" | "ESCALATION" | "GENERAL" | "FULFILLMENT" | "FRAUD" | "QUALITY" | "RETURNS" | "FOLLOW_UP";
5391
5391
  }>;
5392
5392
  title: import("drizzle-orm/pg-core").PgColumn<{
5393
5393
  name: "title";
@@ -898,8 +898,11 @@ exports.ordersRelations = (0, drizzle_orm_1.relations)(exports.orders, ({ many,
898
898
  parentOrder: one(exports.orders, {
899
899
  fields: [exports.orders.parentOrderId],
900
900
  references: [exports.orders.id],
901
+ relationName: "orderSplits",
902
+ }),
903
+ childOrders: many(exports.orders, {
904
+ relationName: "orderSplits",
901
905
  }),
902
- childOrders: many(exports.orders),
903
906
  }));
904
907
  exports.orderItemsRelations = (0, drizzle_orm_1.relations)(exports.orderItems, ({ one }) => ({
905
908
  order: one(exports.orders, {
@@ -949,6 +952,9 @@ exports.orderNotesRelations = (0, drizzle_orm_1.relations)(exports.orderNotes, (
949
952
  parentNote: one(exports.orderNotes, {
950
953
  fields: [exports.orderNotes.parentNoteId],
951
954
  references: [exports.orderNotes.id],
955
+ relationName: "noteReplies",
956
+ }),
957
+ childNotes: many(exports.orderNotes, {
958
+ relationName: "noteReplies",
952
959
  }),
953
- childNotes: many(exports.orderNotes),
954
960
  }));
@@ -100,7 +100,7 @@ export declare const discounts: import("drizzle-orm/pg-core").PgTableWithColumns
100
100
  tableName: "discounts";
101
101
  dataType: "string";
102
102
  columnType: "PgEnumColumn";
103
- data: "REFERRAL" | "PERCENTAGE" | "FIXED_AMOUNT" | "FREE_SHIPPING" | "BOGO" | "LOYALTY_POINTS" | "TIERED" | "MEMBER_ONLY";
103
+ data: "PERCENTAGE" | "FIXED_AMOUNT" | "FREE_SHIPPING" | "BOGO" | "LOYALTY_POINTS" | "REFERRAL" | "TIERED" | "MEMBER_ONLY";
104
104
  driverParam: string;
105
105
  notNull: true;
106
106
  hasDefault: false;
@@ -117,7 +117,7 @@ export declare const discounts: import("drizzle-orm/pg-core").PgTableWithColumns
117
117
  tableName: "discounts";
118
118
  dataType: "string";
119
119
  columnType: "PgEnumColumn";
120
- data: "SCHEDULED" | "DRAFT" | "ACTIVE" | "EXPIRED" | "PAUSED" | "DISABLED";
120
+ data: "EXPIRED" | "ACTIVE" | "DRAFT" | "SCHEDULED" | "PAUSED" | "DISABLED";
121
121
  driverParam: string;
122
122
  notNull: true;
123
123
  hasDefault: true;
@@ -1488,7 +1488,7 @@ export declare const customerSegments: import("drizzle-orm/pg-core").PgTableWith
1488
1488
  tableName: "customer_segments";
1489
1489
  dataType: "string";
1490
1490
  columnType: "PgEnumColumn";
1491
- data: "VIP" | "CUSTOM" | "NEW_CUSTOMER" | "RETURNING_CUSTOMER" | "LOYALTY_TIER_1" | "LOYALTY_TIER_2" | "LOYALTY_TIER_3" | "GEOGRAPHIC" | "PURCHASE_HISTORY";
1491
+ data: "CUSTOM" | "VIP" | "NEW_CUSTOMER" | "RETURNING_CUSTOMER" | "LOYALTY_TIER_1" | "LOYALTY_TIER_2" | "LOYALTY_TIER_3" | "GEOGRAPHIC" | "PURCHASE_HISTORY";
1492
1492
  driverParam: string;
1493
1493
  notNull: true;
1494
1494
  hasDefault: false;
@@ -370,7 +370,7 @@ export declare const products: import("drizzle-orm/pg-core").PgTableWithColumns<
370
370
  tableName: "products";
371
371
  dataType: "string";
372
372
  columnType: "PgEnumColumn";
373
- data: "DRAFT" | "ACTIVE" | "ARCHIVED" | "INACTIVE" | "OUT_OF_STOCK";
373
+ data: "ACTIVE" | "ARCHIVED" | "DRAFT" | "INACTIVE" | "OUT_OF_STOCK";
374
374
  driverParam: string;
375
375
  notNull: true;
376
376
  hasDefault: true;
@@ -924,7 +924,7 @@ export declare const products: import("drizzle-orm/pg-core").PgTableWithColumns<
924
924
  tableName: "products";
925
925
  dataType: "string";
926
926
  columnType: "PgEnumColumn";
927
- data: "AUTOMATED" | "MANUAL" | "THIRD_PARTY" | "DROPSHIPPING";
927
+ data: "MANUAL" | "AUTOMATED" | "THIRD_PARTY" | "DROPSHIPPING";
928
928
  driverParam: string;
929
929
  notNull: true;
930
930
  hasDefault: true;
@@ -1399,7 +1399,7 @@ export declare const productVariants: import("drizzle-orm/pg-core").PgTableWithC
1399
1399
  tableName: "product_variants";
1400
1400
  dataType: "string";
1401
1401
  columnType: "PgEnumColumn";
1402
- data: "AUTOMATED" | "MANUAL" | "THIRD_PARTY" | "DROPSHIPPING";
1402
+ data: "MANUAL" | "AUTOMATED" | "THIRD_PARTY" | "DROPSHIPPING";
1403
1403
  driverParam: string;
1404
1404
  notNull: true;
1405
1405
  hasDefault: true;