@mohasinac/appkit 2.7.11 → 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 (141) 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/constants/field-names.d.ts +813 -0
  18. package/dist/constants/field-names.js +918 -0
  19. package/dist/constants/sort.d.ts +7 -0
  20. package/dist/constants/sort.js +5 -0
  21. package/dist/constants/table-keys.d.ts +48 -0
  22. package/dist/constants/table-keys.js +46 -0
  23. package/dist/features/account/components/AddressesIndexListing.js +9 -6
  24. package/dist/features/admin/components/AdminAllEventEntriesView.js +4 -1
  25. package/dist/features/admin/components/AdminBidsView.js +4 -1
  26. package/dist/features/admin/components/AdminBlogView.js +9 -2
  27. package/dist/features/admin/components/AdminBrandsView.js +9 -2
  28. package/dist/features/admin/components/AdminCarouselView.js +4 -1
  29. package/dist/features/admin/components/AdminCartsView.js +4 -1
  30. package/dist/features/admin/components/AdminCategoriesView.js +9 -2
  31. package/dist/features/admin/components/AdminContactView.js +4 -1
  32. package/dist/features/admin/components/AdminCouponsView.js +4 -1
  33. package/dist/features/admin/components/AdminFaqsView.js +5 -1
  34. package/dist/features/admin/components/AdminFeaturesView.js +5 -2
  35. package/dist/features/admin/components/AdminHistoryView.js +5 -1
  36. package/dist/features/admin/components/AdminNewsletterView.js +4 -1
  37. package/dist/features/admin/components/AdminNotificationsView.js +4 -1
  38. package/dist/features/admin/components/AdminOrdersView.js +14 -12
  39. package/dist/features/admin/components/AdminPayoutsView.js +4 -1
  40. package/dist/features/admin/components/AdminPrizeDrawsView.js +4 -1
  41. package/dist/features/admin/components/AdminProductsView.js +14 -3
  42. package/dist/features/admin/components/AdminReturnRequestsView.js +4 -1
  43. package/dist/features/admin/components/AdminReviewsView.js +4 -1
  44. package/dist/features/admin/components/AdminScammersView.js +4 -1
  45. package/dist/features/admin/components/AdminSessionsView.js +4 -1
  46. package/dist/features/admin/components/AdminStoreAddressesView.js +5 -1
  47. package/dist/features/admin/components/AdminStoresView.js +10 -3
  48. package/dist/features/admin/components/AdminSublistingCategoriesView.js +4 -1
  49. package/dist/features/admin/components/AdminSupportTicketsView.js +4 -1
  50. package/dist/features/admin/components/AdminTeamView.js +4 -1
  51. package/dist/features/admin/components/AdminUsersView.js +9 -12
  52. package/dist/features/admin/components/AdminViewCards.d.ts +12 -0
  53. package/dist/features/admin/components/AdminViewCards.js +53 -0
  54. package/dist/features/admin/components/AdminWishlistsView.js +4 -1
  55. package/dist/features/auctions/repository/bid.repository.js +1 -6
  56. package/dist/features/auctions/schemas/index.d.ts +4 -4
  57. package/dist/features/blog/actions/blog-actions.d.ts +16 -16
  58. package/dist/features/blog/components/BlogFilters.d.ts +28 -28
  59. package/dist/features/blog/components/BlogFilters.js +18 -15
  60. package/dist/features/blog/components/BlogIndexListing.js +20 -16
  61. package/dist/features/blog/schemas/index.d.ts +10 -10
  62. package/dist/features/categories/components/CategoriesIndexListing.js +25 -21
  63. package/dist/features/categories/schemas/index.d.ts +2 -2
  64. package/dist/features/events/components/AdminEventsView.js +5 -1
  65. package/dist/features/events/components/EventFilters.d.ts +24 -24
  66. package/dist/features/events/components/EventFilters.js +16 -13
  67. package/dist/features/events/components/EventStatusBadge.js +1 -0
  68. package/dist/features/events/components/EventsIndexListing.js +31 -26
  69. package/dist/features/events/components/EventsListPageView.js +13 -10
  70. package/dist/features/events/schemas/firestore.d.ts +1 -0
  71. package/dist/features/events/schemas/firestore.js +1 -0
  72. package/dist/features/events/schemas/index.d.ts +1 -1
  73. package/dist/features/events/types/index.d.ts +1 -1
  74. package/dist/features/faq/actions/faq-actions.d.ts +10 -10
  75. package/dist/features/faq/schemas/index.d.ts +4 -4
  76. package/dist/features/orders/components/OrderFilters.d.ts +20 -20
  77. package/dist/features/orders/components/OrderFilters.js +33 -30
  78. package/dist/features/orders/repository/orders.repository.js +1 -15
  79. package/dist/features/orders/schemas/index.d.ts +2 -2
  80. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +35 -31
  81. package/dist/features/pre-orders/schemas/index.d.ts +3 -3
  82. package/dist/features/products/components/AuctionsIndexListing.js +34 -30
  83. package/dist/features/products/components/BidHistory.d.ts +0 -1
  84. package/dist/features/products/components/BidHistory.js +1 -1
  85. package/dist/features/products/components/PrizeDrawsIndexListing.js +44 -40
  86. package/dist/features/products/components/ProductDetailPageView.js +1 -1
  87. package/dist/features/products/components/ProductFilters.d.ts +20 -20
  88. package/dist/features/products/components/ProductFilters.js +62 -59
  89. package/dist/features/products/components/ProductsIndexListing.js +28 -24
  90. package/dist/features/products/components/ProductsIndexPageView.js +18 -10
  91. package/dist/features/products/hooks/useProducts.js +2 -0
  92. package/dist/features/products/repository/products.repository.js +2 -22
  93. package/dist/features/products/schemas/index.d.ts +28 -28
  94. package/dist/features/products/schemas/product-features.validators.d.ts +12 -12
  95. package/dist/features/products/types/index.d.ts +2 -0
  96. package/dist/features/promotions/components/CouponsIndexListing.js +21 -17
  97. package/dist/features/promotions/schemas/index.d.ts +4 -4
  98. package/dist/features/reviews/components/ReviewDetailShell.js +6 -5
  99. package/dist/features/reviews/components/ReviewFilters.d.ts +16 -16
  100. package/dist/features/reviews/components/ReviewFilters.js +10 -7
  101. package/dist/features/reviews/components/ReviewsIndexListing.js +21 -17
  102. package/dist/features/reviews/components/ReviewsList.d.ts +5 -2
  103. package/dist/features/reviews/components/ReviewsList.js +11 -5
  104. package/dist/features/reviews/schemas/firestore.d.ts +1 -0
  105. package/dist/features/reviews/schemas/index.d.ts +8 -8
  106. package/dist/features/reviews/types/index.d.ts +1 -0
  107. package/dist/features/search/schemas/index.d.ts +2 -2
  108. package/dist/features/seller/components/SellerAuctionsView.js +5 -1
  109. package/dist/features/seller/components/SellerBidsView.js +4 -1
  110. package/dist/features/seller/components/SellerCouponsView.js +4 -1
  111. package/dist/features/seller/components/SellerOffersView.js +5 -1
  112. package/dist/features/seller/components/SellerOrdersView.js +4 -1
  113. package/dist/features/seller/components/SellerPayoutsView.js +5 -1
  114. package/dist/features/seller/components/SellerPreOrdersView.js +4 -1
  115. package/dist/features/seller/components/SellerPrizeDrawsView.js +4 -1
  116. package/dist/features/seller/components/SellerProductsView.js +4 -1
  117. package/dist/features/seller/schemas/index.d.ts +10 -10
  118. package/dist/features/stores/api/route.js +10 -1
  119. package/dist/features/stores/components/StoreReviewsListing.js +1 -1
  120. package/dist/features/stores/components/StoresIndexListing.js +24 -20
  121. package/dist/features/stores/schemas/firestore.d.ts +1 -0
  122. package/dist/features/stores/schemas/index.d.ts +4 -4
  123. package/dist/index.d.ts +8 -1
  124. package/dist/index.js +12 -1
  125. package/dist/react/hooks/useUrlTable.js +2 -1
  126. package/dist/seed/bids-seed-data.js +45 -44
  127. package/dist/seed/categories-seed-data.js +41 -40
  128. package/dist/seed/coupons-seed-data.js +41 -40
  129. package/dist/seed/products-auctions-seed-data.js +54 -53
  130. package/dist/seed/products-preorders-seed-data.js +25 -24
  131. package/dist/seed/products-prize-draws-seed-data.js +24 -23
  132. package/dist/seed/products-standard-seed-data.js +294 -293
  133. package/dist/seed/reviews-seed-data.js +61 -60
  134. package/dist/seed/scammers-seed-data.js +3 -2
  135. package/dist/seed/stores-seed-data.js +9 -8
  136. package/dist/seed/support-tickets-seed-data.js +13 -12
  137. package/dist/seed/users-seed-data.js +28 -27
  138. package/dist/tailwind-utilities.css +1 -1
  139. package/dist/utils/sieve-builder.d.ts +41 -0
  140. package/dist/utils/sieve-builder.js +66 -0
  141. package/package.json +1 -1
