@mohasinac/appkit 2.7.52 → 2.7.54

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 (123) hide show
  1. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +1 -1
  2. package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -3
  3. package/dist/_internal/server/jobs/core/bundleStockSync.js +9 -7
  4. package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +12 -3
  5. package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -13
  6. package/dist/_internal/server/jobs/core/onProductWrite.js +1 -3
  7. package/dist/_internal/server/jobs/handlers/onProductStockChange.js +11 -2
  8. package/dist/client.d.ts +2 -0
  9. package/dist/client.js +1 -0
  10. package/dist/constants/field-names.d.ts +4 -3
  11. package/dist/constants/field-names.js +8 -8
  12. package/dist/errors/error-codes.d.ts +3 -0
  13. package/dist/errors/error-codes.js +3 -0
  14. package/dist/errors/messages.d.ts +3 -0
  15. package/dist/errors/messages.js +3 -0
  16. package/dist/features/admin/types/product.types.d.ts +1 -1
  17. package/dist/features/admin/types/product.types.js +2 -3
  18. package/dist/features/auctions/actions/bid-actions.d.ts +9 -0
  19. package/dist/features/auctions/actions/bid-actions.js +61 -0
  20. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +2 -1
  21. package/dist/features/auctions/components/AuctionDetailPageView.js +5 -4
  22. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -1
  23. package/dist/features/auctions/components/PlaceBidFormClient.js +32 -2
  24. package/dist/features/auctions/types/index.d.ts +1 -1
  25. package/dist/features/layout/AppLayoutShell.js +1 -1
  26. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -11
  27. package/dist/features/products/api/[id]/route.js +4 -8
  28. package/dist/features/products/api/route.js +1 -3
  29. package/dist/features/products/components/AuctionsIndexListing.js +3 -11
  30. package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -10
  31. package/dist/features/products/components/ProductFilters.d.ts +33 -9
  32. package/dist/features/products/components/ProductFilters.js +6 -29
  33. package/dist/features/products/components/ProductForm.js +2 -3
  34. package/dist/features/products/constants/sieve.d.ts +162 -0
  35. package/dist/features/products/constants/sieve.js +95 -0
  36. package/dist/features/products/repository/products.repository.d.ts +5 -0
  37. package/dist/features/products/repository/products.repository.js +23 -3
  38. package/dist/features/products/schemas/firestore.d.ts +4 -4
  39. package/dist/features/products/schemas/firestore.js +2 -3
  40. package/dist/features/products/schemas/index.d.ts +6 -6
  41. package/dist/features/products/schemas/index.js +2 -6
  42. package/dist/features/products/types/index.d.ts +1 -1
  43. package/dist/features/seller/actions/offer-actions.js +2 -2
  44. package/dist/features/wishlist/types/index.d.ts +1 -1
  45. package/dist/index.d.ts +6 -3
  46. package/dist/index.js +6 -4
  47. package/dist/seed/addresses-seed-data.d.ts +2 -18
  48. package/dist/seed/addresses-seed-data.js +137 -203
  49. package/dist/seed/bids-seed-data.d.ts +2 -8
  50. package/dist/seed/bids-seed-data.js +172 -648
  51. package/dist/seed/blog-posts-seed-data.d.ts +0 -5
  52. package/dist/seed/blog-posts-seed-data.js +341 -596
  53. package/dist/seed/carousel-slides-seed-data.d.ts +0 -5
  54. package/dist/seed/carousel-slides-seed-data.js +61 -192
  55. package/dist/seed/carousels-seed-data.js +18 -1
  56. package/dist/seed/cart-seed-data.d.ts +1 -18
  57. package/dist/seed/cart-seed-data.js +116 -293
  58. package/dist/seed/categories-seed-data.d.ts +0 -6
  59. package/dist/seed/categories-seed-data.js +1409 -1537
  60. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -11
  61. package/dist/seed/claimed-coupons-seed-data.js +32 -29
  62. package/dist/seed/conversations-seed-data.d.ts +0 -6
  63. package/dist/seed/conversations-seed-data.js +132 -280
  64. package/dist/seed/coupon-usage-seed-data.d.ts +0 -16
  65. package/dist/seed/coupon-usage-seed-data.js +30 -44
  66. package/dist/seed/coupons-seed-data.d.ts +0 -6
  67. package/dist/seed/coupons-seed-data.js +141 -489
  68. package/dist/seed/events-seed-data.d.ts +0 -6
  69. package/dist/seed/events-seed-data.js +201 -379
  70. package/dist/seed/faq-seed-data.d.ts +0 -14
  71. package/dist/seed/faq-seed-data.js +609 -1184
  72. package/dist/seed/grouped-listings-seed-data.d.ts +119 -8
  73. package/dist/seed/grouped-listings-seed-data.js +148 -233
  74. package/dist/seed/history-seed-data.d.ts +0 -7
  75. package/dist/seed/history-seed-data.js +50 -54
  76. package/dist/seed/homepage-sections-seed-data.d.ts +0 -5
  77. package/dist/seed/homepage-sections-seed-data.js +83 -175
  78. package/dist/seed/index.d.ts +1 -1
  79. package/dist/seed/index.js +1 -1
  80. package/dist/seed/manifest.js +2 -2
  81. package/dist/seed/notifications-seed-data.d.ts +0 -6
  82. package/dist/seed/notifications-seed-data.js +309 -196
  83. package/dist/seed/offers-seed-data.d.ts +0 -8
  84. package/dist/seed/offers-seed-data.js +118 -197
  85. package/dist/seed/orders-seed-data.d.ts +2 -8
  86. package/dist/seed/orders-seed-data.js +248 -1510
  87. package/dist/seed/payouts-seed-data.d.ts +0 -6
  88. package/dist/seed/payouts-seed-data.js +102 -441
  89. package/dist/seed/products-auctions-seed-data.d.ts +1 -14
  90. package/dist/seed/products-auctions-seed-data.js +612 -1084
  91. package/dist/seed/products-preorders-seed-data.d.ts +119 -14
  92. package/dist/seed/products-preorders-seed-data.js +154 -455
  93. package/dist/seed/products-standard-seed-data.d.ts +1 -15
  94. package/dist/seed/products-standard-seed-data.js +1355 -4128
  95. package/dist/seed/reviews-seed-data.d.ts +2 -8
  96. package/dist/seed/reviews-seed-data.js +99 -1182
  97. package/dist/seed/scammers-seed-data.d.ts +0 -15
  98. package/dist/seed/scammers-seed-data.js +36 -37
  99. package/dist/seed/sessions-seed-data.d.ts +0 -13
  100. package/dist/seed/sessions-seed-data.js +58 -335
  101. package/dist/seed/site-settings-seed-data.d.ts +0 -4
  102. package/dist/seed/site-settings-seed-data.js +61 -52
  103. package/dist/seed/store-addresses-seed-data.js +27 -151
  104. package/dist/seed/store-extensions-seed-data.d.ts +0 -7
  105. package/dist/seed/store-extensions-seed-data.js +147 -261
  106. package/dist/seed/stores-seed-data.d.ts +0 -5
  107. package/dist/seed/stores-seed-data.js +222 -184
  108. package/dist/seed/sub-listings-seed-data.d.ts +119 -0
  109. package/dist/seed/sub-listings-seed-data.js +447 -0
  110. package/dist/seed/support-tickets-seed-data.d.ts +0 -7
  111. package/dist/seed/support-tickets-seed-data.js +82 -75
  112. package/dist/seed/users-seed-data.d.ts +0 -5
  113. package/dist/seed/users-seed-data.js +279 -634
  114. package/dist/seed/wishlists-seed-data.d.ts +0 -9
  115. package/dist/seed/wishlists-seed-data.js +36 -52
  116. package/dist/seo/json-ld.js +6 -4
  117. package/dist/styles.css +8052 -3
  118. package/dist/utils/index.d.ts +1 -0
  119. package/dist/utils/index.js +1 -0
  120. package/dist/utils/search-tokens.d.ts +2 -0
  121. package/dist/utils/search-tokens.js +21 -0
  122. package/package.json +2 -2
  123. package/scripts/seed-cli.mjs +2 -2
