@mohasinac/appkit 4.13.1 → 4.15.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/layout/DashboardLayoutClient.js +14 -5
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +3 -0
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +6 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.d.ts +8 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/LotteryListView.d.ts +7 -0
- package/dist/_internal/client/features/lottery/LotteryListView.js +1 -1
- package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/slot-collage-items.d.ts +15 -0
- package/dist/_internal/client/features/lottery/slot-collage-items.js +13 -0
- package/dist/_internal/server/features/auctions/actions.js +8 -2
- package/dist/_internal/server/features/bundles/data.d.ts +16 -0
- package/dist/_internal/server/features/bundles/data.js +26 -0
- package/dist/_internal/server/features/bundles/index.d.ts +1 -1
- package/dist/_internal/server/features/bundles/index.js +1 -1
- package/dist/_internal/server/features/cart/service.d.ts +3 -3
- package/dist/_internal/server/features/checkout/actions.js +25 -0
- package/dist/_internal/server/features/checkout/locked-lines.d.ts +38 -0
- package/dist/_internal/server/features/checkout/locked-lines.js +171 -0
- package/dist/_internal/server/features/checkout/source-context.d.ts +5 -0
- package/dist/_internal/server/features/checkout/source-context.js +157 -0
- package/dist/_internal/server/features/homepage/index.d.ts +0 -1
- package/dist/_internal/server/features/homepage/index.js +7 -1
- package/dist/_internal/server/features/lottery/adapters.js +4 -0
- package/dist/_internal/server/features/offers/adapters.d.ts +103 -0
- package/dist/_internal/server/features/offers/adapters.js +88 -0
- package/dist/_internal/server/features/offers/index.d.ts +2 -0
- package/dist/_internal/server/features/offers/index.js +1 -0
- package/dist/_internal/server/features/orders/adapters.js +24 -0
- package/dist/_internal/server/features/products/data.js +15 -37
- package/dist/_internal/server/features/products/index.d.ts +1 -1
- package/dist/_internal/server/features/products/index.js +1 -1
- package/dist/_internal/server/features/products/list-public.d.ts +46 -20
- package/dist/_internal/server/features/products/list-public.js +266 -90
- package/dist/_internal/server/features/products/listing-tab-counts.d.ts +44 -0
- package/dist/_internal/server/features/products/listing-tab-counts.js +97 -0
- package/dist/_internal/server/features/site-settings/adapters.d.ts +51 -0
- package/dist/_internal/server/features/site-settings/adapters.js +75 -0
- package/dist/_internal/server/features/site-settings/index.d.ts +1 -0
- package/dist/_internal/server/features/site-settings/index.js +1 -0
- package/dist/_internal/server/features/stores/adapters.d.ts +56 -0
- package/dist/_internal/server/features/stores/adapters.js +91 -0
- package/dist/_internal/server/features/stores/index.d.ts +1 -0
- package/dist/_internal/server/features/stores/index.js +1 -0
- package/dist/_internal/server/jobs/core/auctionSettlement.js +56 -2
- package/dist/_internal/server/jobs/core/offerExpiry.js +55 -19
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +5 -0
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +33 -1
- package/dist/_internal/server/jobs/handlers/messages.d.ts +7 -0
- package/dist/_internal/server/jobs/handlers/messages.js +10 -0
- package/dist/_internal/shared/actions/action-registry.js +17 -1
- package/dist/_internal/shared/checkout/lanes.d.ts +25 -0
- package/dist/_internal/shared/checkout/lanes.js +26 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +27 -0
- package/dist/_internal/shared/features/auctions/config.js +27 -0
- package/dist/_internal/shared/features/auctions/schema.d.ts +14 -2
- package/dist/_internal/shared/features/auctions/schema.js +13 -1
- package/dist/_internal/shared/features/blog/schema.d.ts +2 -2
- package/dist/_internal/shared/features/cart/schema.d.ts +20 -15
- package/dist/_internal/shared/features/cart/schema.js +15 -0
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +32 -32
- package/dist/_internal/shared/features/emi/schedule.d.ts +24 -3
- package/dist/_internal/shared/features/emi/schedule.js +20 -5
- package/dist/_internal/shared/features/events/schema.d.ts +2 -2
- package/dist/_internal/shared/features/homepage/section-gate.d.ts +14 -0
- package/dist/_internal/shared/features/homepage/section-gate.js +51 -0
- package/dist/_internal/shared/features/offers/config.d.ts +30 -0
- package/dist/_internal/shared/features/offers/config.js +59 -0
- package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
- package/dist/_internal/shared/features/products/schema.d.ts +30 -30
- package/dist/_internal/shared/features/products/to-product-item.js +6 -0
- package/dist/_internal/shared/features/reviews/schema.d.ts +2 -2
- package/dist/_internal/shared/features/site-settings/fees.d.ts +60 -0
- package/dist/_internal/shared/features/site-settings/fees.js +39 -0
- package/dist/_internal/shared/features/site-settings/types.d.ts +40 -0
- package/dist/_internal/shared/features/site-settings/types.js +1 -0
- package/dist/_internal/shared/history/history.d.ts +88 -0
- package/dist/_internal/shared/history/history.js +198 -0
- package/dist/_internal/shared/history/index.d.ts +4 -0
- package/dist/_internal/shared/history/index.js +2 -0
- package/dist/_internal/shared/history/types.d.ts +61 -0
- package/dist/_internal/shared/history/types.js +6 -0
- package/dist/_internal/shared/listing-types/_registry.d.ts +54 -1
- package/dist/_internal/shared/listing-types/_registry.js +67 -0
- package/dist/_internal/shared/listing-types/art/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/art/config.js +5 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +13 -0
- package/dist/_internal/shared/listing-types/auction/config.js +21 -0
- package/dist/_internal/shared/listing-types/availability.d.ts +79 -0
- package/dist/_internal/shared/listing-types/availability.js +104 -0
- package/dist/_internal/shared/listing-types/capabilities.d.ts +15 -0
- package/dist/_internal/shared/listing-types/capabilities.js +12 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/classified/config.js +5 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +22 -2
- package/dist/_internal/shared/listing-types/live/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/live/config.js +5 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +19 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +15 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/standard/config.js +5 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +5 -0
- package/dist/client.d.ts +20 -7
- package/dist/client.js +22 -4
- package/dist/constants/api-endpoints.d.ts +6 -0
- package/dist/constants/api-endpoints.js +2 -0
- package/dist/constants/field-names.d.ts +57 -8
- package/dist/constants/field-names.js +101 -8
- package/dist/constants/table-keys.d.ts +17 -0
- package/dist/constants/table-keys.js +17 -0
- package/dist/errors/error-codes.d.ts +13 -1
- package/dist/errors/error-codes.js +13 -1
- package/dist/errors/error-display-map.js +12 -3
- package/dist/errors/messages.d.ts +10 -2
- package/dist/errors/messages.js +10 -2
- package/dist/features/about/components/AboutView.d.ts +3 -0
- package/dist/features/about/components/AboutView.js +3 -2
- package/dist/features/about/components/PolicyPageView.d.ts +2 -1
- package/dist/features/about/components/PolicyPageView.js +61 -23
- package/dist/features/about/components/PublicProfileView.js +5 -0
- package/dist/features/about/schemas/firestore.d.ts +3 -0
- package/dist/features/account/components/UserBidsView.js +12 -4
- package/dist/features/account/components/UserOrdersView.js +7 -0
- package/dist/features/account/components/UserReturnsView.d.ts +3 -0
- package/dist/features/account/components/UserReturnsView.js +17 -1
- package/dist/features/account/components/index.d.ts +0 -2
- package/dist/features/account/components/index.js +0 -1
- package/dist/features/account/schemas/index.d.ts +2 -2
- package/dist/features/account/types/index.d.ts +21 -2
- package/dist/features/addresses/schemas/index.d.ts +4 -4
- package/dist/features/admin/components/AdminArtView.js +8 -3
- package/dist/features/admin/components/AdminAuditLogView.js +1 -0
- package/dist/features/admin/components/AdminBidsView.js +15 -2
- package/dist/features/admin/components/AdminBlogEditorView.js +65 -33
- package/dist/features/admin/components/AdminClassifiedView.js +8 -3
- package/dist/features/admin/components/AdminDigitalCodesView.js +8 -3
- package/dist/features/admin/components/AdminFeatureEditorView.js +35 -6
- package/dist/features/admin/components/AdminFeatureFlagsView.js +1 -0
- package/dist/features/admin/components/AdminLiveView.js +8 -3
- package/dist/features/admin/components/AdminNavEditorView.js +15 -5
- package/dist/features/admin/components/AdminNewsletterView.js +18 -2
- package/dist/features/admin/components/AdminOffersView.d.ts +4 -0
- package/dist/features/admin/components/AdminOffersView.js +230 -0
- package/dist/features/admin/components/AdminOrdersView.js +10 -1
- package/dist/features/admin/components/AdminPaymentMethodsView.js +24 -4
- package/dist/features/admin/components/AdminPrizeDrawsView.js +5 -0
- package/dist/features/admin/components/AdminProductsView.js +16 -29
- package/dist/features/admin/components/AdminScammerEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminScammerEditorView.js +3 -13
- package/dist/features/admin/components/AdminScammersView.js +3 -8
- package/dist/features/admin/components/AdminSectionsView.js +32 -23
- package/dist/features/admin/components/AdminSessionsView.js +17 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +31 -13
- package/dist/features/admin/components/AdminSiteView.js +6 -2
- package/dist/features/admin/components/AdminStickersView.js +8 -3
- package/dist/features/admin/components/ViewAuditLogEntryModal.js +1 -0
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +4 -2
- package/dist/features/admin/components/sections/adminSectionsTypes.js +45 -27
- package/dist/features/admin/constants/filter-tabs.d.ts +89 -0
- package/dist/features/admin/constants/filter-tabs.js +56 -0
- package/dist/features/admin/schemas/firestore.d.ts +122 -3
- package/dist/features/admin/schemas/firestore.js +1 -0
- package/dist/features/admin/schemas/homepage-section-form.d.ts +22 -0
- package/dist/features/admin/schemas/homepage-section-form.js +68 -0
- package/dist/features/admin/schemas/nav-item-form.d.ts +74 -0
- package/dist/features/admin/schemas/nav-item-form.js +72 -0
- package/dist/features/auctions/actions/bid-actions.d.ts +20 -5
- package/dist/features/auctions/actions/bid-actions.js +93 -20
- package/dist/features/auctions/components/AuctionBidsTable.d.ts +10 -1
- package/dist/features/auctions/components/AuctionBidsTable.js +22 -4
- package/dist/features/auctions/components/AuctionDetailPageView.js +11 -6
- package/dist/features/auctions/components/AuctionsListView.js +5 -6
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +7 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +19 -2
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +1 -2
- package/dist/features/auctions/components/PlaceBidFormClient.js +8 -4
- package/dist/features/auctions/components/bid-detail-fields.d.ts +29 -0
- package/dist/features/auctions/components/bid-detail-fields.js +103 -0
- package/dist/features/auctions/repository/bid.repository.d.ts +13 -0
- package/dist/features/auctions/repository/bid.repository.js +23 -0
- package/dist/features/auctions/schemas/firestore.d.ts +17 -0
- package/dist/features/auctions/schemas/index.d.ts +12 -12
- package/dist/features/audit-log/schemas/firestore.d.ts +14 -0
- package/dist/features/audit-log/schemas/firestore.js +7 -0
- package/dist/features/auth/permissions/constants.d.ts +1 -1
- package/dist/features/auth/permissions/constants.js +10 -1
- package/dist/features/blog/actions/blog-actions.d.ts +7 -7
- package/dist/features/blog/schemas/blog-form.d.ts +80 -0
- package/dist/features/blog/schemas/blog-form.js +100 -0
- package/dist/features/blog/schemas/index.d.ts +6 -6
- package/dist/features/cart/repository/cart.repository.js +1 -0
- package/dist/features/cart/schemas/firestore.d.ts +15 -0
- package/dist/features/catalogue/schemas/validation.d.ts +4 -4
- package/dist/features/categories/components/BrandDetailPageView.js +23 -40
- package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -7
- package/dist/features/categories/components/BrandDetailTabs.js +8 -12
- package/dist/features/categories/components/BundleCollage.js +1 -1
- package/dist/features/categories/components/CategoryDetailPageView.js +53 -57
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +10 -8
- package/dist/features/categories/components/CategoryDetailTabs.js +11 -16
- package/dist/features/categories/components/CategoryProductsListing.js +11 -1
- package/dist/features/categories/components/ConcernCard.js +7 -1
- package/dist/features/categories/schemas/firestore.d.ts +13 -0
- package/dist/features/categories/schemas/index.d.ts +26 -26
- package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +16 -1
- package/dist/features/classified/components/ClassifiedDetailPageView.js +23 -3
- package/dist/features/events/components/AdminEventEditorView.js +32 -54
- package/dist/features/events/components/AdminEventEntriesView.js +22 -3
- package/dist/features/events/components/AdminEventsView.js +15 -11
- package/dist/features/events/components/EventFilters.d.ts +9 -1
- package/dist/features/events/components/EventFilters.js +45 -21
- package/dist/features/events/components/EventsIndexListing.d.ts +6 -1
- package/dist/features/events/components/EventsIndexListing.js +2 -2
- package/dist/features/events/components/EventsListPageView.js +13 -4
- package/dist/features/events/repository/events.repository.d.ts +17 -0
- package/dist/features/events/repository/events.repository.js +27 -0
- package/dist/features/events/schemas/event-form.d.ts +113 -0
- package/dist/features/events/schemas/event-form.js +82 -0
- package/dist/features/events/schemas/firestore.d.ts +12 -0
- package/dist/features/events/schemas/firestore.js +12 -0
- package/dist/features/events/schemas/index.d.ts +50 -50
- package/dist/features/events/types/index.d.ts +11 -0
- package/dist/features/events/types/index.js +57 -1
- package/dist/features/faq/actions/faq-actions.d.ts +12 -12
- package/dist/features/faq/schemas/index.d.ts +8 -8
- package/dist/features/filters/FilterFacetSection.d.ts +7 -1
- package/dist/features/filters/FilterFacetSection.js +11 -3
- package/dist/features/grouped/schemas/grouped-listing-form.d.ts +101 -0
- package/dist/features/grouped/schemas/grouped-listing-form.js +89 -0
- package/dist/features/grouped/schemas/index.d.ts +4 -4
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +11 -3
- package/dist/features/homepage/actions/homepage-section-actions.js +33 -1
- package/dist/features/homepage/components/AnnouncementBar.d.ts +7 -1
- package/dist/features/homepage/components/AnnouncementBar.js +3 -3
- package/dist/features/homepage/components/MarketplaceHomepageView.js +20 -6
- package/dist/features/homepage/hooks/homepage-query.d.ts +16 -0
- package/dist/features/homepage/hooks/homepage-query.js +45 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +10 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +28 -8
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +17 -8
- package/dist/features/homepage/hooks/useFeaturedProducts.js +15 -8
- package/dist/features/homepage/schemas/index.d.ts +33 -2
- package/dist/features/homepage/schemas/index.js +24 -0
- package/dist/features/layout/AppLayoutShell.d.ts +11 -1
- package/dist/features/layout/AppLayoutShell.js +15 -14
- package/dist/features/layout/BackToTop.d.ts +9 -0
- package/dist/features/layout/BackToTop.js +10 -1
- package/dist/features/layout/BottomActions.js +28 -25
- package/dist/features/layout/BottomChrome.d.ts +34 -0
- package/dist/features/layout/BottomChrome.js +55 -0
- package/dist/features/layout/BottomNavLayout.d.ts +6 -0
- package/dist/features/layout/BottomNavLayout.js +7 -1
- package/dist/features/layout/BottomNavbar.js +15 -2
- package/dist/features/layout/FooterLayout.js +11 -1
- package/dist/features/layout/NavbarLayout.js +1 -1
- package/dist/features/layout/TitleBarLayout.d.ts +7 -0
- package/dist/features/layout/TitleBarLayout.js +28 -5
- package/dist/features/layout/index.d.ts +2 -0
- package/dist/features/layout/index.js +1 -0
- package/dist/features/lottery/types/index.d.ts +3 -0
- package/dist/features/media/MediaPickerModal.js +5 -1
- package/dist/features/messages/schemas/index.d.ts +2 -2
- package/dist/features/orders/components/OrderScopeTabs.d.ts +20 -0
- package/dist/features/orders/components/OrderScopeTabs.js +31 -0
- package/dist/features/orders/components/OrderStatusTimeline.d.ts +5 -1
- package/dist/features/orders/components/OrderStatusTimeline.js +39 -20
- package/dist/features/orders/constants/order-scope.d.ts +48 -0
- package/dist/features/orders/constants/order-scope.js +111 -0
- package/dist/features/orders/repository/orders.repository.d.ts +54 -7
- package/dist/features/orders/repository/orders.repository.js +121 -22
- package/dist/features/orders/schemas/firestore.d.ts +152 -0
- package/dist/features/orders/schemas/firestore.js +30 -0
- package/dist/features/orders/schemas/index.d.ts +18 -18
- package/dist/features/orders/types/index.d.ts +35 -7
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +14 -9
- package/dist/features/pre-orders/components/PreOrdersListView.js +6 -5
- package/dist/features/pre-orders/schemas/index.d.ts +1 -1
- package/dist/features/products/actions/product-actions.d.ts +14 -0
- package/dist/features/products/actions/product-actions.js +49 -11
- package/dist/features/products/api/route.d.ts +12 -0
- package/dist/features/products/api/route.js +42 -100
- package/dist/features/products/components/ArtStickersListView.js +2 -2
- package/dist/features/products/components/AuctionsIndexListing.js +13 -11
- package/dist/features/products/components/AvailabilityTabs.d.ts +11 -0
- package/dist/features/products/components/AvailabilityTabs.js +47 -0
- package/dist/features/products/components/GroupSettingsPanel.js +5 -1
- package/dist/features/products/components/MakeOfferButton.js +48 -49
- package/dist/features/products/components/PrizeDrawCollage.d.ts +20 -4
- package/dist/features/products/components/PrizeDrawCollage.js +9 -1
- package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -12
- package/dist/features/products/components/PrizeDrawsListingView.js +2 -2
- package/dist/features/products/components/PrizeDrawsSection.d.ts +7 -1
- package/dist/features/products/components/PrizeDrawsSection.js +23 -18
- package/dist/features/products/components/ProductDetailPageView.d.ts +4 -1
- package/dist/features/products/components/ProductDetailPageView.js +18 -4
- package/dist/features/products/components/ProductForm.js +5 -2
- package/dist/features/products/components/ProductGrid.js +6 -1
- package/dist/features/products/components/ProductsIndexListing.js +22 -32
- package/dist/features/products/components/ProductsIndexPageView.js +6 -9
- package/dist/features/products/components/index.d.ts +2 -2
- package/dist/features/products/components/index.js +1 -1
- package/dist/features/products/config/listing-type-listing-config.d.ts +20 -0
- package/dist/features/products/config/listing-type-listing-config.js +22 -10
- package/dist/features/products/constants/action-defs.d.ts +2 -0
- package/dist/features/products/constants/action-defs.js +6 -0
- package/dist/features/products/hooks/useAvailabilityScope.d.ts +13 -0
- package/dist/features/products/hooks/useAvailabilityScope.js +19 -0
- package/dist/features/products/hooks/useProducts.d.ts +5 -0
- package/dist/features/products/hooks/useProducts.js +13 -2
- package/dist/features/products/repository/products.repository.d.ts +31 -2
- package/dist/features/products/repository/products.repository.js +53 -21
- package/dist/features/products/schemas/firestore.d.ts +17 -3
- package/dist/features/products/schemas/firestore.js +7 -2
- package/dist/features/products/schemas/index.d.ts +64 -64
- package/dist/features/products/schemas/product-features.validators.d.ts +79 -6
- package/dist/features/products/schemas/product-features.validators.js +63 -0
- package/dist/features/products/types/index.d.ts +16 -1
- package/dist/features/promotions/schemas/index.d.ts +2 -2
- package/dist/features/reviews/schemas/index.d.ts +16 -16
- package/dist/features/scams/constants/scammer-status-display.d.ts +28 -0
- package/dist/features/scams/constants/scammer-status-display.js +79 -0
- package/dist/features/search/schemas/index.d.ts +4 -4
- package/dist/features/seller/actions/offer-actions.js +57 -4
- package/dist/features/seller/components/OfferPhaseTimeline.d.ts +59 -0
- package/dist/features/seller/components/OfferPhaseTimeline.js +107 -0
- package/dist/features/seller/components/SellerArtView.js +5 -0
- package/dist/features/seller/components/SellerAuctionsView.js +13 -15
- package/dist/features/seller/components/SellerBidsView.js +11 -4
- package/dist/features/seller/components/SellerClassifiedView.js +5 -0
- package/dist/features/seller/components/SellerCouponEditorView.js +17 -17
- package/dist/features/seller/components/SellerDigitalCodesView.js +5 -0
- package/dist/features/seller/components/SellerLiveView.js +5 -0
- package/dist/features/seller/components/SellerOffersView.js +2 -1
- package/dist/features/seller/components/SellerOrdersView.js +31 -9
- package/dist/features/seller/components/SellerPayoutSettingsView.js +56 -31
- package/dist/features/seller/components/SellerPreOrdersView.js +5 -0
- package/dist/features/seller/components/SellerPrizeDrawsView.js +14 -16
- package/dist/features/seller/components/SellerProductShell.js +7 -1
- package/dist/features/seller/components/SellerProductsView.js +11 -8
- package/dist/features/seller/components/SellerStickersView.js +5 -0
- package/dist/features/seller/components/index.d.ts +0 -2
- package/dist/features/seller/components/index.js +0 -1
- package/dist/features/seller/repository/offer.repository.d.ts +142 -24
- package/dist/features/seller/repository/offer.repository.js +165 -26
- package/dist/features/seller/schemas/coupon-form.d.ts +72 -0
- package/dist/features/seller/schemas/coupon-form.js +116 -0
- package/dist/features/seller/schemas/firestore.d.ts +56 -2
- package/dist/features/seller/schemas/firestore.js +27 -0
- package/dist/features/seller/schemas/index.d.ts +2 -2
- package/dist/features/seller/schemas/offer-forms.d.ts +46 -0
- package/dist/features/seller/schemas/offer-forms.js +42 -0
- package/dist/features/seller/server.d.ts +0 -1
- package/dist/features/seller/server.js +0 -1
- package/dist/features/shell/SectionForm.d.ts +99 -0
- package/dist/features/shell/SectionForm.js +128 -0
- package/dist/features/shell/build-sections.d.ts +63 -0
- package/dist/features/shell/build-sections.js +207 -0
- package/dist/features/shell/entity-form.d.ts +109 -0
- package/dist/features/shell/entity-form.js +96 -0
- package/dist/features/shell/field-ui-meta.d.ts +115 -0
- package/dist/features/shell/field-ui-meta.js +324 -0
- package/dist/features/shell/index.d.ts +8 -0
- package/dist/features/shell/index.js +4 -0
- package/dist/features/status-history/components/StatusTimeline.d.ts +74 -0
- package/dist/features/status-history/components/StatusTimeline.js +46 -0
- package/dist/features/status-history/index.d.ts +11 -0
- package/dist/features/status-history/index.js +10 -0
- package/dist/features/store-extensions/components/ReviewDecisionModal.d.ts +27 -0
- package/dist/features/store-extensions/components/ReviewDecisionModal.js +82 -0
- package/dist/features/store-extensions/index.d.ts +12 -0
- package/dist/features/store-extensions/index.js +12 -0
- package/dist/features/store-extensions/schemas/admin-notification-form.d.ts +36 -0
- package/dist/features/store-extensions/schemas/admin-notification-form.js +114 -0
- package/dist/features/store-extensions/schemas/analytics-forms.d.ts +57 -0
- package/dist/features/store-extensions/schemas/analytics-forms.js +158 -0
- package/dist/features/store-extensions/schemas/custom-role-form.d.ts +85 -0
- package/dist/features/store-extensions/schemas/custom-role-form.js +118 -0
- package/dist/features/store-extensions/schemas/firestore.d.ts +21 -1
- package/dist/features/store-extensions/schemas/firestore.js +60 -0
- package/dist/features/store-extensions/schemas/google-config-form.d.ts +53 -0
- package/dist/features/store-extensions/schemas/google-config-form.js +105 -0
- package/dist/features/store-extensions/schemas/item-request-create-form.d.ts +28 -0
- package/dist/features/store-extensions/schemas/item-request-create-form.js +80 -0
- package/dist/features/store-extensions/schemas/listing-template-form.d.ts +78 -0
- package/dist/features/store-extensions/schemas/listing-template-form.js +87 -0
- package/dist/features/store-extensions/schemas/moderation-review-form.d.ts +49 -0
- package/dist/features/store-extensions/schemas/moderation-review-form.js +101 -0
- package/dist/features/store-extensions/schemas/payout-method-form.d.ts +153 -0
- package/dist/features/store-extensions/schemas/payout-method-form.js +155 -0
- package/dist/features/store-extensions/schemas/report-create-form.d.ts +25 -0
- package/dist/features/store-extensions/schemas/report-create-form.js +79 -0
- package/dist/features/store-extensions/schemas/report-review-form.d.ts +47 -0
- package/dist/features/store-extensions/schemas/report-review-form.js +111 -0
- package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +148 -0
- package/dist/features/store-extensions/schemas/shipping-config-form.js +104 -0
- package/dist/features/store-extensions/schemas/store-category-form.d.ts +54 -0
- package/dist/features/store-extensions/schemas/store-category-form.js +73 -0
- package/dist/features/stores/api/[storeSlug]/route.js +2 -25
- package/dist/features/stores/components/StoreAuctionsListing.js +15 -1
- package/dist/features/stores/components/StoreClassifiedsListing.js +12 -2
- package/dist/features/stores/components/StoreDetailLayoutView.js +24 -71
- package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -2
- package/dist/features/stores/components/StoreLiveItemsListing.js +12 -2
- package/dist/features/stores/components/StorePreOrdersListing.js +12 -1
- package/dist/features/stores/components/StoreProductsListing.js +11 -1
- package/dist/features/stores/repository/store.repository.js +6 -0
- package/dist/features/stores/schemas/index.d.ts +6 -6
- package/dist/features/support/schemas/index.d.ts +4 -4
- package/dist/features/tester/actions/checklist-item-actions.d.ts +4 -4
- package/dist/features/tester/seed-data/offers-tester-seed-data.js +119 -3
- package/dist/features/tester/seed-data/products-tester-seed-data.js +131 -1
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +431 -1
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
- package/dist/index.d.ts +25 -12
- package/dist/index.js +26 -11
- package/dist/next/routing/route-map.d.ts +23 -3
- package/dist/next/routing/route-map.js +14 -2
- package/dist/providers/db-firebase/base.repository.d.ts +30 -0
- package/dist/providers/db-firebase/base.repository.js +50 -1
- package/dist/providers/db-firebase/index.d.ts +1 -1
- package/dist/providers/db-firebase/index.js +1 -1
- package/dist/providers/db-firebase/sieve.d.ts +25 -0
- package/dist/providers/db-firebase/sieve.js +52 -18
- package/dist/react/hooks/useUrlTable.js +10 -1
- package/dist/schemas/firestore-value.d.ts +8 -0
- package/dist/schemas/firestore-value.js +44 -0
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/registry.d.ts +702 -69
- package/dist/schemas/registry.js +64 -1
- package/dist/seed/_helpers/category-forest.d.ts +2 -0
- package/dist/seed/_helpers/category-forest.js +309 -0
- package/dist/seed/_helpers/category-tree.d.ts +27 -0
- package/dist/seed/_helpers/category-tree.js +103 -0
- package/dist/seed/bids-seed-data.js +30 -0
- package/dist/seed/catalogue-seed-data.js +12 -12
- package/dist/seed/categories-seed-data.js +177 -162
- package/dist/seed/events-seed-data.js +61 -10
- package/dist/seed/homepage-sections-seed-data.js +5 -1
- package/dist/seed/offers-seed-data.js +244 -34
- package/dist/seed/orders-seed-data.js +336 -1
- package/dist/seed/products-art-seed-data.js +50 -12
- package/dist/seed/products-auctions-seed-data.js +138 -18
- package/dist/seed/products-classifieds-seed-data.js +80 -16
- package/dist/seed/products-digital-codes-seed-data.js +66 -18
- package/dist/seed/products-live-items-seed-data.js +64 -13
- package/dist/seed/products-preorders-seed-data.d.ts +0 -1
- package/dist/seed/products-preorders-seed-data.js +52 -13
- package/dist/seed/products-prize-draws-seed-data.js +63 -14
- package/dist/seed/products-standard-seed-data.js +99 -26
- package/dist/seed/products-stickers-seed-data.js +47 -12
- package/dist/seed/reviews-seed-data.js +6 -1
- package/dist/seed/site-settings-seed-data.d.ts +1 -38
- package/dist/seed/site-settings-seed-data.js +38 -76
- package/dist/seed/stores-seed-data.js +71 -1
- package/dist/seed/users-seed-data.js +15 -5
- package/dist/server-entry.d.ts +1 -2
- package/dist/server-entry.js +4 -3
- package/dist/server.d.ts +6 -3
- package/dist/server.js +13 -4
- package/dist/styles.css +78 -12
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/Button.style.css +19 -4
- package/dist/ui/components/CollapsibleSection.d.ts +17 -1
- package/dist/ui/components/CollapsibleSection.js +6 -2
- package/dist/ui/components/FilterChipGroup.d.ts +25 -1
- package/dist/ui/components/FilterChipGroup.js +21 -4
- package/dist/ui/components/HandMode.style.css +47 -0
- package/dist/ui/components/Layout.d.ts +9 -2
- package/dist/ui/components/Layout.js +1 -1
- package/dist/ui/components/ListingLayout.js +8 -8
- package/dist/ui/components/ListingLayout.style.css +8 -7
- package/dist/ui/components/RecordDetailModal.d.ts +10 -1
- package/dist/ui/components/RecordDetailModal.js +2 -2
- package/dist/ui/components/StickyToolbar.d.ts +3 -1
- package/dist/ui/components/StickyToolbar.js +62 -20
- package/dist/ui/components/bottom-chrome-slot.d.ts +21 -0
- package/dist/ui/components/bottom-chrome-slot.js +29 -0
- package/dist/ui/components/index.style.css +3 -0
- package/dist/ui/forms/FormShell.d.ts +43 -13
- package/dist/ui/forms/FormShell.js +22 -11
- package/dist/ui/forms/index.d.ts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +2 -1
- package/scripts/node-esm-loader.mjs +65 -0
- package/scripts/seed-cli-loader.mjs +6 -49
- package/scripts/seed-cli.mjs +1 -1
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* Also fixes a real field-name bug: the two original fixtures set `buyItNowPrice`
|
|
8
8
|
* (a distinct, no-bids-yet-only BIN field) but AuctionDetailPageView.tsx reads
|
|
9
9
|
* `buyNowPrice` — so neither auction's Buy Now button/price ever rendered.
|
|
10
|
-
* WHAT: Exports
|
|
10
|
+
* WHAT: Exports 9 auction products with listingType:"auction" — 2 original fixtures
|
|
11
11
|
* (field-bug fixed, specs/tags added) + 6 new: a Buy-Now-only auction (zero bids,
|
|
12
12
|
* bidsHaveStarted:false), a reserve-not-met auction, a closed/won auction with a
|
|
13
13
|
* winning bidder, and 3 more active auctions with varied end dates/bid activity.
|
|
14
14
|
*
|
|
15
15
|
* EXPORTS:
|
|
16
|
-
* productsAuctionsSeedData — Array of
|
|
16
|
+
* productsAuctionsSeedData — Array of 9 auction products with listingType:"auction"
|
|
17
17
|
*
|
|
18
18
|
* @tag domain:auctions,products
|
|
19
19
|
* @tag layer:seed
|
|
@@ -48,8 +48,8 @@ const _rawProductsAuctionsSeedData = [
|
|
|
48
48
|
slug: "auction-beyblade-original-dragoon-storm",
|
|
49
49
|
title: "Beyblade Original — Dragoon Storm (Rare Sealed)",
|
|
50
50
|
description: "Sealed, unopened Dragoon Storm from the original 1999-2003 series. A grail piece for original-generation collectors.",
|
|
51
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
52
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
51
|
+
categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
52
|
+
categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
53
53
|
brandSlug: "brand-beyblade",
|
|
54
54
|
brand: "Beyblade",
|
|
55
55
|
startingBid: 2999,
|
|
@@ -92,8 +92,8 @@ const _rawProductsAuctionsSeedData = [
|
|
|
92
92
|
slug: "auction-beyblade-metal-lightning-l-drago",
|
|
93
93
|
title: "Metal Fight Beyblade BB-99 Lightning L-Drago",
|
|
94
94
|
description: "Lightning L-Drago 100HF/S, a highly sought-after Metal Fury era top in excellent condition.",
|
|
95
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
96
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
95
|
+
categorySlugs: ["category-metal-masters", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
96
|
+
categoryNames: ["Metal Masters", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
97
97
|
brandSlug: "brand-takara-tomy",
|
|
98
98
|
brand: "Takara-Tomy",
|
|
99
99
|
startingBid: 1999,
|
|
@@ -124,14 +124,17 @@ const _rawProductsAuctionsSeedData = [
|
|
|
124
124
|
createdAt: new Date("2026-05-19"),
|
|
125
125
|
updatedAt: new Date("2026-05-22"),
|
|
126
126
|
},
|
|
127
|
-
// ---
|
|
127
|
+
// --- The clean buyout fixture: BIN price well above the standing bid ---
|
|
128
|
+
// (It also happens to have zero bids, but that is no longer WHY Buy Now is
|
|
129
|
+
// offered — the `bidsHaveStarted` gate was dropped 2026-08-24. What matters
|
|
130
|
+
// now is `buyNowPrice > currentBid`, which holds here 1299 > 799.)
|
|
128
131
|
{
|
|
129
132
|
id: "auction-beyblade-x-shark-edge",
|
|
130
133
|
slug: "auction-beyblade-x-shark-edge",
|
|
131
134
|
title: "Beyblade X BX-04 Shark Edge (Buy It Now Available)",
|
|
132
|
-
description: "Shark Edge 3-60GF straight from a fresh case pull.
|
|
133
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
134
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
135
|
+
description: "Shark Edge 3-60GF straight from a fresh case pull. Grab it at the Buy It Now price before the clock runs, or start the bidding.",
|
|
136
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
137
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
135
138
|
brandSlug: "brand-takara-tomy",
|
|
136
139
|
brand: "Takara-Tomy",
|
|
137
140
|
startingBid: 799,
|
|
@@ -161,14 +164,54 @@ const _rawProductsAuctionsSeedData = [
|
|
|
161
164
|
createdAt: new Date("2026-08-14"),
|
|
162
165
|
updatedAt: new Date("2026-08-14"),
|
|
163
166
|
},
|
|
167
|
+
// --- NEGATIVE CONTROL: bidding has passed the buy-now price ---
|
|
168
|
+
// Buy Now must be offered NOWHERE for this listing — not the button on the
|
|
169
|
+
// detail page, not the advertised price above it, not the Buyout chip on the
|
|
170
|
+
// card. Before the 2026-08-24 rework those three sites used three different
|
|
171
|
+
// conditions, so this state was unreachable as a test case.
|
|
172
|
+
{
|
|
173
|
+
id: "auction-beyblade-burst-xcalius-passed-bin",
|
|
174
|
+
slug: "auction-beyblade-burst-xcalius-passed-bin",
|
|
175
|
+
title: "Beyblade Burst Xcalius X2 (bidding passed Buy It Now)",
|
|
176
|
+
description: "Xcalius X2 attack type. The Buy It Now price has already been overtaken by live bidding, so only bidding remains.",
|
|
177
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
178
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
179
|
+
brandSlug: "brand-takara-tomy",
|
|
180
|
+
brand: "Takara-Tomy",
|
|
181
|
+
startingBid: 700,
|
|
182
|
+
buyNowPrice: 1400,
|
|
183
|
+
currentBid: 1650,
|
|
184
|
+
currency: "INR",
|
|
185
|
+
auctionEndDate: new Date(Date.now() + 4 * 24 * 60 * 60 * 1000),
|
|
186
|
+
bidCount: 7,
|
|
187
|
+
bidsHaveStarted: true,
|
|
188
|
+
isSold: false,
|
|
189
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-1-20260824/900/900"),
|
|
190
|
+
images: [
|
|
191
|
+
seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-1-20260824/900/900"),
|
|
192
|
+
seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-2-20260824/900/900"),
|
|
193
|
+
],
|
|
194
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
195
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
196
|
+
tags: ["attack-type", "burst"],
|
|
197
|
+
specifications: [
|
|
198
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
199
|
+
{ name: "Type", value: "Attack" },
|
|
200
|
+
{ name: "Weight", value: "33.8", unit: "g" },
|
|
201
|
+
],
|
|
202
|
+
storeId: "store-beyblade-arena",
|
|
203
|
+
storeName: "Beyblade Arena",
|
|
204
|
+
createdAt: new Date("2026-08-24"),
|
|
205
|
+
updatedAt: new Date("2026-08-24"),
|
|
206
|
+
},
|
|
164
207
|
// --- Reserve not met: currentBid sits below reservePrice ---
|
|
165
208
|
{
|
|
166
209
|
id: "auction-beyblade-original-seaborg",
|
|
167
210
|
slug: "auction-beyblade-original-seaborg",
|
|
168
211
|
title: "Beyblade Original — Seaborg 2000 (Reserve Auction)",
|
|
169
212
|
description: "Rare Seaborg 2000 defense-type top from the original series. Reserve price set by the seller — current bids haven't met it yet.",
|
|
170
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
171
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
213
|
+
categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
214
|
+
categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
172
215
|
brandSlug: "brand-beyblade",
|
|
173
216
|
brand: "Beyblade",
|
|
174
217
|
startingBid: 1499,
|
|
@@ -204,8 +247,8 @@ const _rawProductsAuctionsSeedData = [
|
|
|
204
247
|
slug: "auction-beyblade-metal-diablo-nemesis",
|
|
205
248
|
title: "Metal Fight Beyblade BB-122 Diablo Nemesis (Ended — Sold)",
|
|
206
249
|
description: "Diablo Nemesis XF, the final boss top of Metal Fight Beyblade Zero-G. Auction closed with a winning bidder.",
|
|
207
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
208
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
250
|
+
categorySlugs: ["category-metal-fury", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
251
|
+
categoryNames: ["Metal Fury", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
209
252
|
brandSlug: "brand-takara-tomy",
|
|
210
253
|
brand: "Takara-Tomy",
|
|
211
254
|
startingBid: 3499,
|
|
@@ -236,14 +279,55 @@ const _rawProductsAuctionsSeedData = [
|
|
|
236
279
|
createdAt: new Date("2026-08-01"),
|
|
237
280
|
updatedAt: new Date("2026-08-10"),
|
|
238
281
|
},
|
|
282
|
+
// --- Closed by BUY NOW: ended early, a real buyout bid won it ---
|
|
283
|
+
// Nothing in the seed demonstrated a buyout before W2, so the only fixture
|
|
284
|
+
// for `sourceContext.path === "auction-buy-now"` would have been a dangling
|
|
285
|
+
// FK. A buyout is a REAL bid (`isBuyout: true`), so `bidCount` counts the
|
|
286
|
+
// competitive ladder AND the buyout that ended it — 3 + 1 here.
|
|
287
|
+
{
|
|
288
|
+
id: "auction-beyblade-burst-spriggan-requiem-bought-out",
|
|
289
|
+
slug: "auction-beyblade-burst-spriggan-requiem-bought-out",
|
|
290
|
+
title: "Beyblade Burst B-128 Spriggan Requiem (Ended — Bought Out)",
|
|
291
|
+
description: "Spriggan Requiem, the dual-spin legend of Burst Super Z. Bidding had reached ₹3,100 when a buyer took the ₹4,999 Buy Now price and ended the auction early.",
|
|
292
|
+
categorySlugs: ["category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
293
|
+
categoryNames: ["Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
294
|
+
brandSlug: "brand-takara-tomy",
|
|
295
|
+
brand: "Takara-Tomy",
|
|
296
|
+
startingBid: 2499,
|
|
297
|
+
currentBid: 3100,
|
|
298
|
+
buyNowPrice: 4999,
|
|
299
|
+
currency: "INR",
|
|
300
|
+
auctionEndDate: new Date(Date.now() - 4 * 24 * 60 * 60 * 1000),
|
|
301
|
+
bidCount: 4,
|
|
302
|
+
bidsHaveStarted: true,
|
|
303
|
+
leadingBidderId: "user-seto-kaiba",
|
|
304
|
+
isSold: true,
|
|
305
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-1-20260810/900/900"),
|
|
306
|
+
images: [
|
|
307
|
+
seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-1-20260810/900/900"),
|
|
308
|
+
seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-2-20260810/900/900"),
|
|
309
|
+
],
|
|
310
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
311
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
|
|
312
|
+
tags: ["balance-type", "dual-spin"],
|
|
313
|
+
specifications: [
|
|
314
|
+
{ name: "Spin Direction", value: "Dual (Left / Right)" },
|
|
315
|
+
{ name: "Type", value: "Balance" },
|
|
316
|
+
{ name: "Weight", value: "51.2", unit: "g" },
|
|
317
|
+
],
|
|
318
|
+
storeId: "store-beyblade-arena",
|
|
319
|
+
storeName: "Beyblade Arena",
|
|
320
|
+
createdAt: new Date("2026-08-01"),
|
|
321
|
+
updatedAt: new Date("2026-08-20"),
|
|
322
|
+
},
|
|
239
323
|
// --- Additional active auctions, varied end dates + bid activity ---
|
|
240
324
|
{
|
|
241
325
|
id: "auction-beyblade-burst-cho-z-achilles",
|
|
242
326
|
slug: "auction-beyblade-burst-cho-z-achilles",
|
|
243
327
|
title: "Beyblade Burst B-100 Cho-Z Achilles",
|
|
244
328
|
description: "Cho-Z Achilles.Ow.Zn', a Super Zeta stamina-type top from the Cho-Z generation, in excellent spinning condition.",
|
|
245
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
246
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
329
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
330
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
247
331
|
brandSlug: "brand-beyblade",
|
|
248
332
|
brand: "Beyblade",
|
|
249
333
|
startingBid: 1199,
|
|
@@ -278,8 +362,8 @@ const _rawProductsAuctionsSeedData = [
|
|
|
278
362
|
slug: "auction-beyblade-x-wizard-fafnir",
|
|
279
363
|
title: "Beyblade X BX-06 Wizard Fafnir (Long-Running Auction)",
|
|
280
364
|
description: "Wizard Fafnir 4-60F, one week left on the clock — a rare Beyblade X chase top with active bidding.",
|
|
281
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
282
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
365
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
366
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
283
367
|
brandSlug: "brand-takara-tomy",
|
|
284
368
|
brand: "Takara-Tomy",
|
|
285
369
|
startingBid: 999,
|
|
@@ -314,4 +398,40 @@ export const productsAuctionsSeedData = [
|
|
|
314
398
|
...a,
|
|
315
399
|
listingType: PRODUCT_FIELDS.LISTING_TYPE_VALUES.AUCTION,
|
|
316
400
|
})),
|
|
401
|
+
{
|
|
402
|
+
// Ended with NO winner — reserve never met, zero bids.
|
|
403
|
+
//
|
|
404
|
+
// Deliberately `isSold: false` with stock still on the document: this is
|
|
405
|
+
// the fixture that proves the auction branch reads `auctionEndDate`
|
|
406
|
+
// rather than falling through to the shared isSold/quantity checks. The
|
|
407
|
+
// other ended auction (diablo-nemesis) is sold AND ended, so it passes
|
|
408
|
+
// the base check and exercises nothing type-specific.
|
|
409
|
+
id: "auction-beyblade-burst-lord-spryzen-ended-unsold",
|
|
410
|
+
slug: "auction-beyblade-burst-lord-spryzen-ended-unsold",
|
|
411
|
+
title: "Beyblade Burst B-174 Lord Spryzen (Ended — Reserve Not Met)",
|
|
412
|
+
description: "Auction closed without meeting its reserve, so no winner was declared. Relisting soon.",
|
|
413
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
414
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
415
|
+
brandSlug: "brand-takara-tomy",
|
|
416
|
+
brand: "Takara-Tomy",
|
|
417
|
+
startingBid: 1999,
|
|
418
|
+
currentBid: 1999,
|
|
419
|
+
reservePrice: 3500,
|
|
420
|
+
currency: "INR",
|
|
421
|
+
auctionEndDate: new Date(Date.now() - 9 * 24 * 60 * 60 * 1000),
|
|
422
|
+
bidCount: 0,
|
|
423
|
+
bidsHaveStarted: false,
|
|
424
|
+
isSold: false,
|
|
425
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-lord-spryzen-ended-1-20260824/900/900"),
|
|
426
|
+
images: [
|
|
427
|
+
seedExtMedia("https://picsum.photos/seed/auction-image-lord-spryzen-ended-1-20260824/900/900"),
|
|
428
|
+
],
|
|
429
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
430
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
|
|
431
|
+
tags: ["stamina-type"],
|
|
432
|
+
storeId: "store-beyblade-arena",
|
|
433
|
+
storeName: "Beyblade Arena",
|
|
434
|
+
createdAt: new Date("2026-08-10"),
|
|
435
|
+
updatedAt: new Date("2026-08-24"),
|
|
436
|
+
},
|
|
317
437
|
];
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* `contactMethod` ("both"), and always `acceptsShipping:false`/`negotiable:true` —
|
|
5
5
|
* no variety to exercise the classifieds filter UI or the contact-method-specific
|
|
6
6
|
* copy on the detail page (see CLAUDE.md seed-data blandness sweep, 2026-08-20).
|
|
7
|
-
* WHAT: Exports
|
|
7
|
+
* WHAT: Exports 8 classified listings on Beyblade Arena — local meetups across 5 Indian
|
|
8
8
|
* cities, covering all 3 contactMethod values and both true/false states of
|
|
9
9
|
* acceptsShipping/negotiable.
|
|
10
10
|
*
|
|
11
11
|
* EXPORTS:
|
|
12
|
-
* productsClassifiedsSeedData — Array of
|
|
12
|
+
* productsClassifiedsSeedData — Array of 8 Partial<ProductDocument> with listingType:"classified"
|
|
13
13
|
*
|
|
14
14
|
* @tag domain:products,classifieds
|
|
15
15
|
* @tag layer:seed
|
|
@@ -27,11 +27,17 @@ export const productsClassifiedsSeedData = [
|
|
|
27
27
|
slug: "classified-beyblade-stadium-set",
|
|
28
28
|
title: "Used Beyblade Stadium Set — Local Pickup Only",
|
|
29
29
|
description: "Well-loved Beyblade stadium with 6 tops and 2 launchers, sold as-is. Meet up locally — price is negotiable.",
|
|
30
|
-
categorySlugs: ["category-spinning-tops"],
|
|
31
|
-
categoryNames: ["Spinning Tops"],
|
|
30
|
+
categorySlugs: ["category-storage-cases", "category-gear-storage", "category-battle-gear", "category-spinning-tops"],
|
|
31
|
+
categoryNames: ["Cases & Trays", "Storage & Care", "Battle Gear", "Spinning Tops"],
|
|
32
32
|
brandSlug: "brand-beyblade",
|
|
33
33
|
brand: "Beyblade",
|
|
34
34
|
price: 1200,
|
|
35
|
+
// Matches `classified.negotiable: true` below — that flag is the
|
|
36
|
+
// DISPLAY hint ("₹650 (negotiable)"), this one is what actually
|
|
37
|
+
// turns the Make-an-Offer form on. The three non-negotiable
|
|
38
|
+
// classifieds deliberately leave both off.
|
|
39
|
+
allowOffers: true,
|
|
40
|
+
minOfferPercent: 70,
|
|
35
41
|
currency: "INR",
|
|
36
42
|
stockQuantity: 1,
|
|
37
43
|
availableQuantity: 1,
|
|
@@ -67,8 +73,8 @@ export const productsClassifiedsSeedData = [
|
|
|
67
73
|
slug: "classified-beyblade-burst-collection-bengaluru",
|
|
68
74
|
title: "Beyblade Burst Collection (12 Tops) — Bengaluru",
|
|
69
75
|
description: "Downsizing my Burst collection — 12 tops in good condition, fixed price, will also ship nationwide if you'd rather not meet up.",
|
|
70
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
71
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
76
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
77
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
72
78
|
brandSlug: "brand-beyblade",
|
|
73
79
|
brand: "Beyblade",
|
|
74
80
|
price: 4500,
|
|
@@ -107,11 +113,17 @@ export const productsClassifiedsSeedData = [
|
|
|
107
113
|
slug: "classified-beyblade-x-starter-pune",
|
|
108
114
|
title: "Beyblade X Starter Pack — Pune, Phone Contact Only",
|
|
109
115
|
description: "Barely used Beyblade X starter pack, selling because I upgraded to a full set. Call or WhatsApp only, no chat.",
|
|
110
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
111
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
116
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
117
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
112
118
|
brandSlug: "brand-takara-tomy",
|
|
113
119
|
brand: "Takara-Tomy",
|
|
114
120
|
price: 650,
|
|
121
|
+
// Matches `classified.negotiable: true` below — that flag is the
|
|
122
|
+
// DISPLAY hint ("₹650 (negotiable)"), this one is what actually
|
|
123
|
+
// turns the Make-an-Offer form on. The three non-negotiable
|
|
124
|
+
// classifieds deliberately leave both off.
|
|
125
|
+
allowOffers: true,
|
|
126
|
+
minOfferPercent: 70,
|
|
115
127
|
currency: "INR",
|
|
116
128
|
stockQuantity: 1,
|
|
117
129
|
availableQuantity: 1,
|
|
@@ -144,8 +156,8 @@ export const productsClassifiedsSeedData = [
|
|
|
144
156
|
slug: "classified-beyblade-metal-vintage-delhi",
|
|
145
157
|
title: "Vintage Metal Fight Lot (5 Tops) — Delhi NCR",
|
|
146
158
|
description: "A well-preserved 5-top Metal Fight lot from a long-time collector. Firm price, ships anywhere in India.",
|
|
147
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
148
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
159
|
+
categorySlugs: ["category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
160
|
+
categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
149
161
|
brandSlug: "brand-takara-tomy",
|
|
150
162
|
brand: "Takara-Tomy",
|
|
151
163
|
price: 3200,
|
|
@@ -191,8 +203,8 @@ export const productsClassifiedsSeedData = [
|
|
|
191
203
|
slug: "classified-beyblade-original-grail-chennai",
|
|
192
204
|
title: "Original Series Grail Piece — Chennai, Meet Up Only",
|
|
193
205
|
description: "A genuine original-series grail piece, only selling to a local buyer I can meet in person to verify authenticity together.",
|
|
194
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
195
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
206
|
+
categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
207
|
+
categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
196
208
|
brandSlug: "brand-beyblade",
|
|
197
209
|
brand: "Beyblade",
|
|
198
210
|
price: 8000,
|
|
@@ -231,11 +243,17 @@ export const productsClassifiedsSeedData = [
|
|
|
231
243
|
slug: "classified-beyblade-x-tournament-kit-hyderabad",
|
|
232
244
|
title: "Tournament-Ready Beyblade X Kit — Hyderabad",
|
|
233
245
|
description: "Complete tournament-legal kit including 3 tops, stadium, and a scorecard pad from our last local meetup event.",
|
|
234
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
235
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
246
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
247
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
236
248
|
brandSlug: "brand-takara-tomy",
|
|
237
249
|
brand: "Takara-Tomy",
|
|
238
250
|
price: 2400,
|
|
251
|
+
// Matches `classified.negotiable: true` below — that flag is the
|
|
252
|
+
// DISPLAY hint ("₹650 (negotiable)"), this one is what actually
|
|
253
|
+
// turns the Make-an-Offer form on. The three non-negotiable
|
|
254
|
+
// classifieds deliberately leave both off.
|
|
255
|
+
allowOffers: true,
|
|
256
|
+
minOfferPercent: 70,
|
|
239
257
|
currency: "INR",
|
|
240
258
|
stockQuantity: 1,
|
|
241
259
|
availableQuantity: 1,
|
|
@@ -271,11 +289,17 @@ export const productsClassifiedsSeedData = [
|
|
|
271
289
|
slug: "classified-beyblade-burst-parts-mumbai",
|
|
272
290
|
title: "Spare Burst Parts Bundle — Mumbai, Ships Too",
|
|
273
291
|
description: "Assorted spare Burst layers, discs, and drivers cleared out from my parts box. Happy to meet locally or ship.",
|
|
274
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
275
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
292
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
293
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
276
294
|
brandSlug: "brand-beyblade",
|
|
277
295
|
brand: "Beyblade",
|
|
278
296
|
price: 450,
|
|
297
|
+
// Matches `classified.negotiable: true` below — that flag is the
|
|
298
|
+
// DISPLAY hint ("₹650 (negotiable)"), this one is what actually
|
|
299
|
+
// turns the Make-an-Offer form on. The three non-negotiable
|
|
300
|
+
// classifieds deliberately leave both off.
|
|
301
|
+
allowOffers: true,
|
|
302
|
+
minOfferPercent: 70,
|
|
279
303
|
currency: "INR",
|
|
280
304
|
stockQuantity: 1,
|
|
281
305
|
availableQuantity: 1,
|
|
@@ -303,4 +327,44 @@ export const productsClassifiedsSeedData = [
|
|
|
303
327
|
updatedAt: new Date("2026-08-18"),
|
|
304
328
|
searchTokens: buildSearchTokens("Spare Burst Parts Bundle — Mumbai, Ships Too", "Assorted spare Burst layers, discs, and drivers.", "Beyblade", "brand-beyblade", ["Beyblade Burst", "Spinning Tops"], ["classified", "spare-parts"]),
|
|
305
329
|
},
|
|
330
|
+
{
|
|
331
|
+
// Sold classified. Keeps `meetupArea.city` populated so the City facet
|
|
332
|
+
// still has a row to match inside the Sold scope.
|
|
333
|
+
id: "classified-beyblade-metal-galaxy-pegasus-sold-mumbai",
|
|
334
|
+
slug: "classified-beyblade-metal-galaxy-pegasus-sold-mumbai",
|
|
335
|
+
title: "Galaxy Pegasus W105R2F — Sold (Mumbai)",
|
|
336
|
+
description: "Vintage Metal Fight Galaxy Pegasus, sold to a local collector. Listing kept up for reference.",
|
|
337
|
+
categorySlugs: ["category-metal-masters", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
338
|
+
categoryNames: ["Metal Masters", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
339
|
+
brandSlug: "brand-beyblade",
|
|
340
|
+
brand: "Beyblade",
|
|
341
|
+
price: 2200,
|
|
342
|
+
currency: "INR",
|
|
343
|
+
stockQuantity: 0,
|
|
344
|
+
availableQuantity: 0,
|
|
345
|
+
isSold: true,
|
|
346
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-galaxy-pegasus-sold-1-20260824/900/900"),
|
|
347
|
+
images: [
|
|
348
|
+
seedExtMedia("https://picsum.photos/seed/classified-image-galaxy-pegasus-sold-1-20260824/900/900"),
|
|
349
|
+
],
|
|
350
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
351
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
|
|
352
|
+
listingType: "classified",
|
|
353
|
+
storeId: "store-beyblade-arena",
|
|
354
|
+
storeName: "Beyblade Arena",
|
|
355
|
+
classified: {
|
|
356
|
+
meetupArea: { city: "Mumbai", locality: "Dadar", pincode: "400014" },
|
|
357
|
+
contactMethod: "chat",
|
|
358
|
+
acceptsShipping: false,
|
|
359
|
+
negotiable: false,
|
|
360
|
+
},
|
|
361
|
+
customFields: [],
|
|
362
|
+
customSections: [],
|
|
363
|
+
featured: false,
|
|
364
|
+
isPromoted: false,
|
|
365
|
+
isOnSale: false,
|
|
366
|
+
tags: ["vintage", "sold"],
|
|
367
|
+
createdAt: new Date("2026-08-24"),
|
|
368
|
+
updatedAt: new Date("2026-08-24"),
|
|
369
|
+
},
|
|
306
370
|
];
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* `codesAvailable === codePoolSize` (i.e. no fixture ever showed a partially-redeemed
|
|
5
5
|
* or sold-out pool, and `manual-email` delivery was never exercised at all) — see
|
|
6
6
|
* CLAUDE.md seed-data blandness sweep, 2026-08-20 session.
|
|
7
|
-
* WHAT: Exports
|
|
7
|
+
* WHAT: Exports 8 digital-code listings on Beyblade Arena — mixed auto-claim/manual-email
|
|
8
8
|
* delivery, partially-redeemed and fully-sold-out pools, and expiring codes.
|
|
9
9
|
*
|
|
10
10
|
* EXPORTS:
|
|
11
|
-
* productsDigitalCodesSeedData — Array of
|
|
11
|
+
* productsDigitalCodesSeedData — Array of 8 Partial<ProductDocument> with listingType:"digital-code"
|
|
12
12
|
*
|
|
13
13
|
* @tag domain:products,digital-codes
|
|
14
14
|
* @tag layer:seed
|
|
@@ -26,8 +26,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
26
26
|
slug: "digitalcode-beyblade-x-app-starter-pack",
|
|
27
27
|
title: "Beyblade X App — Starter Pack Code",
|
|
28
28
|
description: "Digital redemption code for the Beyblade X companion app's Starter Pack — instantly unlocks 5 exclusive digital tops.",
|
|
29
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
30
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
29
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
30
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
31
31
|
brandSlug: "brand-takara-tomy",
|
|
32
32
|
brand: "Takara-Tomy",
|
|
33
33
|
price: 199,
|
|
@@ -66,8 +66,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
66
66
|
slug: "digitalcode-beyblade-x-app-legendary-pack",
|
|
67
67
|
title: "Beyblade X App — Legendary Pack Code (Partially Claimed)",
|
|
68
68
|
description: "Unlocks 3 legendary digital tops in the companion app. Popular pack — most of the batch has already been claimed.",
|
|
69
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
70
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
69
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
70
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
71
71
|
brandSlug: "brand-takara-tomy",
|
|
72
72
|
brand: "Takara-Tomy",
|
|
73
73
|
price: 349,
|
|
@@ -104,15 +104,20 @@ export const productsDigitalCodesSeedData = [
|
|
|
104
104
|
slug: "digitalcode-beyblade-burst-app-sold-out",
|
|
105
105
|
title: "Beyblade Burst App — Anniversary Pack Code (Sold Out)",
|
|
106
106
|
description: "Limited-run anniversary code pack for the Beyblade Burst app — every code in this batch has been claimed.",
|
|
107
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
108
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
107
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
108
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
109
109
|
brandSlug: "brand-beyblade",
|
|
110
110
|
brand: "Beyblade",
|
|
111
111
|
price: 299,
|
|
112
112
|
currency: "INR",
|
|
113
|
-
stockQuantity: 15,
|
|
113
|
+
// `stockQuantity: 15` / `isSold: false` until 2026-08-24, contradicting
|
|
114
|
+
// both `availableQuantity: 0` and the drained `codesAvailable` below.
|
|
115
|
+
// digital-code's own config comment claimed stockQuantity mirrors the pool
|
|
116
|
+
// count; this fixture is the proof it does not, which is why the per-type
|
|
117
|
+
// predicate reads the nested pool counter rather than trusting the mirror.
|
|
118
|
+
stockQuantity: 0,
|
|
114
119
|
availableQuantity: 0,
|
|
115
|
-
isSold:
|
|
120
|
+
isSold: true,
|
|
116
121
|
mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900"),
|
|
117
122
|
images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900")],
|
|
118
123
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
@@ -141,8 +146,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
141
146
|
slug: "digitalcode-beyblade-x-manual-tournament-pass",
|
|
142
147
|
title: "Beyblade X Regional Tournament — Digital Entry Pass",
|
|
143
148
|
description: "Digital entry pass for the next regional tournament, emailed manually by the organizer within 24 hours of purchase.",
|
|
144
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
145
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
149
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
150
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
146
151
|
brandSlug: "brand-takara-tomy",
|
|
147
152
|
brand: "Takara-Tomy",
|
|
148
153
|
price: 499,
|
|
@@ -182,8 +187,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
182
187
|
slug: "digitalcode-beyblade-metal-app-classic-pack",
|
|
183
188
|
title: "Beyblade Metal Fight App — Classic Pack Code",
|
|
184
189
|
description: "Unlocks the Metal Fight classic-era top roster in the companion app — Storm Pegasus, Lightning L-Drago, and more.",
|
|
185
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
186
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
190
|
+
categorySlugs: ["category-metal-fury", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
191
|
+
categoryNames: ["Metal Fury", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
187
192
|
brandSlug: "brand-takara-tomy",
|
|
188
193
|
brand: "Takara-Tomy",
|
|
189
194
|
price: 249,
|
|
@@ -219,8 +224,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
219
224
|
slug: "digitalcode-beyblade-burst-app-avatar-skins",
|
|
220
225
|
title: "Beyblade Burst App — Avatar Skin Bundle Code",
|
|
221
226
|
description: "Cosmetic-only code bundle — unlocks 8 exclusive player avatar skins in the Beyblade Burst app, no gameplay advantage.",
|
|
222
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
223
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
227
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
228
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
224
229
|
brandSlug: "brand-beyblade",
|
|
225
230
|
brand: "Beyblade",
|
|
226
231
|
price: 149,
|
|
@@ -256,8 +261,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
256
261
|
slug: "digitalcode-beyblade-x-manual-coaching-session",
|
|
257
262
|
title: "1-on-1 Beyblade X Coaching Session — Digital Booking Code",
|
|
258
263
|
description: "Redeem this code for a 30-minute 1-on-1 video coaching session with a tournament-ranked Beyblade X player. Booking link emailed manually.",
|
|
259
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
260
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
264
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
265
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
261
266
|
brandSlug: "brand-takara-tomy",
|
|
262
267
|
brand: "Takara-Tomy",
|
|
263
268
|
price: 799,
|
|
@@ -295,4 +300,47 @@ export const productsDigitalCodesSeedData = [
|
|
|
295
300
|
updatedAt: new Date("2026-08-18"),
|
|
296
301
|
searchTokens: buildSearchTokens("1-on-1 Beyblade X Coaching Session — Digital Booking Code", "30-minute 1-on-1 video coaching session, booking link emailed manually.", "Takara-Tomy", "brand-takara-tomy", ["Beyblade X", "Spinning Tops"], ["digital-code", "coaching"]),
|
|
297
302
|
},
|
|
303
|
+
{
|
|
304
|
+
// Pool drained, but `stockQuantity: 5` and `isSold: false`.
|
|
305
|
+
//
|
|
306
|
+
// The NESTED-field fixture: the only row that fails purely on
|
|
307
|
+
// `digitalCode.codesAvailable`. The old related-items predicate read
|
|
308
|
+
// `row.codesAvailable` at the TOP level, which is undefined on every
|
|
309
|
+
// document, so its digital-code branch had never once fired. Without a
|
|
310
|
+
// fixture in this exact shape that bug is untestable.
|
|
311
|
+
id: "digitalcode-beyblade-x-app-launch-codes-depleted",
|
|
312
|
+
slug: "digitalcode-beyblade-x-app-launch-codes-depleted",
|
|
313
|
+
title: "Beyblade X App — Launch Bonus Code (Pool Empty)",
|
|
314
|
+
description: "Launch-bonus codes for the Beyblade X app. Every code in the pool has been claimed; restock pending.",
|
|
315
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
316
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
317
|
+
brandSlug: "brand-takara-tomy",
|
|
318
|
+
brand: "Takara-Tomy",
|
|
319
|
+
price: 399,
|
|
320
|
+
currency: "INR",
|
|
321
|
+
stockQuantity: 5,
|
|
322
|
+
availableQuantity: 5,
|
|
323
|
+
isSold: false,
|
|
324
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900"),
|
|
325
|
+
images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900")],
|
|
326
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
327
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
328
|
+
listingType: "digital-code",
|
|
329
|
+
storeId: "store-beyblade-arena",
|
|
330
|
+
storeName: "Beyblade Arena",
|
|
331
|
+
digitalCode: {
|
|
332
|
+
codeDeliveryMethod: "auto-claim",
|
|
333
|
+
codePoolSize: 30,
|
|
334
|
+
codesAvailable: 0,
|
|
335
|
+
redemptionInstructions: "Open the Beyblade X app, tap Settings → Redeem, and paste your code.",
|
|
336
|
+
},
|
|
337
|
+
customFields: [],
|
|
338
|
+
customSections: [],
|
|
339
|
+
featured: false,
|
|
340
|
+
isPromoted: false,
|
|
341
|
+
isOnSale: false,
|
|
342
|
+
tags: ["digital-code"],
|
|
343
|
+
createdAt: new Date("2026-08-24"),
|
|
344
|
+
updatedAt: new Date("2026-08-24"),
|
|
345
|
+
},
|
|
298
346
|
];
|