@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.
- package/dist/features/homepage/components/CustomCardsSection.js +1 -1
- package/dist/features/homepage/components/SectionCarousel.js +1 -1
- package/dist/features/seller/components/CategoryInlineSelect.d.ts +1 -1
- package/dist/features/seller/components/CategoryInlineSelect.js +1 -1
- package/dist/react/hooks/useBulkSelection.js +12 -3
- package/dist/react/hooks/useGesture.js +48 -4
- package/dist/react/hooks/useLongPress.d.ts +1 -0
- package/dist/react/hooks/useLongPress.js +5 -0
- package/dist/react/hooks/usePullToRefresh.js +12 -1
- package/dist/react/hooks/useRealtimeEvent.js +18 -1
- package/dist/react/hooks/useSwipe.js +14 -0
- package/dist/seed/addresses-seed-data.js +8 -99
- package/dist/seed/categories-seed-data.js +103 -2082
- package/dist/seed/homepage-sections-seed-data.js +9 -9
- package/dist/seed/products-art-seed-data.d.ts +1 -10
- package/dist/seed/products-art-seed-data.js +13 -122
- package/dist/seed/products-auctions-seed-data.js +39 -747
- package/dist/seed/products-classifieds-seed-data.d.ts +1 -9
- package/dist/seed/products-classifieds-seed-data.js +13 -195
- package/dist/seed/products-digital-codes-seed-data.d.ts +1 -9
- package/dist/seed/products-digital-codes-seed-data.js +13 -202
- package/dist/seed/products-live-items-seed-data.d.ts +1 -12
- package/dist/seed/products-live-items-seed-data.js +13 -188
- package/dist/seed/products-preorders-seed-data.js +18 -149
- package/dist/seed/products-prize-draws-seed-data.d.ts +1 -16
- package/dist/seed/products-prize-draws-seed-data.js +13 -385
- package/dist/seed/products-standard-seed-data.js +152 -1331
- package/dist/seed/products-stickers-seed-data.d.ts +1 -10
- package/dist/seed/products-stickers-seed-data.js +13 -122
- package/dist/seed/site-settings-seed-data.js +106 -108
- package/dist/seed/store-addresses-seed-data.js +14 -46
- package/dist/seed/stores-seed-data.js +13 -205
- package/dist/styles.css +19 -18
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/BaseListingCard.d.ts +2 -1
- package/dist/ui/components/BaseListingCard.js +4 -5
- package/dist/ui/components/BulkActionBar.style.css +4 -4
- package/dist/ui/components/Button.js +52 -22
- package/dist/ui/components/Button.style.css +14 -13
- package/dist/ui/components/DateInput.js +1 -0
- package/dist/ui/components/DynamicBgDiv.js +8 -6
- package/dist/ui/components/FormField.js +1 -1
- package/dist/ui/components/HorizontalScroller.js +35 -16
- package/dist/ui/components/Iframe.d.ts +8 -1
- package/dist/ui/components/Layout.d.ts +4 -4
- package/dist/ui/components/Layout.js +8 -8
- package/dist/ui/components/ListingToolbar.js +4 -4
- package/dist/ui/components/Motion.js +4 -1
- package/dist/ui/components/OtpInput.js +1 -1
- package/dist/ui/components/PaginatedSelect.js +29 -3
- package/dist/ui/components/Pagination.js +10 -5
- package/dist/ui/components/RichTextEditor.js +64 -3
- package/dist/ui/components/Select.js +1 -0
- package/dist/ui/components/Semantic.d.ts +10 -10
- package/dist/ui/components/Semantic.js +25 -25
- package/dist/ui/components/SideDrawer.js +13 -11
- package/dist/ui/components/SideModal.js +9 -7
- package/dist/ui/components/SlottedListingView.d.ts +13 -2
- package/dist/ui/components/StickyToolbar.js +9 -5
- package/dist/ui/components/TagInput.js +15 -2
- package/dist/ui/components/Textarea.js +1 -0
- package/dist/ui/components/Toggle.js +8 -1
- package/dist/ui/components/UnsavedChangesModal.js +12 -1
- package/dist/ui/forms/ColorPickerField.js +7 -0
- package/dist/ui/forms/FieldCheckbox.js +1 -1
- package/dist/utils/id-generators.d.ts +7 -4
- package/dist/utils/id-generators.js +53 -31
- package/dist/utils/number.formatter.js +19 -6
- package/dist/utils/string.formatter.js +4 -1
- package/package.json +1 -1
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Classified Products Seed Data — Yu-Gi-Oh! Theme (SB-UNI-I)
|
|
3
|
-
*
|
|
4
|
-
* Stored as ProductDocument with listingType: "classified". These are
|
|
5
|
-
* meetup/local-sale items — no cart flow, CTA routes to chat.
|
|
6
|
-
*
|
|
7
|
-
* Prices in INR paise (₹1 = 100 paise).
|
|
8
|
-
*/
|
|
9
|
-
import type { ProductDocument } from "../features/products/schemas/firestore";
|
|
1
|
+
import { ProductDocument } from "../features/products/schemas/firestore";
|
|
10
2
|
export declare const productsClassifiedsSeedData: Partial<ProductDocument>[];
|
|
@@ -1,198 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
* Classified
|
|
1
|
+
/*
|
|
2
|
+
* WHY: Classified 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
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* EXPORTS:
|
|
7
|
+
* productsClassifiedsSeedData — empty array
|
|
6
8
|
*
|
|
7
|
-
*
|
|
9
|
+
* @tag domain:products,classifieds
|
|
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
|
|
8
15
|
*/
|
|
9
|
-
|
|
10
|
-
import { buildSearchTokens } from "../utils/search-tokens";
|
|
11
|
-
import { seedExtMedia } from "./_helpers/media";
|
|
12
|
-
function withTokens(p) {
|
|
13
|
-
return {
|
|
14
|
-
tags: [],
|
|
15
|
-
featured: false,
|
|
16
|
-
...p,
|
|
17
|
-
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.grading?.service, p.specifications?.map((s) => `${s.name} ${s.value}`)),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
const CARD_IDS = {
|
|
21
|
-
blueEyesWhiteDragon: 89631139,
|
|
22
|
-
darkMagician: 46986414,
|
|
23
|
-
exodiaHead: 33396948,
|
|
24
|
-
jinzo: 77585513,
|
|
25
|
-
busterBlader: 78193831,
|
|
26
|
-
kuriboh: 40640057,
|
|
27
|
-
gaiaFierceKnight: 6368038,
|
|
28
|
-
potOfGreed: 55144522,
|
|
29
|
-
};
|
|
30
|
-
const NOW = new Date();
|
|
31
|
-
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
32
|
-
const _rawClassifiedsSeedData = [
|
|
33
|
-
{
|
|
34
|
-
id: "classified-blue-eyes-lot-mumbai",
|
|
35
|
-
slug: "classified-blue-eyes-lot-mumbai",
|
|
36
|
-
title: "Blue-Eyes White Dragon Lot — 3 NM copies, meetup Mumbai",
|
|
37
|
-
description: "Selling 3 near-mint Blue-Eyes White Dragon (SDK-001) from my personal binder. All Ultra Rare, English, unlimited. Prefer meetup near Andheri station; can ship if buyer covers postage. Price negotiable for the lot.",
|
|
38
|
-
categorySlugs: ["category-singles"],
|
|
39
|
-
categoryNames: ["Singles"],
|
|
40
|
-
brand: "Konami",
|
|
41
|
-
brandSlug: "brand-konami",
|
|
42
|
-
price: 450000,
|
|
43
|
-
currency: "INR",
|
|
44
|
-
stockQuantity: 1,
|
|
45
|
-
availableQuantity: 1,
|
|
46
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
47
|
-
images: [
|
|
48
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
49
|
-
],
|
|
50
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
51
|
-
storeId: "store-kaiba-corp-cards",
|
|
52
|
-
storeName: "Kaiba Corp Card Vault",
|
|
53
|
-
tags: ["blue-eyes", "classified", "meetup", "mumbai", "lot", "nm"],
|
|
54
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
55
|
-
classified: {
|
|
56
|
-
meetupArea: { city: "Mumbai", locality: "Andheri West", pincode: "400058" },
|
|
57
|
-
contactMethod: "both",
|
|
58
|
-
acceptsShipping: true,
|
|
59
|
-
negotiable: true,
|
|
60
|
-
},
|
|
61
|
-
allowOffers: false,
|
|
62
|
-
createdAt: daysAgo(3),
|
|
63
|
-
updatedAt: daysAgo(1),
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: "classified-exodia-set-bangalore",
|
|
67
|
-
slug: "classified-exodia-set-bangalore",
|
|
68
|
-
title: "Complete Exodia Set — LP, Bangalore meetup only",
|
|
69
|
-
description: "All 5 pieces of Exodia (LOB) in lightly played condition. No shipping — meetup only near Koramangala or MG Road. Cash or UPI accepted.",
|
|
70
|
-
categorySlugs: ["category-singles"],
|
|
71
|
-
categoryNames: ["Singles"],
|
|
72
|
-
brand: "Konami",
|
|
73
|
-
brandSlug: "brand-konami",
|
|
74
|
-
price: 1200000,
|
|
75
|
-
currency: "INR",
|
|
76
|
-
stockQuantity: 1,
|
|
77
|
-
availableQuantity: 1,
|
|
78
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.exodiaHead}.jpg`),
|
|
79
|
-
images: [
|
|
80
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.exodiaHead}.jpg`),
|
|
81
|
-
],
|
|
82
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
83
|
-
storeId: "store-letitrip-official",
|
|
84
|
-
storeName: "LetItRip Official",
|
|
85
|
-
tags: ["exodia", "classified", "meetup", "bangalore", "complete-set"],
|
|
86
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
87
|
-
classified: {
|
|
88
|
-
meetupArea: { city: "Bangalore", locality: "Koramangala", pincode: "560034" },
|
|
89
|
-
contactMethod: "chat",
|
|
90
|
-
acceptsShipping: false,
|
|
91
|
-
negotiable: false,
|
|
92
|
-
},
|
|
93
|
-
allowOffers: false,
|
|
94
|
-
createdAt: daysAgo(5),
|
|
95
|
-
updatedAt: daysAgo(2),
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: "classified-jinzo-vintage-delhi",
|
|
99
|
-
slug: "classified-jinzo-vintage-delhi",
|
|
100
|
-
title: "Jinzo PSV-000 Secret Rare — Delhi NCR meetup",
|
|
101
|
-
description: "Vintage Jinzo Secret Rare from Pharaoh's Servant (PSV-000). Card is moderately played with minor edge wear. Great for a binder display piece. Meetup anywhere in Delhi NCR.",
|
|
102
|
-
categorySlugs: ["category-singles"],
|
|
103
|
-
categoryNames: ["Singles"],
|
|
104
|
-
brand: "Konami",
|
|
105
|
-
brandSlug: "brand-konami",
|
|
106
|
-
price: 350000,
|
|
107
|
-
currency: "INR",
|
|
108
|
-
stockQuantity: 1,
|
|
109
|
-
availableQuantity: 1,
|
|
110
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.jinzo}.jpg`),
|
|
111
|
-
images: [
|
|
112
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.jinzo}.jpg`),
|
|
113
|
-
],
|
|
114
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
115
|
-
storeId: "store-kaiba-corp-cards",
|
|
116
|
-
storeName: "Kaiba Corp Card Vault",
|
|
117
|
-
tags: ["jinzo", "classified", "meetup", "delhi", "vintage", "secret-rare"],
|
|
118
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
119
|
-
classified: {
|
|
120
|
-
meetupArea: { city: "Delhi", locality: "Connaught Place" },
|
|
121
|
-
contactMethod: "both",
|
|
122
|
-
acceptsShipping: false,
|
|
123
|
-
negotiable: true,
|
|
124
|
-
},
|
|
125
|
-
allowOffers: false,
|
|
126
|
-
createdAt: daysAgo(7),
|
|
127
|
-
updatedAt: daysAgo(3),
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
id: "classified-binder-collection-hyderabad",
|
|
131
|
-
slug: "classified-binder-collection-hyderabad",
|
|
132
|
-
title: "200+ YGO Bulk Lot — Binder clearout, Hyderabad",
|
|
133
|
-
description: "Clearing my old binder: 200+ cards from LOB, MRD, PSV, and SDK. Mostly commons and rares, a few holos sprinkled in. Perfect for beginners building a collection. Meetup preferred, can ship COD within Telangana.",
|
|
134
|
-
categorySlugs: ["category-sealed-products"],
|
|
135
|
-
categoryNames: ["Sealed Products"],
|
|
136
|
-
brand: "Konami",
|
|
137
|
-
brandSlug: "brand-konami",
|
|
138
|
-
price: 150000,
|
|
139
|
-
currency: "INR",
|
|
140
|
-
stockQuantity: 1,
|
|
141
|
-
availableQuantity: 1,
|
|
142
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.kuriboh}.jpg`),
|
|
143
|
-
images: [
|
|
144
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.kuriboh}.jpg`),
|
|
145
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.gaiaFierceKnight}.jpg`),
|
|
146
|
-
],
|
|
147
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
148
|
-
storeId: "store-letitrip-official",
|
|
149
|
-
storeName: "LetItRip Official",
|
|
150
|
-
tags: ["bulk", "classified", "meetup", "hyderabad", "binder", "beginner"],
|
|
151
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
152
|
-
classified: {
|
|
153
|
-
meetupArea: { city: "Hyderabad", locality: "Banjara Hills", pincode: "500034" },
|
|
154
|
-
contactMethod: "chat",
|
|
155
|
-
acceptsShipping: true,
|
|
156
|
-
negotiable: true,
|
|
157
|
-
},
|
|
158
|
-
allowOffers: false,
|
|
159
|
-
createdAt: daysAgo(2),
|
|
160
|
-
updatedAt: daysAgo(1),
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
id: "classified-dark-magician-girl-chennai",
|
|
164
|
-
slug: "classified-dark-magician-girl-chennai",
|
|
165
|
-
title: "Pot of Greed — 1st Ed LOB, Chennai meetup",
|
|
166
|
-
description: "1st Edition Pot of Greed from Legend of Blue Eyes. Near-mint, never played. Meetup near T. Nagar or Anna Nagar. UPI payment only.",
|
|
167
|
-
categorySlugs: ["category-singles"],
|
|
168
|
-
categoryNames: ["Singles"],
|
|
169
|
-
brand: "Konami",
|
|
170
|
-
brandSlug: "brand-konami",
|
|
171
|
-
price: 280000,
|
|
172
|
-
currency: "INR",
|
|
173
|
-
stockQuantity: 1,
|
|
174
|
-
availableQuantity: 1,
|
|
175
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.potOfGreed}.jpg`),
|
|
176
|
-
images: [
|
|
177
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.potOfGreed}.jpg`),
|
|
178
|
-
],
|
|
179
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
180
|
-
storeId: "store-kaiba-corp-cards",
|
|
181
|
-
storeName: "Kaiba Corp Card Vault",
|
|
182
|
-
tags: ["pot-of-greed", "classified", "meetup", "chennai", "1st-edition"],
|
|
183
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
184
|
-
classified: {
|
|
185
|
-
meetupArea: { city: "Chennai", locality: "T. Nagar", pincode: "600017" },
|
|
186
|
-
contactMethod: "chat",
|
|
187
|
-
acceptsShipping: false,
|
|
188
|
-
negotiable: false,
|
|
189
|
-
},
|
|
190
|
-
allowOffers: false,
|
|
191
|
-
createdAt: daysAgo(4),
|
|
192
|
-
updatedAt: daysAgo(1),
|
|
193
|
-
},
|
|
194
|
-
];
|
|
195
|
-
export const productsClassifiedsSeedData = _rawClassifiedsSeedData.map((p) => withTokens({
|
|
196
|
-
...p,
|
|
197
|
-
listingType: "classified",
|
|
198
|
-
}));
|
|
16
|
+
export const productsClassifiedsSeedData = [];
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Digital-Code Products Seed Data — Yu-Gi-Oh! Theme (SB-UNI-J)
|
|
3
|
-
*
|
|
4
|
-
* Stored as ProductDocument with listingType: "digital-code". Instant
|
|
5
|
-
* digital fulfillment — no shipping address, code delivered on payment.
|
|
6
|
-
*
|
|
7
|
-
* Prices in INR paise (₹1 = 100 paise).
|
|
8
|
-
*/
|
|
9
|
-
import type { ProductDocument } from "../features/products/schemas/firestore";
|
|
1
|
+
import { ProductDocument } from "../features/products/schemas/firestore";
|
|
10
2
|
export declare const productsDigitalCodesSeedData: Partial<ProductDocument>[];
|
|
@@ -1,205 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
* Digital-
|
|
1
|
+
/*
|
|
2
|
+
* WHY: Digital-code 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
|
-
*
|
|
5
|
-
*
|
|
6
|
+
* EXPORTS:
|
|
7
|
+
* productsDigitalCodesSeedData — empty array
|
|
6
8
|
*
|
|
7
|
-
*
|
|
9
|
+
* @tag domain:products,digital-codes
|
|
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
|
|
8
15
|
*/
|
|
9
|
-
|
|
10
|
-
import { buildSearchTokens } from "../utils/search-tokens";
|
|
11
|
-
import { seedExtMedia } from "./_helpers/media";
|
|
12
|
-
function withTokens(p) {
|
|
13
|
-
return {
|
|
14
|
-
tags: [],
|
|
15
|
-
featured: false,
|
|
16
|
-
...p,
|
|
17
|
-
searchTokens: buildSearchTokens(p.title, p.description, p.brand, p.brandSlug, p.categoryNames, p.tags, p.features, p.condition),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
const CARD_IDS = {
|
|
21
|
-
darkMagician: 46986414,
|
|
22
|
-
blueEyesWhiteDragon: 89631139,
|
|
23
|
-
elementalHeroNeos: 89943723,
|
|
24
|
-
cyberDragon: 70095154,
|
|
25
|
-
obeliskTheTormentor: 10000015,
|
|
26
|
-
};
|
|
27
|
-
const NOW = new Date();
|
|
28
|
-
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
29
|
-
const daysAhead = (n) => new Date(NOW.getTime() + n * 86400000);
|
|
30
|
-
const _rawDigitalCodesSeedData = [
|
|
31
|
-
{
|
|
32
|
-
id: "digitalcode-master-duel-gems-1000",
|
|
33
|
-
slug: "digitalcode-master-duel-gems-1000",
|
|
34
|
-
title: "Yu-Gi-Oh! Master Duel — 1000 Gems Code",
|
|
35
|
-
description: "Instant delivery: 1000 Gems redemption code for Yu-Gi-Oh! Master Duel (all platforms). Code sent via order detail page immediately after payment. One code per account.",
|
|
36
|
-
categorySlugs: ["category-digital-codes"],
|
|
37
|
-
categoryNames: ["Digital Codes"],
|
|
38
|
-
brand: "Konami",
|
|
39
|
-
brandSlug: "brand-konami",
|
|
40
|
-
price: 49900,
|
|
41
|
-
currency: "INR",
|
|
42
|
-
stockQuantity: 50,
|
|
43
|
-
availableQuantity: 50,
|
|
44
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.darkMagician}.jpg`),
|
|
45
|
-
images: [
|
|
46
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.darkMagician}.jpg`),
|
|
47
|
-
],
|
|
48
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
49
|
-
storeId: "store-letitrip-official",
|
|
50
|
-
storeName: "LetItRip Official",
|
|
51
|
-
tags: ["master-duel", "gems", "digital-code", "instant-delivery"],
|
|
52
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
53
|
-
digitalCode: {
|
|
54
|
-
codeDeliveryMethod: "auto-claim",
|
|
55
|
-
codePoolSize: 50,
|
|
56
|
-
codesAvailable: 50,
|
|
57
|
-
redemptionInstructions: "Open Yu-Gi-Oh! Master Duel → Settings → Redeem Code → paste the code. Gems are credited instantly.",
|
|
58
|
-
expiresAt: daysAhead(90),
|
|
59
|
-
},
|
|
60
|
-
maxPerUser: 3,
|
|
61
|
-
allowOffers: false,
|
|
62
|
-
createdAt: daysAgo(5),
|
|
63
|
-
updatedAt: daysAgo(1),
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: "digitalcode-master-duel-structure-deck",
|
|
67
|
-
slug: "digitalcode-master-duel-structure-deck",
|
|
68
|
-
title: "Master Duel — Blue-Eyes Structure Deck Unlock Code",
|
|
69
|
-
description: "Unlock code for the Blue-Eyes White Dragon structure deck in Yu-Gi-Oh! Master Duel. Includes 3× Blue-Eyes, Dragon Spirit of White, and all staples. Auto-delivered after payment.",
|
|
70
|
-
categorySlugs: ["category-digital-codes"],
|
|
71
|
-
categoryNames: ["Digital Codes"],
|
|
72
|
-
brand: "Konami",
|
|
73
|
-
brandSlug: "brand-konami",
|
|
74
|
-
price: 29900,
|
|
75
|
-
currency: "INR",
|
|
76
|
-
stockQuantity: 25,
|
|
77
|
-
availableQuantity: 25,
|
|
78
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
79
|
-
images: [
|
|
80
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
81
|
-
],
|
|
82
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
83
|
-
storeId: "store-letitrip-official",
|
|
84
|
-
storeName: "LetItRip Official",
|
|
85
|
-
tags: ["master-duel", "structure-deck", "blue-eyes", "digital-code"],
|
|
86
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
87
|
-
digitalCode: {
|
|
88
|
-
codeDeliveryMethod: "auto-claim",
|
|
89
|
-
codePoolSize: 25,
|
|
90
|
-
codesAvailable: 25,
|
|
91
|
-
redemptionInstructions: "Open Master Duel → Shop → Redeem → paste code. The structure deck appears in your deck list.",
|
|
92
|
-
expiresAt: daysAhead(60),
|
|
93
|
-
},
|
|
94
|
-
maxPerUser: 1,
|
|
95
|
-
allowOffers: false,
|
|
96
|
-
createdAt: daysAgo(3),
|
|
97
|
-
updatedAt: daysAgo(1),
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
id: "digitalcode-duel-links-gems-500",
|
|
101
|
-
slug: "digitalcode-duel-links-gems-500",
|
|
102
|
-
title: "Duel Links — 500 Gems Redemption Code",
|
|
103
|
-
description: "500 Gems for Yu-Gi-Oh! Duel Links (iOS / Android / Steam). Code delivered on order detail page. Valid for 30 days from purchase.",
|
|
104
|
-
categorySlugs: ["category-digital-codes"],
|
|
105
|
-
categoryNames: ["Digital Codes"],
|
|
106
|
-
brand: "Konami",
|
|
107
|
-
brandSlug: "brand-konami",
|
|
108
|
-
price: 19900,
|
|
109
|
-
currency: "INR",
|
|
110
|
-
stockQuantity: 100,
|
|
111
|
-
availableQuantity: 100,
|
|
112
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.elementalHeroNeos}.jpg`),
|
|
113
|
-
images: [
|
|
114
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.elementalHeroNeos}.jpg`),
|
|
115
|
-
],
|
|
116
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
117
|
-
storeId: "store-kaiba-corp-cards",
|
|
118
|
-
storeName: "Kaiba Corp Card Vault",
|
|
119
|
-
tags: ["duel-links", "gems", "digital-code", "mobile"],
|
|
120
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
121
|
-
digitalCode: {
|
|
122
|
-
codeDeliveryMethod: "auto-claim",
|
|
123
|
-
codePoolSize: 100,
|
|
124
|
-
codesAvailable: 100,
|
|
125
|
-
redemptionInstructions: "Duel Links → Settings → Campaign → Enter Gift Code. Gems credited within 5 minutes.",
|
|
126
|
-
expiresAt: daysAhead(30),
|
|
127
|
-
},
|
|
128
|
-
maxPerUser: 5,
|
|
129
|
-
allowOffers: false,
|
|
130
|
-
createdAt: daysAgo(2),
|
|
131
|
-
updatedAt: daysAgo(1),
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
id: "digitalcode-neuron-premium-1yr",
|
|
135
|
-
slug: "digitalcode-neuron-premium-1yr",
|
|
136
|
-
title: "Yu-Gi-Oh! Neuron Premium — 1 Year Subscription Code",
|
|
137
|
-
description: "1-year premium subscription code for the official Yu-Gi-Oh! Neuron companion app. Unlocks advanced deck builder, tournament brackets, card scanner, and life-point tracker. Sent via email within 1 hour.",
|
|
138
|
-
categorySlugs: ["category-digital-codes"],
|
|
139
|
-
categoryNames: ["Digital Codes"],
|
|
140
|
-
brand: "Konami",
|
|
141
|
-
brandSlug: "brand-konami",
|
|
142
|
-
price: 99900,
|
|
143
|
-
currency: "INR",
|
|
144
|
-
stockQuantity: 20,
|
|
145
|
-
availableQuantity: 20,
|
|
146
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.cyberDragon}.jpg`),
|
|
147
|
-
images: [
|
|
148
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.cyberDragon}.jpg`),
|
|
149
|
-
],
|
|
150
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
151
|
-
storeId: "store-letitrip-official",
|
|
152
|
-
storeName: "LetItRip Official",
|
|
153
|
-
tags: ["neuron", "premium", "subscription", "digital-code", "companion-app"],
|
|
154
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
155
|
-
digitalCode: {
|
|
156
|
-
codeDeliveryMethod: "manual-email",
|
|
157
|
-
codePoolSize: 20,
|
|
158
|
-
codesAvailable: 20,
|
|
159
|
-
redemptionInstructions: "Open Yu-Gi-Oh! Neuron → Settings → Subscription → Redeem Code. Premium features unlock immediately.",
|
|
160
|
-
expiresAt: daysAhead(180),
|
|
161
|
-
},
|
|
162
|
-
maxPerUser: 1,
|
|
163
|
-
allowOffers: false,
|
|
164
|
-
createdAt: daysAgo(8),
|
|
165
|
-
updatedAt: daysAgo(2),
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
id: "digitalcode-master-duel-battle-pass",
|
|
169
|
-
slug: "digitalcode-master-duel-battle-pass",
|
|
170
|
-
title: "Master Duel — Gold Duel Pass (Current Season)",
|
|
171
|
-
description: "Gold Duel Pass unlock code for the current Master Duel season. Unlocks all premium rewards on the battle pass track. Auto-delivered.",
|
|
172
|
-
categorySlugs: ["category-digital-codes"],
|
|
173
|
-
categoryNames: ["Digital Codes"],
|
|
174
|
-
brand: "Konami",
|
|
175
|
-
brandSlug: "brand-konami",
|
|
176
|
-
price: 79900,
|
|
177
|
-
currency: "INR",
|
|
178
|
-
stockQuantity: 30,
|
|
179
|
-
availableQuantity: 30,
|
|
180
|
-
mainImage: seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.obeliskTheTormentor}.jpg`),
|
|
181
|
-
images: [
|
|
182
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.obeliskTheTormentor}.jpg`),
|
|
183
|
-
],
|
|
184
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
185
|
-
storeId: "store-kaiba-corp-cards",
|
|
186
|
-
storeName: "Kaiba Corp Card Vault",
|
|
187
|
-
tags: ["master-duel", "battle-pass", "gold", "digital-code", "season"],
|
|
188
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
189
|
-
digitalCode: {
|
|
190
|
-
codeDeliveryMethod: "auto-claim",
|
|
191
|
-
codePoolSize: 30,
|
|
192
|
-
codesAvailable: 30,
|
|
193
|
-
redemptionInstructions: "Master Duel → Duel Pass → Upgrade → Redeem Code. Premium track unlocks retroactively for all earned levels.",
|
|
194
|
-
expiresAt: daysAhead(45),
|
|
195
|
-
},
|
|
196
|
-
maxPerUser: 1,
|
|
197
|
-
allowOffers: false,
|
|
198
|
-
createdAt: daysAgo(1),
|
|
199
|
-
updatedAt: daysAgo(1),
|
|
200
|
-
},
|
|
201
|
-
];
|
|
202
|
-
export const productsDigitalCodesSeedData = _rawDigitalCodesSeedData.map((p) => withTokens({
|
|
203
|
-
...p,
|
|
204
|
-
listingType: "digital-code",
|
|
205
|
-
}));
|
|
16
|
+
export const productsDigitalCodesSeedData = [];
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Live-Item Products Seed Data — Yu-Gi-Oh! Themed Aquatics (SB-UNI-K)
|
|
3
|
-
*
|
|
4
|
-
* Stored as ProductDocument with listingType: "live". These items require
|
|
5
|
-
* vendor verification and jurisdiction checks at add-to-cart.
|
|
6
|
-
*
|
|
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).
|
|
11
|
-
*/
|
|
12
|
-
import type { ProductDocument } from "../features/products/schemas/firestore";
|
|
1
|
+
import { ProductDocument } from "../features/products/schemas/firestore";
|
|
13
2
|
export declare const productsLiveItemsSeedData: Partial<ProductDocument>[];
|