@@ -1,86 +1,77 @@
1
- /**
2
- * S-STORE Extensions Seed Data
1
+ /*
2
+ * WHY: Seeds the 11 store-extension collections for YGO marketplace (2 stores).
3
+ * WHAT: payoutMethods, shippingConfigs, analyticsCards, analyticsAlerts, storeCategories,
4
+ * listingTemplates, moderationQueue, reports, itemRequests, storeWhatsAppConfig, storeGoogleConfig.
3
5
  *
4
- * Compact sample documents for the 11 new Tier S-STORE collections.
5
- * Used by SeedPanel ("Store" group). Full demo dataset rewrite ships
6
- * with S-STORE-11.
6
+ * EXPORTS:
7
+ * payoutMethodsSeedData, shippingConfigsSeedData, analyticsCardsSeedData,
8
+ * analyticsAlertsSeedData, storeCategoriesSeedData, listingTemplatesSeedData,
9
+ * moderationQueueSeedData, reportsSeedData, itemRequestsSeedData,
10
+ * storeWhatsAppConfigSeedData, storeGoogleConfigSeedData
11
+ *
12
+ * @tag domain:store-extensions
13
+ * @tag layer:seed
14
+ * @tag pattern:none
15
+ * @tag access:server-only
16
+ * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
17
+ * @tag sideEffects:none
7
18
  */
8
19
  const NOW = new Date();
9
- // ───── payoutMethods (6 records) ──────────────────────────────────────────
20
+ // ───── payoutMethods (4 records) ──────────────────────────────────────────
10
21
  export const payoutMethodsSeedData = [
11
22
  {
12
- id: "payout-method-pokemon-palace-upi-default",
13
- sellerId: "user-pokemon-palace-owner",
14
- storeId: "store-pokemon-palace",
23
+ id: "payout-method-kaiba-corp-upi-default",
24
+ sellerId: "user-seto-kaiba",
25
+ storeId: "store-kaiba-corp-cards",
15
26
  type: "upi",
16
27
  label: "Primary UPI",
17
- upiVpa: "pokemonpalace@upi",
28
+ upiVpa: "kaibacorp@upi",
18
29
  isDefault: true,
19
30
  isActive: true,
20
31
  },
21
32
  {
22
- id: "payout-method-pokemon-palace-bank",
23
- sellerId: "user-pokemon-palace-owner",
24
- storeId: "store-pokemon-palace",
33
+ id: "payout-method-kaiba-corp-bank",
34
+ sellerId: "user-seto-kaiba",
35
+ storeId: "store-kaiba-corp-cards",
25
36
  type: "bank",
26
37
  label: "HDFC Current Account",
27
38
  accountNumber: "50200012345678",
28
39
  ifscCode: "HDFC0001234",
29
- accountHolderName: "Pokemon Palace LLP",
40
+ accountHolderName: "Kaiba Corp Card Vault LLP",
30
41
  bankName: "HDFC Bank",
31
42
  isDefault: false,
32
43
  isActive: true,
33
44
  },
34
45
  {
35
- id: "payout-method-diecast-depot-upi",
36
- sellerId: "user-diecast-depot-owner",
37
- storeId: "store-diecast-depot",
38
- type: "upi",
39
- label: "Default UPI",
40
- upiVpa: "diecastdepot@okhdfc",
41
- isDefault: true,
42
- isActive: true,
43
- },
44
- {
45
- id: "payout-method-tokyo-toys-upi",
46
- sellerId: "user-tokyo-toys-owner",
47
- storeId: "store-tokyo-toys-india",
46
+ id: "payout-method-letitrip-official-upi",
47
+ sellerId: "user-admin-letitrip",
48
+ storeId: "store-letitrip-official",
48
49
  type: "upi",
49
- label: "Tokyo Toys UPI",
50
- upiVpa: "tokyotoys@ybl",
50
+ label: "LetItRip UPI",
51
+ upiVpa: "letitrip@upi",
51
52
  isDefault: true,
52
53
  isActive: true,
53
54
  },
54
55
  {
55
- id: "payout-method-cardgame-hub-bank",
56
- sellerId: "user-cardgame-hub-owner",
57
- storeId: "store-cardgame-hub",
56
+ id: "payout-method-letitrip-official-bank",
57
+ sellerId: "user-admin-letitrip",
58
+ storeId: "store-letitrip-official",
58
59
  type: "bank",
59
- label: "ICICI Current Account",
60
- accountNumber: "001234567890",
61
- ifscCode: "ICIC0000012",
62
- accountHolderName: "Cardgame Hub Pvt Ltd",
63
- bankName: "ICICI Bank",
64
- isDefault: true,
65
- isActive: true,
66
- },
67
- {
68
- id: "payout-method-beyblade-arena-upi",
69
- sellerId: "user-beyblade-arena-owner",
70
- storeId: "store-beyblade-arena",
71
- type: "upi",
72
- label: "Arena UPI",
73
- upiVpa: "beyarena@paytm",
74
- isDefault: true,
60
+ label: "SBI Current Account",
61
+ accountNumber: "00112233445566",
62
+ ifscCode: "SBIN0001234",
63
+ accountHolderName: "LetItRip Admin",
64
+ bankName: "State Bank of India",
65
+ isDefault: false,
75
66
  isActive: true,
76
67
  },
77
68
  ];
