@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.
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +1 -1
- package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -3
- package/dist/_internal/server/jobs/core/bundleStockSync.js +9 -7
- package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +12 -3
- package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -13
- package/dist/_internal/server/jobs/core/onProductWrite.js +1 -3
- package/dist/_internal/server/jobs/handlers/onProductStockChange.js +11 -2
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/field-names.d.ts +4 -3
- package/dist/constants/field-names.js +8 -8
- package/dist/errors/error-codes.d.ts +3 -0
- package/dist/errors/error-codes.js +3 -0
- package/dist/errors/messages.d.ts +3 -0
- package/dist/errors/messages.js +3 -0
- package/dist/features/admin/types/product.types.d.ts +1 -1
- package/dist/features/admin/types/product.types.js +2 -3
- package/dist/features/auctions/actions/bid-actions.d.ts +9 -0
- package/dist/features/auctions/actions/bid-actions.js +61 -0
- package/dist/features/auctions/components/AuctionDetailPageView.d.ts +2 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +5 -4
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +32 -2
- package/dist/features/auctions/types/index.d.ts +1 -1
- package/dist/features/layout/AppLayoutShell.js +1 -1
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -11
- package/dist/features/products/api/[id]/route.js +4 -8
- package/dist/features/products/api/route.js +1 -3
- package/dist/features/products/components/AuctionsIndexListing.js +3 -11
- package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -10
- package/dist/features/products/components/ProductFilters.d.ts +33 -9
- package/dist/features/products/components/ProductFilters.js +6 -29
- package/dist/features/products/components/ProductForm.js +2 -3
- package/dist/features/products/constants/sieve.d.ts +162 -0
- package/dist/features/products/constants/sieve.js +95 -0
- package/dist/features/products/repository/products.repository.d.ts +5 -0
- package/dist/features/products/repository/products.repository.js +23 -3
- package/dist/features/products/schemas/firestore.d.ts +4 -4
- package/dist/features/products/schemas/firestore.js +2 -3
- package/dist/features/products/schemas/index.d.ts +6 -6
- package/dist/features/products/schemas/index.js +2 -6
- package/dist/features/products/types/index.d.ts +1 -1
- package/dist/features/seller/actions/offer-actions.js +2 -2
- package/dist/features/wishlist/types/index.d.ts +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +6 -4
- package/dist/seed/addresses-seed-data.d.ts +2 -18
- package/dist/seed/addresses-seed-data.js +137 -203
- package/dist/seed/bids-seed-data.d.ts +2 -8
- package/dist/seed/bids-seed-data.js +172 -648
- package/dist/seed/blog-posts-seed-data.d.ts +0 -5
- package/dist/seed/blog-posts-seed-data.js +341 -596
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -5
- package/dist/seed/carousel-slides-seed-data.js +61 -192
- package/dist/seed/carousels-seed-data.js +18 -1
- package/dist/seed/cart-seed-data.d.ts +1 -18
- package/dist/seed/cart-seed-data.js +116 -293
- package/dist/seed/categories-seed-data.d.ts +0 -6
- package/dist/seed/categories-seed-data.js +1409 -1537
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -11
- package/dist/seed/claimed-coupons-seed-data.js +32 -29
- package/dist/seed/conversations-seed-data.d.ts +0 -6
- package/dist/seed/conversations-seed-data.js +132 -280
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -16
- package/dist/seed/coupon-usage-seed-data.js +30 -44
- package/dist/seed/coupons-seed-data.d.ts +0 -6
- package/dist/seed/coupons-seed-data.js +141 -489
- package/dist/seed/events-seed-data.d.ts +0 -6
- package/dist/seed/events-seed-data.js +201 -379
- package/dist/seed/faq-seed-data.d.ts +0 -14
- package/dist/seed/faq-seed-data.js +609 -1184
- package/dist/seed/grouped-listings-seed-data.d.ts +119 -8
- package/dist/seed/grouped-listings-seed-data.js +148 -233
- package/dist/seed/history-seed-data.d.ts +0 -7
- package/dist/seed/history-seed-data.js +50 -54
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -5
- package/dist/seed/homepage-sections-seed-data.js +83 -175
- package/dist/seed/index.d.ts +1 -1
- package/dist/seed/index.js +1 -1
- package/dist/seed/manifest.js +2 -2
- package/dist/seed/notifications-seed-data.d.ts +0 -6
- package/dist/seed/notifications-seed-data.js +309 -196
- package/dist/seed/offers-seed-data.d.ts +0 -8
- package/dist/seed/offers-seed-data.js +118 -197
- package/dist/seed/orders-seed-data.d.ts +2 -8
- package/dist/seed/orders-seed-data.js +248 -1510
- package/dist/seed/payouts-seed-data.d.ts +0 -6
- package/dist/seed/payouts-seed-data.js +102 -441
- package/dist/seed/products-auctions-seed-data.d.ts +1 -14
- package/dist/seed/products-auctions-seed-data.js +612 -1084
- package/dist/seed/products-preorders-seed-data.d.ts +119 -14
- package/dist/seed/products-preorders-seed-data.js +154 -455
- package/dist/seed/products-standard-seed-data.d.ts +1 -15
- package/dist/seed/products-standard-seed-data.js +1355 -4128
- package/dist/seed/reviews-seed-data.d.ts +2 -8
- package/dist/seed/reviews-seed-data.js +99 -1182
- package/dist/seed/scammers-seed-data.d.ts +0 -15
- package/dist/seed/scammers-seed-data.js +36 -37
- package/dist/seed/sessions-seed-data.d.ts +0 -13
- package/dist/seed/sessions-seed-data.js +58 -335
- package/dist/seed/site-settings-seed-data.d.ts +0 -4
- package/dist/seed/site-settings-seed-data.js +61 -52
- package/dist/seed/store-addresses-seed-data.js +27 -151
- package/dist/seed/store-extensions-seed-data.d.ts +0 -7
- package/dist/seed/store-extensions-seed-data.js +147 -261
- package/dist/seed/stores-seed-data.d.ts +0 -5
- package/dist/seed/stores-seed-data.js +222 -184
- package/dist/seed/sub-listings-seed-data.d.ts +119 -0
- package/dist/seed/sub-listings-seed-data.js +447 -0
- package/dist/seed/support-tickets-seed-data.d.ts +0 -7
- package/dist/seed/support-tickets-seed-data.js +82 -75
- package/dist/seed/users-seed-data.d.ts +0 -5
- package/dist/seed/users-seed-data.js +279 -634
- package/dist/seed/wishlists-seed-data.d.ts +0 -9
- package/dist/seed/wishlists-seed-data.js +36 -52
- package/dist/seo/json-ld.js +6 -4
- package/dist/styles.css +8052 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/search-tokens.d.ts +2 -0
- package/dist/utils/search-tokens.js +21 -0
- package/package.json +2 -2
- package/scripts/seed-cli.mjs +2 -2
|
@@ -1,8 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
export declare const groupedListingsSeedData: {
|
|
2
|
+
listingType: "standard";
|
|
3
|
+
id?: string | undefined;
|
|
4
|
+
title?: string | undefined;
|
|
5
|
+
description?: string | undefined;
|
|
6
|
+
slug?: string | undefined;
|
|
7
|
+
seoTitle?: string | undefined;
|
|
8
|
+
seoDescription?: string | undefined;
|
|
9
|
+
seoKeywords?: string[] | undefined;
|
|
10
|
+
categorySlugs?: string[] | undefined;
|
|
11
|
+
categoryNames?: string[] | undefined;
|
|
12
|
+
category?: string | undefined;
|
|
13
|
+
categoryName?: string | undefined;
|
|
14
|
+
subcategory?: string | undefined;
|
|
15
|
+
brand?: string | undefined;
|
|
16
|
+
brandSlug?: string | undefined;
|
|
17
|
+
price?: number | undefined;
|
|
18
|
+
currency?: string | undefined;
|
|
19
|
+
stockQuantity?: number | undefined;
|
|
20
|
+
availableQuantity?: number | undefined;
|
|
21
|
+
mainImage?: string | undefined;
|
|
22
|
+
images?: string[] | undefined;
|
|
23
|
+
video?: import("..").ProductVideoField | undefined;
|
|
24
|
+
status?: import("..").ProductStatus | undefined;
|
|
25
|
+
storeId?: string | undefined;
|
|
26
|
+
storeName?: string | undefined;
|
|
27
|
+
featured?: boolean | undefined;
|
|
28
|
+
tags?: string[] | undefined;
|
|
29
|
+
specifications?: import("..").ProductSpecification[] | undefined;
|
|
30
|
+
features?: string[] | undefined;
|
|
31
|
+
shippingInfo?: string | undefined;
|
|
32
|
+
returnPolicy?: string | undefined;
|
|
33
|
+
condition?: "new" | "used" | "refurbished" | "broken" | "graded" | undefined;
|
|
34
|
+
insurance?: boolean | undefined;
|
|
35
|
+
insuranceCost?: number | undefined;
|
|
36
|
+
shippingPaidBy?: "seller" | "buyer" | undefined;
|
|
37
|
+
auctionEndDate?: Date | undefined;
|
|
38
|
+
startingBid?: number | undefined;
|
|
39
|
+
currentBid?: number | undefined;
|
|
40
|
+
bidCount?: number | undefined;
|
|
41
|
+
leadingBidderId?: string | undefined;
|
|
42
|
+
reservePrice?: number | undefined;
|
|
43
|
+
buyNowPrice?: number | undefined;
|
|
44
|
+
minBidIncrement?: number | undefined;
|
|
45
|
+
autoExtendable?: boolean | undefined;
|
|
46
|
+
auctionExtensionMinutes?: number | undefined;
|
|
47
|
+
auctionOriginalEndDate?: Date | undefined;
|
|
48
|
+
auctionShippingPaidBy?: "seller" | "winner" | undefined;
|
|
49
|
+
buyItNowPriceInPaise?: number | undefined;
|
|
50
|
+
bidsHaveStarted?: boolean | undefined;
|
|
51
|
+
grading?: import("../features/products").ProductGrading | undefined;
|
|
52
|
+
card?: import("../features/products").ProductCardMetadata | undefined;
|
|
53
|
+
classified?: import("../features/products").ProductClassifiedMeta | undefined;
|
|
54
|
+
digitalCode?: import("../features/products").ProductDigitalCodeMeta | undefined;
|
|
55
|
+
liveItem?: import("../features/products").ProductLiveItemMeta | undefined;
|
|
56
|
+
catalogProductId?: string | undefined;
|
|
57
|
+
preOrderDeliveryDate?: Date | undefined;
|
|
58
|
+
preOrderDepositPercent?: number | undefined;
|
|
59
|
+
preOrderDepositAmount?: number | undefined;
|
|
60
|
+
preOrderMaxQuantity?: number | undefined;
|
|
61
|
+
preOrderCurrentCount?: number | undefined;
|
|
62
|
+
preOrderProductionStatus?: "upcoming" | "in_production" | "ready_to_ship" | undefined;
|
|
63
|
+
preOrderCancellable?: boolean | undefined;
|
|
64
|
+
preOrderClosed?: boolean | undefined;
|
|
65
|
+
isPromoted?: boolean | undefined;
|
|
66
|
+
isOnSale?: boolean | undefined;
|
|
67
|
+
isSold?: boolean | undefined;
|
|
68
|
+
promotionEndDate?: Date | undefined;
|
|
69
|
+
pickupAddressId?: string | undefined;
|
|
70
|
+
viewCount?: number | undefined;
|
|
71
|
+
avgRating?: number | undefined;
|
|
72
|
+
reviewCount?: number | undefined;
|
|
73
|
+
bulkDiscounts?: {
|
|
74
|
+
quantity: number;
|
|
75
|
+
discountPercent: number;
|
|
76
|
+
}[] | undefined;
|
|
77
|
+
ingredients?: string[] | undefined;
|
|
78
|
+
howToUse?: string[] | undefined;
|
|
79
|
+
allowOffers?: boolean | undefined;
|
|
80
|
+
minOfferPercent?: number | undefined;
|
|
81
|
+
customFields?: import("../features/products").CustomField[] | undefined;
|
|
82
|
+
customSections?: import("../features/products").CustomSection[] | undefined;
|
|
83
|
+
sublistingCategoryId?: string | undefined;
|
|
84
|
+
groupId?: string | undefined;
|
|
85
|
+
isGroupParent?: boolean | undefined;
|
|
86
|
+
groupParentSlug?: string | undefined;
|
|
87
|
+
groupChildSlugs?: string[] | undefined;
|
|
88
|
+
groupTitle?: string | undefined;
|
|
89
|
+
maxPerUser?: number | undefined;
|
|
90
|
+
partOfBundleIds?: string[] | undefined;
|
|
91
|
+
partOfBundleTitles?: string[] | undefined;
|
|
92
|
+
isPartOfBundle?: boolean | undefined;
|
|
93
|
+
prizeDrawItems?: import("../features/products").PrizeDrawItem[] | undefined;
|
|
94
|
+
pricePerEntry?: number | undefined;
|
|
95
|
+
prizeMaxEntries?: number | undefined;
|
|
96
|
+
prizeCurrentEntries?: number | undefined;
|
|
97
|
+
prizeRevealWindowStart?: Date | undefined;
|
|
98
|
+
prizeRevealWindowEnd?: Date | undefined;
|
|
99
|
+
prizeRevealStatus?: "pending" | "open" | "closed" | undefined;
|
|
100
|
+
prizeRevealDeadlineDays?: number | undefined;
|
|
101
|
+
prizeGithubFileUrl?: string | undefined;
|
|
102
|
+
shipping?: {
|
|
103
|
+
allowedProviderIds?: string[];
|
|
104
|
+
overrides?: Array<{
|
|
105
|
+
providerId: string;
|
|
106
|
+
feeInPaise?: number;
|
|
107
|
+
etaDaysMin?: number;
|
|
108
|
+
etaDaysMax?: number;
|
|
109
|
+
}>;
|
|
110
|
+
} | undefined;
|
|
111
|
+
physicalLocation?: {
|
|
112
|
+
zone: string;
|
|
113
|
+
shelf: string;
|
|
114
|
+
bin: string;
|
|
115
|
+
} | undefined;
|
|
116
|
+
searchTokens?: string[] | undefined;
|
|
117
|
+
createdAt?: Date | undefined;
|
|
118
|
+
updatedAt?: Date | undefined;
|
|
119
|
+
}[];
|
|
@@ -1,248 +1,163 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
1
|
+
/*
|
|
2
|
+
* WHY: Seeds grouped product listings — bundles where the parent and individual children are each purchasable separately (ETB model).
|
|
3
|
+
* WHAT: Exports 3 grouped listings (parents only; children are existing standard product documents referenced via groupChildSlugs): LOB Booster Box with single pack + promo child, Kaiba Structure Deck with 2–3 singles + trap child, POTD Booster Box with single pack + promo child. Groups use the existing groupId/isGroupParent/groupChildSlugs schema fields. All in Kaiba Corp Card Vault. Status: all published.
|
|
4
|
+
*
|
|
5
|
+
* EXPORTS:
|
|
6
|
+
* groupedListingsSeedData — Array of 3 grouped product parents with isGroupParent:true and groupChildSlugs[]
|
|
7
|
+
*
|
|
8
|
+
* @tag domain:products,bundles
|
|
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
|
|
6
14
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
16
|
+
// Card ID mappings for YGOPRODECK image API
|
|
17
|
+
const CARD_IDS = {
|
|
18
|
+
blueEyesWhiteDragon: 89631139,
|
|
19
|
+
kaibaTin: 89631139,
|
|
20
|
+
potOfGreed: 55144522,
|
|
21
|
+
};
|
|
22
|
+
const _rawGroupedListingsSeedData = [
|
|
23
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
24
|
+
// Group 1: LOB Booster Box with single pack + promo
|
|
25
|
+
// Parent: product-lob-booster-box-sealed (full box)
|
|
26
|
+
// Children: product-lob-booster-pack (single), product-lob-special-promo-harpie-lady (promo)
|
|
27
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
11
28
|
{
|
|
12
|
-
id: "group-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
isFeatured: true,
|
|
27
|
-
storeId: "store-pokemon-palace",
|
|
28
|
-
brandSlug: "brand-pokemon-company",
|
|
29
|
-
categorySlug: "category-pokemon-cards",
|
|
30
|
-
createdBy: "user-aryan-kapoor",
|
|
31
|
-
createdAt: daysAgo(30),
|
|
32
|
-
updatedAt: daysAgo(2),
|
|
33
|
-
},
|
|
34
|
-
// ── 2. Hot Wheels Car Culture 3-Pack (Diecast Depot) ─────────────────────
|
|
35
|
-
{
|
|
36
|
-
id: "group-hot-wheels-car-culture-3pack",
|
|
37
|
-
slug: "group-hot-wheels-car-culture-3pack",
|
|
38
|
-
title: "Hot Wheels Car Culture Collector 3-Pack",
|
|
39
|
-
description: "Three premium Hot Wheels Car Culture cars curated by Diecast Depot. Real Riders rubber tyres, premium spectraflame paint. Perfect gift set for the diecast enthusiast.",
|
|
40
|
-
productIds: [
|
|
41
|
-
"product-hot-wheels-premium-5pack",
|
|
42
|
-
"product-hot-wheels-redline-1969-camaro",
|
|
43
|
-
"product-tomica-limited-datsun",
|
|
44
|
-
],
|
|
45
|
-
groupTheme: "related",
|
|
46
|
-
minActiveMembers: 2,
|
|
47
|
-
activeMemberCount: 2,
|
|
48
|
-
visibilityStatus: "visible",
|
|
49
|
-
coverImage: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=800&h=600&fit=crop",
|
|
50
|
-
isActive: true,
|
|
51
|
-
isFeatured: true,
|
|
52
|
-
storeId: "store-diecast-depot",
|
|
53
|
-
brandSlug: "brand-hot-wheels",
|
|
54
|
-
categorySlug: "category-hot-wheels-cars",
|
|
55
|
-
createdBy: "user-vikram-mehta",
|
|
56
|
-
createdAt: daysAgo(25),
|
|
57
|
-
updatedAt: daysAgo(3),
|
|
58
|
-
},
|
|
59
|
-
// ── 3. Beyblade X Starter Kit (Beyblade Arena) ────────────────────────────
|
|
60
|
-
{
|
|
61
|
-
id: "group-beyblade-x-starter-kit",
|
|
62
|
-
slug: "group-beyblade-x-starter-kit",
|
|
63
|
-
title: "Beyblade X Complete Starter Kit — Top + Launcher + Stadium",
|
|
64
|
-
description: "Best way to start with Beyblade X. Includes BX-01 Dran Sword, BX-05 Launcher, and the official XStadium. Takara Tomy Japan import. Ready to battle right out of the box.",
|
|
65
|
-
productIds: [
|
|
66
|
-
"product-beyblade-x-bx01-dran-sword",
|
|
67
|
-
"product-beyblade-burst-b200-valkyrie",
|
|
29
|
+
id: "group-lob-booster-box",
|
|
30
|
+
storeId: "store-kaiba-corp-cards",
|
|
31
|
+
brandSlug: "brand-konami",
|
|
32
|
+
title: "LOB Booster Box — Complete Sealed Box (24 Packs)",
|
|
33
|
+
slug: "group-lob-booster-box",
|
|
34
|
+
description: "Legend of Blue Eyes White Dragon complete booster box containing 24 sealed booster packs. This is the parent product; you can also purchase individual packs or the promo card separately.",
|
|
35
|
+
price: 4999900, // ₹49,999
|
|
36
|
+
currency: "INR",
|
|
37
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
38
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
39
|
+
listingType: "standard",
|
|
40
|
+
categorySlugs: ["category-booster-boxes", "category-sealed-products"],
|
|
41
|
+
images: [
|
|
42
|
+
`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`,
|
|
68
43
|
],
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
// ── 4. Anime Figure Duo — Rem + Goku (Tokyo Toys India) ──────────────────
|
|
84
|
-
{
|
|
85
|
-
id: "group-anime-figure-duo-rem-goku",
|
|
86
|
-
slug: "group-anime-figure-duo-rem-goku",
|
|
87
|
-
title: "Anime Figure Duo — Nendoroid Rem + S.H.Figuarts Goku",
|
|
88
|
-
description: "Two collector-favourite anime figures at a bundle price. Good Smile Nendoroid Rem (#663) from Re:Zero and Bandai S.H.Figuarts Goku Ultra Instinct. Display as a pair or separately.",
|
|
89
|
-
productIds: [
|
|
90
|
-
"product-nendoroid-rem-rezero",
|
|
91
|
-
"product-shf-goku-ultra-instinct",
|
|
44
|
+
stockQuantity: 1,
|
|
45
|
+
isSold: false,
|
|
46
|
+
availableQuantity: 1,
|
|
47
|
+
customFields: [],
|
|
48
|
+
customSections: [],
|
|
49
|
+
featured: false,
|
|
50
|
+
isPromoted: false,
|
|
51
|
+
isOnSale: false,
|
|
52
|
+
isGroupParent: true,
|
|
53
|
+
groupId: "group-lob-booster-box",
|
|
54
|
+
groupTitle: "LOB Booster Box & Components",
|
|
55
|
+
groupChildSlugs: [
|
|
56
|
+
"product-lob-booster-pack",
|
|
57
|
+
"product-lob-special-promo-harpie-lady",
|
|
92
58
|
],
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
categorySlug: "category-anime-figures",
|
|
102
|
-
createdBy: "user-priya-singh",
|
|
103
|
-
createdAt: daysAgo(18),
|
|
104
|
-
updatedAt: daysAgo(4),
|
|
59
|
+
card: {
|
|
60
|
+
setName: "Legend of Blue Eyes White Dragon",
|
|
61
|
+
setYear: 1999,
|
|
62
|
+
rarity: "Mixed",
|
|
63
|
+
language: "en",
|
|
64
|
+
},
|
|
65
|
+
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
|
66
|
+
updatedAt: new Date(),
|
|
105
67
|
},
|
|
106
|
-
//
|
|
68
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
69
|
+
// Group 2: Kaiba Structure Deck with singles + trap
|
|
70
|
+
// Parent: product-kaiba-starter-deck (full deck)
|
|
71
|
+
// Children: product-blue-eyes-white-dragon-sdk (key pull), product-shrink-sdk (foil tech), product-the-dragon-dwelling-in-cave (budget filler)
|
|
72
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
107
73
|
{
|
|
108
|
-
id: "group-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
74
|
+
id: "group-kaiba-structure-deck",
|
|
75
|
+
storeId: "store-kaiba-corp-cards",
|
|
76
|
+
brandSlug: "brand-konami",
|
|
77
|
+
title: "Starter Deck: Kaiba — Complete Sealed Deck",
|
|
78
|
+
slug: "group-kaiba-structure-deck",
|
|
79
|
+
description: "Starter Deck: Kaiba — complete sealed deck in original packaging. Buy the full deck or select key singles like Blue-Eyes White Dragon separately.",
|
|
80
|
+
price: 199900, // ₹1,999
|
|
81
|
+
currency: "INR",
|
|
82
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
83
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
84
|
+
listingType: "standard",
|
|
85
|
+
categorySlugs: ["category-starter-structure", "category-sealed-products"],
|
|
86
|
+
images: [
|
|
87
|
+
`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.kaibaTin}.jpg`,
|
|
115
88
|
],
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
{
|
|
132
|
-
id: "group-pokemon-plush-pair",
|
|
133
|
-
slug: "group-pokemon-plush-pair",
|
|
134
|
-
title: "Pokémon Plush Gift Pair — Pikachu + Gengar",
|
|
135
|
-
description: "Gift-ready pair of official Pokémon Center plushies. 8-inch Pikachu and Sitting Cuties Gengar. Ideal for gifting or display. Both authentic Pokémon Center Japan release.",
|
|
136
|
-
productIds: [
|
|
137
|
-
"product-pokemon-pikachu-plush-8",
|
|
138
|
-
"product-pokemon-gengar-sitting-cuties",
|
|
89
|
+
stockQuantity: 3,
|
|
90
|
+
isSold: false,
|
|
91
|
+
availableQuantity: 3,
|
|
92
|
+
customFields: [],
|
|
93
|
+
customSections: [],
|
|
94
|
+
featured: false,
|
|
95
|
+
isPromoted: false,
|
|
96
|
+
isOnSale: false,
|
|
97
|
+
isGroupParent: true,
|
|
98
|
+
groupId: "group-kaiba-structure-deck",
|
|
99
|
+
groupTitle: "Kaiba Starter Deck & Key Singles",
|
|
100
|
+
groupChildSlugs: [
|
|
101
|
+
"sublisting-blue-eyes-sdk",
|
|
102
|
+
"product-shrink-sdk",
|
|
103
|
+
"product-the-dragon-dwelling-in-cave",
|
|
139
104
|
],
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
brandSlug: "brand-pokemon-company",
|
|
149
|
-
categorySlug: "category-pokemon-cards",
|
|
150
|
-
createdBy: "user-aryan-kapoor",
|
|
151
|
-
createdAt: daysAgo(12),
|
|
152
|
-
updatedAt: daysAgo(3),
|
|
105
|
+
card: {
|
|
106
|
+
setName: "Starter Deck Kaiba",
|
|
107
|
+
setYear: 2002,
|
|
108
|
+
rarity: "Mixed",
|
|
109
|
+
language: "en",
|
|
110
|
+
},
|
|
111
|
+
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
|
112
|
+
updatedAt: new Date(),
|
|
153
113
|
},
|
|
154
|
-
//
|
|
114
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
115
|
+
// Group 3: POTD Booster Box with single pack + promo
|
|
116
|
+
// Parent: product-potd-booster-box (full box)
|
|
117
|
+
// Children: product-potd-booster-pack-single (single pack), product-elemental-hero-neos (pull promo)
|
|
118
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
155
119
|
{
|
|
156
|
-
id: "group-
|
|
157
|
-
|
|
158
|
-
title: "Yu-Gi-Oh! Tournament Ready — 25th Tin + Structure Deck",
|
|
159
|
-
description: "Upgrade your deck with the 25th Anniversary Tin and the Albaz Structure Deck. Both are current-format legal. The tin gives you chase rares; the structure gives you a complete playable engine.",
|
|
160
|
-
productIds: [
|
|
161
|
-
"product-yugioh-25th-tin",
|
|
162
|
-
"product-yugioh-structure-albaz",
|
|
163
|
-
],
|
|
164
|
-
groupTheme: "related",
|
|
165
|
-
minActiveMembers: 2,
|
|
166
|
-
activeMemberCount: 2,
|
|
167
|
-
visibilityStatus: "visible",
|
|
168
|
-
coverImage: "https://images.unsplash.com/photo-1612036782180-6f0b6cd846fe?w=800&h=600&fit=crop",
|
|
169
|
-
isActive: true,
|
|
170
|
-
isFeatured: false,
|
|
171
|
-
storeId: "store-cardgame-hub",
|
|
120
|
+
id: "group-potd-booster-box",
|
|
121
|
+
storeId: "store-kaiba-corp-cards",
|
|
172
122
|
brandSlug: "brand-konami",
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
productIds: [
|
|
185
|
-
"product-figma-link-totk",
|
|
186
|
-
"product-mafex-miles-morales-spiderman",
|
|
187
|
-
"product-shf-ultra-instinct-goku",
|
|
123
|
+
title: "POTD Booster Box — Complete Sealed Box (24 Packs)",
|
|
124
|
+
slug: "group-potd-booster-box",
|
|
125
|
+
description: "Power of the Duelist complete booster box containing 24 sealed booster packs. Purchase the full box or individual packs and the featured promo card separately.",
|
|
126
|
+
price: 2299900, // ₹22,999
|
|
127
|
+
currency: "INR",
|
|
128
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
129
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
130
|
+
listingType: "standard",
|
|
131
|
+
categorySlugs: ["category-booster-boxes", "category-sealed-products"],
|
|
132
|
+
images: [
|
|
133
|
+
`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`,
|
|
188
134
|
],
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
{
|
|
204
|
-
id: "group-letitrip-funko-anime-starter",
|
|
205
|
-
slug: "group-letitrip-funko-anime-starter",
|
|
206
|
-
title: "LetItRip Curated: Anime Funko Pop Starter Collection",
|
|
207
|
-
description: "Build your Funko Pop shelf from scratch with this admin-curated set. Gojo Satoru (#1373, blindfold ver.) + Tanjiro & Nezuko Deluxe Diorama — two of the most requested Funko Pops in our anime lineup. Perfect entry point or gift set.",
|
|
208
|
-
productIds: [
|
|
209
|
-
"product-funko-pop-gojo-satoru",
|
|
210
|
-
"product-funko-pop-tanjiro-dlx",
|
|
211
|
-
],
|
|
212
|
-
groupTheme: "related",
|
|
213
|
-
minActiveMembers: 2,
|
|
214
|
-
activeMemberCount: 2,
|
|
215
|
-
visibilityStatus: "visible",
|
|
216
|
-
coverImage: "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&h=600&fit=crop",
|
|
217
|
-
isActive: true,
|
|
218
|
-
isFeatured: true,
|
|
219
|
-
storeId: "store-letitrip-official",
|
|
220
|
-
categorySlug: "category-vinyl-figures",
|
|
221
|
-
createdBy: "user-admin-letitrip",
|
|
222
|
-
createdAt: daysAgo(5),
|
|
223
|
-
updatedAt: daysAgo(1),
|
|
224
|
-
},
|
|
225
|
-
// ── 8. Funko Pop Anime Collector Set (Tokyo Toys India) ───────────────────
|
|
226
|
-
{
|
|
227
|
-
id: "group-funko-pop-anime-trio",
|
|
228
|
-
slug: "group-funko-pop-anime-trio",
|
|
229
|
-
title: "Funko Pop! Anime Collector Set — Naruto + Batman",
|
|
230
|
-
description: "Two of the most iconic Funko Pop figures at a bundle price. Naruto Sage Mode #932 and McFarlane Batman (Dark Knight). Ideal for display shelves or desktops.",
|
|
231
|
-
productIds: [
|
|
232
|
-
"product-funko-pop-naruto-sage",
|
|
233
|
-
"product-mcfarlane-batman-dark-knight",
|
|
135
|
+
stockQuantity: 2,
|
|
136
|
+
isSold: false,
|
|
137
|
+
availableQuantity: 2,
|
|
138
|
+
customFields: [],
|
|
139
|
+
customSections: [],
|
|
140
|
+
featured: false,
|
|
141
|
+
isPromoted: false,
|
|
142
|
+
isOnSale: false,
|
|
143
|
+
isGroupParent: true,
|
|
144
|
+
groupId: "group-potd-booster-box",
|
|
145
|
+
groupTitle: "POTD Booster Box & Components",
|
|
146
|
+
groupChildSlugs: [
|
|
147
|
+
"product-potd-booster-pack-single",
|
|
148
|
+
"product-elemental-hero-neos",
|
|
234
149
|
],
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
categorySlug: "category-vinyl-figures",
|
|
244
|
-
createdBy: "user-priya-singh",
|
|
245
|
-
createdAt: daysAgo(8),
|
|
246
|
-
updatedAt: daysAgo(2),
|
|
150
|
+
card: {
|
|
151
|
+
setName: "Power of the Duelist",
|
|
152
|
+
setYear: 2005,
|
|
153
|
+
rarity: "Mixed",
|
|
154
|
+
language: "en",
|
|
155
|
+
},
|
|
156
|
+
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
|
157
|
+
updatedAt: new Date(),
|
|
247
158
|
},
|
|
248
159
|
];
|
|
160
|
+
export const groupedListingsSeedData = _rawGroupedListingsSeedData.map((p) => ({
|
|
161
|
+
...p,
|
|
162
|
+
listingType: "standard",
|
|
163
|
+
}));
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* History Seed Data — one document per user at top-level `history/history-{userSlug}`.
|
|
3
|
-
*
|
|
4
|
-
* id === slug === `history-{userSlug}`. items[] FIFO-capped at HISTORY_MAX (50),
|
|
5
|
-
* newest-first (viewedAt desc). Re-visit semantics: dedup by productId, max viewedAt wins.
|
|
6
|
-
*/
|
|
7
1
|
export interface HistoryItemSeed {
|
|
8
2
|
productId: string;
|
|
9
3
|
productType: "product" | "auction" | "preorder";
|
|
10
4
|
viewedAt: Date;
|
|
11
5
|
}
|
|
12
6
|
export interface HistorySeedDocument {
|
|
13
|
-
/** doc id === slug === `history-{userId}` */
|
|
14
7
|
id: string;
|
|
15
8
|
userId: string;
|
|
16
9
|
items: HistoryItemSeed[];
|