@mohasinac/appkit 2.7.53 → 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,29 +1,36 @@
1
- /**
2
- * Homepage Sections Seed Data LetItRip Collectibles Platform
3
- * All 19 section types seeded. section- prefix, id === slug.
4
- * Order reflects the recommended homepage layout.
1
+ /*
2
+ * WHY: Seeds all homepage sections for LetItRip collectibles marketplace — defines the homepage layout and content.
3
+ * WHAT: 24 sections covering welcome, carousel, stats, trust, categories, brands, products, auctions, pre-orders, banner, features, reviews, stores, events, blog, whatsapp, faq, newsletter, social, bundles, prize-draws, brand-filtered, event-raffles.
4
+ *
5
+ * EXPORTS:
6
+ * homepageSectionsSeedData — Array of Partial<HomepageSectionDocument> for seed runner
7
+ *
8
+ * @tag domain:homepage
9
+ * @tag layer:seed
10
+ * @tag pattern:none
11
+ * @tag access:server-only
12
+ * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag sideEffects:none
5
14
  */
6
15
  const NOW = new Date();
7
16
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
8
17
  export const homepageSectionsSeedData = [
9
- // ── 1. welcome ────────────────────────────────────────────────────────────
10
18
  {
11
19
  id: "section-welcome-hero",
12
20
  type: "welcome",
13
21
  order: 1,
14
22
  enabled: true,
15
23
  config: {
16
- h1: "India's #1 Collectibles Marketplace",
17
- subtitle: "Buy, Sell & Auction with Verified Sellers",
18
- description: "Discover Pokémon TCG cards, Hot Wheels diecast, Beyblade X tops, anime figures, and Gunpla kits from verified sellers across India. Secure payments, escrow protection, authentic products.",
24
+ h1: "India's Largest Collectibles Marketplace",
25
+ subtitle: "Trading Cards · Action Figures · Diecast · Beyblades · Model Kits · Vintage Rare",
26
+ description: "Buy, sell, and auction collectibles from verified sellers across India. Pokémon, Yu-Gi-Oh!, Hot Wheels, Gundam, Beyblade, Funko Pop, and thousands more all with secure escrow payments and authenticity guarantees.",
19
27
  showCTA: true,
20
28
  ctaText: "Start Shopping",
21
29
  ctaLink: "/products",
22
30
  },
23
31
  createdAt: daysAgo(90),
24
- updatedAt: daysAgo(10),
32
+ updatedAt: daysAgo(2),
25
33
  },
26
- // ── 2. carousel ──────────────────────────────────────────────────────────
27
34
  {
28
35
  id: "section-hero-carousel",
29
36
  type: "carousel",
@@ -33,7 +40,6 @@ export const homepageSectionsSeedData = [
33
40
  createdAt: daysAgo(90),
34
41
  updatedAt: daysAgo(5),
35
42
  },
36
- // ── 3. stats ─────────────────────────────────────────────────────────────
37
43
  {
38
44
  id: "section-platform-stats",
39
45
  type: "stats",
@@ -42,16 +48,15 @@ export const homepageSectionsSeedData = [
42
48
  config: {
43
49
  title: "LetItRip by the Numbers",
44
50
  stats: [
45
- { key: "products", label: "Listings", value: "31", source: "live", metric: "total_listings", suffix: "+" },
51
+ { key: "products", label: "Listings", value: "200", source: "live", metric: "total_listings", suffix: "+" },
46
52
  { key: "sellers", label: "Verified Sellers", value: "8", source: "live", metric: "verified_sellers", suffix: "+" },
47
- { key: "buyers", label: "Happy Buyers", value: "10", source: "live", metric: "total_buyers", suffix: "+" },
48
- { key: "rating", label: "Platform Rating", value: "4.7★", source: "live", metric: "platform_rating" },
53
+ { key: "reviews", label: "Collector Reviews", value: "35", source: "live", metric: "total_reviews", suffix: "+" },
54
+ { key: "orders", label: "Orders Completed", value: "50", source: "live", metric: "total_orders", suffix: "+" },
49
55
  ],
50
56
  },
51
57
  createdAt: daysAgo(90),
52
58
  updatedAt: daysAgo(15),
53
59
  },
54
- // ── 4. trust-indicators ──────────────────────────────────────────────────
55
60
  {
56
61
  id: "section-trust-indicators",
57
62
  type: "trust-indicators",
@@ -60,36 +65,15 @@ export const homepageSectionsSeedData = [
60
65
  config: {
61
66
  title: "Why Collectors Trust LetItRip",
62
67
  indicators: [
63
- {
64
- id: "trust-verified",
65
- icon: "shield-check",
66
- title: "Verified Sellers",
67
- description: "Every seller is manually verified. Listings reviewed for authenticity before going live.",
68
- },
69
- {
70
- id: "trust-escrow",
71
- icon: "lock",
72
- title: "Escrow Payment",
73
- description: "Payment held in escrow and released only after you confirm delivery.",
74
- },
75
- {
76
- id: "trust-returns",
77
- icon: "arrow-path",
78
- title: "Easy Returns",
79
- description: "Seller return policies cover all product types. Platform mediates disputes.",
80
- },
81
- {
82
- id: "trust-authentic",
83
- icon: "badge-check",
84
- title: "Authenticity Guarantee",
85
- description: "Counterfeit items: full refund + seller suspension. Zero tolerance policy.",
86
- },
68
+ { id: "trust-verified", icon: "shield-check", title: "Verified Sellers", description: "Every seller is manually verified. Listings reviewed for authenticity." },
69
+ { id: "trust-escrow", icon: "lock", title: "Escrow Payment", description: "Payment held in escrow until you confirm delivery. Zero risk." },
70
+ { id: "trust-returns", icon: "arrow-path", title: "Easy Returns", description: "Seller return policies cover all product types. Platform mediates disputes." },
71
+ { id: "trust-authentic", icon: "badge-check", title: "Authenticity Guarantee", description: "Counterfeit items: full refund + seller suspension. Zero tolerance." },
87
72
  ],
88
73
  },
89
74
  createdAt: daysAgo(90),
90
75
  updatedAt: daysAgo(12),
91
76
  },
92
- // ── 5. categories ────────────────────────────────────────────────────────
93
77
  {
94
78
  id: "section-collectibles-categories",
95
79
  type: "categories",
@@ -102,9 +86,8 @@ export const homepageSectionsSeedData = [
102
86
  scrollInterval: 4000,
103
87
  },
104
88
  createdAt: daysAgo(90),
105
- updatedAt: daysAgo(8),
89
+ updatedAt: daysAgo(2),
106
90
  },
107
- // ── 6. brands ────────────────────────────────────────────────────────────
108
91
  {
109
92
  id: "section-top-brands",
110
93
  type: "brands",
@@ -112,15 +95,14 @@ export const homepageSectionsSeedData = [
112
95
  enabled: true,
113
96
  config: {
114
97
  title: "Top Collectibles Brands",
115
- subtitle: "Authentic products from the world's leading collectibles manufacturers",
98
+ subtitle: "Bandai, Hasbro, Takara-Tomy, Mattel, Konami, Funko, Good Smile, and more",
116
99
  maxBrands: 13,
117
100
  autoScroll: true,
118
101
  scrollInterval: 3000,
119
102
  },
120
103
  createdAt: daysAgo(90),
121
- updatedAt: daysAgo(6),
104
+ updatedAt: daysAgo(2),
122
105
  },
123
- // ── 7. products — featured ───────────────────────────────────────────────
124
106
  {
125
107
  id: "section-featured-products",
126
108
  type: "products",
@@ -128,18 +110,17 @@ export const homepageSectionsSeedData = [
128
110
  enabled: true,
129
111
  config: {
130
112
  title: "Featured Collectibles",
131
- subtitle: "Hand-picked by our team — fresh stock, verified authentic",
113
+ subtitle: "Hand-picked by our team — rare cards, exclusive figures, vintage finds",
132
114
  maxProducts: 18,
133
115
  rows: 2,
134
- itemsPerRow: 3,
135
- mobileItemsPerRow: 1,
116
+ itemsPerRow: 4,
117
+ mobileItemsPerRow: 2,
136
118
  autoScroll: true,
137
119
  scrollInterval: 5000,
138
120
  },
139
121
  createdAt: daysAgo(90),
140
- updatedAt: daysAgo(4),
122
+ updatedAt: daysAgo(2),
141
123
  },
142
- // ── 8. auctions ──────────────────────────────────────────────────────────
143
124
  {
144
125
  id: "section-live-auctions",
145
126
  type: "auctions",
@@ -156,9 +137,8 @@ export const homepageSectionsSeedData = [
156
137
  scrollInterval: 5000,
157
138
  },
158
139
  createdAt: daysAgo(90),
159
- updatedAt: daysAgo(3),
140
+ updatedAt: daysAgo(2),
160
141
  },
161
- // ── 9. pre-orders ────────────────────────────────────────────────────────
162
142
  {
163
143
  id: "section-pre-orders",
164
144
  type: "pre-orders",
@@ -166,41 +146,39 @@ export const homepageSectionsSeedData = [
166
146
  enabled: true,
167
147
  config: {
168
148
  title: "Reserve Before It Ships",
169
- subtitle: "Secure upcoming Pokémon, Bandai, and Hot Wheels releases with a deposit",
149
+ subtitle: "Secure upcoming releases with a deposit cards, figures, kits, and more",
170
150
  maxItems: 18,
171
151
  rows: 2,
172
- itemsPerRow: 3,
173
- mobileItemsPerRow: 1,
152
+ itemsPerRow: 4,
153
+ mobileItemsPerRow: 2,
174
154
  autoScroll: true,
175
155
  scrollInterval: 5000,
176
156
  },
177
157
  createdAt: daysAgo(90),
178
- updatedAt: daysAgo(3),
158
+ updatedAt: daysAgo(2),
179
159
  },
180
- // ── 10. banner — Beyblade X promo ────────────────────────────────────────
181
160
  {
182
- id: "section-beyblade-x-banner",
161
+ id: "section-exodia-banner",
183
162
  type: "banner",
184
163
  order: 10,
185
164
  enabled: true,
186
165
  config: {
187
166
  height: "md",
188
- backgroundImage: "https://images.unsplash.com/photo-1551698618-1dfe5d97d256?w=1920&h=400&fit=crop",
167
+ backgroundImage: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
189
168
  content: {
190
- title: "Beyblade X is Here",
191
- subtitle: "Official Takara Tomy ImportBX-01, BX-05, BX-10 and more",
192
- description: "India's best selection of Beyblade X tops, launchers, and XStadiums.",
169
+ title: "Complete Your Exodia Set",
170
+ subtitle: "All 5 pieces availableLOB 1st Edition to modern reprints",
171
+ description: "The ultimate Yu-Gi-Oh! flex. Find every Exodia printing on LetItRip.",
193
172
  },
194
173
  buttons: [
195
- { text: "Shop Beyblade X", link: "/categories/category-beyblade-tops", variant: "primary" },
196
- { text: "Beginner's Guide", link: "/blog/blog-beyblade-x-beginners-guide-2026", variant: "outline" },
174
+ { text: "Shop Exodia", link: "/products?q=exodia", variant: "primary" },
175
+ { text: "Exodia Guide", link: "/blog/complete-exodia-guide", variant: "outline" },
197
176
  ],
198
177
  clickable: false,
199
178
  },
200
179
  createdAt: daysAgo(45),
201
180
  updatedAt: daysAgo(3),
202
181
  },
203
- // ── 11. features ─────────────────────────────────────────────────────────
204
182
  {
205
183
  id: "section-platform-features",
206
184
  type: "features",
@@ -213,7 +191,7 @@ export const homepageSectionsSeedData = [
213
191
  "Escrow payment protection — money held until you confirm delivery",
214
192
  "Graded slab support — PSA, BGS, CGC with certificate verification",
215
193
  "Live auctions with auto-extend — no last-second sniping",
216
- "Pre-orders with deposit — secure releases with 20-30% down",
194
+ "Pre-orders with deposit — secure releases with 2030% down",
217
195
  "Make-an-offer on any listing — negotiate your price",
218
196
  "5-star store review system on every seller",
219
197
  "Fast India-wide delivery — 3–7 business days standard",
@@ -222,7 +200,6 @@ export const homepageSectionsSeedData = [
222
200
  createdAt: daysAgo(90),
223
201
  updatedAt: daysAgo(20),
224
202
  },
225
- // ── 12. reviews ──────────────────────────────────────────────────────────
226
203
  {
227
204
  id: "section-collector-reviews",
228
205
  type: "reviews",
@@ -234,28 +211,26 @@ export const homepageSectionsSeedData = [
234
211
  itemsPerView: 3,
235
212
  mobileItemsPerView: 1,
236
213
  autoScroll: true,
237
- scrollInterval: 5000,
214
+ scrollInterval: 4000,
238
215
  },
239
216
  createdAt: daysAgo(90),
240
- updatedAt: daysAgo(7),
217
+ updatedAt: daysAgo(2),
241
218
  },
242
- // ── 13. stores ───────────────────────────────────────────────────────────
243
219
  {
244
220
  id: "section-featured-stores",
245
221
  type: "stores",
246
222
  order: 13,
247
223
  enabled: true,
248
224
  config: {
249
- title: "Top Collectibles Stores",
250
- subtitle: "Browse our verified seller stores Pokémon, Hot Wheels, Beyblade X, and more",
251
- maxStores: 5,
225
+ title: "Verified Stores",
226
+ subtitle: "Browse our verified seller stores across all collectible categories",
227
+ maxStores: 8,
252
228
  autoScroll: true,
253
- scrollInterval: 5000,
229
+ scrollInterval: 4000,
254
230
  },
255
231
  createdAt: daysAgo(90),
256
- updatedAt: daysAgo(5),
232
+ updatedAt: daysAgo(2),
257
233
  },
258
- // ── 14. events ───────────────────────────────────────────────────────────
259
234
  {
260
235
  id: "section-upcoming-events",
261
236
  type: "events",
@@ -263,15 +238,14 @@ export const homepageSectionsSeedData = [
263
238
  enabled: true,
264
239
  config: {
265
240
  title: "Tournaments & Community Events",
266
- subtitle: "Sales, polls, and collector meetupsstay in the loop",
241
+ subtitle: "Polls, raffles, sales, and spin wheelsjoin the fun",
267
242
  maxEvents: 6,
268
243
  autoScroll: true,
269
244
  scrollInterval: 6000,
270
245
  },
271
246
  createdAt: daysAgo(60),
272
- updatedAt: daysAgo(4),
247
+ updatedAt: daysAgo(2),
273
248
  },
274
- // ── 15. blog-articles ────────────────────────────────────────────────────
275
249
  {
276
250
  id: "section-collector-blog",
277
251
  type: "blog-articles",
@@ -285,9 +259,8 @@ export const homepageSectionsSeedData = [
285
259
  showThumbnails: true,
286
260
  },
287
261
  createdAt: daysAgo(90),
288
- updatedAt: daysAgo(6),
262
+ updatedAt: daysAgo(2),
289
263
  },
290
- // ── 16. whatsapp-community ───────────────────────────────────────────────
291
264
  {
292
265
  id: "section-whatsapp-community",
293
266
  type: "whatsapp-community",
@@ -295,22 +268,21 @@ export const homepageSectionsSeedData = [
295
268
  enabled: true,
296
269
  config: {
297
270
  title: "Join the LetItRip Collectors Community",
298
- description: "Connect with 4,000+ Indian collectors on WhatsApp. Share pulls, get authentication help, trade advice, and be first to know about new drops.",
271
+ description: "Connect with Indian collectors on WhatsApp. Share pulls, get authentication help, and be first to know about new drops.",
299
272
  groupLink: "https://chat.whatsapp.com/letitrip-collectors",
300
- memberCount: 4200,
273
+ memberCount: 1200,
301
274
  benefits: [
302
275
  "First look at rare listings before they go live",
303
276
  "Authentication help from experienced collectors",
304
- "Live auction alerts for Charizard, Redlines & signed tops",
277
+ "Live auction alerts for trending collectibles",
305
278
  "Free giveaways and community events",
306
279
  ],
307
280
  buttonText: "Join WhatsApp Community",
308
- testimonial: '"The LetItRip WhatsApp group helped me authenticate a PSA slab within 10 minutes." — Rahul S., Bengaluru',
281
+ testimonial: '"The LetItRip group helped me authenticate a PSA slab within 10 minutes." — Ravi K., Mumbai',
309
282
  },
310
283
  createdAt: daysAgo(90),
311
284
  updatedAt: daysAgo(8),
312
285
  },
313
- // ── 17. faq ──────────────────────────────────────────────────────────────
314
286
  {
315
287
  id: "section-homepage-faq",
316
288
  type: "faq",
@@ -320,22 +292,17 @@ export const homepageSectionsSeedData = [
320
292
  title: "Frequently Asked Questions",
321
293
  subtitle: "Quick answers about buying, selling, and collecting on LetItRip",
322
294
  showOnHomepage: true,
323
- displayCount: 8,
295
+ displayCount: 10,
324
296
  linkToFullPage: true,
325
- /** Show a category tab bar so visitors can filter by topic */
326
297
  showCategoryTabs: true,
327
- /** Which tabs to surface in display order (leave empty [] to auto-derive from categories) */
328
- visibleTabs: ["general", "orders_payment", "shipping_delivery", "returns_refunds"],
329
- /** Allow multiple accordion panels open at once */
298
+ visibleTabs: ["general", "shipping_delivery", "returns_refunds", "orders_payment", "product_information", "account_security"],
330
299
  allowMultipleOpen: true,
331
- /** Number of items expanded on first render (0 = all closed) */
332
300
  defaultOpenCount: 100,
333
- categories: ["general", "orders_payment", "shipping_delivery", "returns_refunds", "product_information"],
301
+ categories: ["general", "shipping_delivery", "returns_refunds", "orders_payment", "product_information", "account_security", "technical_support"],
334
302
  },
335
303
  createdAt: daysAgo(90),
336
- updatedAt: daysAgo(10),
304
+ updatedAt: daysAgo(2),
337
305
  },
338
- // ── 18. newsletter ───────────────────────────────────────────────────────
339
306
  {
340
307
  id: "section-newsletter",
341
308
  type: "newsletter",
@@ -343,7 +310,7 @@ export const homepageSectionsSeedData = [
343
310
  enabled: true,
344
311
  config: {
345
312
  title: "Get New Drop Alerts",
346
- description: "Be first to know about rare Pokémon listings, Hot Wheels STH drops, Beyblade X imports, and LetItRip-exclusive auction events.",
313
+ description: "Be first to know about rare listings, auction events, and upcoming releases on LetItRip.",
347
314
  placeholder: "Enter your email address",
348
315
  buttonText: "Subscribe",
349
316
  privacyText: "We respect your privacy. Unsubscribe anytime.",
@@ -352,65 +319,15 @@ export const homepageSectionsSeedData = [
352
319
  createdAt: daysAgo(90),
353
320
  updatedAt: daysAgo(12),
354
321
  },
355
- // ── 19. social-feed (disabled — credentials not yet configured) ───────────
356
322
  {
357
323
  id: "section-social-feed-instagram",
358
324
  type: "social-feed",
359
325
  order: 19,
360
326
  enabled: false,
361
- config: {
362
- title: "LetItRip on Instagram",
363
- subtitle: "Follow @letitrip for daily collection showcases and new drop alerts",
364
- platform: "instagram",
365
- handle: "letitrip",
366
- postType: "all",
367
- count: 9,
368
- layout: "grid",
369
- showCaption: true,
370
- showStats: false,
371
- },
327
+ config: { title: "LetItRip on Instagram", subtitle: "Follow @letitrip for daily showcases", platform: "instagram", handle: "letitrip", postType: "all", count: 9, layout: "grid", showCaption: true, showStats: false },
372
328
  createdAt: daysAgo(30),
373
329
  updatedAt: daysAgo(30),
374
330
  },
375
- // ── 20. social-feed YouTube (static posts — no API token needed) ──────────
376
- {
377
- id: "section-social-feed-youtube",
378
- type: "social-feed",
379
- order: 20,
380
- enabled: false,
381
- config: {
382
- title: "LetItRip on YouTube",
383
- subtitle: "Watch unboxings, collection reviews, and auction replays",
384
- platform: "youtube",
385
- handle: "letitrip",
386
- postType: "all",
387
- count: 6,
388
- layout: "grid",
389
- showCaption: true,
390
- showStats: false,
391
- posts: [
392
- {
393
- id: "yt-post-001",
394
- platform: "youtube",
395
- videoId: "dQw4w9WgXcQ",
396
- channelName: "LetItRip",
397
- caption: "Unboxing the rarest Pokémon cards of 2026 — Charizard PSA 10 reveal!",
398
- },
399
- {
400
- id: "yt-post-002",
401
- platform: "youtube",
402
- videoId: "ScMzIvxBSi4",
403
- channelName: "LetItRip",
404
- caption: "Hot Wheels Super Treasure Hunt hunting at flea markets across Mumbai",
405
- },
406
- ],
407
- },
408
- createdAt: daysAgo(15),
409
- updatedAt: daysAgo(15),
410
- },
411
- // ── 20. featured-bundles (SB11) ──────────────────────────────────────────
412
- // Enabled — bundles collection live since S4 (SB3 closeout). 3 bundles
413
- // seeded in bundles-seed-data.ts; section renders them on the homepage.
414
331
  {
415
332
  id: "section-featured-bundles",
416
333
  type: "featured-bundles",
@@ -418,7 +335,7 @@ export const homepageSectionsSeedData = [
418
335
  enabled: true,
419
336
  config: {
420
337
  title: "Curated Bundles",
421
- subtitle: "Everything you need in one deal",
338
+ subtitle: "Save big on card bundles, figure sets, and sealed collections",
422
339
  maxItems: 8,
423
340
  sortBy: "savings-desc",
424
341
  showSavingsBadge: true,
@@ -426,9 +343,6 @@ export const homepageSectionsSeedData = [
426
343
  createdAt: daysAgo(2),
427
344
  updatedAt: daysAgo(2),
428
345
  },
429
- // ── 21. prize-draws (SB11) ───────────────────────────────────────────────
430
- // Enabled — listingType="prize-draw" schema + prizeRevealStatus fields are
431
- // live (SB1-B). Seed prize-draw product docs ship in S7-PrizeDraws.
432
346
  {
433
347
  id: "section-prize-draws",
434
348
  type: "prize-draws",
@@ -445,60 +359,54 @@ export const homepageSectionsSeedData = [
445
359
  createdAt: daysAgo(2),
446
360
  updatedAt: daysAgo(2),
447
361
  },
448
- // ── 22a. brand-filtered products: Hot Wheels (SB5-D) ─────────────────────
449
- // Uses the standard `products` section type with a brand filter — no
450
- // separate "brand-products" type needed (filterByBrand is on the config).
451
362
  {
452
- id: "section-brand-hot-wheels",
363
+ id: "section-brand-konami",
453
364
  type: "products",
454
365
  order: 22,
455
366
  enabled: true,
456
367
  config: {
457
- title: "Hot Wheels Spotlight",
458
- subtitle: "Vintage Redlines, Super TH hunts, and current mainline",
368
+ title: "Konami Official Products",
369
+ subtitle: "Official Yu-Gi-Oh! TCG products from Konami",
459
370
  maxProducts: 12,
460
371
  rows: 2,
461
- itemsPerRow: 3,
462
- mobileItemsPerRow: 1,
463
- autoScroll: false,
464
- scrollInterval: 0,
465
- filterByBrand: "brand-hot-wheels",
372
+ itemsPerRow: 4,
373
+ mobileItemsPerRow: 2,
374
+ autoScroll: true,
375
+ scrollInterval: 5000,
376
+ filterByBrand: "brand-konami",
466
377
  sortBy: "featured",
467
378
  },
468
379
  createdAt: daysAgo(2),
469
380
  updatedAt: daysAgo(2),
470
381
  },
471
- // ── 22b. brand-filtered products: Pokémon Company (SB5-D) ────────────────
472
382
  {
473
- id: "section-brand-pokemon",
383
+ id: "section-brand-upper-deck",
474
384
  type: "products",
475
385
  order: 23,
476
386
  enabled: true,
477
387
  config: {
478
- title: "Pokémon TCG Hub",
479
- subtitle: "Latest sets, vintage holos, and PSA-graded slabs",
388
+ title: "Upper Deck Entertainment",
389
+ subtitle: "Classic YGO TCG releases from Upper Deck",
480
390
  maxProducts: 12,
481
391
  rows: 2,
482
- itemsPerRow: 3,
483
- mobileItemsPerRow: 1,
484
- autoScroll: false,
485
- scrollInterval: 0,
486
- filterByBrand: "brand-pokemon-company",
392
+ itemsPerRow: 4,
393
+ mobileItemsPerRow: 2,
394
+ autoScroll: true,
395
+ scrollInterval: 5000,
396
+ filterByBrand: "brand-upper-deck",
487
397
  sortBy: "featured",
488
398
  },
489
399
  createdAt: daysAgo(2),
490
400
  updatedAt: daysAgo(2),
491
401
  },
492
- // ── 24. event-raffles (SB11) ─────────────────────────────────────────────
493
- // Disabled until events gain hasRaffle flag (S19+).
494
402
  {
495
403
  id: "section-event-raffles",
496
404
  type: "event-raffles",
497
405
  order: 24,
498
- enabled: false,
406
+ enabled: true,
499
407
  config: {
500
408
  title: "Live Raffles & Spin Wheels",
501
- subtitle: "Participate in community events and win prizes",
409
+ subtitle: "Participate in community events and win rare collectibles",
502
410
  maxItems: 4,
503
411
  raffleType: "all",
504
412
  showEntryCount: true,
@@ -47,7 +47,7 @@ export { storeAddressesSeedData } from "./store-addresses-seed-data";
47
47
  export { categoriesSeedData } from "./categories-seed-data";
48
48
  export { productsStandardSeedData } from "./products-standard-seed-data";
49
49
  export { productsAuctionsSeedData } from "./products-auctions-seed-data";
50
- export { productsPreOrdersSeedData } from "./products-preorders-seed-data";
50
+ export { productsPreordersSeedData } from "./products-preorders-seed-data";
51
51
  export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
52
52
  export { ordersSeedData } from "./orders-seed-data";
53
53
  export { reviewsSeedData } from "./reviews-seed-data";
@@ -35,7 +35,7 @@ export { storeAddressesSeedData } from "./store-addresses-seed-data";
35
35
  export { categoriesSeedData } from "./categories-seed-data";
36
36
  export { productsStandardSeedData } from "./products-standard-seed-data";
37
37
  export { productsAuctionsSeedData } from "./products-auctions-seed-data";
38
- export { productsPreOrdersSeedData } from "./products-preorders-seed-data";
38
+ export { productsPreordersSeedData } from "./products-preorders-seed-data";
39
39
  export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
40
40
  export { ordersSeedData } from "./orders-seed-data";
41
41
  export { reviewsSeedData } from "./reviews-seed-data";
@@ -12,7 +12,7 @@ import { usersSeedData } from "./users-seed-data";
12
12
  import { storesSeedData } from "./stores-seed-data";
13
13
  import { productsStandardSeedData } from "./products-standard-seed-data";
14
14
  import { productsAuctionsSeedData } from "./products-auctions-seed-data";
15
- import { productsPreOrdersSeedData } from "./products-preorders-seed-data";
15
+ import { productsPreordersSeedData } from "./products-preorders-seed-data";
16
16
  import { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
17
17
  import { ordersSeedData } from "./orders-seed-data";
18
18
  import { reviewsSeedData } from "./reviews-seed-data";
@@ -66,7 +66,7 @@ export const SEED_MANIFEST = {
66
66
  products: pick([
67
67
  ...asArr(productsStandardSeedData),
68
68
  ...asArr(productsAuctionsSeedData),
69
- ...asArr(productsPreOrdersSeedData),
69
+ ...asArr(productsPreordersSeedData),
70
70
  ...asArr(productsPrizeDrawsSeedData),
71
71
  ].map((p) => ({
72
72
  ...p,
@@ -1,8 +1,2 @@
1
- /**
2
- * Notifications Seed Data — LetItRip Collectibles Platform
3
- * 10 notifications covering all types. Mixed read/unread.
4
- * Distributed across buyer and seller users from P15.
5
- * notif- prefix (system IDs).
6
- */
7
1
  import type { NotificationDocument } from "../features/admin/schemas";
8
2
  export declare const notificationsSeedData: Partial<NotificationDocument>[];