@mohasinac/appkit 2.7.10 → 2.7.12

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 (148) hide show
  1. package/dist/_internal/server/jobs/core/assignSpinPrize.js +8 -7
  2. package/dist/_internal/server/jobs/core/bundleStockSync.js +11 -6
  3. package/dist/_internal/server/jobs/core/countersReconcile.js +3 -2
  4. package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -7
  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-schemas.d.ts +32 -32
  13. package/dist/_internal/shared/features/events/schema.d.ts +4 -4
  14. package/dist/_internal/shared/features/products/schema.d.ts +20 -20
  15. package/dist/_internal/shared/features/promotions/schema.d.ts +2 -2
  16. package/dist/_internal/shared/features/reviews/schema.d.ts +1 -1
  17. package/dist/configs/next.js +17 -1
  18. package/dist/constants/field-names.d.ts +813 -0
  19. package/dist/constants/field-names.js +918 -0
  20. package/dist/constants/sort.d.ts +7 -0
  21. package/dist/constants/sort.js +5 -0
  22. package/dist/constants/table-keys.d.ts +48 -0
  23. package/dist/constants/table-keys.js +46 -0
  24. package/dist/features/account/components/AddressesIndexListing.js +9 -6
  25. package/dist/features/admin/components/AdminAllEventEntriesView.js +4 -1
  26. package/dist/features/admin/components/AdminBidsView.js +4 -1
  27. package/dist/features/admin/components/AdminBlogView.js +9 -2
  28. package/dist/features/admin/components/AdminBrandsView.js +9 -2
  29. package/dist/features/admin/components/AdminCarouselView.js +4 -1
  30. package/dist/features/admin/components/AdminCartsView.js +4 -1
  31. package/dist/features/admin/components/AdminCategoriesView.js +9 -2
  32. package/dist/features/admin/components/AdminContactView.js +4 -1
  33. package/dist/features/admin/components/AdminCouponsView.js +4 -1
  34. package/dist/features/admin/components/AdminFaqsView.js +5 -1
  35. package/dist/features/admin/components/AdminFeaturesView.js +5 -2
  36. package/dist/features/admin/components/AdminHistoryView.js +5 -1
  37. package/dist/features/admin/components/AdminNewsletterView.js +4 -1
  38. package/dist/features/admin/components/AdminNotificationsView.js +4 -1
  39. package/dist/features/admin/components/AdminOrdersView.js +14 -12
  40. package/dist/features/admin/components/AdminPayoutsView.js +4 -1
  41. package/dist/features/admin/components/AdminPrizeDrawsView.js +4 -1
  42. package/dist/features/admin/components/AdminProductsView.js +14 -3
  43. package/dist/features/admin/components/AdminReturnRequestsView.js +4 -1
  44. package/dist/features/admin/components/AdminReviewsView.js +4 -1
  45. package/dist/features/admin/components/AdminScammersView.js +4 -1
  46. package/dist/features/admin/components/AdminSessionsView.js +4 -1
  47. package/dist/features/admin/components/AdminStoreAddressesView.js +5 -1
  48. package/dist/features/admin/components/AdminStoresView.js +10 -3
  49. package/dist/features/admin/components/AdminSublistingCategoriesView.js +4 -1
  50. package/dist/features/admin/components/AdminSupportTicketsView.js +4 -1
  51. package/dist/features/admin/components/AdminTeamView.js +4 -1
  52. package/dist/features/admin/components/AdminUsersView.js +9 -12
  53. package/dist/features/admin/components/AdminViewCards.d.ts +12 -0
  54. package/dist/features/admin/components/AdminViewCards.js +53 -0
  55. package/dist/features/admin/components/AdminWishlistsView.js +4 -1
  56. package/dist/features/auctions/repository/bid.repository.js +1 -6
  57. package/dist/features/auctions/schemas/index.d.ts +4 -4
  58. package/dist/features/blog/actions/blog-actions.d.ts +16 -16
  59. package/dist/features/blog/components/BlogFilters.d.ts +28 -28
  60. package/dist/features/blog/components/BlogFilters.js +18 -15
  61. package/dist/features/blog/components/BlogIndexListing.js +24 -13
  62. package/dist/features/blog/schemas/index.d.ts +10 -10
  63. package/dist/features/categories/components/CategoriesIndexListing.js +30 -19
  64. package/dist/features/categories/schemas/index.d.ts +2 -2
  65. package/dist/features/events/components/AdminEventsView.js +5 -1
  66. package/dist/features/events/components/EventFilters.d.ts +24 -24
  67. package/dist/features/events/components/EventFilters.js +16 -13
  68. package/dist/features/events/components/EventStatusBadge.js +1 -0
  69. package/dist/features/events/components/EventsIndexListing.js +36 -24
  70. package/dist/features/events/components/EventsListPageView.js +13 -10
  71. package/dist/features/events/schemas/firestore.d.ts +1 -0
  72. package/dist/features/events/schemas/firestore.js +1 -0
  73. package/dist/features/events/schemas/index.d.ts +1 -1
  74. package/dist/features/events/types/index.d.ts +1 -1
  75. package/dist/features/faq/actions/faq-actions.d.ts +10 -10
  76. package/dist/features/faq/schemas/index.d.ts +4 -4
  77. package/dist/features/layout/TitleBarLayout.js +1 -1
  78. package/dist/features/orders/components/OrderFilters.d.ts +20 -20
  79. package/dist/features/orders/components/OrderFilters.js +33 -30
  80. package/dist/features/orders/repository/orders.repository.js +1 -15
  81. package/dist/features/orders/schemas/index.d.ts +2 -2
  82. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +44 -36
  83. package/dist/features/pre-orders/schemas/index.d.ts +3 -3
  84. package/dist/features/products/components/AuctionsIndexListing.js +63 -30
  85. package/dist/features/products/components/BidHistory.d.ts +0 -1
  86. package/dist/features/products/components/BidHistory.js +1 -1
  87. package/dist/features/products/components/PrizeDrawsIndexListing.js +44 -37
  88. package/dist/features/products/components/ProductDetailPageView.js +1 -1
  89. package/dist/features/products/components/ProductFilters.d.ts +20 -20
  90. package/dist/features/products/components/ProductFilters.js +62 -59
  91. package/dist/features/products/components/ProductsIndexListing.js +37 -29
  92. package/dist/features/products/components/ProductsIndexPageView.js +18 -10
  93. package/dist/features/products/hooks/useProducts.js +2 -0
  94. package/dist/features/products/repository/products.repository.js +2 -22
  95. package/dist/features/products/schemas/index.d.ts +28 -28
  96. package/dist/features/products/schemas/product-features.validators.d.ts +12 -12
  97. package/dist/features/products/types/index.d.ts +2 -0
  98. package/dist/features/promotions/components/CouponsIndexListing.js +21 -17
  99. package/dist/features/promotions/schemas/index.d.ts +4 -4
  100. package/dist/features/reviews/components/ReviewDetailShell.js +6 -5
  101. package/dist/features/reviews/components/ReviewFilters.d.ts +16 -16
  102. package/dist/features/reviews/components/ReviewFilters.js +10 -7
  103. package/dist/features/reviews/components/ReviewsIndexListing.js +25 -14
  104. package/dist/features/reviews/components/ReviewsList.d.ts +5 -2
  105. package/dist/features/reviews/components/ReviewsList.js +11 -5
  106. package/dist/features/reviews/schemas/firestore.d.ts +1 -0
  107. package/dist/features/reviews/schemas/index.d.ts +8 -8
  108. package/dist/features/reviews/types/index.d.ts +1 -0
  109. package/dist/features/search/schemas/index.d.ts +2 -2
  110. package/dist/features/seller/components/SellerAuctionsView.js +5 -1
  111. package/dist/features/seller/components/SellerBidsView.js +4 -1
  112. package/dist/features/seller/components/SellerCouponsView.js +4 -1
  113. package/dist/features/seller/components/SellerOffersView.js +5 -1
  114. package/dist/features/seller/components/SellerOrdersView.js +4 -1
  115. package/dist/features/seller/components/SellerPayoutsView.js +5 -1
  116. package/dist/features/seller/components/SellerPreOrdersView.js +4 -1
  117. package/dist/features/seller/components/SellerPrizeDrawsView.js +4 -1
  118. package/dist/features/seller/components/SellerProductsView.js +4 -1
  119. package/dist/features/seller/schemas/index.d.ts +10 -10
  120. package/dist/features/stores/api/route.js +10 -1
  121. package/dist/features/stores/components/StoreAuctionsListing.js +2 -1
  122. package/dist/features/stores/components/StorePreOrdersListing.js +2 -1
  123. package/dist/features/stores/components/StoreReviewsListing.js +1 -1
  124. package/dist/features/stores/components/StoresIndexListing.js +45 -27
  125. package/dist/features/stores/schemas/firestore.d.ts +1 -0
  126. package/dist/features/stores/schemas/index.d.ts +4 -4
  127. package/dist/index.d.ts +8 -1
  128. package/dist/index.js +12 -1
  129. package/dist/react/hooks/useUrlTable.js +2 -1
  130. package/dist/seed/bids-seed-data.js +45 -44
  131. package/dist/seed/categories-seed-data.js +41 -40
  132. package/dist/seed/coupons-seed-data.js +41 -40
  133. package/dist/seed/products-auctions-seed-data.js +54 -53
  134. package/dist/seed/products-preorders-seed-data.js +25 -24
  135. package/dist/seed/products-prize-draws-seed-data.js +24 -23
  136. package/dist/seed/products-standard-seed-data.js +294 -293
  137. package/dist/seed/reviews-seed-data.js +61 -60
  138. package/dist/seed/scammers-seed-data.js +3 -2
  139. package/dist/seed/stores-seed-data.js +9 -8
  140. package/dist/seed/support-tickets-seed-data.js +13 -12
  141. package/dist/seed/users-seed-data.js +28 -27
  142. package/dist/tailwind-utilities.css +1 -1
  143. package/dist/ui/components/ListingToolbar.d.ts +7 -4
  144. package/dist/ui/components/ListingToolbar.js +4 -3
  145. package/dist/ui/components/SiteLogo.js +1 -1
  146. package/dist/utils/sieve-builder.d.ts +41 -0
  147. package/dist/utils/sieve-builder.js +66 -0
  148. package/package.json +1 -1