@@ -4,6 +4,7 @@
4
4
  * Verticals: action figures, trading cards, diecast, spinning tops, model kits + vintage/rare.
5
5
  * id === slug convention enforced throughout.
6
6
  */
7
+ import { CATEGORY_FIELDS } from "../constants/field-names";
7
8
  const NOW = new Date();
8
9
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
9
10
  const emptyMetrics = {
@@ -1225,7 +1226,7 @@ const sublistingRows = [
1225
1226
  id: "sublisting-pokemon-base-set",
1226
1227
  slug: "sublisting-pokemon-base-set",
1227
1228
  name: "Base Set (102/102)",
1228
- categoryType: "sublisting",
1229
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1229
1230
  itemCode: "BS-102",
1230
1231
  description: "All 102 Base Set Pokémon TCG cards — Shadowless, 1st Edition, and Unlimited.",
1231
1232
  rootId: "category-trading-cards",
@@ -1249,7 +1250,7 @@ const sublistingRows = [
1249
1250
  id: "sublisting-pokemon-psa-graded",
1250
1251
  slug: "sublisting-pokemon-psa-graded",
1251
1252
  name: "PSA Graded Pokémon Cards",
1252
- categoryType: "sublisting",
1253
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1253
1254
  itemCode: "PSA",
1254
1255
  description: "Investment-grade Pokémon cards authenticated by PSA.",
1255
1256
  rootId: "category-trading-cards",
@@ -1273,7 +1274,7 @@ const sublistingRows = [
1273
1274
  id: "sublisting-pokemon-sealed-boxes",
1274
1275
  slug: "sublisting-pokemon-sealed-boxes",
1275
1276
  name: "Sealed Pokémon Booster Boxes",
1276
- categoryType: "sublisting",
1277
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1277
1278
  description: "Factory-sealed Pokémon TCG booster boxes — current, vintage, Japanese.",
1278
1279
  rootId: "category-trading-cards",
1279
1280
  parentIds: ["category-trading-cards"],
@@ -1296,7 +1297,7 @@ const sublistingRows = [
1296
1297
  id: "sublisting-vintage-wotc-era",
1297
1298
  slug: "sublisting-vintage-wotc-era",
1298
1299
  name: "WOTC Era Pokémon (1999–2003)",
1299
- categoryType: "sublisting",
1300
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1300
1301
  itemCode: "WOTC",
1301
1302
  description: "All Wizards of the Coast era Pokémon TCG sets: Base Set through Legendary Collection.",
1302
1303
  rootId: "category-vintage-rare",
@@ -1320,7 +1321,7 @@ const sublistingRows = [
1320
1321
  id: "sublisting-yugioh-lob-1st-edition",
1321
1322
  slug: "sublisting-yugioh-lob-1st-edition",
1322
1323
  name: "Yu-Gi-Oh! LOB 1st Edition",
1323
- categoryType: "sublisting",
1324
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1324
1325
  itemCode: "LOB-1E",
1325
1326
  description: "Legend of Blue-Eyes White Dragon 1st Edition singles — iconic 2002 WOTC-era Yu-Gi-Oh!.",
1326
1327
  rootId: "category-trading-cards",
@@ -1345,7 +1346,7 @@ const sublistingRows = [
1345
1346
  id: "sublisting-hotwheels-redlines",
1346
1347
  slug: "sublisting-hotwheels-redlines",
1347
1348
  name: "Hot Wheels Vintage Redlines (1968–1977)",
1348
- categoryType: "sublisting",
1349
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1349
1350
  itemCode: "Redline",
1350
1351
  description: "Original Hot Wheels Redline-era cars (1968–1977).",
1351
1352
  rootId: "category-diecast-vehicles",
@@ -1369,7 +1370,7 @@ const sublistingRows = [
1369
1370
  id: "sublisting-hotwheels-super-treasure-hunts",
1370
1371
  slug: "sublisting-hotwheels-super-treasure-hunts",
1371
1372
  name: "Hot Wheels Super Treasure Hunts",
1372
- categoryType: "sublisting",
1373
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1373
1374
  itemCode: "STH",
1374
1375
  description: "Rare Hot Wheels regular-production releases with Real Riders tyres.",
1375
1376
  rootId: "category-diecast-vehicles",
@@ -1394,7 +1395,7 @@ const sublistingRows = [
1394
1395
  id: "sublisting-beyblade-x-series",
1395
1396
  slug: "sublisting-beyblade-x-series",
1396
1397
  name: "Beyblade X Series (2023+)",
1397
- categoryType: "sublisting",
1398
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1398
1399
  itemCode: "BX",
1399
1400
  description: "All Beyblade X generation products — xtreme dash ratchet system.",
1400
1401
  rootId: "category-spinning-tops",
@@ -1419,7 +1420,7 @@ const sublistingRows = [
1419
1420
  id: "sublisting-gundam-master-grade",
1420
1421
  slug: "sublisting-gundam-master-grade",
1421
1422
  name: "Gundam Master Grade (MG) 1/100",
1422
- categoryType: "sublisting",
1423
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1423
1424
  itemCode: "MG",
1424
1425
  description: "Bandai Gundam MG 1/100 kits with full inner frame.",
1425
1426
  rootId: "category-model-kits",
@@ -1443,7 +1444,7 @@ const sublistingRows = [
1443
1444
  id: "sublisting-gundam-high-grade",
1444
1445
  slug: "sublisting-gundam-high-grade",
1445
1446
  name: "Gundam High Grade (HG) 1/144",
1446
- categoryType: "sublisting",
1447
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1447
1448
  itemCode: "HG",
1448
1449
  description: "Entry-level Bandai Gundam HG 1/144 kits across all series.",
1449
1450
  rootId: "category-model-kits",
@@ -1468,7 +1469,7 @@ const sublistingRows = [
1468
1469
  id: "sublisting-nendoroid-early-series",
1469
1470
  slug: "sublisting-nendoroid-early-series",
1470
1471
  name: "Nendoroid Early Series (#001–#100)",
1471
- categoryType: "sublisting",
1472
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1472
1473
  itemCode: "GSC-001-100",
1473
1474
  description: "Discontinued Good Smile Company Nendoroid figures #001–#100.",
1474
1475
  rootId: "category-action-figures",
@@ -1492,7 +1493,7 @@ const sublistingRows = [
1492
1493
  id: "sublisting-shf-dragonball",
1493
1494
  slug: "sublisting-shf-dragonball",
1494
1495
  name: "S.H.Figuarts Dragon Ball Series",
1495
- categoryType: "sublisting",
1496
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.SUBLISTING,
1496
1497
  itemCode: "SHF-DBZ",
1497
1498
  description: "Bandai S.H.Figuarts Dragon Ball Z and Super articulated figures.",
1498
1499
  rootId: "category-action-figures",
@@ -1519,7 +1520,7 @@ const brandRows = [
1519
1520
  id: "brand-bandai",
1520
1521
  slug: "brand-bandai",
1521
1522
  name: "Bandai",
1522
- categoryType: "brand",
1523
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1523
1524
  description: "Japan's leading toy and hobby manufacturer. Home to Gundam plastic model kits (Gunpla), SH Figuarts, Dragon Ball figures, Digimon, Power Rangers, and premium collectibles.",
1524
1525
  brandWebsite: "https://www.bandai.co.jp",
1525
1526
  brandCountry: "Japan",
@@ -1545,7 +1546,7 @@ const brandRows = [
1545
1546
  id: "brand-hasbro",
1546
1547
  slug: "brand-hasbro",
1547
1548
  name: "Hasbro",
1548
- categoryType: "brand",
1549
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1549
1550
  description: "American multinational toy and entertainment company. Makes Transformers, Marvel Legends, Star Wars Black Series, My Little Pony, Nerf, and G.I. Joe collectibles.",
1550
1551
  brandWebsite: "https://www.hasbro.com",
1551
1552
  brandCountry: "USA",
@@ -1571,7 +1572,7 @@ const brandRows = [
1571
1572
  id: "brand-takara-tomy",
1572
1573
  slug: "brand-takara-tomy",
1573
1574
  name: "Takara Tomy",
1574
- categoryType: "brand",
1575
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1575
1576
  description: "Iconic Japanese toy manufacturer formed by the merger of Takara and Tomy in 2006. Creates Beyblade Burst, Tomica diecast cars, Transformers (Japan), and Zoids.",
1576
1577
  brandWebsite: "https://www.takaratomy.co.jp",
1577
1578
  brandCountry: "Japan",
@@ -1597,7 +1598,7 @@ const brandRows = [
1597
1598
  id: "brand-mattel",
1598
1599
  slug: "brand-mattel",
1599
1600
  name: "Mattel",
1600
- categoryType: "brand",
1601
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1601
1602
  description: "American toy giant behind Hot Wheels, Barbie, Masters of the Universe, UNO, and Fisher-Price. Hot Wheels alone has over 900 vehicle models released annually.",
1602
1603
  brandWebsite: "https://www.mattel.com",
1603
1604
  brandCountry: "USA",
@@ -1623,7 +1624,7 @@ const brandRows = [
1623
1624
  id: "brand-pokemon-company",
1624
1625
  slug: "brand-pokemon-company",
1625
1626
  name: "The Pokémon Company",
1626
- categoryType: "brand",
1627
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1627
1628
  description: "Japanese consortium managing the Pokémon intellectual property. Publishes the Pokémon Trading Card Game (TCG), video games, anime merchandise, and official licensed collectibles worldwide.",
1628
1629
  brandWebsite: "https://www.pokemon.com",
1629
1630
  brandCountry: "Japan",
@@ -1649,7 +1650,7 @@ const brandRows = [
1649
1650
  id: "brand-konami",
1650
1651
  slug: "brand-konami",
1651
1652
  name: "Konami",
1652
- categoryType: "brand",
1653
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1653
1654
  description: "Japanese entertainment conglomerate best known for the Yu-Gi-Oh! Trading Card Game. Also produces Metal Gear, Silent Hill, and Castlevania merchandise and figures.",
1654
1655
  brandWebsite: "https://www.konami.com",
1655
1656
  brandCountry: "Japan",
@@ -1675,7 +1676,7 @@ const brandRows = [
1675
1676
  id: "brand-funko",
1676
1677
  slug: "brand-funko",
1677
1678
  name: "Funko",
1678
- categoryType: "brand",
1679
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1679
1680
  description: "American pop-culture collectibles company. Iconic for Funko Pop! vinyl figures spanning thousands of licenses including Marvel, DC, anime, Disney, gaming, sports, and music.",
1680
1681
  brandWebsite: "https://funko.com",
1681
1682
  brandCountry: "USA",
@@ -1701,7 +1702,7 @@ const brandRows = [
1701
1702
  id: "brand-neca",
1702
1703
  slug: "brand-neca",
1703
1704
  name: "NECA",
1704
- categoryType: "brand",
1705
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1705
1706
  description: "National Entertainment Collectibles Association — American designer and manufacturer of highly detailed action figures. Known for horror icons, Teenage Mutant Ninja Turtles, and video game characters.",
1706
1707
  brandWebsite: "https://www.necaonline.com",
1707
1708
  brandCountry: "USA",
@@ -1727,7 +1728,7 @@ const brandRows = [
1727
1728
  id: "brand-mcfarlane",
1728
1729
  slug: "brand-mcfarlane",
1729
1730
  name: "McFarlane Toys",
1730
- categoryType: "brand",
1731
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1731
1732
  description: "American action figure company founded by comic artist Todd McFarlane. Official DC Multiverse figures, Warhammer, Spawn, and premium collector statuettes with extraordinary detail.",
1732
1733
  brandWebsite: "https://www.mcfarlane.com",
1733
1734
  brandCountry: "USA",
@@ -1753,7 +1754,7 @@ const brandRows = [
1753
1754
  id: "brand-good-smile",
1754
1755
  slug: "brand-good-smile",
1755
1756
  name: "Good Smile Company",
1756
- categoryType: "brand",
1757
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1757
1758
  description: "Japan's premier figure manufacturer. Producer of Nendoroids, figma, and high-end scale PVC figures. Official partner for Fate, Hatsune Miku, Sword Art Online, Re:Zero, and hundreds of anime series.",
1758
1759
  brandWebsite: "https://www.goodsmile.info",
1759
1760
  brandCountry: "Japan",
@@ -1779,7 +1780,7 @@ const brandRows = [
1779
1780
  id: "brand-hot-wheels",
1780
1781
  slug: "brand-hot-wheels",
1781
1782
  name: "Hot Wheels",
1782
- categoryType: "brand",
1783
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1783
1784
  description: "Mattel's iconic 1:64 scale die-cast vehicle brand since 1968. Treasure Hunt, Super Treasure Hunt, Car Culture, RLC exclusives, and track sets. Over 6 billion cars sold worldwide.",
1784
1785
  brandWebsite: "https://hotwheels.mattel.com",
1785
1786
  brandCountry: "USA",
@@ -1805,7 +1806,7 @@ const brandRows = [
1805
1806
  id: "brand-tomica",
1806
1807
  slug: "brand-tomica",
1807
1808
  name: "Tomica",
1808
- categoryType: "brand",
1809
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1809
1810
  description: "Takara Tomy's 1:64 scale Japanese diecast car series since 1970. Features authentic Japanese vehicles (Toyota, Honda, Nissan), emergency vehicles, and licensed premium Tomica Premium line.",
1810
1811
  brandWebsite: "https://www.takaratomy.co.jp/products/tomica",
1811
1812
  brandCountry: "Japan",
@@ -1831,7 +1832,7 @@ const brandRows = [
1831
1832
  id: "brand-beyblade",
1832
1833
  slug: "brand-beyblade",
1833
1834
  name: "Beyblade",
1834
- categoryType: "brand",
1835
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1835
1836
  description: "Takara Tomy's competitive spinning top battle franchise. Covers classic Metal Fight, Beyblade Burst, Beyblade X, and Hasbro-localized versions. Official tournaments held worldwide including India.",
1836
1837
  brandWebsite: "https://beyblade.takaratomy.co.jp",
1837
1838
  brandCountry: "Japan",
@@ -1857,7 +1858,7 @@ const brandRows = [
1857
1858
  id: "brand-kotobukiya",
1858
1859
  slug: "brand-kotobukiya",
1859
1860
  name: "Kotobukiya",
1860
- categoryType: "brand",
1861
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1861
1862
  description: "Premium Japanese model kit and figure manufacturer. Famous for Frame Arms Girl, Megami Device, ARTFX statues, and licensed kits from Star Wars, Marvel, and DC. Known for detailed snap-fit kits requiring no glue.",
1862
1863
  brandWebsite: "https://www.kotobukiya.co.jp",
1863
1864
  brandCountry: "Japan",
@@ -1883,7 +1884,7 @@ const brandRows = [
1883
1884
  id: "brand-alter",
1884
1885
  slug: "brand-alter",
1885
1886
  name: "Alter",
1886
- categoryType: "brand",
1887
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1887
1888
  description: "High-end Japanese scale figure manufacturer under A+ Corporation. Renowned for exceptional paint quality and sculpt accuracy. Specialises in 1/7 and 1/8 scale anime figures from Re:Zero, Fate, and other popular IPs.",
1888
1889
  brandWebsite: "https://alter-web.jp",
1889
1890
  brandCountry: "Japan",
@@ -1909,7 +1910,7 @@ const brandRows = [
1909
1910
  id: "brand-max-factory",
1910
1911
  slug: "brand-max-factory",
1911
1912
  name: "Max Factory",
1912
- categoryType: "brand",
1913
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1913
1914
  description: "Japanese figure manufacturer known for the figma articulated figure line and figFIX static figures. Partners with Good Smile Company. figma figures are prized for their wide articulation range and interchangeable parts.",
1914
1915
  brandWebsite: "https://www.maxfactory.jp",
1915
1916
  brandCountry: "Japan",
@@ -1935,7 +1936,7 @@ const brandRows = [
1935
1936
  id: "brand-medicom-toy",
1936
1937
  slug: "brand-medicom-toy",
1937
1938
  name: "Medicom Toy",
1938
- categoryType: "brand",
1939
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1939
1940
  description: "Japanese designer toy and collectible figure company. Creator of MAFEX (Miracle Action Figure EX) — highly articulated figures with film-accurate sculpts covering Batman, Spider-Man, and Star Wars. Also produces BE@RBRICK designer toys.",
1940
1941
  brandWebsite: "https://www.medicomtoy.co.jp",
1941
1942
  brandCountry: "Japan",
@@ -1961,7 +1962,7 @@ const brandRows = [
1961
1962
  id: "brand-bushiroad",
1962
1963
  slug: "brand-bushiroad",
1963
1964
  name: "Bushiroad",
1964
- categoryType: "brand",
1965
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1965
1966
  description: "Japanese trading card game publisher. Home to One Piece Card Game, Cardfight!! Vanguard, Weiß Schwarz, and Sword Art Online TCG. Growing fast in India's TCG community alongside Pokémon and Yu-Gi-Oh.",
1966
1967
  brandWebsite: "https://www.bushiroad.com",
1967
1968
  brandCountry: "Japan",
@@ -1987,7 +1988,7 @@ const brandRows = [
1987
1988
  id: "brand-panini",
1988
1989
  slug: "brand-panini",
1989
1990
  name: "Panini",
1990
- categoryType: "brand",
1991
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
1991
1992
  description: "Italian sticker and trading card company with global reach. Official partner for FIFA, NBA, NFL, ICC Cricket, and IPL trading cards. Popular in India for cricket and football card collections.",
1992
1993
  brandWebsite: "https://www.paniniamerica.net",
1993
1994
  brandCountry: "Italy",
@@ -2013,7 +2014,7 @@ const brandRows = [
2013
2014
  id: "brand-spin-master",
2014
2015
  slug: "brand-spin-master",
2015
2016
  name: "Spin Master",
2016
- categoryType: "brand",
2017
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2017
2018
  description: "Canadian toy company known for Bakugan battle planet, Air Hogs, Paw Patrol, and Tech Deck. Bakugan has a dedicated competitive community in India with official tournaments.",
2018
2019
  brandWebsite: "https://www.spinmaster.com",
2019
2020
  brandCountry: "Canada",
@@ -2039,7 +2040,7 @@ const brandRows = [
2039
2040
  id: "brand-jakks-pacific",
2040
2041
  slug: "brand-jakks-pacific",
2041
2042
  name: "JAKKS Pacific",
2042
- categoryType: "brand",
2043
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2043
2044
  description: "American toy manufacturer producing licensed action figures for Nintendo (World of Nintendo), Disney, and WWE. Affordable 4-inch figure lines popular among budget collectors.",
2044
2045
  brandWebsite: "https://www.jakkspacific.com",
2045
2046
  brandCountry: "USA",
@@ -2065,7 +2066,7 @@ const brandRows = [
2065
2066
  id: "brand-corgi",
2066
2067
  slug: "brand-corgi",
2067
2068
  name: "Corgi",
2068
- categoryType: "brand",
2069
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2069
2070
  description: "British diecast vehicle manufacturer with a 70-year heritage. Iconic for James Bond DB5 in gold, aviation models, and classic British cars. Collector grade quality with opening parts and realistic detail.",
2070
2071
  brandWebsite: "https://www.corgi.co.uk",
2071
2072
  brandCountry: "UK",
@@ -2091,7 +2092,7 @@ const brandRows = [
2091
2092
  id: "brand-matchbox",
2092
2093
  slug: "brand-matchbox",
2093
2094
  name: "Matchbox",
2094
- categoryType: "brand",
2095
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2095
2096
  description: "Iconic British diecast toy car brand since 1953, now owned by Mattel. Known for 1:64 scale realistic vehicles. The Moving Parts line features opening hoods and doors. Beloved by Indian collectors for nostalgia value.",
2096
2097
  brandWebsite: "https://www.matchbox.com",
2097
2098
  brandCountry: "UK",
@@ -2117,7 +2118,7 @@ const brandRows = [
2117
2118
  id: "brand-mega-construx",
2118
2119
  slug: "brand-mega-construx",
2119
2120
  name: "Mega Construx",
2120
- categoryType: "brand",
2121
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2121
2122
  description: "Mattel's construction toy brand (now marketed as MEGA). Produces detailed building sets for Pokémon, Halo, Call of Duty, and Masters of the Universe. Pokémon MEGA sets are popular gift items for young collectors.",
2122
2123
  brandWebsite: "https://www.mega.us",
2123
2124
  brandCountry: "USA",
@@ -2143,7 +2144,7 @@ const brandRows = [
2143
2144
  id: "brand-sideshow-collectibles",
2144
2145
  slug: "brand-sideshow-collectibles",
2145
2146
  name: "Sideshow Collectibles",
2146
- categoryType: "brand",
2147
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
2147
2148
  description: "Premium American collectible statue and figure manufacturer. Known for 1/4 scale and 1/6 scale premium statues for Marvel, DC, Star Wars, and horror franchises. Limited edition runs make these highly sought-after.",
2148
2149
  brandWebsite: "https://www.sideshowtoy.com",
2149
2150
  brandCountry: "USA",
@@ -2172,7 +2173,7 @@ const bundleRows = [
2172
2173
  id: "bundle-pokemon-tcg-starter-pack-2026",
2173
2174
  slug: "bundle-pokemon-tcg-starter-pack-2026",
2174
2175
  name: "Pokémon TCG Starter Pack 2026",
2175
- categoryType: "bundle",
2176
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BUNDLE,
2176
2177
  description: "A curated 3-item bundle for new Pokémon TCG collectors — a Paldean Fates ETB, a tin of Stellar Crown boosters, and a deck box. Save ₹650 vs buying separately.",
2177
2178
  rootId: "bundle-pokemon-tcg-starter-pack-2026",
2178
2179
  parentIds: [],
@@ -2218,7 +2219,7 @@ const bundleRows = [
2218
2219
  id: "bundle-gunpla-pg-arrivals-2026",
2219
2220
  slug: "bundle-gunpla-pg-arrivals-2026",
2220
2221
  name: "Gundam PG Arrivals 2026",
2221
- categoryType: "bundle",
2222
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BUNDLE,
2222
2223
  description: "Pre-order bundle — three premium PG/RG kits + S.H.Figuarts Broly Super Hero. Save ₹1200.",
2223
2224
  rootId: "bundle-gunpla-pg-arrivals-2026",
2224
2225
  parentIds: [],
@@ -2264,7 +2265,7 @@ const bundleRows = [
2264
2265
  id: "bundle-beyblade-x-launch-pack-2025",
2265
2266
  slug: "bundle-beyblade-x-launch-pack-2025",
2266
2267
  name: "Beyblade X Launch Pack 2025 (SOLD OUT)",
2267
- categoryType: "bundle",
2268
+ categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BUNDLE,
2268
2269
  description: "Four-item Beyblade X launch pack — original 2025 release. One of the four items has sold; bundle marked OOS until restock.",
2269
2270
  rootId: "bundle-beyblade-x-launch-pack-2025",
2270
2271
  parentIds: [],
@@ -4,6 +4,7 @@
4
4
  * partially-used, and exhausted (limit reached).
5
5
  * coupon- prefix, id === code-based slug.
6
6
  */
7
+ import { COUPON_FIELDS } from "../constants/field-names";
7
8
  const NOW = new Date();
8
9
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
9
10
  const daysAhead = (n) => new Date(NOW.getTime() + n * 86400000);
@@ -14,8 +15,8 @@ export const couponsSeedData = [
14
15
  code: "WELCOME10",
15
16
  name: "Welcome Discount — 10% Off Your First Order",
16
17
  description: "10% off your first order on LetItRip. Valid on all categories. Maximum discount ₹200. First-time buyers only.",
17
- type: "percentage",
18
- scope: "admin",
18
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
19
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
19
20
  discount: {
20
21
  value: 10,
21
22
  maxDiscount: 20000,
@@ -50,8 +51,8 @@ export const couponsSeedData = [
50
51
  code: "POKEMON25",
51
52
  name: "Pokémon Collector's Discount — ₹250 Off",
52
53
  description: "₹250 off on any Pokémon TCG category purchase. Minimum order ₹1,000. Valid on trading cards, sealed products, and vintage Pokémon. Can be combined with seller coupons.",
53
- type: "fixed",
54
- scope: "admin",
54
+ type: COUPON_FIELDS.TYPE_VALUES.FIXED,
55
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
55
56
  discount: {
56
57
  value: 25000,
57
58
  maxDiscount: 25000,
@@ -87,8 +88,8 @@ export const couponsSeedData = [
87
88
  code: "FREESHIP999",
88
89
  name: "Free Shipping on Orders ₹999+",
89
90
  description: "Free standard shipping on any order above ₹999. No category restriction. Note: free shipping is already automatic above ₹999 — this coupon extends the same benefit and can be applied to orders that were manually discounted below ₹999.",
90
- type: "free_shipping",
91
- scope: "admin",
91
+ type: COUPON_FIELDS.TYPE_VALUES.FREE_SHIPPING,
92
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
92
93
  discount: {
93
94
  value: 100,
94
95
  minPurchase: 99900,
@@ -122,8 +123,8 @@ export const couponsSeedData = [
122
123
  code: "BLADER20",
123
124
  name: "Blader's Discount — 20% Off All Beyblade Products",
124
125
  description: "20% off all Beyblade X and Burst products. Maximum discount ₹500 per order. Limited to 50 uses total — 30 used so far. Created for the India launch promotion.",
125
- type: "percentage",
126
- scope: "admin",
126
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
127
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
127
128
  discount: {
128
129
  value: 20,
129
130
  maxDiscount: 50000,
@@ -159,8 +160,8 @@ export const couponsSeedData = [
159
160
  code: "VIP2026",
160
161
  name: "VIP Collector's Exclusive — 25% Off (Limit Reached)",
161
162
  description: "25% off any order — exclusive to LetItRip VIP program members. Limited to 10 uses total. This coupon is now exhausted. Watch for VIP2026B in the next newsletter.",
162
- type: "percentage",
163
- scope: "admin",
163
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
164
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
164
165
  discount: {
165
166
  value: 25,
166
167
  maxDiscount: 250000,
@@ -195,8 +196,8 @@ export const couponsSeedData = [
195
196
  code: "PALACE15",
196
197
  name: "Pokémon Palace — 15% Loyalty Discount",
197
198
  description: "15% off your next order at Pokémon Palace. Exclusively for repeat customers. Min order ₹1,500. Max discount ₹750.",
198
- type: "percentage",
199
- scope: "seller",
199
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
200
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
200
201
  storeId: "store-pokemon-palace",
201
202
  discount: {
202
203
  value: 15,
@@ -232,8 +233,8 @@ export const couponsSeedData = [
232
233
  code: "DIECAST10",
233
234
  name: "Diecast Depot — ₹100 Off Your Next Order",
234
235
  description: "₹100 flat off any order at Diecast Depot. Works on all Hot Wheels and Tomica cars. Min order ₹500.",
235
- type: "fixed",
236
- scope: "seller",
236
+ type: COUPON_FIELDS.TYPE_VALUES.FIXED,
237
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
237
238
  storeId: "store-diecast-depot",
238
239
  discount: {
239
240
  value: 10000,
@@ -269,8 +270,8 @@ export const couponsSeedData = [
269
270
  code: "BEYARENA20",
270
271
  name: "Beyblade Arena Launch Special — 20% Off",
271
272
  description: "20% off all Beyblade X products at Beyblade Arena. Limited launch promotion. Max discount ₹500. One use per customer.",
272
- type: "percentage",
273
- scope: "seller",
273
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
274
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
274
275
  storeId: "store-beyblade-arena",
275
276
  discount: {
276
277
  value: 20,
@@ -307,8 +308,8 @@ export const couponsSeedData = [
307
308
  code: "CARDGAME5",
308
309
  name: "CardGame Hub — Free Shipping",
309
310
  description: "Free shipping on any order from CardGame Hub. No minimum order. Available to all buyers.",
310
- type: "free_shipping",
311
- scope: "seller",
311
+ type: COUPON_FIELDS.TYPE_VALUES.FREE_SHIPPING,
312
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
312
313
  storeId: "store-cardgame-hub",
313
314
  discount: {
314
315
  value: 100,
@@ -343,8 +344,8 @@ export const couponsSeedData = [
343
344
  code: "TOKYOTOYS10",
344
345
  name: "Tokyo Toys India — 10% New Customer Discount",
345
346
  description: "10% off your first order at Tokyo Toys India. Valid on all anime figures, Gundam kits, and Funko Pops. Min order ₹2,000. Max discount ₹500.",
346
- type: "percentage",
347
- scope: "seller",
347
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
348
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
348
349
  storeId: "store-tokyo-toys-india",
349
350
  discount: {
350
351
  value: 10,
@@ -381,8 +382,8 @@ export const couponsSeedData = [
381
382
  code: "NEWUSER5",
382
383
  name: "₹50 Off First Order",
383
384
  description: "Flat ₹50 off your first order on LetItRip. No minimum purchase.",
384
- type: "fixed",
385
- scope: "admin",
385
+ type: COUPON_FIELDS.TYPE_VALUES.FIXED,
386
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
386
387
  discount: { value: 5000, minPurchase: 0 },
387
388
  usage: { totalLimit: undefined, perUserLimit: 1, currentUsage: 312 },
388
389
  validity: { startDate: daysAgo(90), endDate: daysAhead(180), isActive: true },
@@ -398,8 +399,8 @@ export const couponsSeedData = [
398
399
  code: "FLASH24",
399
400
  name: "24-Hour Flash Sale — 30% Off",
400
401
  description: "30% off everything for 24 hours only. Maximum discount ₹500.",
401
- type: "percentage",
402
- scope: "admin",
402
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
403
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
403
404
  discount: { value: 30, maxDiscount: 50000, minPurchase: 100000 },
404
405
  usage: { totalLimit: 200, perUserLimit: 1, currentUsage: 187 },
405
406
  validity: { startDate: daysAgo(40), endDate: daysAgo(39), isActive: false },
@@ -415,8 +416,8 @@ export const couponsSeedData = [
415
416
  code: "REFERRAL200",
416
417
  name: "Referral Reward — ₹200 Off",
417
418
  description: "Refer a friend, both get ₹200 off the next order. Min ₹1,000.",
418
- type: "fixed",
419
- scope: "admin",
419
+ type: COUPON_FIELDS.TYPE_VALUES.FIXED,
420
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
420
421
  discount: { value: 20000, minPurchase: 100000 },
421
422
  usage: { totalLimit: undefined, perUserLimit: 5, currentUsage: 89 },
422
423
  validity: { startDate: daysAgo(180), endDate: daysAhead(180), isActive: true },
@@ -432,8 +433,8 @@ export const couponsSeedData = [
432
433
  code: "PREPAID5",
433
434
  name: "5% Off Prepaid Orders",
434
435
  description: "Pay online (UPI/card) and get an extra 5% off. Max ₹300 discount.",
435
- type: "percentage",
436
- scope: "admin",
436
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
437
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
437
438
  discount: { value: 5, maxDiscount: 30000, minPurchase: 50000 },
438
439
  usage: { totalLimit: undefined, perUserLimit: undefined, currentUsage: 1024 },
439
440
  validity: { startDate: daysAgo(150), endDate: daysAhead(150), isActive: true },
@@ -449,8 +450,8 @@ export const couponsSeedData = [
449
450
  code: "GUNDAMGALAXY12",
450
451
  name: "Gundam Galaxy 12% Off",
451
452
  description: "12% off everything at Gundam Galaxy store. Max ₹400.",
452
- type: "percentage",
453
- scope: "seller",
453
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
454
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
454
455
  storeId: "store-gundam-galaxy",
455
456
  discount: { value: 12, maxDiscount: 40000, minPurchase: 250000 },
456
457
  usage: { totalLimit: 100, perUserLimit: 2, currentUsage: 24 },
@@ -467,8 +468,8 @@ export const couponsSeedData = [
467
468
  code: "VINTAGEVAULT8",
468
469
  name: "Vintage Vault 8% Off — Diwali Special",
469
470
  description: "Diwali special — 8% off vintage collectibles. Expired Nov 2025.",
470
- type: "percentage",
471
- scope: "seller",
471
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
472
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
472
473
  storeId: "store-vintage-vault",
473
474
  discount: { value: 8, maxDiscount: 50000, minPurchase: 500000 },
474
475
  usage: { totalLimit: 50, perUserLimit: 1, currentUsage: 28 },
@@ -485,8 +486,8 @@ export const couponsSeedData = [
485
486
  code: "AUCTION25",
486
487
  name: "25% Off Auction Wins (Shipping)",
487
488
  description: "Auction winners get 25% off shipping. Max ₹250 discount.",
488
- type: "percentage",
489
- scope: "admin",
489
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
490
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
490
491
  discount: { value: 25, maxDiscount: 25000, minPurchase: 0 },
491
492
  usage: { totalLimit: undefined, perUserLimit: undefined, currentUsage: 56 },
492
493
  validity: { startDate: daysAgo(60), endDate: daysAhead(120), isActive: true },
@@ -502,8 +503,8 @@ export const couponsSeedData = [
502
503
  code: "SUMMER15",
503
504
  name: "Summer Sale 15% Off",
504
505
  description: "15% off summer 2026 collectibles. Max ₹600. Starts in 2 weeks.",
505
- type: "percentage",
506
- scope: "admin",
506
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
507
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
507
508
  discount: { value: 15, maxDiscount: 60000, minPurchase: 200000 },
508
509
  usage: { totalLimit: 500, perUserLimit: 1, currentUsage: 0 },
509
510
  validity: { startDate: daysAhead(14), endDate: daysAhead(45), isActive: true },
@@ -519,8 +520,8 @@ export const couponsSeedData = [
519
520
  code: "RETROVAULT10",
520
521
  name: "Retro Vault 10% Off",
521
522
  description: "10% off retro collectibles at Vintage Vault. Max ₹350.",
522
- type: "percentage",
523
- scope: "seller",
523
+ type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
524
+ scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
524
525
  storeId: "store-vintage-vault",
525
526
  discount: { value: 10, maxDiscount: 35000, minPurchase: 200000 },
526
527
  usage: { totalLimit: 75, perUserLimit: 1, currentUsage: 19 },
@@ -537,8 +538,8 @@ export const couponsSeedData = [
537
538
  code: "BIGBANG2026",
538
539
  name: "₹1,000 Off Orders Above ₹10,000",
539
540
  description: "Flat ₹1,000 off orders ₹10,000+. Big-ticket promo. Once per user.",
540
- type: "fixed",
541
- scope: "admin",
541
+ type: COUPON_FIELDS.TYPE_VALUES.FIXED,
542
+ scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
542
543
  discount: { value: 100000, minPurchase: 1000000 },
543
544
  usage: { totalLimit: 1000, perUserLimit: 1, currentUsage: 142 },
544
545
  validity: { startDate: daysAgo(75), endDate: daysAhead(90), isActive: true },