@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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/lib/db.d.ts +34406 -1
- package/dist/lib/db.js +21 -1
- package/dist/middleware/storeOwnership.js +22 -3
- package/dist/middleware/storeValidationMiddleware.js +16 -39
- package/dist/schemas/admin/admin-schema.d.ts +2 -2
- package/dist/schemas/ai-moderation/ai-moderation-schema.d.ts +6 -6
- package/dist/schemas/common/common-schemas.d.ts +71 -71
- package/dist/schemas/compliance/compliance-schema.d.ts +20 -20
- package/dist/schemas/compliance/kyc-schema.d.ts +8 -8
- package/dist/schemas/customer/customer-schema.d.ts +18 -18
- package/dist/schemas/index.d.ts +28 -0
- package/dist/schemas/index.js +134 -3
- package/dist/schemas/inventory/inventory-tables.d.ts +188 -188
- package/dist/schemas/inventory/lot-tables.d.ts +102 -102
- package/dist/schemas/order/cart-schema.d.ts +2865 -0
- package/dist/schemas/order/cart-schema.js +396 -0
- package/dist/schemas/order/order-schema.d.ts +19 -19
- package/dist/schemas/order/order-schema.js +8 -2
- package/dist/schemas/product/discount-schema.d.ts +3 -3
- package/dist/schemas/product/product-schema.d.ts +3 -3
- package/dist/schemas/store/store-audit-schema.d.ts +20 -20
- package/dist/schemas/store/store-schema.d.ts +182 -2
- package/dist/schemas/store/store-schema.js +19 -0
- package/dist/schemas/store/storefront-config-schema.d.ts +434 -823
- package/dist/schemas/store/storefront-config-schema.js +35 -62
- package/dist/utils/subdomain.d.ts +1 -1
- package/dist/utils/subdomain.js +10 -15
- package/package.json +1 -1
- package/src/configs/index.ts +654 -654
- package/src/index.ts +26 -23
- package/src/interfaces/customer-events.ts +106 -106
- package/src/interfaces/inventory-events.ts +545 -545
- package/src/interfaces/inventory-types.ts +1004 -1004
- package/src/interfaces/order-events.ts +381 -381
- package/src/lib/auditLogger.ts +1117 -1117
- package/src/lib/authOrganization.ts +153 -153
- package/src/lib/db.ts +84 -64
- package/src/middleware/serviceAuth.ts +328 -328
- package/src/middleware/storeOwnership.ts +199 -181
- package/src/middleware/storeValidationMiddleware.ts +17 -50
- package/src/middleware/userAuth.ts +248 -248
- package/src/schemas/admin/admin-schema.ts +208 -208
- package/src/schemas/ai-moderation/ai-moderation-schema.ts +180 -180
- package/src/schemas/common/common-schemas.ts +108 -108
- package/src/schemas/compliance/compliance-schema.ts +927 -0
- package/src/schemas/compliance/kyc-schema.ts +649 -0
- package/src/schemas/customer/customer-schema.ts +576 -0
- package/src/schemas/index.ts +202 -3
- package/src/schemas/inventory/inventory-tables.ts +1927 -0
- package/src/schemas/inventory/lot-tables.ts +799 -0
- package/src/schemas/order/cart-schema.ts +652 -0
- package/src/schemas/order/order-schema.ts +1406 -0
- package/src/schemas/product/discount-relations.ts +44 -0
- package/src/schemas/product/discount-schema.ts +464 -0
- package/src/schemas/product/product-relations.ts +187 -0
- package/src/schemas/product/product-schema.ts +955 -0
- package/src/schemas/store/ethiopian_business_api.md.resolved +212 -0
- package/src/schemas/store/store-audit-schema.ts +1257 -0
- package/src/schemas/store/store-schema.ts +682 -0
- package/src/schemas/store/store-settings-schema.ts +231 -0
- package/src/schemas/store/storefront-config-schema.ts +382 -0
- package/src/schemas/types.ts +67 -67
- package/src/types/events.ts +646 -646
- package/src/utils/errorHandler.ts +44 -44
- package/src/utils/subdomain.ts +19 -23
- 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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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: "
|
|
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" | "
|
|
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: "
|
|
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: "
|
|
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" | "
|
|
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" | "
|
|
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" | "
|
|
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: "
|
|
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: "
|
|
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" | "
|
|
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" | "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
1402
|
+
data: "MANUAL" | "AUTOMATED" | "THIRD_PARTY" | "DROPSHIPPING";
|
|
1403
1403
|
driverParam: string;
|
|
1404
1404
|
notNull: true;
|
|
1405
1405
|
hasDefault: true;
|