@@ -0,0 +1,918 @@
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
+ DESCRIPTION: "storeDescription",
404
+ LOGO_URL: "storeLogoURL",
405
+ BANNER_URL: "storeBannerURL",
406
+ STATUS: "status",
407
+ IS_VERIFIED: "isVerified",
408
+ SHIPPING_CONFIG: "shippingConfig",
409
+ PAYOUT_DETAILS: "payoutDetails",
410
+ STATS: "stats",
411
+ CREATED_AT: "createdAt",
412
+ UPDATED_AT: "updatedAt",
413
+ STATUS_VALUES: {
414
+ ACTIVE: "active",
415
+ PENDING: "pending",
416
+ SUSPENDED: "suspended",
417
+ REJECTED: "rejected",
418
+ },
419
+ };
420
+ // ============================================================================
421
+ // CATEGORY FIELDS
422
+ // ============================================================================
423
+ export const CATEGORY_FIELDS = {
424
+ ID: "id",
425
+ NAME: "name",
426
+ SLUG: "slug",
427
+ DESCRIPTION: "description",
428
+ PARENT_CATEGORY: "parentCategory",
429
+ PARENT_ID: "parentId",
430
+ ROOT_ID: "rootId",
431
+ TIER: "tier",
432
+ PATH: "path",
433
+ IS_LEAF: "isLeaf",
434
+ IS_FEATURED: "isFeatured",
435
+ SHOW_ON_HOMEPAGE: "showOnHomepage",
436
+ ICON: "icon",
437
+ DISPLAY_ORDER: "displayOrder",
438
+ IS_ACTIVE: "isActive",
439
+ // SB-UNI — categoryType discriminator (category/brand/sublisting/bundle)
440
+ CATEGORY_TYPE: "categoryType",
441
+ // Bundle-specific fields (SB3)
442
+ BUNDLE_PRODUCT_IDS: "bundleProductIds",
443
+ BUNDLE_STOCK_STATUS: "bundleStockStatus",
444
+ BUNDLE_QUERY_RESOLVED_AT: "bundleQueryResolvedAt",
445
+ DISPLAY: "display",
446
+ CREATED_AT: "createdAt",
447
+ UPDATED_AT: "updatedAt",
448
+ CATEGORY_TYPE_VALUES: {
449
+ CATEGORY: "category",
450
+ BRAND: "brand",
451
+ SUBLISTING: "sublisting",
452
+ BUNDLE: "bundle",
453
+ },
454
+ BUNDLE_STOCK_STATUS_VALUES: {
455
+ AVAILABLE: "available",
456
+ UNAVAILABLE: "unavailable",
457
+ },
458
+ };
459
+ // ============================================================================
460
+ // BLOG FIELDS
461
+ // ============================================================================
462
+ export const BLOG_FIELDS = {
463
+ ID: "id",
464
+ TITLE: "title",
465
+ SLUG: "slug",
466
+ CONTENT: "content",
467
+ EXCERPT: "excerpt",
468
+ COVER_IMAGE: "coverImage",
469
+ AUTHOR_ID: "authorId",
470
+ AUTHOR_NAME: "authorName",
471
+ TAGS: "tags",
472
+ CATEGORY: "category",
473
+ STATUS: "status",
474
+ IS_FEATURED: "isFeatured",
475
+ PUBLISH_DATE: "publishDate",
476
+ PUBLISHED_AT: "publishedAt",
477
+ READ_TIME_MINUTES: "readTimeMinutes",
478
+ VIEWS: "views",
479
+ YOUTUBE_ID: "youtubeId",
480
+ SEO_TITLE: "seoTitle",
481
+ SEO_DESCRIPTION: "seoDescription",
482
+ CREATED_AT: "createdAt",
483
+ UPDATED_AT: "updatedAt",
484
+ STATUS_VALUES: {
485
+ DRAFT: "draft",
486
+ PUBLISHED: "published",
487
+ ARCHIVED: "archived",
488
+ },
489
+ };
490
+ // ============================================================================
491
+ // USER FIELDS
492
+ // ============================================================================
493
+ export const USER_FIELDS = {
494
+ ID: "id",
495
+ EMAIL: "email",
496
+ DISPLAY_NAME: "displayName",
497
+ ROLE: "role",
498
+ DISABLED: "disabled",
499
+ STORE_STATUS: "storeStatus",
500
+ STORE_SLUG: "storeSlug",
501
+ PHOTO_URL: "photoURL",
502
+ BIO: "bio",
503
+ PHONE_NUMBER: "phoneNumber",
504
+ EMAIL_INDEX: "emailIndex",
505
+ PHONE_INDEX: "phoneIndex",
506
+ EMAIL_VERIFIED: "emailVerified",
507
+ STATS: "stats",
508
+ CREATED_AT: "createdAt",
509
+ UPDATED_AT: "updatedAt",
510
+ ROLE_VALUES: {
511
+ USER: "user",
512
+ SELLER: "seller",
513
+ ADMIN: "admin",
514
+ MODERATOR: "moderator",
515
+ EMPLOYEE: "employee",
516
+ },
517
+ };
518
+ // ============================================================================
519
+ // ADDRESS FIELDS
520
+ // ============================================================================
521
+ export const ADDRESS_FIELDS = {
522
+ ID: "id",
523
+ OWNER_TYPE: "ownerType",
524
+ OWNER_ID: "ownerId",
525
+ LABEL: "label",
526
+ FULL_NAME: "fullName",
527
+ PHONE: "phone",
528
+ ADDRESS_LINE1: "addressLine1",
529
+ CITY: "city",
530
+ STATE: "state",
531
+ POSTAL_CODE: "postalCode",
532
+ PINCODE: "pincode",
533
+ COUNTRY: "country",
534
+ IS_DEFAULT: "isDefault",
535
+ IS_PICKUP_LOCATION: "isPickupLocation",
536
+ CREATED_AT: "createdAt",
537
+ UPDATED_AT: "updatedAt",
538
+ OWNER_TYPE_VALUES: {
539
+ USER: "user",
540
+ STORE: "store",
541
+ },
542
+ };
543
+ // ============================================================================
544
+ // BRAND FIELDS
545
+ // ============================================================================
546
+ export const BRAND_FIELDS = {
547
+ ID: "id",
548
+ NAME: "name",
549
+ SLUG: "slug",
550
+ DESCRIPTION: "description",
551
+ LOGO_URL: "logoURL",
552
+ BANNER_URL: "bannerURL",
553
+ WEBSITE: "website",
554
+ COUNTRY: "country",
555
+ FOUNDED: "founded",
556
+ IS_ACTIVE: "isActive",
557
+ DISPLAY_ORDER: "displayOrder",
558
+ CREATED_AT: "createdAt",
559
+ UPDATED_AT: "updatedAt",
560
+ };
561
+ // ============================================================================
562
+ // CART FIELDS
563
+ // ============================================================================
564
+ export const CART_FIELDS = {
565
+ ID: "id",
566
+ USER_ID: "userId",
567
+ SESSION_ID: "sessionId",
568
+ ITEMS: "items",
569
+ UPDATED_AT: "updatedAt",
570
+ CREATED_AT: "createdAt",
571
+ };
572
+ // ============================================================================
573
+ // WISHLIST FIELDS
574
+ // ============================================================================
575
+ export const WISHLIST_FIELDS = {
576
+ ID: "id",
577
+ USER_ID: "userId",
578
+ ITEMS: "items",
579
+ UPDATED_AT: "updatedAt",
580
+ };
581
+ // ============================================================================
582
+ // HISTORY FIELDS
583
+ // ============================================================================
584
+ export const HISTORY_FIELDS = {
585
+ ID: "id",
586
+ USER_ID: "userId",
587
+ ITEMS: "items",
588
+ UPDATED_AT: "updatedAt",
589
+ };
590
+ // ============================================================================
591
+ // NOTIFICATION FIELDS
592
+ // ============================================================================
593
+ export const NOTIFICATION_FIELDS = {
594
+ ID: "id",
595
+ USER_ID: "userId",
596
+ TYPE: "type",
597
+ TITLE: "title",
598
+ BODY: "body",
599
+ IS_READ: "isRead",
600
+ ENTITY_ID: "entityId",
601
+ ENTITY_TYPE: "entityType",
602
+ CREATED_AT: "createdAt",
603
+ };
604
+ // ============================================================================
605
+ // SESSION FIELDS
606
+ // ============================================================================
607
+ export const SESSION_FIELDS = {
608
+ ID: "id",
609
+ USER_ID: "userId",
610
+ IS_ACTIVE: "isActive",
611
+ EXPIRES_AT: "expiresAt",
612
+ LAST_ACTIVITY: "lastActivity",
613
+ DEVICE_INFO: "deviceInfo",
614
+ LOCATION: "location",
615
+ CREATED_AT: "createdAt",
616
+ };
617
+ // ============================================================================
618
+ // COUPON USAGE FIELDS
619
+ // ============================================================================
620
+ export const COUPON_USAGE_FIELDS = {
621
+ ID: "id",
622
+ USER_ID: "userId",
623
+ COUPON_CODE: "couponCode",
624
+ USAGE_COUNT: "usageCount",
625
+ LAST_USED_AT: "lastUsedAt",
626
+ ORDERS: "orders",
627
+ };
628
+ // ============================================================================
629
+ // CONVERSATION FIELDS
630
+ // ============================================================================
631
+ export const CONVERSATION_FIELDS = {
632
+ ID: "id",
633
+ BUYER_ID: "buyerId",
634
+ STORE_ID: "storeId",
635
+ LAST_MESSAGE_AT: "lastMessageAt",
636
+ LAST_MESSAGE: "lastMessage",
637
+ CREATED_AT: "createdAt",
638
+ UPDATED_AT: "updatedAt",
639
+ };
640
+ // ============================================================================
641
+ // SCAMMER FIELDS
642
+ // ============================================================================
643
+ export const SCAMMER_FIELDS = {
644
+ ID: "id",
645
+ SCAM_TYPE: "scamType",
646
+ PLATFORM: "platform",
647
+ STATUS: "status",
648
+ REPORTED_BY: "reportedBy",
649
+ VERIFIED_BY: "verifiedBy",
650
+ CREATED_AT: "createdAt",
651
+ STATUS_VALUES: {
652
+ PENDING: "pending",
653
+ VERIFIED: "verified",
654
+ REJECTED: "rejected",
655
+ },
656
+ };
657
+ // ============================================================================
658
+ // SUPPORT TICKET FIELDS
659
+ // ============================================================================
660
+ export const SUPPORT_TICKET_FIELDS = {
661
+ ID: "id",
662
+ USER_ID: "userId",
663
+ STORE_ID: "storeId",
664
+ SUBJECT: "subject",
665
+ STATUS: "status",
666
+ PRIORITY: "priority",
667
+ CREATED_AT: "createdAt",
668
+ UPDATED_AT: "updatedAt",
669
+ STATUS_VALUES: {
670
+ OPEN: "open",
671
+ IN_PROGRESS: "in_progress",
672
+ WAITING_ON_USER: "waiting_on_user",
673
+ RESOLVED: "resolved",
674
+ CLOSED: "closed",
675
+ },
676
+ PRIORITY_VALUES: {
677
+ LOW: "low",
678
+ NORMAL: "normal",
679
+ MEDIUM: "medium",
680
+ HIGH: "high",
681
+ URGENT: "urgent",
682
+ },
683
+ };
684
+ // ============================================================================
685
+ // CAROUSEL SLIDE FIELDS
686
+ // ============================================================================
687
+ export const CAROUSEL_FIELDS = {
688
+ ID: "id",
689
+ TITLE: "title",
690
+ ORDER: "order",
691
+ ACTIVE: "active",
692
+ MEDIA: "media",
693
+ LINK: "link",
694
+ MOBILE_MEDIA: "mobileMedia",
695
+ CARDS: "cards",
696
+ BACKGROUND: "background",
697
+ STATS: "stats",
698
+ STAT: {
699
+ VIEWS: "stats.views",
700
+ LAST_VIEWED: "stats.lastViewed",
701
+ },
702
+ CREATED_AT: "createdAt",
703
+ UPDATED_AT: "updatedAt",
704
+ CREATED_BY: "createdBy",
705
+ BACKGROUND_TYPE_VALUES: {
706
+ IMAGE: "image",
707
+ VIDEO: "video",
708
+ COLOR: "color",
709
+ GRADIENT: "gradient",
710
+ },
711
+ };
712
+ // ============================================================================
713
+ // COUPON FIELDS
714
+ // ============================================================================
715
+ export const COUPON_FIELDS = {
716
+ ID: "id",
717
+ CODE: "code",
718
+ NAME: "name",
719
+ DESCRIPTION: "description",
720
+ TYPE: "type",
721
+ SCOPE: "scope",
722
+ SELLER_ID: "sellerId",
723
+ STORE_SLUG: "storeSlug",
724
+ APPLICABLE_TO_AUCTIONS: "applicableToAuctions",
725
+ DISCOUNT: "discount",
726
+ BXGY: "bxgy",
727
+ TIERS: "tiers",
728
+ USAGE: "usage",
729
+ VALIDITY: "validity",
730
+ RESTRICTIONS: "restrictions",
731
+ CREATED_BY: "createdBy",
732
+ CREATED_AT: "createdAt",
733
+ UPDATED_AT: "updatedAt",
734
+ STATS: "stats",
735
+ TYPE_VALUES: {
736
+ PERCENTAGE: "percentage",
737
+ FIXED: "fixed",
738
+ FREE_SHIPPING: "free_shipping",
739
+ BUY_X_GET_Y: "buy_x_get_y",
740
+ },
741
+ SCOPE_VALUES: {
742
+ ADMIN: "admin",
743
+ SELLER: "seller",
744
+ },
745
+ USAGE_FIELDS: {
746
+ TOTAL_LIMIT: "usage.totalLimit",
747
+ PER_USER_LIMIT: "usage.perUserLimit",
748
+ CURRENT_USAGE: "usage.currentUsage",
749
+ },
750
+ VALIDITY_FIELDS: {
751
+ START_DATE: "validity.startDate",
752
+ END_DATE: "validity.endDate",
753
+ IS_ACTIVE: "validity.isActive",
754
+ },
755
+ };
756
+ // ============================================================================
757
+ // FAQ FIELDS
758
+ // ============================================================================
759
+ export const FAQ_FIELDS = {
760
+ ID: "id",
761
+ QUESTION: "question",
762
+ ANSWER: "answer",
763
+ ANSWER_TEXT: "answer.text",
764
+ ANSWER_FORMAT: "answer.format",
765
+ CATEGORY: "category",
766
+ SHOW_ON_HOMEPAGE: "showOnHomepage",
767
+ SHOW_IN_FOOTER: "showInFooter",
768
+ IS_PINNED: "isPinned",
769
+ ORDER: "order",
770
+ PRIORITY: "priority",
771
+ TAGS: "tags",
772
+ SEARCH_TOKENS: "searchTokens",
773
+ RELATED_FAQS: "relatedFAQs",
774
+ USE_SITE_SETTINGS: "useSiteSettings",
775
+ VARIABLES: "variables",
776
+ STATS: "stats",
777
+ STAT: {
778
+ VIEWS: "stats.views",
779
+ HELPFUL: "stats.helpful",
780
+ NOT_HELPFUL: "stats.notHelpful",
781
+ LAST_VIEWED: "stats.lastViewed",
782
+ },
783
+ SEO: "seo",
784
+ SEO_FIELDS: {
785
+ SLUG: "seo.slug",
786
+ META_TITLE: "seo.metaTitle",
787
+ META_DESCRIPTION: "seo.metaDescription",
788
+ },
789
+ IS_ACTIVE: "isActive",
790
+ CREATED_BY: "createdBy",
791
+ CREATED_AT: "createdAt",
792
+ UPDATED_AT: "updatedAt",
793
+ CATEGORY_VALUES: {
794
+ ORDERS_PAYMENT: "orders_payment",
795
+ SHIPPING_DELIVERY: "shipping_delivery",
796
+ RETURNS_REFUNDS: "returns_refunds",
797
+ PRODUCT_INFORMATION: "product_information",
798
+ ACCOUNT_SECURITY: "account_security",
799
+ TECHNICAL_SUPPORT: "technical_support",
800
+ GENERAL: "general",
801
+ },
802
+ };
803
+ // ============================================================================
804
+ // HOMEPAGE SECTION FIELDS
805
+ // ============================================================================
806
+ export const HOMEPAGE_SECTION_FIELDS = {
807
+ ID: "id",
808
+ TYPE: "type",
809
+ ORDER: "order",
810
+ ENABLED: "enabled",
811
+ CONFIG: "config",
812
+ CREATED_AT: "createdAt",
813
+ UPDATED_AT: "updatedAt",
814
+ TYPE_VALUES: {
815
+ WELCOME: "welcome",
816
+ TRUST_INDICATORS: "trust-indicators",
817
+ CATEGORIES: "categories",
818
+ PRODUCTS: "products",
819
+ AUCTIONS: "auctions",
820
+ BANNER: "banner",
821
+ FEATURES: "features",
822
+ REVIEWS: "reviews",
823
+ WHATSAPP_COMMUNITY: "whatsapp-community",
824
+ FAQ: "faq",
825
+ BLOG_ARTICLES: "blog-articles",
826
+ NEWSLETTER: "newsletter",
827
+ },
828
+ };
829
+ // ============================================================================
830
+ // SITE SETTINGS FIELDS
831
+ // ============================================================================
832
+ export const SITE_SETTINGS_FIELDS = {
833
+ ID: "id",
834
+ SITE_NAME: "siteName",
835
+ MOTTO: "motto",
836
+ LOGO: "logo",
837
+ BACKGROUND: "background",
838
+ CONTACT: "contact",
839
+ CONTACT_FIELDS: {
840
+ EMAIL: "contact.email",
841
+ PHONE: "contact.phone",
842
+ ADDRESS: "contact.address",
843
+ UPI_VPA: "contact.upiVpa",
844
+ WHATSAPP: "contact.whatsappNumber",
845
+ },
846
+ PAYMENT: "payment",
847
+ PAYMENT_FIELDS: {
848
+ RAZORPAY_ENABLED: "payment.razorpayEnabled",
849
+ UPI_MANUAL_ENABLED: "payment.upiManualEnabled",
850
+ COD_ENABLED: "payment.codEnabled",
851
+ },
852
+ COMMISSIONS: "commissions",
853
+ COMMISSION_FIELDS: {
854
+ RAZORPAY_FEE_PERCENT: "commissions.razorpayFeePercent",
855
+ COD_DEPOSIT_PERCENT: "commissions.codDepositPercent",
856
+ SELLER_SHIPPING_FIXED: "commissions.sellerShippingFixed",
857
+ PLATFORM_SHIPPING_PERCENT: "commissions.platformShippingPercent",
858
+ PLATFORM_SHIPPING_FIXED_MIN: "commissions.platformShippingFixedMin",
859
+ },
860
+ SOCIAL_LINKS: "socialLinks",
861
+ EMAIL_SETTINGS: "emailSettings",
862
+ SEO: "seo",
863
+ FEATURES: "features",
864
+ FEATURE_FLAGS: "featureFlags",
865
+ FEATURE_FLAGS_FIELDS: {
866
+ CHATS: "featureFlags.chats",
867
+ SMS_VERIFICATION: "featureFlags.smsVerification",
868
+ TRANSLATIONS: "featureFlags.translations",
869
+ WISHLISTS: "featureFlags.wishlists",
870
+ AUCTIONS: "featureFlags.auctions",
871
+ REVIEWS: "featureFlags.reviews",
872
+ EVENTS: "featureFlags.events",
873
+ BLOG: "featureFlags.blog",
874
+ COUPONS: "featureFlags.coupons",
875
+ NOTIFICATIONS: "featureFlags.notifications",
876
+ SELLER_REGISTRATION: "featureFlags.sellerRegistration",
877
+ PRE_ORDERS: "featureFlags.preOrders",
878
+ },
879
+ LEGAL_PAGES: "legalPages",
880
+ SHIPPING: "shipping",
881
+ RETURNS: "returns",
882
+ FAQ: "faq",
883
+ FAQ_VARIABLES: "faq.variables",
884
+ CREATED_AT: "createdAt",
885
+ UPDATED_AT: "updatedAt",
886
+ };
887
+ // ============================================================================
888
+ // COMMON / SHARED FIELD NAMES
889
+ // ============================================================================
890
+ export const COMMON_FIELDS = {
891
+ ID: "id",
892
+ CREATED_AT: "createdAt",
893
+ UPDATED_AT: "updatedAt",
894
+ CREATED_BY: "createdBy",
895
+ STATUS: "status",
896
+ IS_ACTIVE: "isActive",
897
+ ORDER: "order",
898
+ };
899
+ // ============================================================================
900
+ // OAUTH STATE VALUES
901
+ // ============================================================================
902
+ export const OAUTH_STATE_VALUES = {
903
+ PENDING: "pending",
904
+ USED: "used",
905
+ EXPIRED: "expired",
906
+ };
907
+ // ============================================================================
908
+ // DEFAULT VALUES
909
+ // ============================================================================
910
+ export const SCHEMA_DEFAULTS = {
911
+ USER_ROLE: "user",
912
+ CURRENCY: "INR",
913
+ UNKNOWN_USER_AGENT: "Unknown",
914
+ UNKNOWN_USER: "Unknown User",
915
+ ANONYMOUS_USER: "Anonymous",
916
+ DEFAULT_DISPLAY_NAME: "User",
917
+ ADMIN_EMAIL: "admin@letitrip.in",
918
+ };