@mohasinac/appkit 4.1.1 → 4.2.0
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/maintenance/index.d.ts +2 -0
- package/dist/_internal/client/features/maintenance/index.js +1 -0
- package/dist/_internal/client/features/maintenance/views/CloudLogsListView.d.ts +9 -0
- package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +55 -0
- package/dist/_internal/server/features/auctions/index.d.ts +1 -1
- package/dist/_internal/server/features/auctions/index.js +1 -1
- package/dist/_internal/server/features/auctions/service.js +2 -2
- package/dist/_internal/server/features/checkout/actions.d.ts +15 -0
- package/dist/_internal/server/features/checkout/actions.js +245 -182
- package/dist/_internal/server/features/maintenance/cloud-logs-data.d.ts +50 -0
- package/dist/_internal/server/features/maintenance/cloud-logs-data.js +152 -0
- package/dist/_internal/server/functions/scheduled.d.ts +2 -1
- package/dist/_internal/server/functions/scheduled.js +9 -1
- package/dist/_internal/server/jobs/core/jobRunners.js +10 -0
- package/dist/_internal/server/jobs/core/newsletterExport.d.ts +15 -0
- package/dist/_internal/server/jobs/core/newsletterExport.js +43 -0
- package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +4 -12
- package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -3
- package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +2 -0
- package/dist/_internal/server/jobs/core/onOrderStatusChange.js +1 -0
- package/dist/_internal/server/jobs/core/onProductWrite.js +14 -2
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +1 -0
- package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +1 -0
- package/dist/_internal/server/jobs/core/revenueRollup.d.ts +13 -0
- package/dist/_internal/server/jobs/core/revenueRollup.js +22 -0
- package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +35 -0
- package/dist/_internal/server/jobs/core/whatsappNotify.js +82 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
- package/dist/_internal/server/jobs/handlers/index.js +1 -0
- package/dist/_internal/server/jobs/handlers/revenueRollup.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/revenueRollup.js +2 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +1 -1
- package/dist/_internal/shared/features/auctions/config.js +1 -1
- package/dist/_internal/shared/features/auctions/schema.js +1 -1
- package/dist/_internal/shared/features/cart/schema.js +2 -2
- package/dist/_internal/shared/features/checkout/config.d.ts +7 -0
- package/dist/_internal/shared/features/checkout/config.js +7 -0
- package/dist/_internal/shared/features/events/schema.js +1 -1
- package/dist/_internal/shared/features/orders/schema.js +1 -1
- package/dist/_internal/shared/features/products/schema.js +3 -3
- package/dist/_internal/shared/features/promotions/schema.js +3 -3
- package/dist/_internal/shared/fees/calculator.d.ts +32 -7
- package/dist/_internal/shared/fees/calculator.js +25 -0
- package/dist/client.d.ts +4 -4
- package/dist/client.js +4 -2
- package/dist/constants/api-endpoints.d.ts +9 -6
- package/dist/constants/api-endpoints.js +3 -2
- package/dist/contracts/client-payment-gateway.d.ts +1 -2
- package/dist/features/about/components/AboutView.d.ts +6 -16
- package/dist/features/about/components/AboutView.js +3 -3
- package/dist/features/about/components/FeesView.js +18 -0
- package/dist/features/about/index.d.ts +2 -1
- package/dist/features/about/schemas/firestore.d.ts +47 -0
- package/dist/features/about/schemas/firestore.js +6 -0
- package/dist/features/about/schemas/index.d.ts +210 -0
- package/dist/features/about/schemas/index.js +45 -0
- package/dist/features/account/hooks/useProfile.js +3 -0
- package/dist/features/admin/actions/notification-actions.d.ts +4 -1
- package/dist/features/admin/actions/notification-actions.js +56 -10
- package/dist/features/admin/components/AdminAdsView.js +1 -1
- package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +6 -0
- package/dist/features/admin/components/AdminCarouselGroupEditorView.js +50 -0
- package/dist/features/admin/components/AdminCartsView.js +16 -3
- package/dist/features/admin/components/AdminCouponEditorView.js +2 -2
- package/dist/features/admin/components/AdminCouponsView.js +14 -4
- package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -42
- package/dist/features/admin/components/AdminMediaView.js +1 -1
- package/dist/features/admin/components/AdminNewsletterView.js +42 -11
- package/dist/features/admin/components/AdminNotificationsView.js +31 -19
- package/dist/features/admin/components/AdminOrdersView.js +7 -0
- package/dist/features/admin/components/AdminPayoutsView.js +18 -3
- package/dist/features/admin/components/AdminProductsView.js +17 -2
- package/dist/features/admin/components/AdminReviewsView.js +16 -2
- package/dist/features/admin/components/AdminScammersView.js +7 -0
- package/dist/features/admin/components/AdminSectionsView.js +4 -0
- package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
- package/dist/features/admin/components/AdminSiteSettingsView.js +127 -8
- package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminStoreEditorView.js +4 -4
- package/dist/features/admin/components/AdminStoresView.js +1 -1
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +23 -5
- package/dist/features/admin/components/AdminSupportTicketsView.js +20 -2
- package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
- package/dist/features/admin/components/AdminTesterChecklistView.js +8 -0
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/constants/filter-tabs.d.ts +55 -41
- package/dist/features/admin/constants/filter-tabs.js +55 -27
- package/dist/features/admin/repository/analytics-rollup.repository.d.ts +25 -0
- package/dist/features/admin/repository/analytics-rollup.repository.js +31 -0
- package/dist/features/admin/repository/site-settings.repository.js +8 -1
- package/dist/features/admin/schemas/firestore.d.ts +46 -0
- package/dist/features/admin/schemas/firestore.js +62 -24
- package/dist/features/auctions/actions/bid-actions.js +1 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
- package/dist/features/auctions/components/AuctionsListView.js +8 -1
- package/dist/features/auth/components/LoginForm.js +2 -2
- package/dist/features/auth/components/RegisterForm.js +2 -2
- package/dist/features/auth/permissions/constants.d.ts +16 -0
- package/dist/features/auth/permissions/constants.js +53 -0
- package/dist/features/auth/schemas/firestore.js +1 -0
- package/dist/features/blog/components/BlogFilters.js +1 -1
- package/dist/features/cart/schemas/firestore.d.ts +1 -1
- package/dist/features/categories/schemas/firestore.d.ts +1 -1
- package/dist/features/consultation/components/ConsultationForm.js +1 -1
- package/dist/features/events/components/EventFilters.js +2 -0
- package/dist/features/homepage/components/WelcomeSection.js +2 -2
- package/dist/features/layout/BackToTop.d.ts +9 -5
- package/dist/features/layout/BackToTop.js +17 -21
- package/dist/features/layout/TitleBarLayout.d.ts +2 -2
- package/dist/features/layout/TitleBarLayout.js +4 -4
- package/dist/features/media/AvatarUpload.js +7 -3
- package/dist/features/media/MediaVideo.js +1 -1
- package/dist/features/media/finalize.d.ts +9 -13
- package/dist/features/media/finalize.js +23 -74
- package/dist/features/media/server.d.ts +1 -1
- package/dist/features/media/server.js +1 -1
- package/dist/features/orders/actions/refund-actions.js +1 -0
- package/dist/features/orders/hooks/useOrders.js +16 -4
- package/dist/features/orders/schemas/firestore.d.ts +19 -5
- package/dist/features/payments/schemas/firestore.d.ts +2 -2
- package/dist/features/pre-orders/components/PreOrdersListView.js +7 -0
- package/dist/features/products/components/ArtStickersListView.js +5 -0
- package/dist/features/products/components/ProductDetailPageView.d.ts +7 -1
- package/dist/features/products/components/ProductForm.js +14 -1
- package/dist/features/products/components/ProductsIndexPageView.js +7 -0
- package/dist/features/products/constants/action-defs.d.ts +29 -3
- package/dist/features/products/constants/action-defs.js +77 -1
- package/dist/features/products/schemas/firestore.d.ts +1 -1
- package/dist/features/products/schemas/product-templates.d.ts +1 -1
- package/dist/features/products/types/index.d.ts +4 -0
- package/dist/features/scams/schemas/index.js +2 -2
- package/dist/features/search/components/Search.js +3 -3
- package/dist/features/seller/components/SellerAuctionsView.js +27 -2
- package/dist/features/seller/components/SellerOrdersView.js +2 -2
- package/dist/features/seller/components/SellerPayoutsView.js +24 -10
- package/dist/features/seller/components/SellerPreOrdersView.js +12 -4
- package/dist/features/seller/components/SellerPrizeDrawsView.js +23 -5
- package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
- package/dist/features/seller/components/SellerProductShell.js +1 -1
- package/dist/features/seller/components/SellerProductsView.js +8 -6
- package/dist/features/seller/components/SellerReviewsView.js +27 -6
- package/dist/features/seller/components/index.d.ts +0 -2
- package/dist/features/seller/components/index.js +0 -1
- package/dist/features/stores/components/StoreListingsGuideView.js +2 -1
- package/dist/features/stores/components/StoreProductsView.js +1 -1
- package/dist/features/stores/schemas/firestore.d.ts +11 -0
- package/dist/features/stores/schemas/firestore.js +5 -0
- package/dist/features/stores/schemas/index.d.ts +2 -2
- package/dist/features/tester/actions/checklist-item-actions.d.ts +6 -0
- package/dist/features/tester/actions/checklist-item-actions.js +2 -0
- package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +13 -2
- package/dist/features/tester/components/AdminTesterFeedbackListView.js +2 -1
- package/dist/features/tester/components/AdminTesterFeedbackReportView.js +9 -5
- package/dist/features/tester/components/TesterHubView.js +34 -21
- package/dist/features/tester/repository/tester-checklist-item.repository.js +1 -0
- package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +18 -4
- package/dist/features/tester/repository/tester-checklist-response.repository.js +43 -8
- package/dist/features/tester/schemas/firestore.d.ts +8 -3
- package/dist/features/tester/schemas/firestore.js +6 -0
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +21 -9
- package/dist/features/tester/utils/phases.d.ts +31 -0
- package/dist/features/tester/utils/phases.js +46 -0
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +1 -1
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +10 -1
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +47 -0
- package/dist/features/whatsapp-bot/types/index.d.ts +20 -1
- package/dist/features/wishlist/types/index.d.ts +3 -0
- package/dist/index.d.ts +15 -6
- package/dist/index.js +19 -9
- package/dist/next/components/NotFoundView.js +2 -1
- package/dist/next/routing/route-map.d.ts +6 -12
- package/dist/next/routing/route-map.js +3 -4
- package/dist/providers/db-firebase/admin.d.ts +1 -0
- package/dist/providers/db-firebase/admin.js +1 -1
- package/dist/repositories/index.d.ts +2 -0
- package/dist/repositories/index.js +1 -0
- package/dist/schemas/registry.d.ts +2 -2
- package/dist/seed/addresses-seed-data.js +18 -18
- package/dist/seed/bids-seed-data.js +4 -4
- package/dist/seed/blog-posts-seed-data.js +82 -82
- package/dist/seed/carousel-slides-seed-data.js +14 -10
- package/dist/seed/carousels-seed-data.js +3 -3
- package/dist/seed/cart-seed-data.js +92 -92
- package/dist/seed/claimed-coupons-seed-data.js +10 -10
- package/dist/seed/conversations-seed-data.js +75 -75
- package/dist/seed/coupon-usage-seed-data.js +12 -12
- package/dist/seed/coupons-seed-data.js +41 -41
- package/dist/seed/events-seed-data.js +105 -105
- package/dist/seed/grouped-listings-seed-data.d.ts +2 -137
- package/dist/seed/grouped-listings-seed-data.js +79 -143
- package/dist/seed/history-seed-data.js +38 -38
- package/dist/seed/homepage-sections-seed-data.js +9 -9
- package/dist/seed/notifications-seed-data.js +56 -56
- package/dist/seed/offers-seed-data.js +91 -91
- package/dist/seed/orders-seed-data.js +121 -106
- package/dist/seed/payouts-seed-data.js +42 -42
- package/dist/seed/products-auctions-seed-data.js +10 -2
- package/dist/seed/products-standard-seed-data.js +40 -8
- package/dist/seed/reviews-seed-data.js +42 -23
- package/dist/seed/scammers-seed-data.js +22 -22
- package/dist/seed/sessions-seed-data.js +7 -7
- package/dist/seed/shipments-seed-data.js +10 -10
- package/dist/seed/site-settings-seed-data.js +89 -0
- package/dist/seed/store-addresses-seed-data.js +2 -2
- package/dist/seed/store-extensions-seed-data.js +93 -93
- package/dist/seed/stores-seed-data.js +2 -0
- package/dist/seed/support-tickets-seed-data.js +47 -47
- package/dist/seed/users-seed-data.js +55 -89
- package/dist/seed/wishlists-seed-data.js +22 -22
- package/dist/server.d.ts +4 -3
- package/dist/server.js +7 -7
- package/dist/styles.css +1 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/PageLoader.js +8 -3
- package/dist/ui/components/Select.d.ts +8 -1
- package/dist/ui/components/Select.js +2 -2
- package/dist/ui/components/SiteMark.d.ts +23 -0
- package/dist/ui/components/SiteMark.js +76 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +1 -0
- package/dist/validation/schemas.d.ts +0 -2
- package/dist/validation/schemas.js +0 -2
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +17 -15
|
@@ -1,164 +1,100 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* WHY: Seeds
|
|
3
|
-
*
|
|
2
|
+
* WHY: Seeds groupedListings — theme groups (horizontal "you might also like" scrollers
|
|
3
|
+
* linking related listings on the detail page, no pricing semantics). See SB-UNI-V in
|
|
4
|
+
* appkit/src/features/grouped/schemas/firestore.ts: this collection was re-scoped away
|
|
5
|
+
* from the old bundle/pricing shape (bundlePrice/originalPrice/discountPercent) — pricing
|
|
6
|
+
* bundles now live on the categories collection with categoryType:"bundle" (SB-UNI-D, see
|
|
7
|
+
* categories-seed-data.ts's bundleRows).
|
|
8
|
+
* WHAT: 3 theme groups over the real Beyblade catalog (products-standard-seed-data.ts —
|
|
9
|
+
* currently the only standard products seeded). Rewritten 2026-08-19: the previous version
|
|
10
|
+
* of this file exported ProductDocument-shaped rows (isGroupParent/groupChildSlugs) that
|
|
11
|
+
* (a) referenced product slugs that don't exist anywhere in seed data, and (b) were written
|
|
12
|
+
* to the groupedListings collection despite not matching GroupedListingDocument's shape at
|
|
13
|
+
* all — a stale leftover from before the SB-UNI-V re-scope.
|
|
4
14
|
*
|
|
5
15
|
* EXPORTS:
|
|
6
|
-
* groupedListingsSeedData — Array of
|
|
16
|
+
* groupedListingsSeedData — Array of GroupedListingDocument for seed runner
|
|
7
17
|
*
|
|
8
|
-
* @tag domain:products,
|
|
18
|
+
* @tag domain:products,grouped
|
|
9
19
|
* @tag layer:seed
|
|
10
20
|
* @tag pattern:none
|
|
11
21
|
* @tag access:server-only
|
|
12
22
|
* @tag consumers:seed/index.ts,seed/runner.ts
|
|
13
23
|
* @tag sideEffects:none
|
|
14
24
|
*/
|
|
15
|
-
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
16
25
|
import { seedExtMedia } from "./_helpers/media";
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
kaibaTin: 89631139,
|
|
21
|
-
potOfGreed: 55144522,
|
|
22
|
-
};
|
|
23
|
-
const _rawGroupedListingsSeedData = [
|
|
24
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
25
|
-
// Group 1: LOB Booster Box with single pack + promo
|
|
26
|
-
// Parent: product-lob-booster-box-sealed (full box)
|
|
27
|
-
// Children: product-lob-booster-pack (single), product-lob-special-promo-harpie-lady (promo)
|
|
28
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
26
|
+
const NOW = new Date();
|
|
27
|
+
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
28
|
+
export const groupedListingsSeedData = [
|
|
29
29
|
{
|
|
30
|
-
id: "group-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
currency: "INR",
|
|
38
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
39
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
40
|
-
listingType: "standard",
|
|
41
|
-
categorySlugs: ["category-booster-boxes", "category-sealed-products"],
|
|
42
|
-
images: [
|
|
43
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
30
|
+
id: "group-beyblade-original-lineage",
|
|
31
|
+
slug: "group-beyblade-original-lineage",
|
|
32
|
+
title: "Original Series Lineage",
|
|
33
|
+
description: "Dranzer S and Driger V — the original-generation Beyblades that started it all.",
|
|
34
|
+
productIds: [
|
|
35
|
+
"product-beyblade-original-dranzer-s",
|
|
36
|
+
"product-beyblade-original-driger-v",
|
|
44
37
|
],
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"product-lob-special-promo-harpie-lady",
|
|
59
|
-
],
|
|
60
|
-
card: {
|
|
61
|
-
setName: "Legend of Blue Eyes White Dragon",
|
|
62
|
-
setYear: 1999,
|
|
63
|
-
rarity: "Mixed",
|
|
64
|
-
language: "en",
|
|
65
|
-
},
|
|
66
|
-
createdAt: new Date(Date.now() - 90 * 24 * 60 * 60 * 1000),
|
|
67
|
-
updatedAt: new Date(),
|
|
38
|
+
coverImage: seedExtMedia("https://picsum.photos/seed/group-beyblade-original-lineage-20260101/1200/900"),
|
|
39
|
+
groupTheme: "lineage",
|
|
40
|
+
minActiveMembers: 2,
|
|
41
|
+
activeMemberCount: 2,
|
|
42
|
+
visibilityStatus: "visible",
|
|
43
|
+
isActive: true,
|
|
44
|
+
isFeatured: true,
|
|
45
|
+
storeId: "store-beyblade-arena",
|
|
46
|
+
brandSlug: "brand-beyblade",
|
|
47
|
+
categorySlug: "category-spinning-tops",
|
|
48
|
+
createdBy: "user-admin-letitrip",
|
|
49
|
+
createdAt: daysAgo(20),
|
|
50
|
+
updatedAt: daysAgo(5),
|
|
68
51
|
},
|
|
69
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
70
|
-
// Group 2: Kaiba Structure Deck with singles + trap
|
|
71
|
-
// Parent: product-kaiba-starter-deck (full deck)
|
|
72
|
-
// Children: product-blue-eyes-white-dragon-sdk (key pull), product-shrink-sdk (foil tech), product-the-dragon-dwelling-in-cave (budget filler)
|
|
73
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
74
52
|
{
|
|
75
|
-
id: "group-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
currency: "INR",
|
|
83
|
-
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
84
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
85
|
-
listingType: "standard",
|
|
86
|
-
categorySlugs: ["category-starter-structure", "category-sealed-products"],
|
|
87
|
-
images: [
|
|
88
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.kaibaTin}.jpg`),
|
|
89
|
-
],
|
|
90
|
-
stockQuantity: 3,
|
|
91
|
-
isSold: false,
|
|
92
|
-
availableQuantity: 3,
|
|
93
|
-
customFields: [],
|
|
94
|
-
customSections: [],
|
|
95
|
-
featured: false,
|
|
96
|
-
isPromoted: false,
|
|
97
|
-
isOnSale: false,
|
|
98
|
-
isGroupParent: true,
|
|
99
|
-
groupId: "group-kaiba-structure-deck",
|
|
100
|
-
groupTitle: "Kaiba Starter Deck & Key Singles",
|
|
101
|
-
groupChildSlugs: [
|
|
102
|
-
"sublisting-blue-eyes-sdk",
|
|
103
|
-
"product-shrink-sdk",
|
|
104
|
-
"product-the-dragon-dwelling-in-cave",
|
|
53
|
+
id: "group-beyblade-metal-fusion-set",
|
|
54
|
+
slug: "group-beyblade-metal-fusion-set",
|
|
55
|
+
title: "Metal Fusion Rivals",
|
|
56
|
+
description: "Storm Pegasus and Flame Sagittario — the classic Metal Fight Beyblade rivalry, same set.",
|
|
57
|
+
productIds: [
|
|
58
|
+
"product-beyblade-metal-storm-pegasus",
|
|
59
|
+
"product-beyblade-metal-flame-sagittario",
|
|
105
60
|
],
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
61
|
+
coverImage: seedExtMedia("https://picsum.photos/seed/group-beyblade-metal-fusion-set-20260101/1200/900"),
|
|
62
|
+
groupTheme: "set",
|
|
63
|
+
minActiveMembers: 2,
|
|
64
|
+
activeMemberCount: 2,
|
|
65
|
+
visibilityStatus: "visible",
|
|
66
|
+
isActive: true,
|
|
67
|
+
isFeatured: false,
|
|
68
|
+
storeId: "store-beyblade-arena",
|
|
69
|
+
brandSlug: "brand-beyblade",
|
|
70
|
+
categorySlug: "category-spinning-tops",
|
|
71
|
+
createdBy: "user-admin-letitrip",
|
|
72
|
+
createdAt: daysAgo(18),
|
|
73
|
+
updatedAt: daysAgo(4),
|
|
114
74
|
},
|
|
115
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
116
|
-
// Group 3: POTD Booster Box with single pack + promo
|
|
117
|
-
// Parent: product-potd-booster-box (full box)
|
|
118
|
-
// Children: product-potd-booster-pack-single (single pack), product-elemental-hero-neos (pull promo)
|
|
119
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
120
75
|
{
|
|
121
|
-
id: "group-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
131
|
-
listingType: "standard",
|
|
132
|
-
categorySlugs: ["category-booster-boxes", "category-sealed-products"],
|
|
133
|
-
images: [
|
|
134
|
-
seedExtMedia(`https://images.ygoprodeck.com/images/cards/cropped/${CARD_IDS.blueEyesWhiteDragon}.jpg`),
|
|
135
|
-
],
|
|
136
|
-
stockQuantity: 2,
|
|
137
|
-
isSold: false,
|
|
138
|
-
availableQuantity: 2,
|
|
139
|
-
customFields: [],
|
|
140
|
-
customSections: [],
|
|
141
|
-
featured: false,
|
|
142
|
-
isPromoted: false,
|
|
143
|
-
isOnSale: false,
|
|
144
|
-
isGroupParent: true,
|
|
145
|
-
groupId: "group-potd-booster-box",
|
|
146
|
-
groupTitle: "POTD Booster Box & Components",
|
|
147
|
-
groupChildSlugs: [
|
|
148
|
-
"product-potd-booster-pack-single",
|
|
149
|
-
"product-elemental-hero-neos",
|
|
76
|
+
id: "group-beyblade-burst-x-related",
|
|
77
|
+
slug: "group-beyblade-burst-x-related",
|
|
78
|
+
title: "Burst & X Attackers You Might Like",
|
|
79
|
+
description: "Top-tier attack-type Beyblades across the Burst and X eras.",
|
|
80
|
+
productIds: [
|
|
81
|
+
"product-beyblade-burst-valkyrie",
|
|
82
|
+
"product-beyblade-burst-regalia-genesis",
|
|
83
|
+
"product-beyblade-x-wizard-arrow",
|
|
84
|
+
"product-beyblade-x-knife-shinobi",
|
|
150
85
|
],
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
86
|
+
coverImage: seedExtMedia("https://picsum.photos/seed/group-beyblade-burst-x-related-20260101/1200/900"),
|
|
87
|
+
groupTheme: "related",
|
|
88
|
+
minActiveMembers: 2,
|
|
89
|
+
activeMemberCount: 4,
|
|
90
|
+
visibilityStatus: "visible",
|
|
91
|
+
isActive: true,
|
|
92
|
+
isFeatured: false,
|
|
93
|
+
storeId: "store-beyblade-arena",
|
|
94
|
+
brandSlug: "brand-beyblade",
|
|
95
|
+
categorySlug: "category-spinning-tops",
|
|
96
|
+
createdBy: "user-admin-letitrip",
|
|
97
|
+
createdAt: daysAgo(15),
|
|
98
|
+
updatedAt: daysAgo(3),
|
|
159
99
|
},
|
|
160
100
|
];
|
|
161
|
-
export const groupedListingsSeedData = _rawGroupedListingsSeedData.map((p) => ({
|
|
162
|
-
...p,
|
|
163
|
-
listingType: "standard",
|
|
164
|
-
}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* WHY: Seeds browse history for
|
|
3
|
-
* WHAT: 3 history docs (
|
|
2
|
+
* WHY: Seeds browse history for the Beyblade marketplace — one doc per user, FIFO-capped at 50, newest-first.
|
|
3
|
+
* WHAT: 3 history docs (Rehan 15 items, Vivaan 8 items, Admin 10 items). All productIds reference the real Beyblade seed products.
|
|
4
4
|
*
|
|
5
5
|
* EXPORTS:
|
|
6
6
|
* historySeedData — Array of HistorySeedDocument for seed runner
|
|
@@ -25,46 +25,46 @@ function makeDoc(userId, items) {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
export const historySeedData = [
|
|
28
|
-
//
|
|
28
|
+
// Rehan: 15 recently viewed — mix of all listing types from Beyblade Arena
|
|
29
29
|
makeDoc("user-yugi-muto", [
|
|
30
|
-
{ productId: "product-
|
|
31
|
-
{ productId: "product-
|
|
32
|
-
{ productId: "auction-
|
|
33
|
-
{ productId: "product-
|
|
34
|
-
{ productId: "product-
|
|
35
|
-
{ productId: "
|
|
36
|
-
{ productId: "product-
|
|
37
|
-
{ productId: "
|
|
38
|
-
{ productId: "
|
|
39
|
-
{ productId: "auction-
|
|
40
|
-
{ productId: "
|
|
41
|
-
{ productId: "product-
|
|
42
|
-
{ productId: "product-
|
|
43
|
-
{ productId: "product-
|
|
44
|
-
{ productId: "product-
|
|
30
|
+
{ productId: "product-beyblade-original-dranzer-s", productType: "product", viewedAt: hoursAgo(1) },
|
|
31
|
+
{ productId: "product-beyblade-original-driger-v", productType: "product", viewedAt: hoursAgo(2) },
|
|
32
|
+
{ productId: "auction-beyblade-original-dragoon-storm", productType: "auction", viewedAt: hoursAgo(4) },
|
|
33
|
+
{ productId: "product-beyblade-metal-flame-sagittario", productType: "product", viewedAt: hoursAgo(6) },
|
|
34
|
+
{ productId: "product-beyblade-burst-valkyrie", productType: "product", viewedAt: hoursAgo(8) },
|
|
35
|
+
{ productId: "classified-beyblade-stadium-set", productType: "product", viewedAt: hoursAgo(12) },
|
|
36
|
+
{ productId: "product-beyblade-metal-storm-pegasus", productType: "product", viewedAt: hoursAgo(18) },
|
|
37
|
+
{ productId: "preorder-beyblade-x-bx-08-wave", productType: "preorder", viewedAt: daysAgo(1) },
|
|
38
|
+
{ productId: "digitalcode-beyblade-x-app-unlock", productType: "product", viewedAt: daysAgo(1) },
|
|
39
|
+
{ productId: "auction-beyblade-metal-lightning-l-drago", productType: "auction", viewedAt: daysAgo(2) },
|
|
40
|
+
{ productId: "prizedraw-beyblade-mystery-box", productType: "preorder", viewedAt: daysAgo(2) },
|
|
41
|
+
{ productId: "product-beyblade-burst-regalia-genesis", productType: "product", viewedAt: daysAgo(3) },
|
|
42
|
+
{ productId: "product-beyblade-x-wizard-arrow", productType: "product", viewedAt: daysAgo(4) },
|
|
43
|
+
{ productId: "product-beyblade-x-knife-shinobi", productType: "product", viewedAt: daysAgo(5) },
|
|
44
|
+
{ productId: "product-beyblade-original-dranzer-s", productType: "product", viewedAt: daysAgo(6) },
|
|
45
45
|
]),
|
|
46
|
-
//
|
|
46
|
+
// Vivaan: 8 recently viewed — browsing Beyblade Arena products
|
|
47
47
|
makeDoc("user-seto-kaiba", [
|
|
48
|
-
{ productId: "product-
|
|
49
|
-
{ productId: "product-
|
|
50
|
-
{ productId: "
|
|
51
|
-
{ productId: "
|
|
52
|
-
{ productId: "product-
|
|
53
|
-
{ productId: "product-
|
|
54
|
-
{ productId: "product-
|
|
55
|
-
{ productId: "product-
|
|
48
|
+
{ productId: "product-beyblade-x-wizard-arrow", productType: "product", viewedAt: hoursAgo(2) },
|
|
49
|
+
{ productId: "product-beyblade-x-knife-shinobi", productType: "product", viewedAt: hoursAgo(5) },
|
|
50
|
+
{ productId: "classified-beyblade-stadium-set", productType: "product", viewedAt: hoursAgo(10) },
|
|
51
|
+
{ productId: "digitalcode-beyblade-x-app-unlock", productType: "product", viewedAt: daysAgo(1) },
|
|
52
|
+
{ productId: "product-beyblade-burst-regalia-genesis", productType: "product", viewedAt: daysAgo(1) },
|
|
53
|
+
{ productId: "product-beyblade-metal-storm-pegasus", productType: "product", viewedAt: daysAgo(2) },
|
|
54
|
+
{ productId: "product-beyblade-original-driger-v", productType: "product", viewedAt: daysAgo(3) },
|
|
55
|
+
{ productId: "product-beyblade-burst-valkyrie", productType: "product", viewedAt: daysAgo(4) },
|
|
56
56
|
]),
|
|
57
|
-
// Admin: 10 recently viewed — browsing
|
|
57
|
+
// Admin: 10 recently viewed — browsing Beyblade Arena to review inventory
|
|
58
58
|
makeDoc("user-admin-letitrip", [
|
|
59
|
-
{ productId: "product-
|
|
60
|
-
{ productId: "auction-
|
|
61
|
-
{ productId: "product-
|
|
62
|
-
{ productId: "product-
|
|
63
|
-
{ productId: "
|
|
64
|
-
{ productId: "product-
|
|
65
|
-
{ productId: "product-
|
|
66
|
-
{ productId: "auction-
|
|
67
|
-
{ productId: "preorder-
|
|
68
|
-
{ productId: "product-
|
|
59
|
+
{ productId: "product-beyblade-metal-storm-pegasus", productType: "product", viewedAt: hoursAgo(1) },
|
|
60
|
+
{ productId: "auction-beyblade-original-dragoon-storm", productType: "auction", viewedAt: hoursAgo(3) },
|
|
61
|
+
{ productId: "product-beyblade-x-knife-shinobi", productType: "product", viewedAt: hoursAgo(6) },
|
|
62
|
+
{ productId: "product-beyblade-burst-valkyrie", productType: "product", viewedAt: hoursAgo(12) },
|
|
63
|
+
{ productId: "prizedraw-beyblade-mystery-box", productType: "preorder", viewedAt: daysAgo(1) },
|
|
64
|
+
{ productId: "product-beyblade-metal-flame-sagittario", productType: "product", viewedAt: daysAgo(1) },
|
|
65
|
+
{ productId: "product-beyblade-x-wizard-arrow", productType: "product", viewedAt: daysAgo(2) },
|
|
66
|
+
{ productId: "auction-beyblade-metal-lightning-l-drago", productType: "auction", viewedAt: daysAgo(3) },
|
|
67
|
+
{ productId: "preorder-beyblade-x-bx-08-wave", productType: "preorder", viewedAt: daysAgo(4) },
|
|
68
|
+
{ productId: "product-beyblade-original-dranzer-s", productType: "product", viewedAt: daysAgo(5) },
|
|
69
69
|
]),
|
|
70
70
|
];
|
|
@@ -165,7 +165,7 @@ export const homepageSectionsSeedData = [
|
|
|
165
165
|
updatedAt: daysAgo(2),
|
|
166
166
|
},
|
|
167
167
|
{
|
|
168
|
-
id: "section-
|
|
168
|
+
id: "section-beyblade-banner",
|
|
169
169
|
type: "banner",
|
|
170
170
|
order: 10,
|
|
171
171
|
enabled: true,
|
|
@@ -369,13 +369,13 @@ export const homepageSectionsSeedData = [
|
|
|
369
369
|
updatedAt: daysAgo(2),
|
|
370
370
|
},
|
|
371
371
|
{
|
|
372
|
-
id: "section-brand-
|
|
372
|
+
id: "section-brand-takara-tomy",
|
|
373
373
|
type: "products",
|
|
374
374
|
order: 22,
|
|
375
375
|
enabled: true,
|
|
376
376
|
config: {
|
|
377
|
-
title: "
|
|
378
|
-
subtitle: "
|
|
377
|
+
title: "Takara-Tomy Official Products",
|
|
378
|
+
subtitle: "Authentic Takara-Tomy Beyblades, direct from Japan",
|
|
379
379
|
maxProducts: 12,
|
|
380
380
|
rows: 2,
|
|
381
381
|
itemsPerRow: 4,
|
|
@@ -383,20 +383,20 @@ export const homepageSectionsSeedData = [
|
|
|
383
383
|
autoScroll: true,
|
|
384
384
|
scrollInterval: 5000,
|
|
385
385
|
loop: true,
|
|
386
|
-
filterByBrand: "brand-
|
|
386
|
+
filterByBrand: "brand-takara-tomy",
|
|
387
387
|
sortBy: "featured",
|
|
388
388
|
},
|
|
389
389
|
createdAt: daysAgo(2),
|
|
390
390
|
updatedAt: daysAgo(2),
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
|
-
id: "section-brand-
|
|
393
|
+
id: "section-brand-beyblade",
|
|
394
394
|
type: "products",
|
|
395
395
|
order: 23,
|
|
396
396
|
enabled: true,
|
|
397
397
|
config: {
|
|
398
|
-
title: "
|
|
399
|
-
subtitle: "
|
|
398
|
+
title: "Beyblade Brand Spotlight",
|
|
399
|
+
subtitle: "Original, Metal Fight, Burst, and X — every generation",
|
|
400
400
|
maxProducts: 12,
|
|
401
401
|
rows: 2,
|
|
402
402
|
itemsPerRow: 4,
|
|
@@ -404,7 +404,7 @@ export const homepageSectionsSeedData = [
|
|
|
404
404
|
autoScroll: true,
|
|
405
405
|
scrollInterval: 5000,
|
|
406
406
|
loop: true,
|
|
407
|
-
filterByBrand: "brand-
|
|
407
|
+
filterByBrand: "brand-beyblade",
|
|
408
408
|
sortBy: "featured",
|
|
409
409
|
},
|
|
410
410
|
createdAt: daysAgo(2),
|