78
- // ───── shippingConfigs (8 records) ────────────────────────────────────────
69
+ // ───── shippingConfigs (4 records) ────────────────────────────────────────
79
70
  export const shippingConfigsSeedData = [
80
71
  {
81
- id: "ship-config-pokemon-palace-free",
82
- storeId: "store-pokemon-palace",
83
- label: "Free over Rs 999",
72
+ id: "ship-config-kaiba-corp-free",
73
+ storeId: "store-kaiba-corp-cards",
74
+ label: "Free over 999",
84
75
  method: "free",
85
76
  freeAbovePaise: 99900,
86
77
  estimatedDays: 5,
@@ -88,8 +79,8 @@ export const shippingConfigsSeedData = [
88
79
  isActive: true,
89
80
  },
90
81
  {
91
- id: "ship-config-pokemon-palace-express",
92
- storeId: "store-pokemon-palace",
82
+ id: "ship-config-kaiba-corp-express",
83
+ storeId: "store-kaiba-corp-cards",
93
84
  label: "Express (2 days)",
94
85
  method: "express",
95
86
  flatRateInPaise: 19900,
@@ -99,72 +90,33 @@ export const shippingConfigsSeedData = [
99
90
  isActive: true,
100
91
  },
101
92
  {
102
- id: "ship-config-diecast-flat",
103
- storeId: "store-diecast-depot",
104
- label: "Flat Rs 99",
105
- method: "flat",
106
- flatRateInPaise: 9900,
107
- estimatedDays: 4,
108
- isDefault: true,
109
- isActive: true,
110
- },
111
- {
112
- id: "ship-config-diecast-pickup",
113
- storeId: "store-diecast-depot",
114
- label: "Pickup (Bangalore)",
115
- method: "pickup",
116
- estimatedDays: 0,
117
- isDefault: false,
118
- isActive: true,
119
- },
120
- {
121
- id: "ship-config-tokyo-toys-weight",
122
- storeId: "store-tokyo-toys-india",
123
- label: "By weight",
124
- method: "weight",
125
- pricePerKgInPaise: 12000,
126
- estimatedDays: 6,
127
- isDefault: true,
128
- isActive: true,
129
- },
130
- {
131
- id: "ship-config-cardgame-free-1500",
132
- storeId: "store-cardgame-hub",
133
- label: "Free over Rs 1500",
93
+ id: "ship-config-letitrip-free-999",
94
+ storeId: "store-letitrip-official",
95
+ label: "Free over ₹999",
134
96
  method: "free",
135
- freeAbovePaise: 150000,
97
+ freeAbovePaise: 99900,
136
98
  estimatedDays: 5,
137
99
  isDefault: true,
138
100
  isActive: true,
139
101
  },
140
102
  {
141
- id: "ship-config-beyblade-flat",
142
- storeId: "store-beyblade-arena",
143
- label: "Flat Rs 79",
103
+ id: "ship-config-letitrip-flat",
104
+ storeId: "store-letitrip-official",
105
+ label: "Flat ₹99",
144
106
  method: "flat",
145
- flatRateInPaise: 7900,
107
+ flatRateInPaise: 9900,
146
108
  estimatedDays: 4,
147
- isDefault: true,
148
- isActive: true,
149
- },
150
- {
151
- id: "ship-config-gundam-galaxy-express",
152
- storeId: "store-gundam-galaxy",
153
- label: "Express Premium",
154
- method: "express",
155
- flatRateInPaise: 29900,
156
- estimatedDays: 3,
157
- isDefault: true,
109
+ isDefault: false,
158
110
  isActive: true,
159
111
  },
160
112
  ];
161
113
  // ───── analyticsCards (9 records) ─────────────────────────────────────────
162
114
  export const analyticsCardsSeedData = [
163
- { id: "ac-seller-revenue-30d", scope: "seller", ownerId: "user-pokemon-palace-owner", title: "Revenue · 30d", type: "metric", metric: "revenue:30d", filters: {}, position: 0, isBuiltIn: true, isVisible: true },
164
- { id: "ac-seller-orders-30d", scope: "seller", ownerId: "user-pokemon-palace-owner", title: "Orders · 30d", type: "metric", metric: "orders:30d", filters: {}, position: 1, isBuiltIn: true, isVisible: true },
165
- { id: "ac-seller-aov", scope: "seller", ownerId: "user-pokemon-palace-owner", title: "Avg Order Value", type: "metric", metric: "aov:30d", filters: {}, position: 2, isBuiltIn: true, isVisible: true },
166
- { id: "ac-seller-traffic", scope: "seller", ownerId: "user-pokemon-palace-owner", title: "Storefront Traffic", type: "line", metric: "store-views:30d", filters: {}, position: 3, isBuiltIn: true, isVisible: true },
167
- { id: "ac-seller-top-products", scope: "seller", ownerId: "user-pokemon-palace-owner", title: "Top Products", type: "table", metric: "top-products:30d", filters: {}, position: 4, isBuiltIn: true, isVisible: true },
115
+ { id: "ac-seller-revenue-30d", scope: "seller", ownerId: "user-seto-kaiba", title: "Revenue · 30d", type: "metric", metric: "revenue:30d", filters: {}, position: 0, isBuiltIn: true, isVisible: true },
116
+ { id: "ac-seller-orders-30d", scope: "seller", ownerId: "user-seto-kaiba", title: "Orders · 30d", type: "metric", metric: "orders:30d", filters: {}, position: 1, isBuiltIn: true, isVisible: true },
117
+ { id: "ac-seller-aov", scope: "seller", ownerId: "user-seto-kaiba", title: "Avg Order Value", type: "metric", metric: "aov:30d", filters: {}, position: 2, isBuiltIn: true, isVisible: true },
118
+ { id: "ac-seller-traffic", scope: "seller", ownerId: "user-seto-kaiba", title: "Storefront Traffic", type: "line", metric: "store-views:30d", filters: {}, position: 3, isBuiltIn: true, isVisible: true },
119
+ { id: "ac-seller-top-products", scope: "seller", ownerId: "user-seto-kaiba", title: "Top Products", type: "table", metric: "top-products:30d", filters: {}, position: 4, isBuiltIn: true, isVisible: true },
168
120
  { id: "ac-admin-platform-gmv", scope: "admin", ownerId: "user-admin-letitrip", title: "Platform GMV", type: "metric", metric: "platform-gmv:30d", filters: {}, position: 0, isBuiltIn: true, isVisible: true },
169
121
  { id: "ac-admin-active-stores", scope: "admin", ownerId: "user-admin-letitrip", title: "Active Stores", type: "metric", metric: "active-stores", filters: {}, position: 1, isBuiltIn: true, isVisible: true },
170
122
  { id: "ac-admin-pending-mod", scope: "admin", ownerId: "user-admin-letitrip", title: "Pending Moderation", type: "metric", metric: "moderation-pending", filters: {}, position: 2, isBuiltIn: true, isVisible: true },
@@ -172,39 +124,37 @@ export const analyticsCardsSeedData = [
172
124
  ];
173
125
  // ───── analyticsAlerts (4 records) ────────────────────────────────────────
174
126
  export const analyticsAlertsSeedData = [
175
- { id: "alert-low-stock-pokemon", scope: "seller", ownerId: "user-pokemon-palace-owner", label: "Low stock", metric: "min-stock", operator: "<", threshold: 5, windowHours: 24, isActive: true, notifyChannels: ["in-app", "email"] },
176
- { id: "alert-no-sales-pokemon", scope: "seller", ownerId: "user-pokemon-palace-owner", label: "Zero sales 48h", metric: "orders-window", operator: "==", threshold: 0, windowHours: 48, isActive: true, notifyChannels: ["in-app"] },
127
+ { id: "alert-low-stock-kaiba", scope: "seller", ownerId: "user-seto-kaiba", label: "Low stock", metric: "min-stock", operator: "<", threshold: 5, windowHours: 24, isActive: true, notifyChannels: ["in-app", "email"] },
128
+ { id: "alert-no-sales-kaiba", scope: "seller", ownerId: "user-seto-kaiba", label: "Zero sales 48h", metric: "orders-window", operator: "==", threshold: 0, windowHours: 48, isActive: true, notifyChannels: ["in-app"] },
177
129
  { id: "alert-platform-error-rate", scope: "admin", ownerId: "user-admin-letitrip", label: "API error rate > 5%", metric: "api-error-rate", operator: ">", threshold: 0.05, windowHours: 1, isActive: true, notifyChannels: ["in-app", "email", "whatsapp"] },
178
130
  { id: "alert-fraud-surge", scope: "admin", ownerId: "user-admin-letitrip", label: "Fraud reports surge", metric: "reports-1h", operator: ">", threshold: 10, windowHours: 1, isActive: true, notifyChannels: ["in-app", "email"] },
179
131
  ];
180
- // ───── storeCategories (6 records) ────────────────────────────────────────
132
+ // ───── storeCategories (4 records) ────────────────────────────────────────
181
133
  export const storeCategoriesSeedData = [
182
- { id: "scat-pokemon-1st-edition", storeId: "store-pokemon-palace", label: "1st Edition Holos", slug: "1st-edition-holos", displayOrder: 0, productIds: [], isActive: true, description: "Vintage 1st-edition Pokémon holos.", coverImageUrl: "https://picsum.photos/seed/scat-pokemon-1e/640/360" },
183
- { id: "scat-pokemon-japanese", storeId: "store-pokemon-palace", label: "Japanese Imports", slug: "japanese-imports", displayOrder: 1, productIds: [], isActive: true, coverImageUrl: "https://picsum.photos/seed/scat-pokemon-jp/640/360" },
184
- { id: "scat-diecast-redline", storeId: "store-diecast-depot", label: "Hot Wheels Redline", slug: "hot-wheels-redline", displayOrder: 0, productIds: [], isActive: true, coverImageUrl: "https://picsum.photos/seed/scat-redline/640/360" },
185
- { id: "scat-diecast-tomica", storeId: "store-diecast-depot", label: "Tomica Premium", slug: "tomica-premium", displayOrder: 1, productIds: [], isActive: true, coverImageUrl: "https://picsum.photos/seed/scat-tomica/640/360" },
186
- { id: "scat-beyblade-burst", storeId: "store-beyblade-arena", label: "Burst Series", slug: "burst-series", displayOrder: 0, productIds: [], isActive: true, coverImageUrl: "https://picsum.photos/seed/scat-bey/640/360" },
187
- { id: "scat-gundam-rg", storeId: "store-gundam-galaxy", label: "Real Grade Kits", slug: "real-grade", displayOrder: 0, productIds: [], isActive: true, coverImageUrl: "https://picsum.photos/seed/scat-gundam/640/360" },
134
+ { id: "scat-kaiba-lob-singles", storeId: "store-kaiba-corp-cards", label: "LOB Singles", slug: "lob-singles", displayOrder: 0, productIds: [], isActive: true, description: "Legend of Blue Eyes White Dragon singles.", coverImageUrl: "https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg" },
135
+ { id: "scat-kaiba-graded-slabs", storeId: "store-kaiba-corp-cards", label: "Graded Slabs", slug: "graded-slabs", displayOrder: 1, productIds: [], isActive: true, description: "PSA, BGS, and CGC graded Yu-Gi-Oh! slabs.", coverImageUrl: "https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg" },
136
+ { id: "scat-letitrip-sealed", storeId: "store-letitrip-official", label: "Sealed Products", slug: "sealed-products", displayOrder: 0, productIds: [], isActive: true, description: "Factory-sealed booster boxes, tins, and structure decks.", coverImageUrl: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg" },
137
+ { id: "scat-letitrip-accessories", storeId: "store-letitrip-official", label: "Accessories", slug: "accessories", displayOrder: 1, productIds: [], isActive: true, description: "Deck boxes, sleeves, playmats, and binders.", coverImageUrl: "https://images.ygoprodeck.com/images/cards/cropped/38033121.jpg" },
188
138
  ];
189
- // ───── listingTemplates (5 records) ───────────────────────────────────────
139
+ // ───── listingTemplates (4 records) ───────────────────────────────────────
190
140
  export const listingTemplatesSeedData = [
191
141
  {
192
- id: "tmpl-standard-pokemon-card",
193
- storeId: "store-pokemon-palace",
194
- ownerId: "user-pokemon-palace-owner",
195
- name: "Pokémon Card · Standard",
196
- description: "Default fields for a graded Pokémon card listing.",
142
+ id: "tmpl-standard-ygo-card",
143
+ storeId: "store-kaiba-corp-cards",
144
+ ownerId: "user-seto-kaiba",
145
+ name: "YGO Card · Standard",
146
+ description: "Default fields for a graded Yu-Gi-Oh! card listing.",
197
147
  listingType: "standard",
198
- defaults: { condition: "mint", currency: "INR", tags: ["pokemon", "tcg"] },
148
+ defaults: { condition: "mint", currency: "INR", tags: ["yugioh", "tcg"] },
199
149
  isShared: true,
200
150
  isActive: true,
201
151
  usageCount: 14,
202
152
  },
203
153
  {
204
- id: "tmpl-auction-vintage-pokemon",
205
- storeId: "store-pokemon-palace",
206
- ownerId: "user-pokemon-palace-owner",
207
- name: "Vintage Pokémon Auction",
154
+ id: "tmpl-auction-vintage-ygo",
155
+ storeId: "store-kaiba-corp-cards",
156
+ ownerId: "user-seto-kaiba",
157
+ name: "Vintage YGO Auction",
208
158
  listingType: "auction",
209
159
  defaults: { reserveMultiplier: 1.2, auctionDays: 7, currency: "INR" },
210
160
  isShared: false,
@@ -212,10 +162,10 @@ export const listingTemplatesSeedData = [
212
162
  usageCount: 5,
213
163
  },
214
164
  {
215
- id: "tmpl-preorder-bandai",
216
- storeId: "store-tokyo-toys-india",
217
- ownerId: "user-tokyo-toys-owner",
218
- name: "Bandai Pre-Order",
165
+ id: "tmpl-preorder-konami",
166
+ storeId: "store-letitrip-official",
167
+ ownerId: "user-admin-letitrip",
168
+ name: "Konami Pre-Order",
219
169
  listingType: "pre-order",
220
170
  defaults: { releaseLeadDays: 90, depositPercent: 30 },
221
171
  isShared: false,
@@ -223,65 +173,46 @@ export const listingTemplatesSeedData = [
223
173
  usageCount: 9,
224
174
  },
225
175
  {
226
- id: "tmpl-bundle-starter",
227
- storeId: "store-diecast-depot",
228
- ownerId: "user-diecast-depot-owner",
229
- name: "Starter Bundle",
176
+ id: "tmpl-bundle-ygo-set",
177
+ storeId: "store-kaiba-corp-cards",
178
+ ownerId: "user-seto-kaiba",
179
+ name: "YGO Set Bundle",
230
180
  listingType: "bundle",
231
181
  defaults: { minItems: 3, maxItems: 10, autoDiscountPercent: 12 },
232
182
  isShared: true,
233
183
  isActive: true,
234
184
  usageCount: 2,
235
185
  },
236
- {
237
- id: "tmpl-digital-code-steam",
238
- storeId: "store-cardgame-hub",
239
- ownerId: "user-cardgame-hub-owner",
240
- name: "Steam Key Listing",
241
- listingType: "digital-code",
242
- defaults: { vendor: "steam", region: "in" },
243
- isShared: false,
244
- isActive: true,
245
- usageCount: 1,
246
- },
247
186
  ];
248
- // ───── moderationQueue (5 records) ────────────────────────────────────────
187
+ // ───── moderationQueue (6 records) ────────────────────────────────────────
249
188
  export const moderationQueueSeedData = [
250
- { id: "mod-video-pokemon-charizard", mediaType: "video", mediaUrl: "/media/product-video-charizard-psa9-20260518.mp4", entityType: "product", entityId: "product-pokemon-charizard-psa9", ownerId: "user-pokemon-palace-owner", storeId: "store-pokemon-palace", status: "pending", submittedAt: new Date(NOW.getTime() - 3600000) },
251
- { id: "mod-video-beyblade-burst", mediaType: "video", mediaUrl: "/media/product-video-beyblade-burst-20260518.mp4", entityType: "product", entityId: "product-beyblade-burst-evolution", ownerId: "user-beyblade-arena-owner", storeId: "store-beyblade-arena", status: "pending", submittedAt: new Date(NOW.getTime() - 7200000) },
252
- { id: "mod-review-hot-wheels", mediaType: "rich-text", entityType: "review", entityId: "review-hot-wheels-redline-1", ownerId: "user-ravi-kumar", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 86400000), submittedAt: new Date(NOW.getTime() - 90000000) },
253
- { id: "mod-image-diecast-banner", mediaType: "image", mediaUrl: "/media/store-banner-diecast-depot-20260518.jpg", entityType: "storefront", entityId: "store-diecast-depot", ownerId: "user-diecast-depot-owner", storeId: "store-diecast-depot", status: "auto-approved", submittedAt: new Date(NOW.getTime() - 172800000) },
254
- { id: "mod-blog-grading-guide", mediaType: "rich-text", entityType: "blog", entityId: "blog-how-to-grade-pokemon-cards", ownerId: "user-admin-letitrip", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 432000000), submittedAt: new Date(NOW.getTime() - 438000000) },
255
- { id: "mod-video-tomica-unbox", mediaType: "video", mediaUrl: "/media/product-video-tomica-tlv-bmw-20260518.mp4", entityType: "product", entityId: "product-tomica-tlv-bmw-2002", ownerId: "user-diecast-depot-owner", storeId: "store-diecast-depot", status: "pending", submittedAt: new Date(NOW.getTime() - 1800000) },
256
- { id: "mod-video-rg-build-time", mediaType: "video", mediaUrl: "/media/product-video-rg-nu-gundam-20260518.mp4", entityType: "product", entityId: "product-rg-nu-gundam-real-grade", ownerId: "user-gundam-galaxy-owner", storeId: "store-gundam-galaxy", status: "pending", submittedAt: new Date(NOW.getTime() - 5400000) },
257
- { id: "mod-event-cover", mediaType: "image", mediaUrl: "/media/event-cover-summer-tcg-meetup-20260518.jpg", entityType: "event", entityId: "event-summer-tcg-meetup", ownerId: "user-admin-letitrip", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 86400000), submittedAt: new Date(NOW.getTime() - 90000000) },
258
- { id: "mod-storefront-bey-banner", mediaType: "image", mediaUrl: "/media/store-banner-beyblade-arena-20260518.jpg", entityType: "storefront", entityId: "store-beyblade-arena", ownerId: "user-beyblade-arena-owner", storeId: "store-beyblade-arena", status: "rejected", reason: "Banner has off-brand watermark.", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 172800000), submittedAt: new Date(NOW.getTime() - 180000000) },
259
- { id: "mod-review-bootleg-flag", mediaType: "rich-text", entityType: "review", entityId: "review-bootleg-flag", ownerId: "user-anonymous-2", status: "pending", submittedAt: new Date(NOW.getTime() - 600000) },
260
- { id: "mod-blog-collectibles-trends", mediaType: "rich-text", entityType: "blog", entityId: "blog-2026-collectibles-trends", ownerId: "user-admin-letitrip", status: "auto-approved", submittedAt: new Date(NOW.getTime() - 14400000) },
189
+ { id: "mod-video-blue-eyes-auction", mediaType: "video", mediaUrl: "/media/product-video-blue-eyes-lob-psa10-20260518.mp4", entityType: "product", entityId: "auction-blue-eyes-lob-1st-psa10", ownerId: "user-seto-kaiba", storeId: "store-kaiba-corp-cards", status: "pending", submittedAt: new Date(NOW.getTime() - 3600000) },
190
+ { id: "mod-video-dark-magician-unbox", mediaType: "video", mediaUrl: "/media/product-video-dark-magician-lob-20260518.mp4", entityType: "product", entityId: "product-dark-magician-lob-nm", ownerId: "user-seto-kaiba", storeId: "store-kaiba-corp-cards", status: "pending", submittedAt: new Date(NOW.getTime() - 7200000) },
191
+ { id: "mod-review-exodia", mediaType: "rich-text", entityType: "review", entityId: "review-exodia-head-yugi-20260510", ownerId: "user-yugi-muto", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 86400000), submittedAt: new Date(NOW.getTime() - 90000000) },
192
+ { id: "mod-image-kaiba-banner", mediaType: "image", mediaUrl: "/media/store-banner-kaiba-corp-cards-20260518.jpg", entityType: "storefront", entityId: "store-kaiba-corp-cards", ownerId: "user-seto-kaiba", storeId: "store-kaiba-corp-cards", status: "auto-approved", submittedAt: new Date(NOW.getTime() - 172800000) },
193
+ { id: "mod-blog-grading-guide", mediaType: "rich-text", entityType: "blog", entityId: "blog-how-to-grade-yugioh-cards", ownerId: "user-admin-letitrip", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 432000000), submittedAt: new Date(NOW.getTime() - 438000000) },
194
+ { id: "mod-event-cover-tournament", mediaType: "image", mediaUrl: "/media/event-cover-ygo-duel-championship-20260518.jpg", entityType: "event", entityId: "event-ygo-duel-championship-june-2026", ownerId: "user-admin-letitrip", status: "approved", reviewerId: "user-admin-letitrip", reviewedAt: new Date(NOW.getTime() - 86400000), submittedAt: new Date(NOW.getTime() - 90000000) },
261
195
  ];
