@mohasinac/appkit 3.5.2 → 3.5.4

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 (70) hide show
  1. package/dist/features/homepage/components/CustomCardsSection.js +1 -1
  2. package/dist/features/homepage/components/SectionCarousel.js +1 -1
  3. package/dist/features/seller/components/CategoryInlineSelect.d.ts +1 -1
  4. package/dist/features/seller/components/CategoryInlineSelect.js +1 -1
  5. package/dist/react/hooks/useBulkSelection.js +12 -3
  6. package/dist/react/hooks/useGesture.js +48 -4
  7. package/dist/react/hooks/useLongPress.d.ts +1 -0
  8. package/dist/react/hooks/useLongPress.js +5 -0
  9. package/dist/react/hooks/usePullToRefresh.js +12 -1
  10. package/dist/react/hooks/useRealtimeEvent.js +18 -1
  11. package/dist/react/hooks/useSwipe.js +14 -0
  12. package/dist/seed/addresses-seed-data.js +8 -99
  13. package/dist/seed/categories-seed-data.js +103 -2082
  14. package/dist/seed/homepage-sections-seed-data.js +9 -9
  15. package/dist/seed/products-art-seed-data.d.ts +1 -10
  16. package/dist/seed/products-art-seed-data.js +13 -122
  17. package/dist/seed/products-auctions-seed-data.js +39 -747
  18. package/dist/seed/products-classifieds-seed-data.d.ts +1 -9
  19. package/dist/seed/products-classifieds-seed-data.js +13 -195
  20. package/dist/seed/products-digital-codes-seed-data.d.ts +1 -9
  21. package/dist/seed/products-digital-codes-seed-data.js +13 -202
  22. package/dist/seed/products-live-items-seed-data.d.ts +1 -12
  23. package/dist/seed/products-live-items-seed-data.js +13 -188
  24. package/dist/seed/products-preorders-seed-data.js +18 -149
  25. package/dist/seed/products-prize-draws-seed-data.d.ts +1 -16
  26. package/dist/seed/products-prize-draws-seed-data.js +13 -385
  27. package/dist/seed/products-standard-seed-data.js +152 -1331
  28. package/dist/seed/products-stickers-seed-data.d.ts +1 -10
  29. package/dist/seed/products-stickers-seed-data.js +13 -122
  30. package/dist/seed/site-settings-seed-data.js +106 -108
  31. package/dist/seed/store-addresses-seed-data.js +14 -46
  32. package/dist/seed/stores-seed-data.js +13 -205
  33. package/dist/styles.css +19 -18
  34. package/dist/tailwind-utilities.css +1 -1
  35. package/dist/ui/components/BaseListingCard.d.ts +2 -1
  36. package/dist/ui/components/BaseListingCard.js +4 -5
  37. package/dist/ui/components/BulkActionBar.style.css +4 -4
  38. package/dist/ui/components/Button.js +52 -22
  39. package/dist/ui/components/Button.style.css +14 -13
  40. package/dist/ui/components/DateInput.js +1 -0
  41. package/dist/ui/components/DynamicBgDiv.js +8 -6
  42. package/dist/ui/components/FormField.js +1 -1
  43. package/dist/ui/components/HorizontalScroller.js +35 -16
  44. package/dist/ui/components/Iframe.d.ts +8 -1
  45. package/dist/ui/components/Layout.d.ts +4 -4
  46. package/dist/ui/components/Layout.js +8 -8
  47. package/dist/ui/components/ListingToolbar.js +4 -4
  48. package/dist/ui/components/Motion.js +4 -1
  49. package/dist/ui/components/OtpInput.js +1 -1
  50. package/dist/ui/components/PaginatedSelect.js +29 -3
  51. package/dist/ui/components/Pagination.js +10 -5
  52. package/dist/ui/components/RichTextEditor.js +64 -3
  53. package/dist/ui/components/Select.js +1 -0
  54. package/dist/ui/components/Semantic.d.ts +10 -10
  55. package/dist/ui/components/Semantic.js +25 -25
  56. package/dist/ui/components/SideDrawer.js +13 -11
  57. package/dist/ui/components/SideModal.js +9 -7
  58. package/dist/ui/components/SlottedListingView.d.ts +13 -2
  59. package/dist/ui/components/StickyToolbar.js +9 -5
  60. package/dist/ui/components/TagInput.js +15 -2
  61. package/dist/ui/components/Textarea.js +1 -0
  62. package/dist/ui/components/Toggle.js +8 -1
  63. package/dist/ui/components/UnsavedChangesModal.js +12 -1
  64. package/dist/ui/forms/ColorPickerField.js +7 -0
  65. package/dist/ui/forms/FieldCheckbox.js +1 -1
  66. package/dist/utils/id-generators.d.ts +7 -4
  67. package/dist/utils/id-generators.js +53 -31
  68. package/dist/utils/number.formatter.js +19 -6
  69. package/dist/utils/string.formatter.js +4 -1
  70. package/package.json +1 -1
