@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
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* panels, the Phase 4 full-parity detail page) has permanent data to exercise —
|
|
10
10
|
* following the shape already established by the tester-sandbox's dog fixture.
|
|
11
11
|
* Deliberately kept small (3 items) since this doesn't fit the demo brand.
|
|
12
|
-
* WHAT: Exports
|
|
12
|
+
* WHAT: Exports 4 live listings on Beyblade Arena — a dog, a reptile, and a plant —
|
|
13
13
|
* covering varied transport methods, vendor-verification states, and one CITES-
|
|
14
|
-
* restricted example.
|
|
15
|
-
*
|
|
14
|
+
* restricted example.
|
|
15
|
+
*
|
|
16
|
+
* These carried `categorySlugs: []` and a `brand: "Beyblade Arena"` string (a
|
|
17
|
+
* STORE name in a brand field, matching no brand row) until 2026-08-24, which
|
|
18
|
+
* made them unreachable from every category and brand page. Once empty tabs
|
|
19
|
+
* started hiding, that would have meant the Live Items tab never appeared
|
|
20
|
+
* anywhere at all. They now sit under the `category-living-collectibles` root
|
|
21
|
+
* added for exactly this purpose, with the `brand-independent-keepers` brand.
|
|
16
22
|
*
|
|
17
23
|
* EXPORTS:
|
|
18
|
-
* productsLiveItemsSeedData — Array of
|
|
24
|
+
* productsLiveItemsSeedData — Array of 4 Partial<ProductDocument> with listingType:"live"
|
|
19
25
|
*
|
|
20
26
|
* @tag domain:products,live-items
|
|
21
27
|
* @tag layer:seed
|
|
@@ -33,9 +39,10 @@ export const productsLiveItemsSeedData = [
|
|
|
33
39
|
slug: "live-golden-retriever-puppy",
|
|
34
40
|
title: "Golden Retriever Puppy — 6 Months, Vaccinated",
|
|
35
41
|
description: "Friendly, vaccinated Golden Retriever puppy from a verified breeder. Comes with vaccination records and a starter care guide.",
|
|
36
|
-
categorySlugs: [],
|
|
37
|
-
categoryNames: [],
|
|
38
|
-
brand: "
|
|
42
|
+
categorySlugs: ["category-dogs-retrievers", "category-animals-dogs", "category-companion-animals", "category-living-collectibles"],
|
|
43
|
+
categoryNames: ["Retrievers", "Dogs", "Companion Animals", "Living Collectibles"],
|
|
44
|
+
brand: "Independent Keepers",
|
|
45
|
+
brandSlug: "brand-independent-keepers",
|
|
39
46
|
price: 25000,
|
|
40
47
|
currency: "INR",
|
|
41
48
|
stockQuantity: 1,
|
|
@@ -75,9 +82,10 @@ export const productsLiveItemsSeedData = [
|
|
|
75
82
|
slug: "live-bearded-dragon-juvenile",
|
|
76
83
|
title: "Bearded Dragon — Juvenile, Captive-Bred",
|
|
77
84
|
description: "Healthy captive-bred bearded dragon, eating well on a staple diet of greens and insects. Specialist courier transport only.",
|
|
78
|
-
categorySlugs: [],
|
|
79
|
-
categoryNames: [],
|
|
80
|
-
brand: "
|
|
85
|
+
categorySlugs: ["category-reptiles-lizards", "category-animals-reptiles", "category-companion-animals", "category-living-collectibles"],
|
|
86
|
+
categoryNames: ["Lizards", "Reptiles", "Companion Animals", "Living Collectibles"],
|
|
87
|
+
brand: "Independent Keepers",
|
|
88
|
+
brandSlug: "brand-independent-keepers",
|
|
81
89
|
price: 6500,
|
|
82
90
|
currency: "INR",
|
|
83
91
|
stockQuantity: 1,
|
|
@@ -115,9 +123,10 @@ export const productsLiveItemsSeedData = [
|
|
|
115
123
|
slug: "live-bonsai-juniper-10yr",
|
|
116
124
|
title: "Juniper Bonsai — 10 Years Trained",
|
|
117
125
|
description: "A 10-year trained juniper bonsai in a glazed ceramic pot. Low-maintenance, shipped by courier with root-ball protection.",
|
|
118
|
-
categorySlugs: [],
|
|
119
|
-
categoryNames: [],
|
|
120
|
-
brand: "
|
|
126
|
+
categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
|
|
127
|
+
categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
|
|
128
|
+
brand: "Independent Keepers",
|
|
129
|
+
brandSlug: "brand-independent-keepers",
|
|
121
130
|
price: 3200,
|
|
122
131
|
currency: "INR",
|
|
123
132
|
stockQuantity: 1,
|
|
@@ -151,4 +160,46 @@ export const productsLiveItemsSeedData = [
|
|
|
151
160
|
updatedAt: new Date("2026-08-18"),
|
|
152
161
|
searchTokens: buildSearchTokens("Juniper Bonsai — 10 Years Trained", "A 10-year trained juniper bonsai in a glazed ceramic pot.", "Beyblade Arena", undefined, [], ["live-item"]),
|
|
153
162
|
},
|
|
163
|
+
{
|
|
164
|
+
// Sold live item. Keeps species / sex / jurisdiction populated so those
|
|
165
|
+
// per-type facets still have a row inside the Sold scope.
|
|
166
|
+
id: "live-bonsai-juniper-5yr-sold",
|
|
167
|
+
slug: "live-bonsai-juniper-5yr-sold",
|
|
168
|
+
title: "Juniper Bonsai, 5 Years — Sold",
|
|
169
|
+
description: "A five-year-old shimpaku juniper bonsai, already rehomed. Listing kept up for reference.",
|
|
170
|
+
categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
|
|
171
|
+
categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
|
|
172
|
+
brandSlug: "brand-independent-keepers",
|
|
173
|
+
brand: "Independent Keepers",
|
|
174
|
+
price: 4500,
|
|
175
|
+
currency: "INR",
|
|
176
|
+
stockQuantity: 0,
|
|
177
|
+
availableQuantity: 0,
|
|
178
|
+
isSold: true,
|
|
179
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
|
|
180
|
+
images: [
|
|
181
|
+
seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
|
|
182
|
+
],
|
|
183
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
184
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
185
|
+
listingType: "live",
|
|
186
|
+
storeId: "store-beyblade-arena",
|
|
187
|
+
storeName: "Beyblade Arena",
|
|
188
|
+
liveItem: {
|
|
189
|
+
species: "Juniperus chinensis Shimpaku",
|
|
190
|
+
ageMonths: 60,
|
|
191
|
+
careInfo: "Full sun, water when the topsoil dries, wire-trained.",
|
|
192
|
+
transport: { method: "in-person", insuranceIncluded: false },
|
|
193
|
+
jurisdictionAllowed: ["MH", "KA", "DL"],
|
|
194
|
+
vendorVerified: true,
|
|
195
|
+
},
|
|
196
|
+
customFields: [],
|
|
197
|
+
customSections: [],
|
|
198
|
+
featured: false,
|
|
199
|
+
isPromoted: false,
|
|
200
|
+
isOnSale: false,
|
|
201
|
+
tags: ["bonsai", "sold"],
|
|
202
|
+
createdAt: new Date("2026-08-24"),
|
|
203
|
+
updatedAt: new Date("2026-08-24"),
|
|
204
|
+
},
|
|
154
205
|
];
|
|
@@ -50,7 +50,6 @@ export declare const productsPreordersSeedData: {
|
|
|
50
50
|
auctionExtensionMinutes?: number | undefined;
|
|
51
51
|
auctionOriginalEndDate?: Date | undefined;
|
|
52
52
|
auctionShippingPaidBy?: "seller" | "winner" | undefined;
|
|
53
|
-
buyItNowPrice?: number | undefined;
|
|
54
53
|
bidsHaveStarted?: boolean | undefined;
|
|
55
54
|
grading?: import("../features/products").ProductGrading | undefined;
|
|
56
55
|
card?: import("../features/products").ProductCardMetadata | undefined;
|
|
@@ -35,8 +35,8 @@ const _rawPreordersSeedData = [
|
|
|
35
35
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
36
36
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
37
37
|
listingType: "pre-order",
|
|
38
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
39
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
38
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
39
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
40
40
|
brand: "Takara-Tomy",
|
|
41
41
|
images: [
|
|
42
42
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-08-wave-1-20260101/900/900"),
|
|
@@ -77,8 +77,8 @@ const _rawPreordersSeedData = [
|
|
|
77
77
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
78
78
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
79
79
|
listingType: "pre-order",
|
|
80
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
81
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
80
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
81
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
82
82
|
brand: "Takara-Tomy",
|
|
83
83
|
images: [
|
|
84
84
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-09-glide-ring-1-20260814/900/900"),
|
|
@@ -113,8 +113,8 @@ const _rawPreordersSeedData = [
|
|
|
113
113
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
114
114
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
115
115
|
listingType: "pre-order",
|
|
116
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
117
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
116
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
117
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
118
118
|
brand: "Beyblade",
|
|
119
119
|
images: [
|
|
120
120
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-210-union-1-20260814/900/900"),
|
|
@@ -152,13 +152,17 @@ const _rawPreordersSeedData = [
|
|
|
152
152
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
153
153
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
154
154
|
listingType: "pre-order",
|
|
155
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
156
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
155
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
156
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
157
157
|
brand: "Takara-Tomy",
|
|
158
158
|
images: [
|
|
159
159
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-11-sold-out-1-20260812/900/900"),
|
|
160
160
|
],
|
|
161
|
-
isSold: false,
|
|
161
|
+
// `isSold: false` until 2026-08-24, contradicting both the zero
|
|
162
|
+
// availability and the filled allocation immediately below it — so the
|
|
163
|
+
// one fixture whose whole purpose is to be sold out read as available to
|
|
164
|
+
// any predicate that trusted the flag.
|
|
165
|
+
isSold: true,
|
|
162
166
|
availableQuantity: 0,
|
|
163
167
|
tags: ["limited-run"],
|
|
164
168
|
customFields: [],
|
|
@@ -187,8 +191,8 @@ const _rawPreordersSeedData = [
|
|
|
187
191
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
188
192
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
189
193
|
listingType: "pre-order",
|
|
190
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
191
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
194
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
195
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
192
196
|
brand: "Beyblade",
|
|
193
197
|
images: [
|
|
194
198
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817/900/900"),
|
|
@@ -226,8 +230,8 @@ const _rawPreordersSeedData = [
|
|
|
226
230
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
227
231
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
228
232
|
listingType: "pre-order",
|
|
229
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
230
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
233
|
+
categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
234
|
+
categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
231
235
|
brand: "Beyblade",
|
|
232
236
|
images: [
|
|
233
237
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-original-remaster-1-20260818/900/900"),
|
|
@@ -256,6 +260,41 @@ const _rawPreordersSeedData = [
|
|
|
256
260
|
createdAt: new Date("2026-08-18"),
|
|
257
261
|
updatedAt: new Date("2026-08-18"),
|
|
258
262
|
},
|
|
263
|
+
{
|
|
264
|
+
id: "preorder-beyblade-x-bx-12-closed",
|
|
265
|
+
storeId: "store-beyblade-arena",
|
|
266
|
+
brandSlug: "brand-takara-tomy",
|
|
267
|
+
title: "Beyblade X BX-12 Wave — Allocation Closed",
|
|
268
|
+
slug: "preorder-beyblade-x-bx-12-closed",
|
|
269
|
+
description: "Every slot in this wave is spoken for and the units are ready to ship to existing pre-orderers.",
|
|
270
|
+
price: 1299,
|
|
271
|
+
currency: "INR",
|
|
272
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
273
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
274
|
+
listingType: "pre-order",
|
|
275
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
276
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
277
|
+
brand: "Takara-Tomy",
|
|
278
|
+
images: [
|
|
279
|
+
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-12-closed-1-20260824/900/900"),
|
|
280
|
+
],
|
|
281
|
+
isSold: true,
|
|
282
|
+
availableQuantity: 0,
|
|
283
|
+
tags: ["limited-run"],
|
|
284
|
+
customFields: [],
|
|
285
|
+
customSections: [],
|
|
286
|
+
featured: false,
|
|
287
|
+
isPromoted: false,
|
|
288
|
+
isOnSale: false,
|
|
289
|
+
preOrderDeliveryDate: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000),
|
|
290
|
+
preOrderProductionStatus: "ready_to_ship",
|
|
291
|
+
preOrderDepositPercent: 30,
|
|
292
|
+
preOrderMaxQuantity: 40,
|
|
293
|
+
preOrderCurrentCount: 40,
|
|
294
|
+
preOrderCancellable: false,
|
|
295
|
+
createdAt: new Date("2026-08-24"),
|
|
296
|
+
updatedAt: new Date("2026-08-24"),
|
|
297
|
+
},
|
|
259
298
|
];
|
|
260
299
|
export const productsPreordersSeedData = _rawPreordersSeedData.map((p) => ({
|
|
261
300
|
tags: [],
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* content, not just the disposable 7-day tester sandbox item. Previously an empty
|
|
5
5
|
* stub — "out of scope for the minimal Beyblade-focused demo catalog" — now populated
|
|
6
6
|
* with two platform-run mystery-box draws, on-theme for the spinning-tops catalog.
|
|
7
|
-
* WHAT: Exports
|
|
7
|
+
* WHAT: Exports 7 prize-draw listings (classic reveal mode) run by the platform's own
|
|
8
8
|
* store, letitrip-official — one "instant" mode (4 prizes), one "scheduled" mode
|
|
9
9
|
* (2 prizes, small pool for easy manual sellout testing).
|
|
10
10
|
*
|
|
11
11
|
* EXPORTS:
|
|
12
|
-
* productsPrizeDrawsSeedData — Array of
|
|
12
|
+
* productsPrizeDrawsSeedData — Array of 7 Partial<ProductDocument> with listingType:"prize-draw"
|
|
13
13
|
*
|
|
14
14
|
* @tag domain:products,prize-draws
|
|
15
15
|
* @tag layer:seed
|
|
@@ -27,8 +27,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
27
27
|
slug: "prizedraw-beyblade-mystery-box",
|
|
28
28
|
title: "Beyblade Mystery Box — Prize Draw",
|
|
29
29
|
description: "Buy an entry for ₹99 and reveal your prize instantly — win anything from a rare limited-edition Beyblade down to a spare launcher grip. 4 prizes available, revealed on a first-come basis.",
|
|
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: 99,
|
|
@@ -73,8 +73,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
73
73
|
slug: "prizedraw-beyblade-scheduled-demo",
|
|
74
74
|
title: "Beyblade Champion's Draw — Prize Draw",
|
|
75
75
|
description: "Two entries, two prizes — the winners are revealed automatically the moment the draw closes (3 days) or sells out, whichever comes first.",
|
|
76
|
-
categorySlugs: ["category-spinning-tops"],
|
|
77
|
-
categoryNames: ["Spinning Tops"],
|
|
76
|
+
categorySlugs: ["category-stadiums-standard", "category-gear-stadiums", "category-battle-gear", "category-spinning-tops"],
|
|
77
|
+
categoryNames: ["Standard Stadiums", "Stadiums", "Battle Gear", "Spinning Tops"],
|
|
78
78
|
brandSlug: "brand-beyblade",
|
|
79
79
|
brand: "Beyblade",
|
|
80
80
|
price: 149,
|
|
@@ -118,8 +118,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
118
118
|
slug: "prizedraw-beyblade-x-legendary-vault",
|
|
119
119
|
title: "Beyblade X Legendary Vault — Prize Draw",
|
|
120
120
|
description: "6 entries, 6 prizes ranging from a legendary chase top to spare parts — over half the draw is already sold, don't miss the remaining slots.",
|
|
121
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
122
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
121
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
122
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
123
123
|
brandSlug: "brand-takara-tomy",
|
|
124
124
|
brand: "Takara-Tomy",
|
|
125
125
|
price: 199,
|
|
@@ -170,8 +170,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
170
170
|
slug: "prizedraw-beyblade-metal-closed-revealed",
|
|
171
171
|
title: "Metal Fight Mystery Draw — Ended (Revealed)",
|
|
172
172
|
description: "This draw has closed and every prize has been revealed to its winner. Browse the results below.",
|
|
173
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
174
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
173
|
+
categorySlugs: ["category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
174
|
+
categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
175
175
|
brandSlug: "brand-takara-tomy",
|
|
176
176
|
brand: "Takara-Tomy",
|
|
177
177
|
price: 129,
|
|
@@ -216,8 +216,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
216
216
|
slug: "prizedraw-beyblade-burst-collectors-draw",
|
|
217
217
|
title: "Beyblade Burst Collector's Draw — Almost Sold Out",
|
|
218
218
|
description: "Only 1 entry left — 4 of 5 slots are already claimed for this Burst-generation collector's draw. Winners revealed the moment the draw closes.",
|
|
219
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
220
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
219
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
220
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
221
221
|
brandSlug: "brand-beyblade",
|
|
222
222
|
brand: "Beyblade",
|
|
223
223
|
price: 179,
|
|
@@ -267,8 +267,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
267
267
|
slug: "prizedraw-beyblade-original-vintage-vault",
|
|
268
268
|
title: "Beyblade Original Vintage Vault — Prize Draw",
|
|
269
269
|
description: "A high-value original-series vault — 3 entries, each prize photographed from multiple angles so you know exactly what you might win.",
|
|
270
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
271
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
270
|
+
categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
271
|
+
categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
272
272
|
brandSlug: "brand-beyblade",
|
|
273
273
|
brand: "Beyblade",
|
|
274
274
|
price: 299,
|
|
@@ -310,4 +310,53 @@ export const productsPrizeDrawsSeedData = [
|
|
|
310
310
|
updatedAt: new Date("2026-08-18"),
|
|
311
311
|
searchTokens: buildSearchTokens("Beyblade Original Vintage Vault — Prize Draw", "High-value original-series vault, multi-angle photos per prize.", "Beyblade", "brand-beyblade", ["Beyblade Original", "Spinning Tops"], ["prize-draw", "mystery-box", "vintage-collectible"]),
|
|
312
312
|
},
|
|
313
|
+
{
|
|
314
|
+
// Closed, but with slots still unsold and `isSold: false`.
|
|
315
|
+
//
|
|
316
|
+
// This is the fixture that proves the prize-draw branch reads
|
|
317
|
+
// `prizeRevealStatus`. The other closed draw has availableQuantity 0 AND
|
|
318
|
+
// isSold true, so it is caught by the shared base check and would still
|
|
319
|
+
// look correct even if the type-specific rule were deleted.
|
|
320
|
+
id: "prizedraw-beyblade-x-vault-closed-pending-reveal",
|
|
321
|
+
slug: "prizedraw-beyblade-x-vault-closed-pending-reveal",
|
|
322
|
+
title: "Beyblade X Vault Draw — Closed Early",
|
|
323
|
+
description: "The seller closed this draw before every slot sold. Remaining entries were refunded; no further entries are accepted.",
|
|
324
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
325
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
326
|
+
brandSlug: "brand-takara-tomy",
|
|
327
|
+
brand: "Takara-Tomy",
|
|
328
|
+
price: 249,
|
|
329
|
+
currency: "INR",
|
|
330
|
+
stockQuantity: 5,
|
|
331
|
+
availableQuantity: 3,
|
|
332
|
+
isSold: false,
|
|
333
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/prizedraw-image-beyblade-x-vault-closed-1-20260824/900/900"),
|
|
334
|
+
images: [seedExtMedia("https://picsum.photos/seed/prizedraw-image-beyblade-x-vault-closed-1-20260824/900/900")],
|
|
335
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
336
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
337
|
+
listingType: "prize-draw",
|
|
338
|
+
storeId: "store-beyblade-arena",
|
|
339
|
+
storeName: "Beyblade Arena",
|
|
340
|
+
prizeDrawMode: "reveal",
|
|
341
|
+
prizeRevealMode: "instant",
|
|
342
|
+
pricePerEntry: 249,
|
|
343
|
+
prizeMaxEntries: 5,
|
|
344
|
+
prizeCurrentEntries: 2,
|
|
345
|
+
prizeDrawDurationDays: 7,
|
|
346
|
+
prizeRevealWindowStart: new Date("2026-08-17"),
|
|
347
|
+
prizeRevealWindowEnd: new Date("2026-08-24"),
|
|
348
|
+
prizeRevealStatus: "closed",
|
|
349
|
+
prizeDrawItems: [
|
|
350
|
+
{ itemNumber: 1, title: "Dran Sword 3-60F", description: "Beyblade X starter attack top.", images: [seedExtMedia("https://picsum.photos/seed/prizedraw-item-x-vault-1-20260824/600/600")], condition: "new", estimatedValue: 1499, isWon: false },
|
|
351
|
+
{ itemNumber: 2, title: "Hells Scythe 4-60T", description: "Beyblade X defence top.", images: [seedExtMedia("https://picsum.photos/seed/prizedraw-item-x-vault-2-20260824/600/600")], condition: "new", estimatedValue: 1499, isWon: false },
|
|
352
|
+
],
|
|
353
|
+
customFields: [],
|
|
354
|
+
customSections: [],
|
|
355
|
+
featured: false,
|
|
356
|
+
isPromoted: false,
|
|
357
|
+
isOnSale: false,
|
|
358
|
+
tags: ["prize-draw"],
|
|
359
|
+
createdAt: new Date("2026-08-17"),
|
|
360
|
+
updatedAt: new Date("2026-08-24"),
|
|
361
|
+
},
|
|
313
362
|
];
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* 2026-08-21). A real MediaUploadField file-upload video can't be reproduced from seed
|
|
10
10
|
* data (no Storage object actually exists for a seeded URL to point at) — that path is
|
|
11
11
|
* covered by a tester-checklist manual test case instead, not a fixture here.
|
|
12
|
-
* WHAT: Exports
|
|
12
|
+
* WHAT: Exports 14 standard products with listingType:"standard", covering all 4 generation
|
|
13
13
|
* leaf categories (tagged with both leaf + root category slugs).
|
|
14
14
|
*
|
|
15
15
|
* EXPORTS:
|
|
16
|
-
* productsStandardSeedData — Array of
|
|
16
|
+
* productsStandardSeedData — Array of 14 standard products with listingType:"standard"
|
|
17
17
|
*
|
|
18
18
|
* @tag domain:products,catalog
|
|
19
19
|
* @tag layer:seed
|
|
@@ -181,11 +181,13 @@ const _rawProductsStandardSeedData = [
|
|
|
181
181
|
barcodeId: "LIR-BEY-ORIG-001",
|
|
182
182
|
title: "Beyblade Original — Dranzer S",
|
|
183
183
|
description: "Plastic Generation era Dranzer S with launcher and ripcord. A classic from the original 1999-2003 Beyblade series.",
|
|
184
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
185
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
184
|
+
categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
185
|
+
categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
186
186
|
brandSlug: "brand-beyblade",
|
|
187
187
|
brand: "Beyblade",
|
|
188
188
|
price: 1499,
|
|
189
|
+
allowOffers: true,
|
|
190
|
+
minOfferPercent: 70,
|
|
189
191
|
currency: "INR",
|
|
190
192
|
stockQuantity: 4,
|
|
191
193
|
availableQuantity: 4,
|
|
@@ -211,11 +213,13 @@ const _rawProductsStandardSeedData = [
|
|
|
211
213
|
barcodeId: "LIR-BEY-ORIG-002",
|
|
212
214
|
title: "Beyblade Original — Driger V",
|
|
213
215
|
description: "Vintage Driger V attack-type top from the original series, complete with launcher grip.",
|
|
214
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
215
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
216
|
+
categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
217
|
+
categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
216
218
|
brandSlug: "brand-beyblade",
|
|
217
219
|
brand: "Beyblade",
|
|
218
220
|
price: 1799,
|
|
221
|
+
allowOffers: true,
|
|
222
|
+
minOfferPercent: 70,
|
|
219
223
|
currency: "INR",
|
|
220
224
|
stockQuantity: 2,
|
|
221
225
|
availableQuantity: 2,
|
|
@@ -241,11 +245,13 @@ const _rawProductsStandardSeedData = [
|
|
|
241
245
|
barcodeId: "LIR-BEY-META-001",
|
|
242
246
|
title: "Metal Fight Beyblade BB-28 Storm Pegasus",
|
|
243
247
|
description: "Storm Pegasus 105RF from the Metal Fusion era — one of the most iconic Metal Fight tops.",
|
|
244
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
245
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
248
|
+
categorySlugs: ["category-metal-masters", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
249
|
+
categoryNames: ["Metal Masters", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
246
250
|
brandSlug: "brand-takara-tomy",
|
|
247
251
|
brand: "Takara-Tomy",
|
|
248
252
|
price: 1299,
|
|
253
|
+
allowOffers: true,
|
|
254
|
+
minOfferPercent: 70,
|
|
249
255
|
currency: "INR",
|
|
250
256
|
stockQuantity: 6,
|
|
251
257
|
availableQuantity: 6,
|
|
@@ -271,11 +277,13 @@ const _rawProductsStandardSeedData = [
|
|
|
271
277
|
barcodeId: "LIR-BEY-META-002",
|
|
272
278
|
title: "Metal Fight Beyblade BB-43 Flame Sagittario",
|
|
273
279
|
description: "Flame Sagittario C145S, a balance-type top from the Metal Masters generation.",
|
|
274
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
275
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
280
|
+
categorySlugs: ["category-metal-fury", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
281
|
+
categoryNames: ["Metal Fury", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
276
282
|
brandSlug: "brand-takara-tomy",
|
|
277
283
|
brand: "Takara-Tomy",
|
|
278
284
|
price: 1199,
|
|
285
|
+
allowOffers: true,
|
|
286
|
+
minOfferPercent: 70,
|
|
279
287
|
currency: "INR",
|
|
280
288
|
stockQuantity: 3,
|
|
281
289
|
availableQuantity: 3,
|
|
@@ -301,11 +309,13 @@ const _rawProductsStandardSeedData = [
|
|
|
301
309
|
barcodeId: "LIR-BEY-BURS-001",
|
|
302
310
|
title: "Beyblade Burst B-01 Valkyrie",
|
|
303
311
|
description: "Starter set Valkyrie Wing Accel with launcher and grip — the top that launched the Burst generation.",
|
|
304
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
305
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
312
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
313
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
306
314
|
brandSlug: "brand-beyblade",
|
|
307
315
|
brand: "Beyblade",
|
|
308
316
|
price: 999,
|
|
317
|
+
allowOffers: true,
|
|
318
|
+
minOfferPercent: 70,
|
|
309
319
|
currency: "INR",
|
|
310
320
|
stockQuantity: 10,
|
|
311
321
|
availableQuantity: 10,
|
|
@@ -331,11 +341,13 @@ const _rawProductsStandardSeedData = [
|
|
|
331
341
|
barcodeId: "LIR-BEY-BURS-002",
|
|
332
342
|
title: "Beyblade Burst B-59 Regalia Genesis",
|
|
333
343
|
description: "Regalia Genesis.Zt with switch launcher — Burst Rise generation attack-type top.",
|
|
334
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
335
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
344
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
345
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
336
346
|
brandSlug: "brand-beyblade",
|
|
337
347
|
brand: "Beyblade",
|
|
338
348
|
price: 1399,
|
|
349
|
+
allowOffers: true,
|
|
350
|
+
minOfferPercent: 70,
|
|
339
351
|
currency: "INR",
|
|
340
352
|
stockQuantity: 5,
|
|
341
353
|
availableQuantity: 5,
|
|
@@ -361,11 +373,13 @@ const _rawProductsStandardSeedData = [
|
|
|
361
373
|
barcodeId: "LIR-BEY-X-001",
|
|
362
374
|
title: "Beyblade X BX-01 Wizard Arrow",
|
|
363
375
|
description: "Wizard Arrow 4-60F, a starter top from the Beyblade X Xtreme Gear generation.",
|
|
364
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
365
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
376
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
377
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
366
378
|
brandSlug: "brand-takara-tomy",
|
|
367
379
|
brand: "Takara-Tomy",
|
|
368
380
|
price: 899,
|
|
381
|
+
allowOffers: true,
|
|
382
|
+
minOfferPercent: 70,
|
|
369
383
|
currency: "INR",
|
|
370
384
|
stockQuantity: 12,
|
|
371
385
|
availableQuantity: 12,
|
|
@@ -391,11 +405,13 @@ const _rawProductsStandardSeedData = [
|
|
|
391
405
|
barcodeId: "LIR-BEY-X-002",
|
|
392
406
|
title: "Beyblade X BX-05 Knife Shinobi",
|
|
393
407
|
description: "Knife Shinobi 3-60GF, a balance-type top with tournament-grade stamina parts.",
|
|
394
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
395
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
408
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
409
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
396
410
|
brandSlug: "brand-takara-tomy",
|
|
397
411
|
brand: "Takara-Tomy",
|
|
398
412
|
price: 949,
|
|
413
|
+
allowOffers: true,
|
|
414
|
+
minOfferPercent: 70,
|
|
399
415
|
currency: "INR",
|
|
400
416
|
stockQuantity: 7,
|
|
401
417
|
availableQuantity: 7,
|
|
@@ -421,8 +437,8 @@ const _rawProductsStandardSeedData = [
|
|
|
421
437
|
barcodeId: "LIR-BEY-VID-001",
|
|
422
438
|
title: "Beyblade Original — Dragoon F (Video Demo)",
|
|
423
439
|
description: "Dragoon F attack-type top from the original series. Listed with an unboxing/spin video for gallery testing.",
|
|
424
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
425
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
440
|
+
categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
441
|
+
categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
426
442
|
brandSlug: "brand-beyblade",
|
|
427
443
|
brand: "Beyblade",
|
|
428
444
|
price: 1599,
|
|
@@ -454,8 +470,8 @@ const _rawProductsStandardSeedData = [
|
|
|
454
470
|
barcodeId: "LIR-BEY-VID-002",
|
|
455
471
|
title: "Beyblade X BX-02 Dran Sword (Video Demo)",
|
|
456
472
|
description: "Dran Sword 3-60F attack-type top from the Beyblade X Xtreme Gear generation. Listed with a battle-test video for gallery testing.",
|
|
457
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
458
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
473
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
474
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
459
475
|
brandSlug: "brand-takara-tomy",
|
|
460
476
|
brand: "Takara-Tomy",
|
|
461
477
|
price: 949,
|
|
@@ -495,8 +511,8 @@ const _rawProductsStandardSeedData = [
|
|
|
495
511
|
barcodeId: "LIR-BEY-VID-003",
|
|
496
512
|
title: "Metal Fight Beyblade BB-118 Dark Bull (Video Demo, YouTube)",
|
|
497
513
|
description: "Dark Bull H145SD, a defense-type top from the Metal Masters generation. Listed with a YouTube battle video to exercise the gallery's YouTube-embed video source.",
|
|
498
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
499
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
514
|
+
categorySlugs: ["category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
515
|
+
categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
500
516
|
brandSlug: "brand-takara-tomy",
|
|
501
517
|
brand: "Takara-Tomy",
|
|
502
518
|
price: 1099,
|
|
@@ -537,8 +553,8 @@ const _rawProductsStandardSeedData = [
|
|
|
537
553
|
barcodeId: "LIR-BEY-VID-004",
|
|
538
554
|
title: "Beyblade Burst B-97 Spryzen S2 (Video Demo, Wikimedia)",
|
|
539
555
|
description: "Spryzen S2 stamina-type top from the God Layer generation. Listed with a Wikimedia-hosted spin video to exercise a second raw-external-host video source.",
|
|
540
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
541
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
556
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
557
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
542
558
|
brandSlug: "brand-beyblade",
|
|
543
559
|
brand: "Beyblade",
|
|
544
560
|
price: 899,
|
|
@@ -564,6 +580,63 @@ const _rawProductsStandardSeedData = [
|
|
|
564
580
|
createdAt: new Date("2026-08-21"),
|
|
565
581
|
updatedAt: new Date("2026-08-21"),
|
|
566
582
|
},
|
|
583
|
+
{
|
|
584
|
+
// Two sold-out standard fixtures, so a 24-row page of /products has more
|
|
585
|
+
// than one row in the "Sold & Ended" scope. Both stay `published` — an
|
|
586
|
+
// archived row is hidden by the status filter before the availability
|
|
587
|
+
// predicate ever runs, so it would prove nothing.
|
|
588
|
+
id: "product-beyblade-x-dran-buster-sold-out",
|
|
589
|
+
slug: "product-beyblade-x-dran-buster-sold-out",
|
|
590
|
+
title: "Beyblade X BX-34 Dran Buster (Sold Out)",
|
|
591
|
+
description: "The BX-34 Dran Buster attack type — this batch is fully sold. Watch for the next restock.",
|
|
592
|
+
price: 1499,
|
|
593
|
+
currency: "INR",
|
|
594
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
595
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
596
|
+
brandSlug: "brand-takara-tomy",
|
|
597
|
+
brand: "Takara-Tomy",
|
|
598
|
+
stockQuantity: 0,
|
|
599
|
+
availableQuantity: 0,
|
|
600
|
+
isSold: true,
|
|
601
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/product-image-dran-buster-sold-out-1-20260824/900/900"),
|
|
602
|
+
images: [
|
|
603
|
+
seedExtMedia("https://picsum.photos/seed/product-image-dran-buster-sold-out-1-20260824/900/900"),
|
|
604
|
+
seedExtMedia("https://picsum.photos/seed/product-image-dran-buster-sold-out-2-20260824/900/900"),
|
|
605
|
+
],
|
|
606
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
607
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
608
|
+
tags: ["attack-type", "sold-out"],
|
|
609
|
+
storeId: "store-beyblade-arena",
|
|
610
|
+
storeName: "Beyblade Arena",
|
|
611
|
+
createdAt: new Date("2026-08-24"),
|
|
612
|
+
updatedAt: new Date("2026-08-24"),
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
id: "product-beyblade-burst-valtryek-v3-sold-out",
|
|
616
|
+
slug: "product-beyblade-burst-valtryek-v3-sold-out",
|
|
617
|
+
title: "Beyblade Burst Valtryek V3 (Sold Out)",
|
|
618
|
+
description: "Valtryek V3, the balance-type staple. This run sold through — no units remaining.",
|
|
619
|
+
price: 899,
|
|
620
|
+
currency: "INR",
|
|
621
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
622
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
623
|
+
brandSlug: "brand-beyblade",
|
|
624
|
+
brand: "Beyblade",
|
|
625
|
+
stockQuantity: 0,
|
|
626
|
+
availableQuantity: 0,
|
|
627
|
+
isSold: true,
|
|
628
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/product-image-valtryek-v3-sold-out-1-20260824/900/900"),
|
|
629
|
+
images: [
|
|
630
|
+
seedExtMedia("https://picsum.photos/seed/product-image-valtryek-v3-sold-out-1-20260824/900/900"),
|
|
631
|
+
],
|
|
632
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
633
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
634
|
+
tags: ["balance-type", "sold-out"],
|
|
635
|
+
storeId: "store-beyblade-arena",
|
|
636
|
+
storeName: "Beyblade Arena",
|
|
637
|
+
createdAt: new Date("2026-08-24"),
|
|
638
|
+
updatedAt: new Date("2026-08-24"),
|
|
639
|
+
},
|
|
567
640
|
];
|
|
568
641
|
export const productsStandardSeedData = [
|
|
569
642
|
..._rawProductsStandardSeedData.map((p) => withTokens({
|