262
- // ───── reports (4 records) ────────────────────────────────────────────────
196
+ // ───── reports (5 records) ────────────────────────────────────────────────
263
197
  export const reportsSeedData = [
264
- { id: "report-counterfeit-charizard", entityType: "product", entityId: "product-suspect-charizard", reporterId: "user-ravi-kumar", reason: "counterfeit", detail: "Card edges look reprinted; texture inconsistent.", evidenceUrls: [], status: "pending" },
265
- { id: "report-scam-store-fly-by-night", entityType: "store", entityId: "store-suspect-fly-by-night", reporterId: "user-priya-sharma", reason: "scam", detail: "Reports of orders not shipped after 4 weeks.", evidenceUrls: [], status: "under-review", assignedTo: "user-admin-letitrip" },
266
- { id: "report-spam-review-bey", entityType: "review", entityId: "review-bey-spammy", reporterId: "user-arjun-rao", reason: "spam", detail: "Promotional link in review.", evidenceUrls: [], status: "actioned", resolution: "Review hidden.", resolvedAt: new Date(NOW.getTime() - 86400000) },
267
- { id: "report-harassment-comment", entityType: "comment", entityId: "comment-bad-actor-1", reporterId: "user-mohsin-c", reason: "harassment", detail: "Targeted abuse in blog comments.", evidenceUrls: [], status: "dismissed", resolvedAt: new Date(NOW.getTime() - 172800000) },
268
- { id: "report-prohibited-replica-listing", entityType: "product", entityId: "product-suspect-replica-rolex", reporterId: "user-mohsin-c", reason: "prohibited", detail: "Replica branded merchandise.", evidenceUrls: [], status: "pending" },
269
- { id: "report-ip-violation-fan-art-print", entityType: "product", entityId: "product-bootleg-pokemon-print", reporterId: "user-priya-sharma", reason: "ip-violation", detail: "Unauthorised Pokémon art prints.", evidenceUrls: [], status: "under-review", assignedTo: "user-admin-letitrip" },
270
- { id: "report-spam-listing-mass-post", entityType: "store", entityId: "store-spammer-mass", reporterId: "user-arjun-rao", reason: "spam", detail: "Same product listed 50+ times.", evidenceUrls: [], status: "pending" },
271
- { id: "report-inappropriate-blog", entityType: "blog", entityId: "blog-controversial-post", reporterId: "user-anonymous-1", reason: "inappropriate", detail: "Off-topic political content.", evidenceUrls: [], status: "dismissed", resolvedAt: new Date(NOW.getTime() - 259200000) },
198
+ { id: "report-counterfeit-blue-eyes", entityType: "product", entityId: "product-suspect-blue-eyes", reporterId: "user-yugi-muto", reason: "counterfeit", detail: "Card edges look reprinted; eye of Anubis hologram missing.", evidenceUrls: [], status: "pending" },
199
+ { id: "report-scam-store-fly-by-night", entityType: "store", entityId: "store-suspect-fly-by-night", reporterId: "user-seto-kaiba", reason: "scam", detail: "Reports of orders not shipped after 4 weeks.", evidenceUrls: [], status: "under-review", assignedTo: "user-admin-letitrip" },
200
+ { id: "report-spam-review-ygo", entityType: "review", entityId: "review-ygo-spammy", reporterId: "user-yugi-muto", reason: "spam", detail: "Promotional link in review.", evidenceUrls: [], status: "actioned", resolution: "Review hidden.", resolvedAt: new Date(NOW.getTime() - 86400000) },
201
+ { id: "report-prohibited-replica-listing", entityType: "product", entityId: "product-suspect-replica-slab", reporterId: "user-admin-letitrip", reason: "prohibited", detail: "Fake PSA slab with forged cert number.", evidenceUrls: [], status: "pending" },
202
+ { id: "report-ip-violation-fan-art-print", entityType: "product", entityId: "product-bootleg-ygo-print", reporterId: "user-seto-kaiba", reason: "ip-violation", detail: "Unauthorised Yu-Gi-Oh! art prints — not licensed by Konami.", evidenceUrls: [], status: "under-review", assignedTo: "user-admin-letitrip" },
272
203
  ];