@@ -1,191 +1,16 @@
1
- /**
2
- * Live-Item Products Seed Data Yu-Gi-Oh! Themed Aquatics (SB-UNI-K)
1
+ /*
2
+ * WHY: Live-item listings are out of scope for the minimal Beyblade-focused demo catalog.
3
+ * WHAT: Exports an empty array — kept as a stub so seed/index.ts and the seed API route's
4
+ * SEED_DATA_MAP.products concatenation keep working without a code change elsewhere.
3
5
  *
4
- * Stored as ProductDocument with listingType: "live". These items require
5
- * vendor verification and jurisdiction checks at add-to-cart.
6
+ * EXPORTS:
7
+ * productsLiveItemsSeedData empty array
6
8
  *
7
- * Theme: Collectible aquatic species named/themed after Yu-Gi-Oh! monsters.
8
- * (The marketplace supports live animals/plants alongside cards.)
9
- *
10
- * Prices in INR paise (₹1 = 100 paise).
9
+ * @tag domain:products,live-items
10
+ * @tag layer:seed
11
+ * @tag pattern:none
12
+ * @tag access:server-only
13
+ * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
14
+ * @tag sideEffects:none
11
15
  */
12
- import { PRODUCT_FIELDS } from "../constants/field-names";
13
- import { buildSearchTokens } from "../utils/search-tokens";
14
- import { seedExtMedia } from "./_helpers/media";
15
- function withTokens(p) {
16
- return {
17
- tags: [],
18
- featured: false,
19
- ...p,
20
- searchTokens: buildSearchTokens(p.title, p.description, p.brand, p.brandSlug, p.categoryNames, p.tags, p.features, p.condition),
21
- };
22
- }
23
- const NOW = new Date();
24
- const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
25
- const _rawLiveItemsSeedData = [
26
- {
27
- id: "live-blue-eyes-koi-albino",
28
- slug: "live-blue-eyes-koi-albino",
29
- title: "\"Blue-Eyes\" Platinum Ogon Koi — 18 cm, 8 months",
30
- description: "Stunning platinum ogon koi named after the legendary Blue-Eyes White Dragon. Bright white body with a faint blue sheen under sunlight. Healthy, eats pellets eagerly. Certified disease-free by Aqua Vet India. Specialist courier with oxygen bag + heat pack.",
31
- categorySlugs: ["category-live-aquatics"],
32
- categoryNames: ["Live Aquatics"],
33
- brand: undefined,
34
- brandSlug: undefined,
35
- price: 850000,
36
- currency: "INR",
37
- stockQuantity: 1,
38
- availableQuantity: 1,
39
- mainImage: seedExtMedia("https://images.unsplash.com/photo-1583212292454-1fe6229603b7?w=800&h=800&fit=crop"),
40
- images: [
41
- seedExtMedia("https://images.unsplash.com/photo-1583212292454-1fe6229603b7?w=800&h=800&fit=crop"),
42
- ],
43
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
44
- storeId: "store-letitrip-official",
45
- storeName: "LetItRip Official",
46
- tags: ["koi", "live", "aquatics", "blue-eyes", "platinum-ogon", "certified"],
47
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
48
- liveItem: {
49
- species: "Cyprinus rubrofuscus (Platinum Ogon variety)",
50
- ageMonths: 8,
51
- sex: "unknown",
52
- careInfo: "Requires pond or 500+ litre tank. pH 7.0–8.0, temp 15–25°C. Feed high-protein koi pellets 2× daily. Weekly 20% water changes.",
53
- transport: {
54
- method: "specialist",
55
- handlingFeeInPaise: 50000,
56
- insuranceIncluded: true,
57
- },
58
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-TN", "IN-KL", "IN-AP", "IN-TG", "IN-GA", "IN-GJ", "IN-DL"],
59
- vendorVerified: true,
60
- },
61
- shippingInfo: "Specialist live-fish courier. 24-hour delivery guarantee within allowed states. DOA refund policy applies.",
62
- allowOffers: false,
63
- createdAt: daysAgo(6),
64
- updatedAt: daysAgo(2),
65
- },
66
- {
67
- id: "live-red-eyes-betta-halfmoon",
68
- slug: "live-red-eyes-betta-halfmoon",
69
- title: "\"Red-Eyes\" Black Halfmoon Betta — Male, 5 months",
70
- description: "Deep black halfmoon betta with red eye flash — our Red-Eyes Black Dragon homage. Flares beautifully, perfect finnage spread >180°. Bred in-house, never medicated. Ships in insulated box with breather bag.",
71
- categorySlugs: ["category-live-aquatics"],
72
- categoryNames: ["Live Aquatics"],
73
- brand: undefined,
74
- brandSlug: undefined,
75
- price: 120000,
76
- currency: "INR",
77
- stockQuantity: 3,
78
- availableQuantity: 3,
79
- mainImage: seedExtMedia("https://images.unsplash.com/photo-1520302519878-3c0a981b76e1?w=800&h=800&fit=crop"),
80
- images: [
81
- seedExtMedia("https://images.unsplash.com/photo-1520302519878-3c0a981b76e1?w=800&h=800&fit=crop"),
82
- ],
83
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
84
- storeId: "store-letitrip-official",
85
- storeName: "LetItRip Official",
86
- tags: ["betta", "live", "aquatics", "red-eyes", "halfmoon", "male"],
87
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
88
- liveItem: {
89
- species: "Betta splendens (Black Halfmoon variety)",
90
- ageMonths: 5,
91
- sex: "male",
92
- careInfo: "Solo housing required — males are aggressive. Min 10 litre heated tank (26–28°C). Feed betta pellets + occasional bloodworms.",
93
- transport: {
94
- method: "courier",
95
- handlingFeeInPaise: 15000,
96
- insuranceIncluded: true,
97
- },
98
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-TN", "IN-KL", "IN-AP", "IN-TG", "IN-GA", "IN-GJ", "IN-DL", "IN-RJ", "IN-UP", "IN-WB"],
99
- vendorVerified: true,
100
- },
101
- shippingInfo: "Express courier with insulated packaging. 48-hour delivery. Full refund on DOA with photo proof.",
102
- allowOffers: false,
103
- createdAt: daysAgo(4),
104
- updatedAt: daysAgo(1),
105
- },
106
- {
107
- id: "live-kuriboh-pom-pom-crab",
108
- slug: "live-kuriboh-pom-pom-crab",
109
- title: "\"Kuriboh\" Pom Pom Crab — Freshwater, captive-bred",
110
- description: "Adorable freshwater pom pom crab that looks just like Kuriboh! Carries tiny anemone-like growths on its claws. Peaceful community tank species. Captive-bred, quarantined 14 days.",
111
- categorySlugs: ["category-live-aquatics"],
112
- categoryNames: ["Live Aquatics"],
113
- brand: undefined,
114
- brandSlug: undefined,
115
- price: 45000,
116
- currency: "INR",
117
- stockQuantity: 8,
118
- availableQuantity: 8,
119
- mainImage: seedExtMedia("https://images.unsplash.com/photo-1559827260-dc66d52bef19?w=800&h=800&fit=crop"),
120
- images: [
121
- seedExtMedia("https://images.unsplash.com/photo-1559827260-dc66d52bef19?w=800&h=800&fit=crop"),
122
- ],
123
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
124
- storeId: "store-kaiba-corp-cards",
125
- storeName: "Kaiba Corp Card Vault",
126
- tags: ["crab", "live", "aquatics", "kuriboh", "pom-pom", "freshwater"],
127
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
128
- liveItem: {
129
- species: "Ptychognathus barbatus (Pom Pom Crab)",
130
- ageMonths: 3,
131
- sex: "unknown",
132
- careInfo: "Freshwater, fully aquatic. Min 20 litre tank with hiding spots. Temp 22–26°C, pH 7.0–7.5. Feed sinking pellets + blanched veg.",
133
- transport: {
134
- method: "courier",
135
- handlingFeeInPaise: 10000,
136
- insuranceIncluded: false,
137
- },
138
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-TN", "IN-KL", "IN-AP", "IN-TG", "IN-DL", "IN-GJ"],
139
- vendorVerified: true,
140
- },
141
- shippingInfo: "Standard courier with damp moss packaging. Ships Mon–Wed only for safe delivery.",
142
- allowOffers: false,
143
- createdAt: daysAgo(3),
144
- updatedAt: daysAgo(1),
145
- },
146
- {
147
- id: "live-dark-magician-axolotl-melanoid",
148
- slug: "live-dark-magician-axolotl-melanoid",
149
- title: "\"Dark Magician\" Melanoid Axolotl — 12 cm, 6 months",
150
- description: "Deep purple-black melanoid axolotl — our Dark Magician tribute. Healthy, eating bloodworms and pellets. Captive-bred, CITES-exempt (Ambystoma mexicanum is Appendix II but captive-bred stock is exempt under Indian regulations).",
151
- categorySlugs: ["category-live-aquatics"],
152
- categoryNames: ["Live Aquatics"],
153
- brand: undefined,
154
- brandSlug: undefined,
155
- price: 350000,
156
- currency: "INR",
157
- stockQuantity: 2,
158
- availableQuantity: 2,
159
- mainImage: seedExtMedia("https://images.unsplash.com/photo-1585095595205-e68428a9e205?w=800&h=800&fit=crop"),
160
- images: [
161
- seedExtMedia("https://images.unsplash.com/photo-1585095595205-e68428a9e205?w=800&h=800&fit=crop"),
162
- ],
163
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
164
- storeId: "store-letitrip-official",
165
- storeName: "LetItRip Official",
166
- tags: ["axolotl", "live", "aquatics", "dark-magician", "melanoid", "captive-bred"],
167
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
168
- liveItem: {
169
- species: "Ambystoma mexicanum (Melanoid morph)",
170
- ageMonths: 6,
171
- sex: "unknown",
172
- careInfo: "Cool water species — temp 16–20°C (chiller required in most Indian cities). Min 75 litre tank, no gravel substrate. Feed earthworms, bloodworms, pellets.",
173
- transport: {
174
- method: "specialist",
175
- handlingFeeInPaise: 30000,
176
- insuranceIncluded: true,
177
- },
178
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-TN", "IN-KL", "IN-DL"],
179
- vendorVerified: true,
180
- cites: "CB-AX-2026-0042",
181
- },
182
- shippingInfo: "Specialist cold-chain courier with ice packs. 24-hour delivery only. DOA + 48-hour health guarantee.",
183
- allowOffers: false,
184
- createdAt: daysAgo(5),
185
- updatedAt: daysAgo(1),
186
- },
187
- ];
188
- export const productsLiveItemsSeedData = _rawLiveItemsSeedData.map((p) => withTokens({
189
- ...p,
190
- listingType: "live",
191
- }));
16
+ export const productsLiveItemsSeedData = [];
@@ -1,9 +1,10 @@
1
1
  /*
2
- * WHY: Seeds pre-order product listings for the YGO marketplace, allowing customers to reserve upcoming releases with deposit payments.
3
- * WHAT: Exports 5 pre-order products (25th Anniversary LOB reprint, GX Tournament Pack 2026, Blue-Eyes Collector Tin, Dark Magician Structure Deck, Master Duel Promo Bundle). All in Kaiba Corp Card Vault. Delivery dates range +30 to +120 days from seed time. Deposit percentages 25% standard. Production status ranges from "upcoming" to "in_production". Images from YGOPRODECK free API. Status: 3 published, 2 draft.
2
+ * WHY: Seeds a minimal pre-order listing for the demo Beyblade catalog.
3
+ * WHAT: Exports 1 pre-order product (Beyblade X seasonal wave) with listingType:"pre-order",
4
+ * from the Beyblade Arena store.
4
5
  *
5
6
  * EXPORTS:
6
- * productsPreordersSeedData — Array of 5 pre-order products with listingType:"pre-order"
7
+ * productsPreordersSeedData — Array of 1 pre-order product with listingType:"pre-order"
7
8
  *
8
9
  * @tag domain:products,pre-orders
9
10
  * @tag layer:seed
@@ -15,28 +16,24 @@
15
16
  import { PRODUCT_FIELDS } from "../constants/field-names";
16
17
  import { buildSearchTokens } from "../utils/search-tokens";
17
18
  import { seedExtMedia } from "./_helpers/media";
18
- // Card ID mappings for YGOPRODECK image API
19
- const CARD_IDS = {
20
- blueEyesWhiteDragon: 89631139,
21
- darkMagician: 46986414,
22
- elementalHeroNeos: 89943723,
23
- };
24
19
  const _rawPreordersSeedData = [
25
20
  {
26
- id: "preorder-25th-anniversary-lob",
27
- storeId: "store-kaiba-corp-cards",
28
- brandSlug: "brand-konami",
29
- title: "25th Anniversary LOB Reprint",
30
- slug: "preorder-25th-anniversary-lob",
31
- description: "Highly anticipated 25th Anniversary reprint of the classic Legend of Blue Eyes White Dragon booster set. Limited production run. Secure your allocation now.",
32
- price: 299900, // ₹2,999
21
+ id: "preorder-beyblade-x-bx-08-wave",
22
+ storeId: "store-beyblade-arena",
23
+ brandSlug: "brand-takara-tomy",
24
+ title: "Beyblade X BX-08 Booster — Next Wave",
25
+ slug: "preorder-beyblade-x-bx-08-wave",
26
+ description: "Reserve the next Beyblade X booster wave (BX-08) ahead of its India release. Includes randomized top + Xtreme Gear accessory.",
27
+ price: 79900, // ₹799
33
28
  currency: "INR",
34
29
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
35
30
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
36
31
  listingType: "pre-order",
37
- categorySlugs: ["category-sealed-products", "category-booster-boxes"],
32
+ categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
33
+ categoryNames: ["Beyblade X", "Spinning Tops"],
34
+ brand: "Takara-Tomy",
38
35
  images: [
39
- seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
36
+ seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-08-wave-1-20260101/900/900"),
40
37
  ],
41
38
  isSold: false,
42
39
  availableQuantity: 1,
@@ -45,143 +42,15 @@ const _rawPreordersSeedData = [
45
42
  featured: false,
46
43
  isPromoted: false,
47
44
  isOnSale: false,
48
- preOrderDeliveryDate: new Date(Date.now() + 90 * 24 * 60 * 60 * 1000), // +90 days
49
- preOrderProductionStatus: "in_production",
50
- preOrderDepositPercent: 25,
51
- preOrderMaxQuantity: 100,
52
- preOrderCurrentCount: 42,
53
- preOrderCancellable: true,
54
- createdAt: new Date(Date.now() - 14 * 24 * 60 * 60 * 1000), // -14 days
55
- updatedAt: new Date(),
56
- },
57
- {
58
- id: "preorder-gx-tournament-pack-2026",
59
- storeId: "store-kaiba-corp-cards",
60
- brandSlug: "brand-konami",
61
- title: "GX Tournament Pack 2026",
62
- slug: "preorder-gx-tournament-pack-2026",
63
- description: "Official tournament pack from Konami featuring exclusive GX era promos and tournament-legal deck staples. Perfect for competitive players.",
64
- price: 199900, // ₹1,999
65
- currency: "INR",
66
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
67
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
68
- listingType: "pre-order",
69
- categorySlugs: ["category-sealed-products", "category-booster-packs"],
70
- images: [
71
- seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.elementalHeroNeos}.jpg`),
72
- ],
73
- isSold: false,
74
- availableQuantity: 1,
75
- customFields: [],
76
- customSections: [],
77
- featured: false,
78
- isPromoted: false,
79
- isOnSale: false,
80
- preOrderDeliveryDate: new Date(Date.now() + 60 * 24 * 60 * 60 * 1000), // +60 days
81
- preOrderProductionStatus: "upcoming",
82
- preOrderDepositPercent: 25,
83
- preOrderMaxQuantity: 150,
84
- preOrderCurrentCount: 67,
85
- preOrderCancellable: true,
86
- createdAt: new Date(Date.now() - 21 * 24 * 60 * 60 * 1000), // -21 days
87
- updatedAt: new Date(),
88
- },
89
- {
90
- id: "preorder-blue-eyes-collector-tin",
91
- storeId: "store-kaiba-corp-cards",
92
- brandSlug: "brand-konami",
93
- title: "Blue-Eyes Collector Tin 2026",
94
- slug: "preorder-blue-eyes-collector-tin",
95
- description: "Premium collector's edition tin featuring Blue-Eyes artwork and exclusive foil promos. Mint condition guaranteed on delivery.",
96
- price: 399900, // ₹3,999
97
- currency: "INR",
98
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
99
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
100
- listingType: "pre-order",
101
- categorySlugs: ["category-sealed-products", "category-collector-tins"],
102
- images: [
103
- seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
104
- ],
105
- isSold: false,
106
- availableQuantity: 1,
107
- customFields: [],
108
- customSections: [],
109
- featured: true,
110
- isPromoted: false,
111
- isOnSale: false,
112
45
  preOrderDeliveryDate: new Date(Date.now() + 45 * 24 * 60 * 60 * 1000), // +45 days
113
46
  preOrderProductionStatus: "in_production",
114
47
  preOrderDepositPercent: 25,
115
- preOrderMaxQuantity: 200,
116
- preOrderCurrentCount: 156,
117
- preOrderCancellable: true,
118
- createdAt: new Date(Date.now() - 28 * 24 * 60 * 60 * 1000), // -28 days
119
- updatedAt: new Date(),
120
- },
121
- {
122
- id: "preorder-dark-magician-struct-2026",
123
- storeId: "store-kaiba-corp-cards",
124
- brandSlug: "brand-konami",
125
- title: "Dark Magician Structure Deck 2026",
126
- slug: "preorder-dark-magician-struct-2026",
127
- description: "Definitive Dark Magician structure deck for 2026 with updated support cards and powerful synergies. Perfect starter deck for new players.",
128
- price: 149900, // ₹1,499
129
- currency: "INR",
130
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
131
- status: PRODUCT_FIELDS.STATUS_VALUES.DRAFT,
132
- listingType: "pre-order",
133
- categorySlugs: ["category-sealed-products", "category-starter-structure"],
134
- images: [
135
- seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.darkMagician}.jpg`),
136
- ],
137
- isSold: false,
138
- availableQuantity: 1,
139
- customFields: [],
140
- customSections: [],
141
- featured: false,
142
- isPromoted: false,
143
- isOnSale: false,
144
- preOrderDeliveryDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000), // +30 days
145
- preOrderProductionStatus: "upcoming",
146
- preOrderDepositPercent: 25,
147
- preOrderMaxQuantity: 250,
148
- preOrderCurrentCount: 89,
48
+ preOrderMaxQuantity: 100,
49
+ preOrderCurrentCount: 18,
149
50
  preOrderCancellable: true,
150
51
  createdAt: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000), // -7 days
151
52
  updatedAt: new Date(),
152
53
  },
153
- {
154
- id: "preorder-master-duel-promo-bundle",
155
- storeId: "store-kaiba-corp-cards",
156
- brandSlug: "brand-konami",
157
- title: "Master Duel Promo Physical Bundle",
158
- slug: "preorder-master-duel-promo-bundle",
159
- description: "Exclusive physical bundle of cards obtained from Master Duel game rewards. Ultra-rare promotional cards in premium condition.",
160
- price: 499900, // ₹4,999
161
- currency: "INR",
162
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
163
- status: PRODUCT_FIELDS.STATUS_VALUES.DRAFT,
164
- listingType: "pre-order",
165
- categorySlugs: ["category-sealed-products", "category-booster-boxes"],
166
- images: [
167
- seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.elementalHeroNeos}.jpg`),
168
- ],
169
- isSold: false,
170
- availableQuantity: 1,
171
- customFields: [],
172
- customSections: [],
173
- featured: false,
174
- isPromoted: true,
175
- isOnSale: false,
176
- preOrderDeliveryDate: new Date(Date.now() + 120 * 24 * 60 * 60 * 1000), // +120 days
177
- preOrderProductionStatus: "upcoming",
178
- preOrderDepositPercent: 25,
179
- preOrderMaxQuantity: 75,
180
- preOrderCurrentCount: 34,
181
- preOrderCancellable: true,
182
- createdAt: new Date(Date.now() - 35 * 24 * 60 * 60 * 1000), // -35 days
183
- updatedAt: new Date(),
184
- },
185
54
  ];
186
55
  export const productsPreordersSeedData = _rawPreordersSeedData.map((p) => ({
187
56
  tags: [],
@@ -189,5 +58,5 @@ export const productsPreordersSeedData = _rawPreordersSeedData.map((p) => ({
189
58
  mainImage: p.images?.[0] ?? "",
190
59
  ...p,
191
60
  listingType: "pre-order",
192
- searchTokens: buildSearchTokens(p.title, p.description, p.brand, p.brandSlug, p.categoryNames, p.tags, p.features, p.condition, p.card?.setName, p.card?.cardNumber, p.specifications?.map((s) => `${s.name} ${s.value}`)),
61
+ searchTokens: buildSearchTokens(p.title, p.description, p.brand, p.brandSlug, p.categoryNames, p.tags, p.features, p.condition, p.specifications?.map((s) => `${s.name} ${s.value}`)),
193
62
  }));
@@ -1,17 +1,2 @@
1
- /**
2
- * Prize-Draw Products Seed Data — Collectibles Edition (SB5-E)
3
- *
4
- * Stored as ProductDocument with listingType: "prize-draw". Each draw lists
5
- * 3–16 PrizeDrawItem entries; one is revealed per paid order via crypto.randomInt
6
- * during the reveal window (see /api/prize-draws/[id]/reveal, SB4-H).
7
- *
8
- * Prices in INR paise (₹1 = 100 paise).
9
- */
10
- import type { ProductDocument } from "../features/products/schemas";
11
- /**
12
- * SB1-G Phase 4 — every prize-draw is stamped with `listingType: "prize-draw"`.
13
- * Mirrors the wrapper pattern used in
14
- * `products-standard-seed-data.ts` / `products-auctions-seed-data.ts` /
15
- * `products-preorders-seed-data.ts`.
16
- */
1
+ import { ProductDocument } from "../features/products/schemas/firestore";
17
2
  export declare const productsPrizeDrawsSeedData: Partial<ProductDocument>[];