@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,24 +1,35 @@
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.
1
+ /*
2
+ * WHY: Provides 8 seed stores covering all collectible categories for the marketplace demo.
3
+ * WHAT: Exports 8 StoreDocument partials letitrip-official, kaiba-corp-cards, pokemon-palace,
4
+ * cardgame-hub, diecast-depot, beyblade-arena, tokyo-toys-india, gundam-galaxy.
5
+ * Mix of verified/basic stores with various capabilities.
6
+ *
7
+ * EXPORTS:
8
+ * storesSeedData — array of 8 Partial<StoreDocument> for the seed runner
9
+ *
10
+ * @tag domain:stores
11
+ * @tag layer:seed
12
+ * @tag pattern:none
13
+ * @tag access:server-only
14
+ * @tag consumers:seed/runner.ts,SeedPanel
15
+ * @tag sideEffects:none
5
16
  */
6
17
  import { STORE_FIELDS } from "../constants/field-names";
7
18
  const NOW = new Date();
8
19
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
9
20
  export const storesSeedData = [
10
- // ── Store 1: LetItRip Official (admin-owned multi-category curated store) ──
21
+ // ── Store 1: LetItRip Official (admin-owned, curated YGO showcase) ──────────
11
22
  {
12
23
  id: "store-letitrip-official",
13
24
  storeSlug: "store-letitrip-official",
14
25
  ownerId: "user-admin-letitrip",
15
26
  storeName: "LetItRip Official",
16
- storeDescription: "The official LetItRip curated store. Hand-picked premium collectibles across Pokémon TCG, Hot Wheels, Beyblade X, and anime figures. Verified authentic, carefully packaged.",
17
- storeCategory: "category-action-figures",
18
- storeLogoURL: "https://images.unsplash.com/photo-1614108831137-558fffac9ead?w=400&h=400&fit=crop",
19
- storeBannerURL: "https://images.unsplash.com/photo-1614108831137-558fffac9ead?w=1600&h=400&fit=crop",
27
+ storeDescription: "The official LetItRip curated store. Hand-picked premium Yu-Gi-Oh! collectibles authenticated graded slabs, Egyptian God cards, sealed vintage product, and rare 1st Edition singles. Every item personally inspected.",
28
+ storeCategory: "category-singles",
29
+ storeLogoURL: "https://images.ygoprodeck.com/images/cards/small/10000015.jpg",
30
+ storeBannerURL: "https://images.ygoprodeck.com/images/cards/cropped/10000015.jpg",
20
31
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
21
- bio: "Curated by the LetItRip team. Every item is personally inspected and authenticated before listing. Fast dispatch, safe packaging.",
32
+ bio: "Curated by the LetItRip team. All cards authenticated and graded by PSA/BGS/CGC before listing. Fast dispatch, collector-grade packaging.",
22
33
  location: "Mumbai, Maharashtra, India",
23
34
  website: "https://letitrip.in",
24
35
  socialLinks: {
@@ -27,8 +38,7 @@ export const storesSeedData = [
27
38
  twitter: "https://twitter.com/letitrip",
28
39
  },
29
40
  returnPolicy: "7-day hassle-free returns on all items. Items must be in original condition. Full refund or replacement guaranteed.",
30
- shippingPolicy: "Free shipping on orders above ₹999. Orders dispatched within 24 hours. 3–5 business day delivery across India. Express shipping available.",
31
- // S-SBUNI-RULES 2026-05-13 — ShippingProviderConfig seed
41
+ shippingPolicy: "Free shipping on orders above ₹999. Orders dispatched within 24 hours. 3–5 business day delivery across India. Express shipping available. All graded slabs shipped in hard slab mailers.",
32
42
  shippingConfig: {
33
43
  defaultProviderId: "provider-letitrip-standard",
34
44
  providers: [
@@ -50,6 +60,14 @@ export const storesSeedData = [
50
60
  etaDaysMax: 2,
51
61
  requiresAwbUpload: true,
52
62
  },
63
+ {
64
+ providerId: "provider-letitrip-pickup",
65
+ label: "Store Pickup (Mumbai HQ)",
66
+ type: "store-pickup",
67
+ fee: { flatInPaise: 0 },
68
+ etaDaysMin: 0,
69
+ etaDaysMax: 1,
70
+ },
53
71
  ],
54
72
  },
55
73
  isPublic: true,
@@ -57,255 +75,275 @@ export const storesSeedData = [
57
75
  stats: {
58
76
  totalProducts: 0,
59
77
  itemsSold: 0,
60
- totalReviews: 0,
61
- averageRating: 0,
78
+ totalReviews: 5,
79
+ averageRating: 4.8,
62
80
  },
63
- capabilities: ["host_auctions", "host_preorders", "suggest_brands", "create_coupons", "bulk_listing_import", "verified_seller", "featured_placement", "promotional_banner", "advanced_analytics", "api_access", "multiple_stores", "early_access_features", "whatsapp_catalog_sync"],
81
+ capabilities: [
82
+ "host_auctions",
83
+ "host_preorders",
84
+ "verified_seller",
85
+ "create_coupons",
86
+ "suggest_brands",
87
+ "bulk_listing_import",
88
+ "featured_placement",
89
+ "promotional_banner",
90
+ "advanced_analytics",
91
+ "api_access",
92
+ "multiple_stores",
93
+ "early_access_features",
94
+ "whatsapp_catalog_sync",
95
+ ],
64
96
  createdAt: daysAgo(400),
65
97
  updatedAt: daysAgo(1),
66
98
  },
67
- // ── Store 2: Pokémon Palace (Pokémon TCG) ──────────────────────────────────
99
+ // ── Store 2: Kaiba Corp Card Vault (seller-owned, main YGO inventory) ───────
68
100
  {
69
- id: "store-pokemon-palace",
70
- storeSlug: "store-pokemon-palace",
71
- ownerId: "user-aryan-kapoor",
72
- storeName: "Pokémon Palace",
73
- storeDescription: "India's premier Pokémon TCG store. Specialising in booster packs, Elite Trainer Boxes, sealed booster boxes, PSA/BGS graded slabs, and rare vintage cards from Base Set to Scarlet & Violet.",
74
- storeCategory: "category-pokemon-tcg",
75
- storeLogoURL: "https://images.unsplash.com/photo-1613771404784-3a5686aa2be3?w=400&h=400&fit=crop",
76
- storeBannerURL: "https://images.unsplash.com/photo-1607604276583-eef5d076aa5f?w=1600&h=400&fit=crop",
101
+ id: "store-kaiba-corp-cards",
102
+ storeSlug: "store-kaiba-corp-cards",
103
+ ownerId: "user-seto-kaiba",
104
+ storeName: "Kaiba Corp Card Vault",
105
+ storeDescription: "The definitive Yu-Gi-Oh! card store by Seto Kaiba. Massive inventory of Duel Monsters era singles, GX era cards, graded slabs, sealed booster boxes, accessories, and rare collectibles. Authenticated and documented.",
106
+ storeCategory: "category-singles",
107
+ storeLogoURL: "https://images.ygoprodeck.com/images/cards/small/23995346.jpg",
108
+ storeBannerURL: "https://images.ygoprodeck.com/images/cards/cropped/23995346.jpg",
77
109
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
78
- bio: "Pokémon TCG enthusiast since 2010 and PTCGO tournament player. All cards are inspected under bright light and sleeved before shipping. Sealed product is sourced directly from official distributors.",
79
- location: "Mumbai, Maharashtra, India",
110
+ bio: "CEO of Kaiba Corp. My vault contains the finest YGO cards in the world. Every card authenticated, graded, and catalogued. Blue-Eyes White Dragon specialist.",
111
+ location: "Domino City, Japan",
112
+ website: "https://kaibacorp.jp",
80
113
  socialLinks: {
81
- instagram: "https://instagram.com/aryan.pokecollector",
114
+ instagram: "https://instagram.com/kaibacorpvault",
115
+ twitter: "https://twitter.com/kaibacorp",
82
116
  },
83
- returnPolicy: "7-day return policy on factory-sealed product (seal must be intact). No returns on opened packs or singles. Graded slabs: 3-day return if slab is cracked on arrival.",
84
- shippingPolicy: "Singles and small orders: bubble-padded envelope (₹49 shipping). Sealed boxes and ETBs: double-boxed with foam inserts. Free shipping on orders above ₹1,499. 3–7 business days.",
85
- // S-SBUNI-RULES 2026-05-13 — ShippingProviderConfig seed
117
+ returnPolicy: "3-day returns on singles (must be in original condition, same sleeve). No returns on opened sealed product. Graded slabs: 3-day return if slab arrives cracked.",
118
+ shippingPolicy: "Singles shipped in top loaders + team bags, bubble-padded envelope. Sealed product double-boxed. Free shipping on orders above ₹1,499. Dispatched within 48 hours. 3–7 business days.",
86
119
  shippingConfig: {
87
- defaultProviderId: "provider-palace-standard",
120
+ defaultProviderId: "provider-kaiba-standard",
88
121
  providers: [
89
122
  {
90
- providerId: "provider-palace-standard",
91
- label: "Bubble Mailer (Singles)",
123
+ providerId: "provider-kaiba-standard",
124
+ label: "Standard (Singles & Accessories)",
92
125
  type: "self-courier",
93
126
  fee: { flatInPaise: 4900, freeAboveInPaise: 149900 },
94
127
  etaDaysMin: 3,
95
128
  etaDaysMax: 7,
96
129
  },
97
130
  {
98
- providerId: "provider-palace-box",
99
- label: "Double-boxed (Sealed Product)",
100
- type: "self-courier",
131
+ providerId: "provider-kaiba-box",
132
+ label: "Box Shipping (Sealed Product)",
133
+ type: "shiprocket",
101
134
  fee: { flatInPaise: 14900 },
102
135
  etaDaysMin: 4,
103
136
  etaDaysMax: 7,
137
+ requiresAwbUpload: true,
104
138
  },
105
139
  {
106
- providerId: "provider-palace-pickup",
107
- label: "Store Pickup — Mumbai",
108
- type: "store-pickup",
109
- fee: { flatInPaise: 0 },
110
- etaDaysMin: 0,
111
- etaDaysMax: 1,
112
- regions: ["400"],
140
+ providerId: "provider-kaiba-express",
141
+ label: "Express Courier",
142
+ type: "shiprocket",
143
+ fee: { flatInPaise: 19900 },
144
+ etaDaysMin: 1,
145
+ etaDaysMax: 2,
146
+ requiresAwbUpload: true,
113
147
  },
114
148
  ],
115
149
  },
116
150
  isPublic: true,
117
151
  isVacationMode: false,
152
+ vacationMessage: "Taking a break to prepare my next card shipment. Back soon.",
153
+ vacationReturnDate: new Date(NOW.getTime() + 7 * 86400000), // 7 days from seed time
118
154
  stats: {
119
155
  totalProducts: 0,
120
- itemsSold: 87,
121
- totalReviews: 42,
122
- averageRating: 4.8,
156
+ itemsSold: 0,
157
+ totalReviews: 30,
158
+ averageRating: 4.6,
123
159
  },
124
- capabilities: ["host_auctions", "host_preorders", "suggest_brands", "create_coupons", "verified_seller", "featured_placement", "extended_return_window"],
125
- createdAt: daysAgo(380),
126
- updatedAt: daysAgo(2),
160
+ capabilities: [
161
+ "host_auctions",
162
+ "host_preorders",
163
+ "verified_seller",
164
+ "create_coupons",
165
+ "suggest_brands",
166
+ "bulk_listing_import",
167
+ "advanced_analytics",
168
+ ],
169
+ createdAt: daysAgo(350),
170
+ updatedAt: daysAgo(1),
127
171
  },
128
- // ── Store 3: CardGame Hub (Yu-Gi-Oh! + Mixed TCG) ─────────────────────────
172
+ // ── Store 3: Pokémon Palace (Pokémon TCG specialist) ──────────────────────
173
+ {
174
+ id: "store-pokemon-palace",
175
+ storeSlug: "store-pokemon-palace",
176
+ ownerId: "user-ash-trainer",
177
+ storeName: "Pokémon Palace",
178
+ storeDescription: "India's top Pokémon TCG store. Booster packs, Elite Trainer Boxes, singles, graded slabs, and Japanese exclusives. Base Set to Scarlet & Violet — if it's Pokémon, we've got it.",
179
+ storeCategory: "category-pokemon-tcg",
180
+ storeLogoURL: "/media/store-logo-pokemon-palace-20260101.jpg",
181
+ storeBannerURL: "/media/store-banner-pokemon-palace-20260101.jpg",
182
+ status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
183
+ bio: "Pokémon Master turned seller. Building the largest Pokémon TCG collection marketplace in India.",
184
+ location: "Bengaluru, Karnataka, India",
185
+ website: "https://pokemonpalace.in",
186
+ socialLinks: { instagram: "https://instagram.com/pokemonpalace.in" },
187
+ returnPolicy: "7-day returns on singles. No returns on opened sealed product.",
188
+ shippingPolicy: "Free shipping on orders above ₹799. Ships within 48 hours. 4–6 business days across India.",
189
+ shippingConfig: {
190
+ defaultProviderId: "provider-pokemon-standard",
191
+ providers: [
192
+ { providerId: "provider-pokemon-standard", label: "Standard Shipping", type: "shiprocket", fee: { flatInPaise: 4900, freeAboveInPaise: 79900 }, etaDaysMin: 4, etaDaysMax: 6, requiresAwbUpload: true },
193
+ ],
194
+ },
195
+ isPublic: true,
196
+ isVacationMode: false,
197
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 8, averageRating: 4.7 },
198
+ capabilities: ["host_auctions", "host_preorders", "verified_seller", "create_coupons", "suggest_brands"],
199
+ createdAt: daysAgo(200),
200
+ updatedAt: daysAgo(3),
201
+ },
202
+ // ── Store 4: CardGame Hub (multi-TCG store) ───────────────────────────────
129
203
  {
130
204
  id: "store-cardgame-hub",
131
205
  storeSlug: "store-cardgame-hub",
132
- ownerId: "user-nisha-reddy",
206
+ ownerId: "user-priya-cards",
133
207
  storeName: "CardGame Hub",
134
- storeDescription: "Yu-Gi-Oh! TCG specialist. Tournament-grade singles, booster boxes, structure decks, collector tins, and sealed product. Also stocks Pokémon ETBs and mixed TCG accessories.",
135
- storeCategory: "category-yugioh-tcg",
136
- storeLogoURL: "https://images.unsplash.com/photo-1612036782180-6f0b6cd846fe?w=400&h=400&fit=crop",
137
- storeBannerURL: "https://images.unsplash.com/photo-1612036782180-6f0b6cd846fe?w=1600&h=400&fit=crop",
208
+ storeDescription: "Multi-TCG collectibles store. Yu-Gi-Oh!, Pokémon, One Piece, Dragon Ball Super, and Cardfight!! Vanguard. Singles, sealed product, and tournament accessories.",
209
+ storeCategory: "category-trading-cards",
210
+ storeLogoURL: "/media/store-logo-cardgame-hub-20260101.jpg",
211
+ storeBannerURL: "/media/store-banner-cardgame-hub-20260101.jpg",
138
212
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
139
- bio: "WCS 2022 qualifier and competitive Yu-Gi-Oh! player. Tournament-tested cards, sleeve recommendations, and deck-building advice on request. Bulk orders welcome.",
213
+ bio: "TCG enthusiast since 2010. Running local tournaments and selling authentic cards from my personal collection and distributor stock.",
140
214
  location: "Hyderabad, Telangana, India",
141
- socialLinks: {
142
- instagram: "https://instagram.com/nisha.cardgamehub",
215
+ socialLinks: { instagram: "https://instagram.com/cardgamehub.in", twitter: "https://twitter.com/cardgamehub" },
216
+ returnPolicy: "5-day returns. Items must be in original packaging.",
217
+ shippingPolicy: "Free shipping above ₹1,499. Ships within 48 hours via Shiprocket.",
218
+ shippingConfig: {
219
+ defaultProviderId: "provider-cardgame-standard",
220
+ providers: [
221
+ { providerId: "provider-cardgame-standard", label: "Standard", type: "shiprocket", fee: { flatInPaise: 5900, freeAboveInPaise: 149900 }, etaDaysMin: 4, etaDaysMax: 7, requiresAwbUpload: true },
222
+ ],
143
223
  },
144
- returnPolicy: "Singles: 3-day return if card is misrepresented in condition grading. Sealed: 7-day return on factory-sealed only. No returns on opened product.",
145
- shippingPolicy: "Singles shipped in toploader and penny sleeve inside padded envelope. Sealed product double-boxed. Free shipping on orders above ₹1,199. 4–6 business days.",
146
224
  isPublic: true,
147
225
  isVacationMode: false,
148
- stats: {
149
- totalProducts: 0,
150
- itemsSold: 64,
151
- totalReviews: 31,
152
- averageRating: 4.6,
153
- },
154
- capabilities: ["suggest_brands", "create_coupons", "verified_seller", "extended_return_window"],
155
- createdAt: daysAgo(350),
156
- updatedAt: daysAgo(3),
226
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 4, averageRating: 4.5 },
227
+ capabilities: ["host_auctions", "verified_seller", "create_coupons", "suggest_brands"],
228
+ createdAt: daysAgo(180),
229
+ updatedAt: daysAgo(5),
157
230
  },
158
- // ── Store 4: Diecast Depot (Hot Wheels + Tomica) ───────────────────────────
231
+ // ── Store 5: Diecast Depot (Hot Wheels, Tomica, Matchbox) ─────────────────
159
232
  {
160
233
  id: "store-diecast-depot",
161
234
  storeSlug: "store-diecast-depot",
162
- ownerId: "user-vikram-mehta",
235
+ ownerId: "user-ravi-diecast",
163
236
  storeName: "Diecast Depot",
164
- storeDescription: "Hot Wheels and Tomica diecast car specialists. Treasure Hunts (TH), Super Treasure Hunts (STH), Car Culture sets, Team Transport, premium Tomica Limited Vintage, and 1:18 scale cars.",
165
- storeCategory: "category-hot-wheels",
166
- storeLogoURL: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=400&h=400&fit=crop",
167
- storeBannerURL: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=1600&h=400&fit=crop",
237
+ storeDescription: "India's premier diecast collectibles store. Hot Wheels mainline, Premium, Treasure Hunts, Super TH, Tomica, Matchbox, and Maisto. New arrivals every week.",
238
+ storeCategory: "category-diecast-vehicles",
239
+ storeLogoURL: "/media/store-logo-diecast-depot-20260101.jpg",
240
+ storeBannerURL: "/media/store-banner-diecast-depot-20260101.jpg",
168
241
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
169
- bio: "Collector since 2005. STH hunter, Car Culture completionist, Tomica Limited Vintage dealer. All cars are fresh from retail, blister-checked, and never displayed. I source from Tokyo flea markets on my annual Japan trip.",
242
+ bio: "Collecting diecast since 1998. Over 5,000 Hot Wheels in my personal collection. Now sharing the hobby with collectors across India.",
170
243
  location: "Delhi, NCR, India",
171
- socialLinks: {
172
- instagram: "https://instagram.com/vikram.diecastdepot",
173
- facebook: "https://facebook.com/diecastdepot",
244
+ socialLinks: { instagram: "https://instagram.com/diecastdepot.in", facebook: "https://facebook.com/diecastdepot" },
245
+ returnPolicy: "3-day returns on carded items only. No returns on loose or opened items.",
246
+ shippingPolicy: "Free shipping on 5+ items or orders above ₹999. Dispatched within 24 hours.",
247
+ shippingConfig: {
248
+ defaultProviderId: "provider-diecast-standard",
249
+ providers: [
250
+ { providerId: "provider-diecast-standard", label: "Standard", type: "shiprocket", fee: { flatInPaise: 3900, freeAboveInPaise: 99900 }, etaDaysMin: 3, etaDaysMax: 5, requiresAwbUpload: true },
251
+ ],
174
252
  },
175
- returnPolicy: "7-day return on factory-sealed blister-pack cars (blister must be unopened). Loose cars: 3-day return if car is misrepresented. No returns on custom or modified cars.",
176
- shippingPolicy: "Each car bubble-wrapped individually and packed in rigid mailer. Multiple cars in padded box. Free shipping on orders above ₹999. Express India Post or Shiprocket: 3–5 business days.",
177
253
  isPublic: true,
178
254
  isVacationMode: false,
179
- stats: {
180
- totalProducts: 0,
181
- itemsSold: 115,
182
- totalReviews: 58,
183
- averageRating: 4.9,
184
- },
185
- capabilities: ["suggest_brands", "create_coupons"],
186
- createdAt: daysAgo(320),
187
- updatedAt: daysAgo(1),
255
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 12, averageRating: 4.6 },
256
+ capabilities: ["verified_seller", "create_coupons", "suggest_brands", "bulk_listing_import"],
257
+ createdAt: daysAgo(250),
258
+ updatedAt: daysAgo(2),
188
259
  },
189
- // ── Store 5: Beyblade Arena (Beyblade X + Burst) ───────────────────────────
260
+ // ── Store 6: Beyblade Arena (spinning tops specialist) ────────────────────
190
261
  {
191
262
  id: "store-beyblade-arena",
192
263
  storeSlug: "store-beyblade-arena",
193
- ownerId: "user-rohit-joshi",
264
+ ownerId: "user-tyson-blader",
194
265
  storeName: "Beyblade Arena",
195
- storeDescription: "India's #1 Beyblade X and Burst store. Direct import from Takara Tomy Japan. Official tops, launchers, XStadiums, and combo sets. Competitive-grade product, genuine Japanese releases.",
196
- storeCategory: "category-beyblade-x",
197
- storeLogoURL: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=400&h=400&fit=crop",
198
- storeBannerURL: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=1600&h=400&fit=crop",
266
+ storeDescription: "Everything Beyblade X, Burst, Metal Fight, and vintage original series. Takara-Tomy authentic stock, tournament-grade stadiums, launchers, and rare limited editions.",
267
+ storeCategory: "category-spinning-tops",
268
+ storeLogoURL: "/media/store-logo-beyblade-arena-20260101.jpg",
269
+ storeBannerURL: "/media/store-banner-beyblade-arena-20260101.jpg",
199
270
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
200
- bio: "Importing Beyblade X directly from Japan since 2023. All stock is Takara Tomy authentic no knockoffs. Run weekly online tournaments with prizes. Discord community with 2,000+ members.",
201
- location: "Pune, Maharashtra, India",
202
- socialLinks: {
203
- instagram: "https://instagram.com/rohit.beyladearena",
271
+ bio: "Beyblade champion turned seller. Importing authentic Takara-Tomy Beyblades directly from Japan. Let It Rip!",
272
+ location: "Chennai, Tamil Nadu, India",
273
+ socialLinks: { instagram: "https://instagram.com/beybladearena.in" },
274
+ returnPolicy: "7-day returns on sealed items. No returns on used/battled Beyblades.",
275
+ shippingPolicy: "Free shipping above ₹599. All items shipped in protective bubble wrap.",
276
+ shippingConfig: {
277
+ defaultProviderId: "provider-beyblade-standard",
278
+ providers: [
279
+ { providerId: "provider-beyblade-standard", label: "Standard", type: "shiprocket", fee: { flatInPaise: 4500, freeAboveInPaise: 59900 }, etaDaysMin: 3, etaDaysMax: 6, requiresAwbUpload: true },
280
+ ],
204
281
  },
205
- returnPolicy: "7-day return on factory-sealed Beyblade product (box must be unopened). Launcher or stadium returns accepted within 3 days if manufacturing defect. No returns on opened combo sets.",
206
- shippingPolicy: "All tops packed individually in foam-lined boxes. Free shipping on orders above ₹799. Standard: 4–6 business days. Express available. Japan-sourced items may take 7–10 business days.",
207
282
  isPublic: true,
208
283
  isVacationMode: false,
209
- stats: {
210
- totalProducts: 0,
211
- itemsSold: 73,
212
- totalReviews: 47,
213
- averageRating: 4.7,
214
- },
215
- capabilities: ["host_auctions", "suggest_brands", "create_coupons", "extended_return_window"],
216
- createdAt: daysAgo(290),
217
- updatedAt: daysAgo(2),
284
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 6, averageRating: 4.8 },
285
+ capabilities: ["host_preorders", "verified_seller", "create_coupons", "suggest_brands"],
286
+ createdAt: daysAgo(150),
287
+ updatedAt: daysAgo(4),
218
288
  },
219
- // ── Store 6: Tokyo Toys India (Anime Figures, Gundam, Funko Pop) ──────────
289
+ // ── Store 7: Tokyo Toys India (anime figures + model kits) ────────────────
220
290
  {
221
291
  id: "store-tokyo-toys-india",
222
292
  storeSlug: "store-tokyo-toys-india",
223
- ownerId: "user-priya-singh",
293
+ ownerId: "user-megumi-figures",
224
294
  storeName: "Tokyo Toys India",
225
- storeDescription: "India's premier anime figure and Gundam store. Nendoroids, S.H.Figuarts, scale PVC figures, Real Grade and High Grade Gunpla, and Funko Pops. All sourced from Akihabara, Good Smile Company, and Bandai Spirits directly.",
226
- storeCategory: "category-anime-figures",
227
- storeLogoURL: "https://images.unsplash.com/photo-1608889825271-9696283b84bd?w=400&h=400&fit=crop",
228
- storeBannerURL: "https://images.unsplash.com/photo-1578632767115-351597cf2477?w=1600&h=400&fit=crop",
295
+ storeDescription: "Anime figures and model kits imported from Japan. Nendoroid, S.H.Figuarts, figma, Funko Pop, and scale figures. Plus Gunpla and 30 Minutes Missions kits.",
296
+ storeCategory: "category-action-figures",
297
+ storeLogoURL: "/media/store-logo-tokyo-toys-india-20260101.jpg",
298
+ storeBannerURL: "/media/store-banner-tokyo-toys-india-20260101.jpg",
229
299
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
230
- bio: "I visit Akihabara twice a year and bring back genuine figures direct from Good Smile, Bandai Spirits, and Kotobukiya. All products have original Japanese box with serial number. No grey-market, no bootlegs. Specialising in Nendoroids and S.H.Figuarts with a growing Gunpla section.",
231
- location: "Chennai, Tamil Nadu, India",
232
- socialLinks: {
233
- instagram: "https://instagram.com/priya.tokyotoys",
234
- twitter: "https://twitter.com/tokyotoysindia",
300
+ bio: "Direct imports from Akihabara and Nipponbashi. Authentic figures with original Japanese packaging. No bootlegs, ever.",
301
+ location: "Pune, Maharashtra, India",
302
+ website: "https://tokyotoys.in",
303
+ socialLinks: { instagram: "https://instagram.com/tokyotoys.in", twitter: "https://twitter.com/tokyotoysindia" },
304
+ returnPolicy: "7-day returns on unopened figures. Damaged-in-transit claims within 48 hours with photo proof.",
305
+ shippingPolicy: "Free shipping above ₹1,999. All figures double-boxed with foam inserts. 5–8 business days.",
306
+ shippingConfig: {
307
+ defaultProviderId: "provider-tokyo-standard",
308
+ providers: [
309
+ { providerId: "provider-tokyo-standard", label: "Standard (Double-Box)", type: "shiprocket", fee: { flatInPaise: 9900, freeAboveInPaise: 199900 }, etaDaysMin: 5, etaDaysMax: 8, requiresAwbUpload: true },
310
+ { providerId: "provider-tokyo-express", label: "Express", type: "shiprocket", fee: { flatInPaise: 19900 }, etaDaysMin: 2, etaDaysMax: 3, requiresAwbUpload: true },
311
+ ],
235
312
  },
236
- returnPolicy: "7-day return on factory-sealed product (seal must be intact). Figures with broken or missing accessories: 3-day return window, photographic evidence required. No returns on opened Nendoroids.",
237
- shippingPolicy: "Each figure individually bubble-wrapped in rigid box with foam padding. Free shipping on orders above ₹999. 3–5 business days. Japan-sourced items dispatched within 24 hours of arrival.",
238
313
  isPublic: true,
239
314
  isVacationMode: false,
240
- stats: {
241
- totalProducts: 0,
242
- itemsSold: 52,
243
- totalReviews: 28,
244
- averageRating: 4.8,
245
- },
246
- capabilities: ["suggest_brands", "create_coupons", "whatsapp_catalog_sync"],
247
- createdAt: daysAgo(260),
248
- updatedAt: daysAgo(1),
315
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 3, averageRating: 4.9 },
316
+ capabilities: ["host_preorders", "verified_seller", "create_coupons", "suggest_brands", "advanced_analytics"],
317
+ createdAt: daysAgo(120),
318
+ updatedAt: daysAgo(2),
249
319
  },
250
- // ── Store 7: Gundam Galaxy (Gunpla model kits specialist) ─────────────────
320
+ // ── Store 8: Gundam Galaxy (Gunpla + mecha model kits) ────────────────────
251
321
  {
252
322
  id: "store-gundam-galaxy",
253
323
  storeSlug: "store-gundam-galaxy",
254
- ownerId: "user-amit-sharma",
324
+ ownerId: "user-amuro-builder",
255
325
  storeName: "Gundam Galaxy",
256
- storeDescription: "Gunpla model kit specialists High Grade, Real Grade, Master Grade, and Perfect Grade kits. Bandai authentic stock only, sourced directly from official distributors in Japan and Singapore. Beginner kits to advanced PG builds.",
257
- storeCategory: "category-gunpla",
258
- storeLogoURL: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=400&h=400&fit=crop",
259
- storeBannerURL: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=1600&h=400&fit=crop",
326
+ storeDescription: "Gunpla and mecha model kitsHG, RG, MG, PG, SD grades by Bandai, plus Frame Arms by Kotobukiya and 30 Minutes Missions. Tools, paints, and accessories.",
327
+ storeCategory: "category-model-kits",
328
+ storeLogoURL: "/media/store-logo-gundam-galaxy-20260101.jpg",
329
+ storeBannerURL: "/media/store-banner-gundam-galaxy-20260101.jpg",
260
330
  status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
261
- bio: "Master Grade builder and competitive Gunpla modeller since 2016. All kits sourced from official Bandai distributors no Malaysian bootlegs, no resealed boxes. YouTube channel with build tutorials for MG and RG kits. Discord server for India Gunpla community with 1,500+ members.",
262
- location: "Bengaluru, Karnataka, India",
263
- socialLinks: {
264
- instagram: "https://instagram.com/amit.gundamgalaxy",
265
- twitter: "https://twitter.com/gundamgalaxy",
266
- },
267
- returnPolicy: "7-day return on factory-sealed kits (outer shrink wrap must be intact). Loose runner returns: 3-day window if misrepresented. No returns on started/built kits.",
268
- shippingPolicy: "All kits double-boxed in rigid cardboard. Free shipping on orders above ₹999. 3–5 business days. PG kits shipped with additional foam corner protection.",
269
- isPublic: true,
270
- isVacationMode: false,
271
- stats: {
272
- totalProducts: 0,
273
- itemsSold: 41,
274
- totalReviews: 22,
275
- averageRating: 4.7,
276
- },
277
- capabilities: ["host_preorders", "suggest_brands", "create_coupons", "extended_return_window"],
278
- createdAt: daysAgo(230),
279
- updatedAt: daysAgo(2),
280
- },
281
- // ── Store 8: Vintage Vault (vintage collectibles — WOTC era + 80s toys) ───
282
- {
283
- id: "store-vintage-vault",
284
- storeSlug: "store-vintage-vault",
285
- ownerId: "user-kavya-iyer",
286
- storeName: "Vintage Vault",
287
- storeDescription: "Vintage collectibles from the golden era. Pokémon WOTC-era raw and graded cards, 1980s action figures (Masters of the Universe, TMNT, Star Wars vintage), vintage Hot Wheels Redlines, and rare Japanese toys from the Shōwa period. Sourced from estate sales, Tokyo flea markets, and private collector networks.",
288
- storeCategory: "category-vintage-rare",
289
- storeLogoURL: "https://images.unsplash.com/photo-1578301978162-7aae4d755744?w=400&h=400&fit=crop",
290
- storeBannerURL: "https://images.unsplash.com/photo-1578301978162-7aae4d755744?w=1600&h=400&fit=crop",
291
- status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
292
- bio: "20+ years sourcing vintage collectibles from Japan, the UK, and the US. Every item in my store has a provenance story. I travel to Japan twice a year — Tokyo Toy Show and the Shinjuku/Shibuya flea market circuit. Specialist in Pokémon WOTC era (Base Set through Skyridge) and vintage Redline Hot Wheels.",
331
+ bio: "Building Gunpla since 2005. Over 200 kits built. Importing directly from Bandai Hobby distributors in Japan and Hong Kong.",
293
332
  location: "Kolkata, West Bengal, India",
294
- socialLinks: {
295
- instagram: "https://instagram.com/kavya.vintagevault",
333
+ socialLinks: { instagram: "https://instagram.com/gundamgalaxy.in" },
334
+ returnPolicy: "7-day returns on sealed kits. No returns on opened or partially built kits.",
335
+ shippingPolicy: "Free shipping above ₹1,499. Kits shipped in original Bandai outer boxes. 4–7 business days.",
336
+ shippingConfig: {
337
+ defaultProviderId: "provider-gundam-standard",
338
+ providers: [
339
+ { providerId: "provider-gundam-standard", label: "Standard", type: "shiprocket", fee: { flatInPaise: 7900, freeAboveInPaise: 149900 }, etaDaysMin: 4, etaDaysMax: 7, requiresAwbUpload: true },
340
+ ],
296
341
  },
297
- returnPolicy: "3-day return on all vintage items if misrepresented. Detailed grading photos taken before shipping. Any dispute handled promptly and fairly — reputation is everything in vintage.",
298
- shippingPolicy: "All vintage items individually sleeved and packed in rigid mailers with foam. Insured shipping on items above ₹5,000. Free standard shipping on orders above ₹999. 4–6 business days.",
299
342
  isPublic: true,
300
343
  isVacationMode: false,
301
- stats: {
302
- totalProducts: 0,
303
- itemsSold: 34,
304
- totalReviews: 19,
305
- averageRating: 4.9,
306
- },
307
- capabilities: ["suggest_brands", "create_coupons", "featured_placement"],
308
- createdAt: daysAgo(200),
309
- updatedAt: daysAgo(3),
344
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 2, averageRating: 4.7 },
345
+ capabilities: ["host_preorders", "create_coupons", "suggest_brands"],
346
+ createdAt: daysAgo(90),
347
+ updatedAt: daysAgo(6),
310
348
  },
311
349
  ];