273
- // ───── itemRequests (3 records) ───────────────────────────────────────────
204
+ // ───── itemRequests (4 records) ───────────────────────────────────────────
274
205
  export const itemRequestsSeedData = [
275
206
  {
276
- id: "irq-charizard-shadowless",
277
- opUserId: "user-ravi-kumar",
278
- opDisplayName: "Ravi Kumar",
279
- title: "Looking for Shadowless Charizard PSA 8+",
280
- description: "Hunting a Shadowless Base Set Charizard, grade 8 or above. Budget Rs 2,50,000.",
207
+ id: "irq-blue-eyes-1st-ed-psa8",
208
+ opUserId: "user-yugi-muto",
209
+ opDisplayName: "Yugi Muto",
210
+ title: "Looking for Blue-Eyes White Dragon LOB 1st Ed PSA 8+",
211
+ description: "Hunting a LOB 1st Edition Blue-Eyes, grade 8 or above. Budget 2,50,000.",
281
212
  category: "trading-cards",
282
- brand: "pokemon",
213
+ brand: "konami",
283
214
  maxBudgetInPaise: 25000000,
284
- imageUrls: ["https://picsum.photos/seed/irq-1/640/480"],
215
+ imageUrls: ["https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg"],
285
216
  status: "open",
286
217
  replyCount: 2,
287
218
  replies: [],
@@ -289,15 +220,15 @@ export const itemRequestsSeedData = [
289
220
  approvedBy: "user-admin-letitrip",
290
221
  },
291
222
  {
292
- id: "irq-tomica-redline-bmw",
293
- opUserId: "user-arjun-rao",
294
- opDisplayName: "Arjun Rao",
295
- title: "Tomica Limited Vintage BMW 2002",
296
- description: "Mint condition only. Box must be intact.",
297
- category: "diecast-vehicles",
298
- brand: "tomica",
299
- maxBudgetInPaise: 850000,
300
- imageUrls: ["https://picsum.photos/seed/irq-2/640/480"],
223
+ id: "irq-exodia-complete-set",
224
+ opUserId: "user-yugi-muto",
225
+ opDisplayName: "Yugi Muto",
226
+ title: "Complete Exodia Set LOB 1st Edition",
227
+ description: "Need all 5 pieces in NM+ condition. Willing to pay premium for matching set.",
228
+ category: "trading-cards",
229
+ brand: "konami",
230
+ maxBudgetInPaise: 15000000,
231
+ imageUrls: ["https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"],
301
232
  status: "open",
302
233
  replyCount: 0,
303
234
  replies: [],
@@ -305,44 +236,15 @@ export const itemRequestsSeedData = [
305
236
  approvedBy: "user-admin-letitrip",
306
237
  },
307
238
  {
308
- id: "irq-pending-funko-grail",
309
- opUserId: "user-priya-sharma",
310
- opDisplayName: "Priya Sharma",
311
- title: "Funko Pop SDCC Exclusive Glow Batman",
312
- description: "Searching for the 2013 SDCC Glow-in-Dark Batman exclusive.",
313
- category: "action-figures",
314
- brand: "funko",
315
- imageUrls: ["https://picsum.photos/seed/irq-3/640/480"],
316
- status: "pending-approval",
317
- replyCount: 0,
318
- replies: [],
319
- },
320
- {
321
- id: "irq-bey-spriggan-bb-105",
322
- opUserId: "user-arjun-rao",
323
- opDisplayName: "Arjun Rao",
324
- title: "Beyblade Spriggan BB-105 boxed",
325
- description: "Need original-box Spriggan from the Metal Fight series. Mint launcher.",
326
- category: "spinning-tops",
327
- brand: "takara-tomy",
328
- maxBudgetInPaise: 450000,
329
- imageUrls: ["https://picsum.photos/seed/irq-4/640/480"],
330
- status: "open",
331
- replyCount: 1,
332
- replies: [],
333
- approvedAt: new Date(NOW.getTime() - 28800000),
334
- approvedBy: "user-admin-letitrip",
335
- },
336
- {
337
- id: "irq-rg-nu-gundam",
338
- opUserId: "user-mohsin-c",
339
- opDisplayName: "Mohsin C",
340
- title: "RG 1/144 Nu Gundam mint sealed",
341
- description: "Sealed runner. Will pay shipping insurance.",
342
- category: "model-kits",
343
- brand: "bandai",
344
- maxBudgetInPaise: 320000,
345
- imageUrls: ["https://picsum.photos/seed/irq-5/640/480"],
239
+ id: "irq-lob-sealed-booster",
240
+ opUserId: "user-admin-letitrip",
241
+ opDisplayName: "LetItRip Admin",
242
+ title: "LOB Sealed Booster Pack any printing",
243
+ description: "Sealed only. 1st Ed or Unlimited OK. For platform demo.",
244
+ category: "trading-cards",
245
+ brand: "konami",
246
+ maxBudgetInPaise: 1500000,
247
+ imageUrls: ["https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg"],
346
248
  status: "fulfilled",
347
249
  replyCount: 4,
348
250
  replies: [],
@@ -351,29 +253,13 @@ export const itemRequestsSeedData = [
351
253
  closedAt: new Date(NOW.getTime() - 2 * 86400000),
352
254
  },
353
255
  {
354
- id: "irq-tcg-base-set-booster",
355
- opUserId: "user-ravi-kumar",
356
- opDisplayName: "Ravi Kumar",
357
- title: "Pokémon Base Set booster pack — unopened",
358
- description: "Any printing. Western or Japanese OK. Sealed only.",
256
+ id: "irq-rejected-replica-slab",
257
+ opUserId: "user-yugi-muto",
258
+ opDisplayName: "Yugi Muto",
259
+ title: "Looking for cheap PSA slabs",
260
+ description: "Cheapest possible graded cards, any condition.",
359
261
  category: "trading-cards",
360
- brand: "pokemon",
361
- maxBudgetInPaise: 1500000,
362
- imageUrls: ["https://picsum.photos/seed/irq-6/640/480"],
363
- status: "open",
364
- replyCount: 0,
365
- replies: [],
366
- approvedAt: new Date(NOW.getTime() - 14400000),
367
- approvedBy: "user-admin-letitrip",
368
- },
369
- {
370
- id: "irq-rejected-replica-watch",
371
- opUserId: "user-anonymous-flagged",
372
- opDisplayName: "Anonymous",
373
- title: "Replica luxury watches",
374
- description: "Looking for replica watches at discount.",
375
- category: "other",
376
- imageUrls: ["https://picsum.photos/seed/irq-7/640/480"],
262
+ imageUrls: [],
377
263
  status: "rejected",
378
264
  replyCount: 0,
379
265
  replies: [],
@@ -382,20 +268,20 @@ export const itemRequestsSeedData = [
382
268
  // ───── storeWhatsAppConfig (2 records) ────────────────────────────────────
383
269
  export const storeWhatsAppConfigSeedData = [
384
270
  {
385
- id: "whatsapp-pokemon-palace",
386
- storeId: "store-pokemon-palace",
271
+ id: "whatsapp-kaiba-corp",
272
+ storeId: "store-kaiba-corp-cards",
387
273
  isConnected: true,
388
274
  isPaid: true,
389
- phoneNumber: "+919876543210",
390
- businessProfileName: "Pokémon Palace",
391
- catalogUrl: "https://wa.me/c/919876543210",
392
- autoReply: "Hi! Thanks for messaging Pokémon Palace. We respond within 2 hours.",
393
- welcomeMessage: "Welcome to Pokémon Palace! Browse our catalog above.",
275
+ phoneNumber: "+919876501001",
276
+ businessProfileName: "Kaiba Corp Card Vault",
277
+ catalogUrl: "https://wa.me/c/919876501001",
278
+ autoReply: "Hi! Thanks for messaging Kaiba Corp Card Vault. We respond within 2 hours.",
279
+ welcomeMessage: "Welcome to Kaiba Corp Card Vault! Browse our YGO catalog above.",
394
280
  onboardingStatus: "approved",
395
281
  },
396
282
  {
397
- id: "whatsapp-tokyo-toys",
398
- storeId: "store-tokyo-toys-india",
283
+ id: "whatsapp-letitrip-official",
284
+ storeId: "store-letitrip-official",
399
285
  isConnected: false,
400
286
  isPaid: false,
401
287
  onboardingStatus: "pending",
@@ -404,18 +290,18 @@ export const storeWhatsAppConfigSeedData = [
404
290
  // ───── storeGoogleConfig (2 records) ──────────────────────────────────────
405
291
  export const storeGoogleConfigSeedData = [
406
292
  {
407
- id: "google-pokemon-palace",
408
- storeId: "store-pokemon-palace",
293
+ id: "google-kaiba-corp",
294
+ storeId: "store-kaiba-corp-cards",
409
295
  isConnected: true,
410
- placeId: "ChIJpokemonpalace12345",
411
- businessName: "Pokémon Palace",
412
- averageRating: 4.7,
413
- totalReviews: 124,
296
+ placeId: "ChIJkaibacorpcards12345",
297
+ businessName: "Kaiba Corp Card Vault",
298
+ averageRating: 4.8,
299
+ totalReviews: 89,
414
300
  lastSyncedAt: new Date(NOW.getTime() - 3600000),
415
301
  },
416
302
  {
417
- id: "google-diecast-depot",
418
- storeId: "store-diecast-depot",
303
+ id: "google-letitrip-official",
304
+ storeId: "store-letitrip-official",
419
305
  isConnected: false,
420
306
  },
421
307
  ];
@@ -1,7 +1,2 @@
1
- /**
2
- * Stores Seed Data — Collectibles Marketplace
3
- * 5 stores: 1 admin/official store + 4 seller stores covering the 5 collectibles verticals.
4
- * id === storeSlug convention enforced throughout.
5
- */
6
1
  import type { StoreDocument } from "../features/stores/schemas";
7
2
  export declare const storesSeedData: Partial<StoreDocument>[];