@mohasinac/appkit 2.7.11 → 2.7.13

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 (152) hide show
  1. package/dist/_internal/server/jobs/core/assignSpinPrize.js +8 -7
  2. package/dist/_internal/server/jobs/core/bundleStockSync.js +17 -20
  3. package/dist/_internal/server/jobs/core/countersReconcile.js +3 -2
  4. package/dist/_internal/server/jobs/core/onProductStockChange.js +18 -20
  5. package/dist/_internal/server/jobs/core/onProductWrite.js +3 -2
  6. package/dist/_internal/server/jobs/core/prizeRevealClose.js +7 -5
  7. package/dist/_internal/server/jobs/core/prizeRevealExpiry.js +11 -6
  8. package/dist/_internal/server/jobs/core/prizeRevealOpen.js +13 -7
  9. package/dist/_internal/server/jobs/core/prizeRevealReminder.js +9 -4
  10. package/dist/_internal/server/jobs/core/triggerEventRaffle.js +3 -2
  11. package/dist/_internal/shared/features/blog/schema.d.ts +4 -4
  12. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +3 -6
  13. package/dist/_internal/shared/features/categories/bundle-copy.js +3 -6
  14. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +32 -32
  15. package/dist/_internal/shared/features/events/schema.d.ts +4 -4
  16. package/dist/_internal/shared/features/products/schema.d.ts +20 -20
  17. package/dist/_internal/shared/features/promotions/schema.d.ts +2 -2
  18. package/dist/_internal/shared/features/reviews/schema.d.ts +1 -1
  19. package/dist/constants/field-names.d.ts +824 -0
  20. package/dist/constants/field-names.js +929 -0
  21. package/dist/constants/sort.d.ts +7 -0
  22. package/dist/constants/sort.js +5 -0
  23. package/dist/constants/table-keys.d.ts +48 -0
  24. package/dist/constants/table-keys.js +46 -0
  25. package/dist/features/account/components/AddressesIndexListing.js +9 -6
  26. package/dist/features/admin/components/AdminAllEventEntriesView.js +4 -1
  27. package/dist/features/admin/components/AdminBidsView.js +4 -1
  28. package/dist/features/admin/components/AdminBlogView.js +9 -2
  29. package/dist/features/admin/components/AdminBrandsView.js +9 -2
  30. package/dist/features/admin/components/AdminBundlesView.js +0 -1
  31. package/dist/features/admin/components/AdminCarouselView.js +4 -1
  32. package/dist/features/admin/components/AdminCartsView.js +4 -1
  33. package/dist/features/admin/components/AdminCategoriesView.js +9 -2
  34. package/dist/features/admin/components/AdminContactView.js +4 -1
  35. package/dist/features/admin/components/AdminCouponsView.js +4 -1
  36. package/dist/features/admin/components/AdminFaqsView.js +5 -1
  37. package/dist/features/admin/components/AdminFeaturesView.js +5 -2
  38. package/dist/features/admin/components/AdminHistoryView.js +5 -1
  39. package/dist/features/admin/components/AdminNewsletterView.js +4 -1
  40. package/dist/features/admin/components/AdminNotificationsView.js +4 -1
  41. package/dist/features/admin/components/AdminOrdersView.js +14 -12
  42. package/dist/features/admin/components/AdminPayoutsView.js +4 -1
  43. package/dist/features/admin/components/AdminPrizeDrawsView.js +4 -1
  44. package/dist/features/admin/components/AdminProductsView.js +14 -3
  45. package/dist/features/admin/components/AdminReturnRequestsView.js +4 -1
  46. package/dist/features/admin/components/AdminReviewsView.js +4 -1
  47. package/dist/features/admin/components/AdminScammersView.js +4 -1
  48. package/dist/features/admin/components/AdminSessionsView.js +4 -1
  49. package/dist/features/admin/components/AdminStoreAddressesView.js +5 -1
  50. package/dist/features/admin/components/AdminStoresView.js +10 -3
  51. package/dist/features/admin/components/AdminSublistingCategoriesView.js +4 -1
  52. package/dist/features/admin/components/AdminSupportTicketsView.js +4 -1
  53. package/dist/features/admin/components/AdminTeamView.js +4 -1
  54. package/dist/features/admin/components/AdminUsersView.js +9 -12
  55. package/dist/features/admin/components/AdminViewCards.d.ts +12 -0
  56. package/dist/features/admin/components/AdminViewCards.js +53 -0
  57. package/dist/features/admin/components/AdminWishlistsView.js +4 -1
  58. package/dist/features/auctions/repository/bid.repository.js +1 -6
  59. package/dist/features/auctions/schemas/index.d.ts +4 -4
  60. package/dist/features/blog/actions/blog-actions.d.ts +16 -16
  61. package/dist/features/blog/components/BlogFilters.d.ts +28 -28
  62. package/dist/features/blog/components/BlogFilters.js +18 -15
  63. package/dist/features/blog/components/BlogIndexListing.js +20 -16
  64. package/dist/features/blog/schemas/index.d.ts +10 -10
  65. package/dist/features/categories/components/BundleDetailView.js +0 -1
  66. package/dist/features/categories/components/CategoriesIndexListing.js +25 -21
  67. package/dist/features/categories/components/CategoryBundlesListing.js +2 -4
  68. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  69. package/dist/features/categories/schemas/index.d.ts +2 -2
  70. package/dist/features/events/components/AdminEventsView.js +5 -1
  71. package/dist/features/events/components/EventFilters.d.ts +24 -24
  72. package/dist/features/events/components/EventFilters.js +16 -13
  73. package/dist/features/events/components/EventStatusBadge.js +1 -0
  74. package/dist/features/events/components/EventsIndexListing.js +31 -26
  75. package/dist/features/events/components/EventsListPageView.js +13 -10
  76. package/dist/features/events/schemas/firestore.d.ts +1 -0
  77. package/dist/features/events/schemas/firestore.js +1 -0
  78. package/dist/features/events/schemas/index.d.ts +1 -1
  79. package/dist/features/events/types/index.d.ts +1 -1
  80. package/dist/features/faq/actions/faq-actions.d.ts +10 -10
  81. package/dist/features/faq/schemas/index.d.ts +4 -4
  82. package/dist/features/homepage/components/FeaturedBundlesSection.js +1 -3
  83. package/dist/features/orders/components/OrderFilters.d.ts +20 -20
  84. package/dist/features/orders/components/OrderFilters.js +33 -30
  85. package/dist/features/orders/repository/orders.repository.js +1 -15
  86. package/dist/features/orders/schemas/index.d.ts +2 -2
  87. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +35 -31
  88. package/dist/features/pre-orders/repository/preorders.repository.js +8 -4
  89. package/dist/features/pre-orders/schemas/index.d.ts +3 -3
  90. package/dist/features/products/components/AuctionsIndexListing.js +34 -30
  91. package/dist/features/products/components/BidHistory.d.ts +0 -1
  92. package/dist/features/products/components/BidHistory.js +1 -1
  93. package/dist/features/products/components/PrizeDrawsIndexListing.js +44 -40
  94. package/dist/features/products/components/ProductDetailPageView.js +1 -1
  95. package/dist/features/products/components/ProductFilters.d.ts +20 -20
  96. package/dist/features/products/components/ProductFilters.js +62 -59
  97. package/dist/features/products/components/ProductsIndexListing.js +28 -24
  98. package/dist/features/products/components/ProductsIndexPageView.js +18 -10
  99. package/dist/features/products/hooks/useProducts.js +2 -0
  100. package/dist/features/products/repository/products.repository.js +2 -22
  101. package/dist/features/products/schemas/index.d.ts +28 -28
  102. package/dist/features/products/schemas/product-features.validators.d.ts +12 -12
  103. package/dist/features/products/types/index.d.ts +2 -0
  104. package/dist/features/promotions/components/CouponsIndexListing.js +57 -32
  105. package/dist/features/promotions/schemas/index.d.ts +4 -4
  106. package/dist/features/reviews/components/ReviewDetailShell.js +6 -5
  107. package/dist/features/reviews/components/ReviewFilters.d.ts +16 -16
  108. package/dist/features/reviews/components/ReviewFilters.js +10 -7
  109. package/dist/features/reviews/components/ReviewsIndexListing.js +21 -17
  110. package/dist/features/reviews/components/ReviewsList.d.ts +5 -2
  111. package/dist/features/reviews/components/ReviewsList.js +11 -5
  112. package/dist/features/reviews/schemas/firestore.d.ts +1 -0
  113. package/dist/features/reviews/schemas/index.d.ts +8 -8
  114. package/dist/features/reviews/types/index.d.ts +1 -0
  115. package/dist/features/search/schemas/index.d.ts +2 -2
  116. package/dist/features/seller/components/SellerAuctionsView.js +5 -1
  117. package/dist/features/seller/components/SellerBidsView.js +4 -1
  118. package/dist/features/seller/components/SellerCouponsView.js +4 -1
  119. package/dist/features/seller/components/SellerOffersView.js +5 -1
  120. package/dist/features/seller/components/SellerOrdersView.js +4 -1
  121. package/dist/features/seller/components/SellerPayoutsView.js +5 -1
  122. package/dist/features/seller/components/SellerPreOrdersView.js +4 -1
  123. package/dist/features/seller/components/SellerPrizeDrawsView.js +4 -1
  124. package/dist/features/seller/components/SellerProductsView.js +4 -1
  125. package/dist/features/seller/schemas/index.d.ts +12 -12
  126. package/dist/features/stores/api/route.js +10 -1
  127. package/dist/features/stores/components/StoreReviewsListing.js +1 -1
  128. package/dist/features/stores/components/StoresIndexListing.js +24 -20
  129. package/dist/features/stores/repository/stores.repository.js +8 -5
  130. package/dist/features/stores/schemas/firestore.d.ts +1 -0
  131. package/dist/features/stores/schemas/index.d.ts +4 -4
  132. package/dist/index.d.ts +8 -1
  133. package/dist/index.js +12 -1
  134. package/dist/providers/firebase-client/auth.d.ts +7 -0
  135. package/dist/providers/firebase-client/auth.js +15 -8
  136. package/dist/react/hooks/useUrlTable.js +2 -1
  137. package/dist/seed/bids-seed-data.js +45 -44
  138. package/dist/seed/categories-seed-data.js +41 -40
  139. package/dist/seed/coupons-seed-data.js +41 -40
  140. package/dist/seed/products-auctions-seed-data.js +54 -53
  141. package/dist/seed/products-preorders-seed-data.js +25 -24
  142. package/dist/seed/products-prize-draws-seed-data.js +24 -23
  143. package/dist/seed/products-standard-seed-data.js +294 -293
  144. package/dist/seed/reviews-seed-data.js +61 -60
  145. package/dist/seed/scammers-seed-data.js +3 -2
  146. package/dist/seed/stores-seed-data.js +9 -8
  147. package/dist/seed/support-tickets-seed-data.js +13 -12
  148. package/dist/seed/users-seed-data.js +28 -27
  149. package/dist/tailwind-utilities.css +1 -1
  150. package/dist/utils/sieve-builder.d.ts +41 -0
  151. package/dist/utils/sieve-builder.js +66 -0
  152. package/package.json +2 -2
@@ -0,0 +1,929 @@
1
+ /**
2
+ * Schema Field Name Constants — canonical source of truth (appkit)
3
+ *
4
+ * Centralized string constants for ALL Firestore document field names.
5
+ * Use these instead of hardcoded strings to ensure consistency between
6
+ * frontend types, backend APIs, and Firestore queries.
7
+ *
8
+ * Consumer app re-exports from "@mohasinac/appkit" — never edit src/constants/field-names.ts directly.
9
+ */
10
+ // ============================================================================
11
+ // PRODUCT FIELDS
12
+ // ============================================================================
13
+ export const PRODUCT_FIELDS = {
14
+ ID: "id",
15
+ TITLE: "title",
16
+ DESCRIPTION: "description",
17
+ SLUG: "slug",
18
+ CATEGORY: "category",
19
+ CATEGORY_SLUG: "categorySlug",
20
+ SUBCATEGORY: "subcategory",
21
+ BRAND: "brand",
22
+ BRAND_SLUG: "brandSlug",
23
+ PRICE: "price",
24
+ CURRENCY: "currency",
25
+ STOCK_QUANTITY: "stockQuantity",
26
+ AVAILABLE_QUANTITY: "availableQuantity",
27
+ MAIN_IMAGE: "mainImage",
28
+ IMAGES: "images",
29
+ VIDEO: "video",
30
+ STATUS: "status",
31
+ SELLER_ID: "sellerId",
32
+ STORE_ID: "storeId",
33
+ SELLER_NAME: "sellerName",
34
+ SELLER_EMAIL: "sellerEmail",
35
+ FEATURED: "featured",
36
+ TAGS: "tags",
37
+ SPECIFICATIONS: "specifications",
38
+ FEATURES: "features",
39
+ SHIPPING_INFO: "shippingInfo",
40
+ RETURN_POLICY: "returnPolicy",
41
+ CONDITION: "condition",
42
+ INSURANCE: "insurance",
43
+ INSURANCE_COST: "insuranceCost",
44
+ SHIPPING_PAID_BY: "shippingPaidBy",
45
+ // SB1-G — canonical listing-kind discriminator (replaces removed isAuction / isPreOrder booleans)
46
+ LISTING_TYPE: "listingType",
47
+ AUCTION_END_DATE: "auctionEndDate",
48
+ STARTING_BID: "startingBid",
49
+ CURRENT_BID: "currentBid",
50
+ BID_COUNT: "bidCount",
51
+ RESERVE_PRICE: "reservePrice",
52
+ BUY_NOW_PRICE: "buyNowPrice",
53
+ MIN_BID_INCREMENT: "minBidIncrement",
54
+ AUTO_EXTENDABLE: "autoExtendable",
55
+ AUCTION_EXTENSION_MINUTES: "auctionExtensionMinutes",
56
+ AUCTION_ORIGINAL_END_DATE: "auctionOriginalEndDate",
57
+ AUCTION_SHIPPING_PAID_BY: "auctionShippingPaidBy",
58
+ PRE_ORDER_DELIVERY_DATE: "preOrderDeliveryDate",
59
+ PRE_ORDER_DEPOSIT_PERCENT: "preOrderDepositPercent",
60
+ PRE_ORDER_DEPOSIT_AMOUNT: "preOrderDepositAmount",
61
+ PRE_ORDER_MAX_QUANTITY: "preOrderMaxQuantity",
62
+ PRE_ORDER_CURRENT_COUNT: "preOrderCurrentCount",
63
+ PRE_ORDER_PRODUCTION_STATUS: "preOrderProductionStatus",
64
+ PRE_ORDER_CANCELLABLE: "preOrderCancellable",
65
+ IS_PROMOTED: "isPromoted",
66
+ PROMOTION_END_DATE: "promotionEndDate",
67
+ PICKUP_ADDRESS_ID: "pickupAddressId",
68
+ SEO_TITLE: "seoTitle",
69
+ SEO_DESCRIPTION: "seoDescription",
70
+ SEO_KEYWORDS: "seoKeywords",
71
+ VIEW_COUNT: "viewCount",
72
+ // Prize draw fields (SB4)
73
+ PRIZE_REVEAL_STATUS: "prizeRevealStatus",
74
+ PRIZE_REVEAL_WINDOW_START: "prizeRevealWindowStart",
75
+ PRIZE_REVEAL_WINDOW_END: "prizeRevealWindowEnd",
76
+ PRIZE_REVEAL_DEADLINE: "prizeRevealDeadline",
77
+ CREATED_AT: "createdAt",
78
+ UPDATED_AT: "updatedAt",
79
+ STATUS_VALUES: {
80
+ DRAFT: "draft",
81
+ PUBLISHED: "published",
82
+ OUT_OF_STOCK: "out_of_stock",
83
+ DISCONTINUED: "discontinued",
84
+ SOLD: "sold",
85
+ },
86
+ CONDITION_VALUES: {
87
+ NEW: "new",
88
+ USED: "used",
89
+ REFURBISHED: "refurbished",
90
+ BROKEN: "broken",
91
+ },
92
+ SHIPPING_PAID_BY_VALUES: {
93
+ SELLER: "seller",
94
+ BUYER: "buyer",
95
+ },
96
+ AUCTION_SHIPPING_PAID_BY_VALUES: {
97
+ SELLER: "seller",
98
+ WINNER: "winner",
99
+ },
100
+ PRE_ORDER_PRODUCTION_STATUS_VALUES: {
101
+ IN_PRODUCTION: "in_production",
102
+ READY: "ready",
103
+ DELAYED: "delayed",
104
+ CANCELLED: "cancelled",
105
+ },
106
+ PRIZE_REVEAL_STATUS_VALUES: {
107
+ PENDING: "pending",
108
+ OPEN: "open",
109
+ CLOSED: "closed",
110
+ },
111
+ LISTING_TYPE_VALUES: {
112
+ STANDARD: "standard",
113
+ AUCTION: "auction",
114
+ PRE_ORDER: "pre-order",
115
+ PRIZE_DRAW: "prize-draw",
116
+ BUNDLE: "bundle",
117
+ },
118
+ };
119
+ export const PRODUCT_STATUS_TRANSITIONS = {
120
+ draft: ["published", "discontinued"],
121
+ published: ["draft", "out_of_stock", "discontinued"],
122
+ out_of_stock: ["published", "draft", "discontinued"],
123
+ sold: ["discontinued"],
124
+ discontinued: ["draft"],
125
+ };
126
+ // ============================================================================
127
+ // ORDER FIELDS
128
+ // ============================================================================
129
+ export const ORDER_FIELDS = {
130
+ ID: "id",
131
+ PRODUCT_ID: "productId",
132
+ PRODUCT_TITLE: "productTitle",
133
+ USER_ID: "userId",
134
+ USER_NAME: "userName",
135
+ USER_EMAIL: "userEmail",
136
+ QUANTITY: "quantity",
137
+ UNIT_PRICE: "unitPrice",
138
+ TOTAL_PRICE: "totalPrice",
139
+ CURRENCY: "currency",
140
+ STATUS: "status",
141
+ PAYMENT_STATUS: "paymentStatus",
142
+ PAYMENT_ID: "paymentId",
143
+ PAYMENT_METHOD: "paymentMethod",
144
+ SHIPPING_ADDRESS: "shippingAddress",
145
+ TRACKING_NUMBER: "trackingNumber",
146
+ NOTES: "notes",
147
+ ORDER_DATE: "orderDate",
148
+ SHIPPING_DATE: "shippingDate",
149
+ DELIVERY_DATE: "deliveryDate",
150
+ CANCELLATION_DATE: "cancellationDate",
151
+ CANCELLATION_REASON: "cancellationReason",
152
+ REFUND_AMOUNT: "refundAmount",
153
+ REFUND_STATUS: "refundStatus",
154
+ PLATFORM_FEE: "platformFee",
155
+ DEPOSIT_AMOUNT: "depositAmount",
156
+ COD_REMAINING_AMOUNT: "codRemainingAmount",
157
+ SHIPPING_FEE: "shippingFee",
158
+ SELLER_ID: "sellerId",
159
+ STORE_ID: "storeId",
160
+ PAYOUT_STATUS: "payoutStatus",
161
+ PAYOUT_ID: "payoutId",
162
+ SHIPPING_METHOD: "shippingMethod",
163
+ SHIPPING_CARRIER: "shippingCarrier",
164
+ TRACKING_URL: "trackingUrl",
165
+ SHIPROCKET_ORDER_ID: "shiprocketOrderId",
166
+ SHIPROCKET_SHIPMENT_ID: "shiprocketShipmentId",
167
+ SHIPROCKET_AWB: "shiprocketAWB",
168
+ SHIPROCKET_STATUS: "shiprocketStatus",
169
+ SHIPROCKET_UPDATED_AT: "shiprocketUpdatedAt",
170
+ ITEMS: "items",
171
+ TOTAL_AMOUNT: "totalAmount",
172
+ BUYER_ID: "buyerId",
173
+ BUNDLE_ID: "bundleId",
174
+ CREATED_AT: "createdAt",
175
+ UPDATED_AT: "updatedAt",
176
+ STATUS_VALUES: {
177
+ PENDING: "pending",
178
+ CONFIRMED: "confirmed",
179
+ PROCESSING: "processing",
180
+ SHIPPED: "shipped",
181
+ DELIVERED: "delivered",
182
+ CANCELLED: "cancelled",
183
+ RETURNED: "returned",
184
+ RETURN_REQUESTED: "return_requested",
185
+ REFUNDED: "refunded",
186
+ },
187
+ PAYMENT_STATUS_VALUES: {
188
+ PENDING: "pending",
189
+ PAID: "paid",
190
+ FAILED: "failed",
191
+ REFUNDED: "refunded",
192
+ },
193
+ PAYOUT_STATUS_VALUES: {
194
+ ELIGIBLE: "eligible",
195
+ REQUESTED: "requested",
196
+ PAID: "paid",
197
+ },
198
+ SHIPPING_METHOD_VALUES: {
199
+ CUSTOM: "custom",
200
+ SHIPROCKET: "shiprocket",
201
+ },
202
+ };
203
+ // ============================================================================
204
+ // REVIEW FIELDS
205
+ // ============================================================================
206
+ export const REVIEW_FIELDS = {
207
+ ID: "id",
208
+ PRODUCT_ID: "productId",
209
+ PRODUCT_TITLE: "productTitle",
210
+ SELLER_ID: "sellerId",
211
+ STORE_ID: "storeId",
212
+ USER_ID: "userId",
213
+ USER_NAME: "userName",
214
+ USER_NAME_INDEX: "userNameIndex",
215
+ USER_AVATAR: "userAvatar",
216
+ BUYER_ID: "buyerId",
217
+ RATING: "rating",
218
+ TITLE: "title",
219
+ BODY: "body",
220
+ COMMENT: "comment",
221
+ IMAGES: "images",
222
+ VIDEO: "video",
223
+ STATUS: "status",
224
+ MODERATOR_ID: "moderatorId",
225
+ MODERATOR_NOTE: "moderatorNote",
226
+ REJECTION_REASON: "rejectionReason",
227
+ HELPFUL_COUNT: "helpfulCount",
228
+ REPORT_COUNT: "reportCount",
229
+ VERIFIED: "verified",
230
+ IS_VERIFIED_PURCHASE: "isVerifiedPurchase",
231
+ FEATURED: "featured",
232
+ SELLER_RESPONSE: "sellerResponse",
233
+ PUBLISHED_AT: "publishedAt",
234
+ CREATED_AT: "createdAt",
235
+ UPDATED_AT: "updatedAt",
236
+ APPROVED_AT: "approvedAt",
237
+ REJECTED_AT: "rejectedAt",
238
+ STATUS_VALUES: {
239
+ PENDING: "pending",
240
+ APPROVED: "approved",
241
+ REJECTED: "rejected",
242
+ },
243
+ };
244
+ // ============================================================================
245
+ // BID FIELDS
246
+ // ============================================================================
247
+ export const BID_FIELDS = {
248
+ ID: "id",
249
+ PRODUCT_ID: "productId",
250
+ PRODUCT_TITLE: "productTitle",
251
+ USER_ID: "userId",
252
+ BIDDER_ID: "bidderId",
253
+ USER_NAME: "userName",
254
+ USER_EMAIL: "userEmail",
255
+ BID_AMOUNT: "bidAmount",
256
+ AMOUNT: "amount",
257
+ CURRENCY: "currency",
258
+ STATUS: "status",
259
+ IS_WINNING: "isWinning",
260
+ PREVIOUS_BID_AMOUNT: "previousBidAmount",
261
+ BID_DATE: "bidDate",
262
+ BID_TIME: "bidTime",
263
+ AUTO_MAX_BID: "autoMaxBid",
264
+ CREATED_AT: "createdAt",
265
+ UPDATED_AT: "updatedAt",
266
+ STATUS_VALUES: {
267
+ ACTIVE: "active",
268
+ OUTBID: "outbid",
269
+ WON: "won",
270
+ LOST: "lost",
271
+ CANCELLED: "cancelled",
272
+ },
273
+ };
274
+ // ============================================================================
275
+ // AD FIELDS
276
+ // ============================================================================
277
+ export const AD_FIELDS = {
278
+ ID: "id",
279
+ TITLE: "title",
280
+ STATUS: "status",
281
+ ORDER: "order",
282
+ CREATED_AT: "createdAt",
283
+ UPDATED_AT: "updatedAt",
284
+ STATUS_VALUES: {
285
+ DRAFT: "draft",
286
+ ACTIVE: "active",
287
+ SCHEDULED: "scheduled",
288
+ PAUSED: "paused",
289
+ },
290
+ };
291
+ // ============================================================================
292
+ // EVENT FIELDS
293
+ // ============================================================================
294
+ export const EVENT_FIELDS = {
295
+ ID: "id",
296
+ TITLE: "title",
297
+ SLUG: "slug",
298
+ TYPE: "type",
299
+ STATUS: "status",
300
+ TAGS: "tags",
301
+ STARTS_AT: "startsAt",
302
+ ENDS_AT: "endsAt",
303
+ CREATED_BY: "createdBy",
304
+ STATS: "stats",
305
+ // Raffle fields (SB9)
306
+ HAS_RAFFLE: "hasRaffle",
307
+ RAFFLE_TYPE: "raffleType",
308
+ RAFFLE_TOP_N: "raffleTopN",
309
+ RAFFLE_PRIZE: "rafflePrize",
310
+ RAFFLE_PRIZE_COUPON_ID: "rafflePrizeCouponId",
311
+ RAFFLE_GITHUB_FUNCTION_URL: "raffleGithubFunctionUrl",
312
+ RAFFLE_WINNER_USER_ID: "raffleWinnerUserId",
313
+ RAFFLE_WINNER_DISPLAY_NAME: "raffleWinnerDisplayName",
314
+ RAFFLE_WINNER_ENTRY_ID: "raffleWinnerEntryId",
315
+ RAFFLE_TRIGGERED_AT: "raffleTriggeredAt",
316
+ RAFFLE_ENTRY_COUNT: "raffleEntryCount",
317
+ // Spin wheel fields (SB9)
318
+ SPIN_PRIZES: "spinPrizes",
319
+ SPIN_MAX_PER_USER: "spinMaxPerUser",
320
+ SPIN_WINDOW_START: "spinWindowStart",
321
+ SPIN_WINDOW_END: "spinWindowEnd",
322
+ CREATED_AT: "createdAt",
323
+ UPDATED_AT: "updatedAt",
324
+ STATUS_VALUES: {
325
+ DRAFT: "draft",
326
+ PUBLISHED: "published",
327
+ ACTIVE: "active",
328
+ ENDED: "ended",
329
+ CANCELLED: "cancelled",
330
+ PAUSED: "paused",
331
+ },
332
+ TYPE_VALUES: {
333
+ SALE: "sale",
334
+ OFFER: "offer",
335
+ POLL: "poll",
336
+ SURVEY: "survey",
337
+ FEEDBACK: "feedback",
338
+ RAFFLE: "raffle",
339
+ SPIN_WHEEL: "spin_wheel",
340
+ },
341
+ RAFFLE_TYPE_VALUES: {
342
+ OPEN_RAFFLE: "open_raffle",
343
+ TOP_N_SCORERS: "top_n_scorers",
344
+ TOP_N_PARTICIPANTS: "top_n_participants",
345
+ SPIN_WHEEL: "spin_wheel",
346
+ },
347
+ };
348
+ // ============================================================================
349
+ // EVENT ENTRY FIELDS
350
+ // ============================================================================
351
+ export const EVENT_ENTRY_FIELDS = {
352
+ ID: "id",
353
+ EVENT_ID: "eventId",
354
+ USER_ID: "userId",
355
+ USER_DISPLAY_NAME: "userDisplayName",
356
+ USER_EMAIL: "userEmail",
357
+ STATUS: "status",
358
+ RAFFLE_ELIGIBLE: "raffleEligible",
359
+ SPIN_USED: "spinUsed",
360
+ SPIN_PRIZE_ID: "spinPrizeId",
361
+ SPIN_PRIZE_COUPON_CODE: "spinPrizeCouponCode",
362
+ SPIN_WON_AT: "spinWonAt",
363
+ CREATED_AT: "createdAt",
364
+ STATUS_VALUES: {
365
+ CONFIRMED: "CONFIRMED",
366
+ WAITLISTED: "WAITLISTED",
367
+ CANCELLED: "CANCELLED",
368
+ },
369
+ };
370
+ // ============================================================================
371
+ // PAYOUT FIELDS
372
+ // ============================================================================
373
+ export const PAYOUT_FIELDS = {
374
+ ID: "id",
375
+ STORE_ID: "storeId",
376
+ SELLER_ID: "sellerId",
377
+ AMOUNT: "amount",
378
+ NET_AMOUNT: "netAmount",
379
+ PERIOD_START: "periodStart",
380
+ PERIOD_END: "periodEnd",
381
+ ORDERS_INCLUDED: "ordersIncluded",
382
+ PAYMENT_METHOD: "paymentMethod",
383
+ TRANSACTION_ID: "transactionId",
384
+ STATUS: "status",
385
+ CREATED_AT: "createdAt",
386
+ UPDATED_AT: "updatedAt",
387
+ STATUS_VALUES: {
388
+ PENDING: "pending",
389
+ PROCESSING: "processing",
390
+ PAID: "paid",
391
+ FAILED: "failed",
392
+ CANCELLED: "cancelled",
393
+ },
394
+ };
395
+ // ============================================================================
396
+ // STORE FIELDS
397
+ // ============================================================================
398
+ export const STORE_FIELDS = {
399
+ ID: "id",
400
+ OWNER_ID: "ownerId",
401
+ STORE_NAME: "storeName",
402
+ SLUG: "slug",
403
+ STORE_SLUG: "storeSlug",
404
+ STORE_CATEGORY: "storeCategory",
405
+ DESCRIPTION: "storeDescription",
406
+ LOGO_URL: "storeLogoURL",
407
+ BANNER_URL: "storeBannerURL",
408
+ STATUS: "status",
409
+ IS_VERIFIED: "isVerified",
410
+ IS_PUBLIC: "isPublic",
411
+ SHIPPING_CONFIG: "shippingConfig",
412
+ PAYOUT_DETAILS: "payoutDetails",
413
+ STATS: "stats",
414
+ CREATED_AT: "createdAt",
415
+ UPDATED_AT: "updatedAt",
416
+ STATUS_VALUES: {
417
+ ACTIVE: "active",
418
+ PENDING: "pending",
419
+ SUSPENDED: "suspended",
420
+ REJECTED: "rejected",
421
+ },
422
+ STATS_FIELDS: {
423
+ ITEMS_SOLD: "stats.itemsSold",
424
+ AVERAGE_RATING: "stats.averageRating",
425
+ TOTAL_REVIEWS: "stats.totalReviews",
426
+ TOTAL_ORDERS: "stats.totalOrders",
427
+ TOTAL_PRODUCTS: "stats.totalProducts",
428
+ },
429
+ };
430
+ // ============================================================================
431
+ // CATEGORY FIELDS
432
+ // ============================================================================
433
+ export const CATEGORY_FIELDS = {
434
+ ID: "id",
435
+ NAME: "name",
436
+ SLUG: "slug",
437
+ DESCRIPTION: "description",
438
+ PARENT_CATEGORY: "parentCategory",
439
+ PARENT_ID: "parentId",
440
+ ROOT_ID: "rootId",
441
+ TIER: "tier",
442
+ PATH: "path",
443
+ IS_LEAF: "isLeaf",
444
+ IS_FEATURED: "isFeatured",
445
+ SHOW_ON_HOMEPAGE: "showOnHomepage",
446
+ ICON: "icon",
447
+ DISPLAY_ORDER: "displayOrder",
448
+ IS_ACTIVE: "isActive",
449
+ // SB-UNI — categoryType discriminator (category/brand/sublisting/bundle)
450
+ CATEGORY_TYPE: "categoryType",
451
+ // Bundle-specific fields (SB3)
452
+ BUNDLE_PRODUCT_IDS: "bundleProductIds",
453
+ BUNDLE_STOCK_STATUS: "bundleStockStatus",
454
+ BUNDLE_QUERY_RESOLVED_AT: "bundleQueryResolvedAt",
455
+ DISPLAY: "display",
456
+ CREATED_AT: "createdAt",
457
+ UPDATED_AT: "updatedAt",
458
+ CATEGORY_TYPE_VALUES: {
459
+ CATEGORY: "category",
460
+ BRAND: "brand",
461
+ SUBLISTING: "sublisting",
462
+ BUNDLE: "bundle",
463
+ },
464
+ BUNDLE_STOCK_STATUS_VALUES: {
465
+ AVAILABLE: "available",
466
+ UNAVAILABLE: "unavailable",
467
+ },
468
+ };
469
+ // ============================================================================
470
+ // BLOG FIELDS
471
+ // ============================================================================
472
+ export const BLOG_FIELDS = {
473
+ ID: "id",
474
+ TITLE: "title",
475
+ SLUG: "slug",
476
+ CONTENT: "content",
477
+ EXCERPT: "excerpt",
478
+ COVER_IMAGE: "coverImage",
479
+ AUTHOR_ID: "authorId",
480
+ AUTHOR_NAME: "authorName",
481
+ TAGS: "tags",
482
+ CATEGORY: "category",
483
+ STATUS: "status",
484
+ IS_FEATURED: "isFeatured",
485
+ PUBLISH_DATE: "publishDate",
486
+ PUBLISHED_AT: "publishedAt",
487
+ READ_TIME_MINUTES: "readTimeMinutes",
488
+ VIEWS: "views",
489
+ YOUTUBE_ID: "youtubeId",
490
+ SEO_TITLE: "seoTitle",
491
+ SEO_DESCRIPTION: "seoDescription",
492
+ CREATED_AT: "createdAt",
493
+ UPDATED_AT: "updatedAt",
494
+ STATUS_VALUES: {
495
+ DRAFT: "draft",
496
+ PUBLISHED: "published",
497
+ ARCHIVED: "archived",
498
+ },
499
+ };
500
+ // ============================================================================
501
+ // USER FIELDS
502
+ // ============================================================================
503
+ export const USER_FIELDS = {
504
+ ID: "id",
505
+ EMAIL: "email",
506
+ DISPLAY_NAME: "displayName",
507
+ ROLE: "role",
508
+ DISABLED: "disabled",
509
+ STORE_STATUS: "storeStatus",
510
+ STORE_SLUG: "storeSlug",
511
+ PHOTO_URL: "photoURL",
512
+ BIO: "bio",
513
+ PHONE_NUMBER: "phoneNumber",
514
+ EMAIL_INDEX: "emailIndex",
515
+ PHONE_INDEX: "phoneIndex",
516
+ EMAIL_VERIFIED: "emailVerified",
517
+ STATS: "stats",
518
+ CREATED_AT: "createdAt",
519
+ UPDATED_AT: "updatedAt",
520
+ ROLE_VALUES: {
521
+ USER: "user",
522
+ SELLER: "seller",
523
+ ADMIN: "admin",
524
+ MODERATOR: "moderator",
525
+ EMPLOYEE: "employee",
526
+ },
527
+ };
528
+ // ============================================================================
529
+ // ADDRESS FIELDS
530
+ // ============================================================================
531
+ export const ADDRESS_FIELDS = {
532
+ ID: "id",
533
+ OWNER_TYPE: "ownerType",
534
+ OWNER_ID: "ownerId",
535
+ LABEL: "label",
536
+ FULL_NAME: "fullName",
537
+ PHONE: "phone",
538
+ ADDRESS_LINE1: "addressLine1",
539
+ CITY: "city",
540
+ STATE: "state",
541
+ POSTAL_CODE: "postalCode",
542
+ PINCODE: "pincode",
543
+ COUNTRY: "country",
544
+ IS_DEFAULT: "isDefault",
545
+ IS_PICKUP_LOCATION: "isPickupLocation",
546
+ CREATED_AT: "createdAt",
547
+ UPDATED_AT: "updatedAt",
548
+ OWNER_TYPE_VALUES: {
549
+ USER: "user",
550
+ STORE: "store",
551
+ },
552
+ };
553
+ // ============================================================================
554
+ // BRAND FIELDS
555
+ // ============================================================================
556
+ export const BRAND_FIELDS = {
557
+ ID: "id",
558
+ NAME: "name",
559
+ SLUG: "slug",
560
+ DESCRIPTION: "description",
561
+ LOGO_URL: "logoURL",
562
+ BANNER_URL: "bannerURL",
563
+ WEBSITE: "website",
564
+ COUNTRY: "country",
565
+ FOUNDED: "founded",
566
+ IS_ACTIVE: "isActive",
567
+ DISPLAY_ORDER: "displayOrder",
568
+ CREATED_AT: "createdAt",
569
+ UPDATED_AT: "updatedAt",
570
+ };
571
+ // ============================================================================
572
+ // CART FIELDS
573
+ // ============================================================================
574
+ export const CART_FIELDS = {
575
+ ID: "id",
576
+ USER_ID: "userId",
577
+ SESSION_ID: "sessionId",
578
+ ITEMS: "items",
579
+ UPDATED_AT: "updatedAt",
580
+ CREATED_AT: "createdAt",
581
+ };
582
+ // ============================================================================
583
+ // WISHLIST FIELDS
584
+ // ============================================================================
585
+ export const WISHLIST_FIELDS = {
586
+ ID: "id",
587
+ USER_ID: "userId",
588
+ ITEMS: "items",
589
+ UPDATED_AT: "updatedAt",
590
+ };
591
+ // ============================================================================
592
+ // HISTORY FIELDS
593
+ // ============================================================================
594
+ export const HISTORY_FIELDS = {
595
+ ID: "id",
596
+ USER_ID: "userId",
597
+ ITEMS: "items",
598
+ UPDATED_AT: "updatedAt",
599
+ };
600
+ // ============================================================================
601
+ // NOTIFICATION FIELDS
602
+ // ============================================================================
603
+ export const NOTIFICATION_FIELDS = {
604
+ ID: "id",
605
+ USER_ID: "userId",
606
+ TYPE: "type",
607
+ TITLE: "title",
608
+ BODY: "body",
609
+ IS_READ: "isRead",
610
+ ENTITY_ID: "entityId",
611
+ ENTITY_TYPE: "entityType",
612
+ CREATED_AT: "createdAt",
613
+ };
614
+ // ============================================================================
615
+ // SESSION FIELDS
616
+ // ============================================================================
617
+ export const SESSION_FIELDS = {
618
+ ID: "id",
619
+ USER_ID: "userId",
620
+ IS_ACTIVE: "isActive",
621
+ EXPIRES_AT: "expiresAt",
622
+ LAST_ACTIVITY: "lastActivity",
623
+ DEVICE_INFO: "deviceInfo",
624
+ LOCATION: "location",
625
+ CREATED_AT: "createdAt",
626
+ };
627
+ // ============================================================================
628
+ // COUPON USAGE FIELDS
629
+ // ============================================================================
630
+ export const COUPON_USAGE_FIELDS = {
631
+ ID: "id",
632
+ USER_ID: "userId",
633
+ COUPON_CODE: "couponCode",
634
+ USAGE_COUNT: "usageCount",
635
+ LAST_USED_AT: "lastUsedAt",
636
+ ORDERS: "orders",
637
+ };
638
+ // ============================================================================
639
+ // CONVERSATION FIELDS
640
+ // ============================================================================
641
+ export const CONVERSATION_FIELDS = {
642
+ ID: "id",
643
+ BUYER_ID: "buyerId",
644
+ STORE_ID: "storeId",
645
+ LAST_MESSAGE_AT: "lastMessageAt",
646
+ LAST_MESSAGE: "lastMessage",
647
+ CREATED_AT: "createdAt",
648
+ UPDATED_AT: "updatedAt",
649
+ };
650
+ // ============================================================================
651
+ // SCAMMER FIELDS
652
+ // ============================================================================
653
+ export const SCAMMER_FIELDS = {
654
+ ID: "id",
655
+ SCAM_TYPE: "scamType",
656
+ PLATFORM: "platform",
657
+ STATUS: "status",
658
+ REPORTED_BY: "reportedBy",
659
+ VERIFIED_BY: "verifiedBy",
660
+ CREATED_AT: "createdAt",
661
+ STATUS_VALUES: {
662
+ PENDING: "pending",
663
+ VERIFIED: "verified",
664
+ REJECTED: "rejected",
665
+ },
666
+ };
667
+ // ============================================================================
668
+ // SUPPORT TICKET FIELDS
669
+ // ============================================================================
670
+ export const SUPPORT_TICKET_FIELDS = {
671
+ ID: "id",
672
+ USER_ID: "userId",
673
+ STORE_ID: "storeId",
674
+ SUBJECT: "subject",
675
+ STATUS: "status",
676
+ PRIORITY: "priority",
677
+ CREATED_AT: "createdAt",
678
+ UPDATED_AT: "updatedAt",
679
+ STATUS_VALUES: {
680
+ OPEN: "open",
681
+ IN_PROGRESS: "in_progress",
682
+ WAITING_ON_USER: "waiting_on_user",
683
+ RESOLVED: "resolved",
684
+ CLOSED: "closed",
685
+ },
686
+ PRIORITY_VALUES: {
687
+ LOW: "low",
688
+ NORMAL: "normal",
689
+ MEDIUM: "medium",
690
+ HIGH: "high",
691
+ URGENT: "urgent",
692
+ },
693
+ };
694
+ // ============================================================================
695
+ // CAROUSEL SLIDE FIELDS
696
+ // ============================================================================
697
+ export const CAROUSEL_FIELDS = {
698
+ ID: "id",
699
+ TITLE: "title",
700
+ ORDER: "order",
701
+ ACTIVE: "active",
702
+ MEDIA: "media",
703
+ LINK: "link",
704
+ MOBILE_MEDIA: "mobileMedia",
705
+ CARDS: "cards",
706
+ BACKGROUND: "background",
707
+ STATS: "stats",
708
+ STAT: {
709
+ VIEWS: "stats.views",
710
+ LAST_VIEWED: "stats.lastViewed",
711
+ },
712
+ CREATED_AT: "createdAt",
713
+ UPDATED_AT: "updatedAt",
714
+ CREATED_BY: "createdBy",
715
+ BACKGROUND_TYPE_VALUES: {
716
+ IMAGE: "image",
717
+ VIDEO: "video",
718
+ COLOR: "color",
719
+ GRADIENT: "gradient",
720
+ },
721
+ };
722
+ // ============================================================================
723
+ // COUPON FIELDS
724
+ // ============================================================================
725
+ export const COUPON_FIELDS = {
726
+ ID: "id",
727
+ CODE: "code",
728
+ NAME: "name",
729
+ DESCRIPTION: "description",
730
+ TYPE: "type",
731
+ SCOPE: "scope",
732
+ SELLER_ID: "sellerId",
733
+ STORE_ID: "storeId",
734
+ STORE_SLUG: "storeSlug",
735
+ APPLICABLE_TO_AUCTIONS: "applicableToAuctions",
736
+ DISCOUNT: "discount",
737
+ BXGY: "bxgy",
738
+ TIERS: "tiers",
739
+ USAGE: "usage",
740
+ VALIDITY: "validity",
741
+ RESTRICTIONS: "restrictions",
742
+ CREATED_BY: "createdBy",
743
+ CREATED_AT: "createdAt",
744
+ UPDATED_AT: "updatedAt",
745
+ STATS: "stats",
746
+ TYPE_VALUES: {
747
+ PERCENTAGE: "percentage",
748
+ FIXED: "fixed",
749
+ FREE_SHIPPING: "free_shipping",
750
+ BUY_X_GET_Y: "buy_x_get_y",
751
+ },
752
+ SCOPE_VALUES: {
753
+ ADMIN: "admin",
754
+ SELLER: "seller",
755
+ },
756
+ USAGE_FIELDS: {
757
+ TOTAL_LIMIT: "usage.totalLimit",
758
+ PER_USER_LIMIT: "usage.perUserLimit",
759
+ CURRENT_USAGE: "usage.currentUsage",
760
+ },
761
+ VALIDITY_FIELDS: {
762
+ START_DATE: "validity.startDate",
763
+ END_DATE: "validity.endDate",
764
+ IS_ACTIVE: "validity.isActive",
765
+ },
766
+ };
767
+ // ============================================================================
768
+ // FAQ FIELDS
769
+ // ============================================================================
770
+ export const FAQ_FIELDS = {
771
+ ID: "id",
772
+ QUESTION: "question",
773
+ ANSWER: "answer",
774
+ ANSWER_TEXT: "answer.text",
775
+ ANSWER_FORMAT: "answer.format",
776
+ CATEGORY: "category",
777
+ SHOW_ON_HOMEPAGE: "showOnHomepage",
778
+ SHOW_IN_FOOTER: "showInFooter",
779
+ IS_PINNED: "isPinned",
780
+ ORDER: "order",
781
+ PRIORITY: "priority",
782
+ TAGS: "tags",
783
+ SEARCH_TOKENS: "searchTokens",
784
+ RELATED_FAQS: "relatedFAQs",
785
+ USE_SITE_SETTINGS: "useSiteSettings",
786
+ VARIABLES: "variables",
787
+ STATS: "stats",
788
+ STAT: {
789
+ VIEWS: "stats.views",
790
+ HELPFUL: "stats.helpful",
791
+ NOT_HELPFUL: "stats.notHelpful",
792
+ LAST_VIEWED: "stats.lastViewed",
793
+ },
794
+ SEO: "seo",
795
+ SEO_FIELDS: {
796
+ SLUG: "seo.slug",
797
+ META_TITLE: "seo.metaTitle",
798
+ META_DESCRIPTION: "seo.metaDescription",
799
+ },
800
+ IS_ACTIVE: "isActive",
801
+ CREATED_BY: "createdBy",
802
+ CREATED_AT: "createdAt",
803
+ UPDATED_AT: "updatedAt",
804
+ CATEGORY_VALUES: {
805
+ ORDERS_PAYMENT: "orders_payment",
806
+ SHIPPING_DELIVERY: "shipping_delivery",
807
+ RETURNS_REFUNDS: "returns_refunds",
808
+ PRODUCT_INFORMATION: "product_information",
809
+ ACCOUNT_SECURITY: "account_security",
810
+ TECHNICAL_SUPPORT: "technical_support",
811
+ GENERAL: "general",
812
+ },
813
+ };
814
+ // ============================================================================
815
+ // HOMEPAGE SECTION FIELDS
816
+ // ============================================================================
817
+ export const HOMEPAGE_SECTION_FIELDS = {
818
+ ID: "id",
819
+ TYPE: "type",
820
+ ORDER: "order",
821
+ ENABLED: "enabled",
822
+ CONFIG: "config",
823
+ CREATED_AT: "createdAt",
824
+ UPDATED_AT: "updatedAt",
825
+ TYPE_VALUES: {
826
+ WELCOME: "welcome",
827
+ TRUST_INDICATORS: "trust-indicators",
828
+ CATEGORIES: "categories",
829
+ PRODUCTS: "products",
830
+ AUCTIONS: "auctions",
831
+ BANNER: "banner",
832
+ FEATURES: "features",
833
+ REVIEWS: "reviews",
834
+ WHATSAPP_COMMUNITY: "whatsapp-community",
835
+ FAQ: "faq",
836
+ BLOG_ARTICLES: "blog-articles",
837
+ NEWSLETTER: "newsletter",
838
+ },
839
+ };
840
+ // ============================================================================
841
+ // SITE SETTINGS FIELDS
842
+ // ============================================================================
843
+ export const SITE_SETTINGS_FIELDS = {
844
+ ID: "id",
845
+ SITE_NAME: "siteName",
846
+ MOTTO: "motto",
847
+ LOGO: "logo",
848
+ BACKGROUND: "background",
849
+ CONTACT: "contact",
850
+ CONTACT_FIELDS: {
851
+ EMAIL: "contact.email",
852
+ PHONE: "contact.phone",
853
+ ADDRESS: "contact.address",
854
+ UPI_VPA: "contact.upiVpa",
855
+ WHATSAPP: "contact.whatsappNumber",
856
+ },
857
+ PAYMENT: "payment",
858
+ PAYMENT_FIELDS: {
859
+ RAZORPAY_ENABLED: "payment.razorpayEnabled",
860
+ UPI_MANUAL_ENABLED: "payment.upiManualEnabled",
861
+ COD_ENABLED: "payment.codEnabled",
862
+ },
863
+ COMMISSIONS: "commissions",
864
+ COMMISSION_FIELDS: {
865
+ RAZORPAY_FEE_PERCENT: "commissions.razorpayFeePercent",
866
+ COD_DEPOSIT_PERCENT: "commissions.codDepositPercent",
867
+ SELLER_SHIPPING_FIXED: "commissions.sellerShippingFixed",
868
+ PLATFORM_SHIPPING_PERCENT: "commissions.platformShippingPercent",
869
+ PLATFORM_SHIPPING_FIXED_MIN: "commissions.platformShippingFixedMin",
870
+ },
871
+ SOCIAL_LINKS: "socialLinks",
872
+ EMAIL_SETTINGS: "emailSettings",
873
+ SEO: "seo",
874
+ FEATURES: "features",
875
+ FEATURE_FLAGS: "featureFlags",
876
+ FEATURE_FLAGS_FIELDS: {
877
+ CHATS: "featureFlags.chats",
878
+ SMS_VERIFICATION: "featureFlags.smsVerification",
879
+ TRANSLATIONS: "featureFlags.translations",
880
+ WISHLISTS: "featureFlags.wishlists",
881
+ AUCTIONS: "featureFlags.auctions",
882
+ REVIEWS: "featureFlags.reviews",
883
+ EVENTS: "featureFlags.events",
884
+ BLOG: "featureFlags.blog",
885
+ COUPONS: "featureFlags.coupons",
886
+ NOTIFICATIONS: "featureFlags.notifications",
887
+ SELLER_REGISTRATION: "featureFlags.sellerRegistration",
888
+ PRE_ORDERS: "featureFlags.preOrders",
889
+ },
890
+ LEGAL_PAGES: "legalPages",
891
+ SHIPPING: "shipping",
892
+ RETURNS: "returns",
893
+ FAQ: "faq",
894
+ FAQ_VARIABLES: "faq.variables",
895
+ CREATED_AT: "createdAt",
896
+ UPDATED_AT: "updatedAt",
897
+ };
898
+ // ============================================================================
899
+ // COMMON / SHARED FIELD NAMES
900
+ // ============================================================================
901
+ export const COMMON_FIELDS = {
902
+ ID: "id",
903
+ CREATED_AT: "createdAt",
904
+ UPDATED_AT: "updatedAt",
905
+ CREATED_BY: "createdBy",
906
+ STATUS: "status",
907
+ IS_ACTIVE: "isActive",
908
+ ORDER: "order",
909
+ };
910
+ // ============================================================================
911
+ // OAUTH STATE VALUES
912
+ // ============================================================================
913
+ export const OAUTH_STATE_VALUES = {
914
+ PENDING: "pending",
915
+ USED: "used",
916
+ EXPIRED: "expired",
917
+ };
918
+ // ============================================================================
919
+ // DEFAULT VALUES
920
+ // ============================================================================
921
+ export const SCHEMA_DEFAULTS = {
922
+ USER_ROLE: "user",
923
+ CURRENCY: "INR",
924
+ UNKNOWN_USER_AGENT: "Unknown",
925
+ UNKNOWN_USER: "Unknown User",
926
+ ANONYMOUS_USER: "Anonymous",
927
+ DEFAULT_DISPLAY_NAME: "User",
928
+ ADMIN_EMAIL: "admin@letitrip.in",
929
+ };