@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
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* WHY: Seeds offers for the Beyblade marketplace —
|
|
3
|
-
*
|
|
2
|
+
* WHY: Seeds offers for the Beyblade marketplace — every status, plus a real
|
|
3
|
+
* multi-round negotiation. Before W2 a counter-offer created an unlinked
|
|
4
|
+
* document, so no fixture could demonstrate a chain and the timeline had
|
|
5
|
+
* nothing to render.
|
|
6
|
+
* WHAT: 10 offers. pending (2), accepted (1), declined (1), countered (1),
|
|
7
|
+
* expired (1), withdrawn (3 — one a genuine walk-away, two superseded
|
|
8
|
+
* rounds of the Metal Storm Pegasus chain), paid (1).
|
|
9
|
+
*
|
|
10
|
+
* ## The Metal Storm Pegasus chain
|
|
11
|
+
*
|
|
12
|
+
* Three linked documents ending at the pre-existing `…-countered` id, so the
|
|
13
|
+
* final round keeps the id every other fixture and checklist case already
|
|
14
|
+
* refers to and `appkit-seed delete` still cleans the whole chain up:
|
|
15
|
+
*
|
|
16
|
+
* …-r1 (withdrawn, superseded by r2) → …-r2 (withdrawn, superseded by the
|
|
17
|
+
* countered offer) → …-countered (round 3, live)
|
|
18
|
+
*
|
|
19
|
+
* Two withdrawn plus one live keeps `hasActiveOffer` consistent, and three
|
|
20
|
+
* rounds makes the 3-offer chain cap demonstrable.
|
|
21
|
+
*
|
|
22
|
+
* ## One fixture deliberately has NO statusHistory
|
|
23
|
+
*
|
|
24
|
+
* `offer-kaiba-x-wizard-arrow-expired` is left history-less on purpose — see
|
|
25
|
+
* the comment at that fixture. It is the only way the timeline's legacy branch
|
|
26
|
+
* is testable, and it is the exact shape of every offer written before W2.
|
|
4
27
|
*
|
|
5
28
|
* EXPORTS:
|
|
6
29
|
* offersSeedData — Array of Partial<OfferDocument> for seed runner
|
|
@@ -16,6 +39,23 @@ import { OfferStatusValues } from "../features/seller/schemas/firestore";
|
|
|
16
39
|
const NOW = new Date();
|
|
17
40
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
18
41
|
const daysFromNow = (n) => new Date(NOW.getTime() + n * 86400000);
|
|
42
|
+
/**
|
|
43
|
+
* One history entry, in the same delta shape `withHistory()` produces at
|
|
44
|
+
* runtime — so a seeded timeline and a real one render identically.
|
|
45
|
+
*
|
|
46
|
+
* `actorUid` is the only identity a history entry may ever carry. Never a name
|
|
47
|
+
* or an email: `encryptPiiFields` is a flat top-level loop that does not
|
|
48
|
+
* descend into arrays, so a PII value placed inside `statusHistory` would be
|
|
49
|
+
* written to Firestore in plaintext and never decrypted on the way back out.
|
|
50
|
+
*/
|
|
51
|
+
function entry(at, actorRole, trigger, changes, extra = {}) {
|
|
52
|
+
return { at, actorRole, trigger, changes, ...extra };
|
|
53
|
+
}
|
|
54
|
+
const BUYER_YUGI = "user-yugi-muto";
|
|
55
|
+
const BUYER_KAIBA = "user-seto-kaiba";
|
|
56
|
+
const BUYER_ADMIN = "user-admin-letitrip";
|
|
57
|
+
const STORE = "store-beyblade-arena";
|
|
58
|
+
const PEGASUS_CHAIN_ROOT = "offer-yugi-metal-storm-pegasus-r1";
|
|
19
59
|
export const offersSeedData = [
|
|
20
60
|
// ── 1. PENDING — Rehan → Beyblade Arena — Burst Valkyrie ────────────────
|
|
21
61
|
{
|
|
@@ -27,14 +67,20 @@ export const offersSeedData = [
|
|
|
27
67
|
buyerUid: "user-yugi-muto",
|
|
28
68
|
buyerName: "Mock User 3",
|
|
29
69
|
buyerEmail: "rehan.sheikh@gmail.com",
|
|
30
|
-
listedPrice:
|
|
31
|
-
offerAmount:
|
|
70
|
+
listedPrice: 999,
|
|
71
|
+
offerAmount: 780,
|
|
32
72
|
currency: "INR",
|
|
33
73
|
status: OfferStatusValues.PENDING,
|
|
34
|
-
buyerNote: "Would you accept ₹
|
|
74
|
+
buyerNote: "Would you accept ₹780 for the Burst Valkyrie?",
|
|
35
75
|
expiresAt: daysFromNow(3),
|
|
36
76
|
createdAt: daysAgo(0),
|
|
37
77
|
updatedAt: daysAgo(0),
|
|
78
|
+
statusHistory: [
|
|
79
|
+
entry(daysAgo(0), "buyer", "makeOffer", {
|
|
80
|
+
status: { from: null, to: "pending" },
|
|
81
|
+
offerAmount: { from: null, to: 780 },
|
|
82
|
+
}, { actorUid: BUYER_YUGI, note: "Would you accept ₹780 for the Burst Valkyrie?" }),
|
|
83
|
+
],
|
|
38
84
|
},
|
|
39
85
|
// ── 2. COUNTERED — Rehan → Beyblade Arena — Metal Storm Pegasus ─────────
|
|
40
86
|
{
|
|
@@ -46,17 +92,118 @@ export const offersSeedData = [
|
|
|
46
92
|
buyerUid: "user-yugi-muto",
|
|
47
93
|
buyerName: "Mock User 3",
|
|
48
94
|
buyerEmail: "rehan.sheikh@gmail.com",
|
|
49
|
-
listedPrice:
|
|
50
|
-
offerAmount:
|
|
51
|
-
counterAmount:
|
|
95
|
+
listedPrice: 1299,
|
|
96
|
+
offerAmount: 1000,
|
|
97
|
+
counterAmount: 1150,
|
|
52
98
|
currency: "INR",
|
|
53
99
|
status: OfferStatusValues.COUNTERED,
|
|
54
|
-
buyerNote: "₹
|
|
55
|
-
sellerNote: "Best I can do is ₹
|
|
100
|
+
buyerNote: "₹1,000 — will you take it?",
|
|
101
|
+
sellerNote: "Best I can do is ₹1,150.",
|
|
56
102
|
expiresAt: daysFromNow(2),
|
|
57
103
|
respondedAt: daysAgo(1),
|
|
58
104
|
createdAt: daysAgo(3),
|
|
59
105
|
updatedAt: daysAgo(1),
|
|
106
|
+
// Round 3 — the live end of the chain. Keeping the original id here (rather
|
|
107
|
+
// than appending an `…-r3`) means every existing reference and checklist
|
|
108
|
+
// href still resolves, and `appkit-seed delete` still removes the lot.
|
|
109
|
+
previousOfferId: "offer-yugi-metal-storm-pegasus-r2",
|
|
110
|
+
chainRootOfferId: PEGASUS_CHAIN_ROOT,
|
|
111
|
+
counterRound: 3,
|
|
112
|
+
statusHistory: [
|
|
113
|
+
entry(daysAgo(3), "buyer", "counterOfferByBuyer", {
|
|
114
|
+
status: { from: null, to: "pending" },
|
|
115
|
+
offerAmount: { from: 900, to: 1000 },
|
|
116
|
+
previousOfferId: { from: null, to: "offer-yugi-metal-storm-pegasus-r2" },
|
|
117
|
+
}, { actorUid: BUYER_YUGI, note: "₹1,000 — will you take it?" }),
|
|
118
|
+
entry(daysAgo(1), "seller", "respondToOffer:counter", {
|
|
119
|
+
status: { from: "pending", to: "countered" },
|
|
120
|
+
counterAmount: { from: null, to: 1150 },
|
|
121
|
+
}, { actorUid: STORE, note: "Best I can do is ₹1,150." }),
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
// ── 2a. Metal Storm Pegasus — ROUND 1 (superseded, not a walk-away) ─────
|
|
125
|
+
{
|
|
126
|
+
id: PEGASUS_CHAIN_ROOT,
|
|
127
|
+
productId: "product-beyblade-metal-storm-pegasus",
|
|
128
|
+
productTitle: "Beyblade Metal Storm Pegasus",
|
|
129
|
+
storeId: STORE,
|
|
130
|
+
storeName: "Beyblade Arena",
|
|
131
|
+
buyerUid: BUYER_YUGI,
|
|
132
|
+
buyerName: "Mock User 3",
|
|
133
|
+
buyerEmail: "rehan.sheikh@gmail.com",
|
|
134
|
+
listedPrice: 1299,
|
|
135
|
+
offerAmount: 800,
|
|
136
|
+
counterAmount: 1200,
|
|
137
|
+
currency: "INR",
|
|
138
|
+
// `withdrawn` PLUS `supersededByOfferId` is what makes the timeline render
|
|
139
|
+
// this round neutral ("Superseded") instead of negative ("Withdrawn").
|
|
140
|
+
// `superseded` is a render key, deliberately never an eighth OfferStatus —
|
|
141
|
+
// an eighth value would add a filter chip matching zero stored rows.
|
|
142
|
+
status: OfferStatusValues.WITHDRAWN,
|
|
143
|
+
buyerNote: "Starting at ₹800 for the Storm Pegasus.",
|
|
144
|
+
sellerNote: "₹1,200 and it's yours.",
|
|
145
|
+
expiresAt: daysAgo(6),
|
|
146
|
+
respondedAt: daysAgo(7),
|
|
147
|
+
createdAt: daysAgo(9),
|
|
148
|
+
updatedAt: daysAgo(7),
|
|
149
|
+
supersededByOfferId: "offer-yugi-metal-storm-pegasus-r2",
|
|
150
|
+
chainRootOfferId: PEGASUS_CHAIN_ROOT,
|
|
151
|
+
counterRound: 1,
|
|
152
|
+
statusHistory: [
|
|
153
|
+
entry(daysAgo(9), "buyer", "makeOffer", {
|
|
154
|
+
status: { from: null, to: "pending" },
|
|
155
|
+
offerAmount: { from: null, to: 800 },
|
|
156
|
+
}, { actorUid: BUYER_YUGI, note: "Starting at ₹800 for the Storm Pegasus." }),
|
|
157
|
+
entry(daysAgo(8), "seller", "respondToOffer:counter", {
|
|
158
|
+
status: { from: "pending", to: "countered" },
|
|
159
|
+
counterAmount: { from: null, to: 1200 },
|
|
160
|
+
}, { actorUid: STORE, note: "₹1,200 and it's yours." }),
|
|
161
|
+
entry(daysAgo(7), "buyer", "counterOfferByBuyer:supersede", {
|
|
162
|
+
status: { from: "countered", to: "withdrawn" },
|
|
163
|
+
supersededByOfferId: { from: null, to: "offer-yugi-metal-storm-pegasus-r2" },
|
|
164
|
+
}, { actorUid: BUYER_YUGI, reason: "Superseded by the buyer's counter" }),
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
// ── 2b. Metal Storm Pegasus — ROUND 2 (superseded) ──────────────────
|
|
168
|
+
{
|
|
169
|
+
id: "offer-yugi-metal-storm-pegasus-r2",
|
|
170
|
+
productId: "product-beyblade-metal-storm-pegasus",
|
|
171
|
+
productTitle: "Beyblade Metal Storm Pegasus",
|
|
172
|
+
storeId: STORE,
|
|
173
|
+
storeName: "Beyblade Arena",
|
|
174
|
+
buyerUid: BUYER_YUGI,
|
|
175
|
+
buyerName: "Mock User 3",
|
|
176
|
+
buyerEmail: "rehan.sheikh@gmail.com",
|
|
177
|
+
listedPrice: 1299,
|
|
178
|
+
offerAmount: 900,
|
|
179
|
+
counterAmount: 1175,
|
|
180
|
+
currency: "INR",
|
|
181
|
+
status: OfferStatusValues.WITHDRAWN,
|
|
182
|
+
buyerNote: "Can you meet me at ₹900?",
|
|
183
|
+
sellerNote: "₹1,175 is as low as I can go.",
|
|
184
|
+
expiresAt: daysAgo(3),
|
|
185
|
+
respondedAt: daysAgo(3),
|
|
186
|
+
createdAt: daysAgo(7),
|
|
187
|
+
updatedAt: daysAgo(3),
|
|
188
|
+
previousOfferId: PEGASUS_CHAIN_ROOT,
|
|
189
|
+
supersededByOfferId: "offer-yugi-metal-storm-pegasus-countered",
|
|
190
|
+
chainRootOfferId: PEGASUS_CHAIN_ROOT,
|
|
191
|
+
counterRound: 2,
|
|
192
|
+
statusHistory: [
|
|
193
|
+
entry(daysAgo(7), "buyer", "counterOfferByBuyer", {
|
|
194
|
+
status: { from: null, to: "pending" },
|
|
195
|
+
offerAmount: { from: 800, to: 900 },
|
|
196
|
+
previousOfferId: { from: null, to: PEGASUS_CHAIN_ROOT },
|
|
197
|
+
}, { actorUid: BUYER_YUGI, note: "Can you meet me at ₹900?" }),
|
|
198
|
+
entry(daysAgo(4), "seller", "respondToOffer:counter", {
|
|
199
|
+
status: { from: "pending", to: "countered" },
|
|
200
|
+
counterAmount: { from: null, to: 1175 },
|
|
201
|
+
}, { actorUid: STORE, note: "₹1,175 is as low as I can go." }),
|
|
202
|
+
entry(daysAgo(3), "buyer", "counterOfferByBuyer:supersede", {
|
|
203
|
+
status: { from: "countered", to: "withdrawn" },
|
|
204
|
+
supersededByOfferId: { from: null, to: "offer-yugi-metal-storm-pegasus-countered" },
|
|
205
|
+
}, { actorUid: BUYER_YUGI, reason: "Superseded by the buyer's counter" }),
|
|
206
|
+
],
|
|
60
207
|
},
|
|
61
208
|
// ── 3. PAID — Admin → Beyblade Arena — X Knife Shinobi (order placed) ───
|
|
62
209
|
{
|
|
@@ -68,18 +215,32 @@ export const offersSeedData = [
|
|
|
68
215
|
buyerUid: "user-admin-letitrip",
|
|
69
216
|
buyerName: "Mock User 1",
|
|
70
217
|
buyerEmail: "admin@letitrip.in",
|
|
71
|
-
listedPrice:
|
|
72
|
-
offerAmount:
|
|
73
|
-
lockedPrice:
|
|
218
|
+
listedPrice: 949,
|
|
219
|
+
offerAmount: 800,
|
|
220
|
+
lockedPrice: 800,
|
|
74
221
|
currency: "INR",
|
|
75
222
|
status: OfferStatusValues.PAID,
|
|
76
|
-
buyerNote: "Would you accept ₹
|
|
223
|
+
buyerNote: "Would you accept ₹800 for the X Knife Shinobi?",
|
|
77
224
|
sellerNote: "Accepted. Thank you!",
|
|
78
225
|
expiresAt: daysAgo(3),
|
|
226
|
+
checkoutDeadline: daysAgo(10),
|
|
79
227
|
acceptedAt: daysAgo(12),
|
|
80
228
|
respondedAt: daysAgo(12),
|
|
81
229
|
createdAt: daysAgo(14),
|
|
82
230
|
updatedAt: daysAgo(11),
|
|
231
|
+
statusHistory: [
|
|
232
|
+
entry(daysAgo(14), "buyer", "makeOffer", {
|
|
233
|
+
status: { from: null, to: "pending" },
|
|
234
|
+
offerAmount: { from: null, to: 800 },
|
|
235
|
+
}, { actorUid: BUYER_ADMIN, note: "Would you accept ₹800 for the X Knife Shinobi?" }),
|
|
236
|
+
entry(daysAgo(12), "seller", "respondToOffer:accept", {
|
|
237
|
+
status: { from: "pending", to: "accepted" },
|
|
238
|
+
lockedPrice: { from: null, to: 800 },
|
|
239
|
+
}, { actorUid: STORE, note: "Accepted. Thank you!" }),
|
|
240
|
+
entry(daysAgo(11), "system", "finalizeLockedLines", {
|
|
241
|
+
status: { from: "accepted", to: "paid" },
|
|
242
|
+
}),
|
|
243
|
+
],
|
|
83
244
|
},
|
|
84
245
|
// ── 4. DECLINED — Rehan → Beyblade Arena — Burst Regalia Genesis ────────
|
|
85
246
|
{
|
|
@@ -91,16 +252,27 @@ export const offersSeedData = [
|
|
|
91
252
|
buyerUid: "user-yugi-muto",
|
|
92
253
|
buyerName: "Mock User 3",
|
|
93
254
|
buyerEmail: "rehan.sheikh@gmail.com",
|
|
94
|
-
listedPrice:
|
|
95
|
-
offerAmount:
|
|
255
|
+
listedPrice: 1399,
|
|
256
|
+
offerAmount: 1050,
|
|
96
257
|
currency: "INR",
|
|
97
258
|
status: OfferStatusValues.DECLINED,
|
|
98
|
-
|
|
99
|
-
|
|
259
|
+
// Both notes quoted prices from the pre-Beyblade catalogue this seed was
|
|
260
|
+
// narrowed away from, so a ₹1,050 offer read as "offering ₹2,500".
|
|
261
|
+
buyerNote: "Offering ₹1,050 — slightly above my budget.",
|
|
262
|
+
sellerNote: "Sorry, we cannot go below ₹1,300 for this piece.",
|
|
100
263
|
expiresAt: daysAgo(5),
|
|
101
264
|
respondedAt: daysAgo(8),
|
|
102
265
|
createdAt: daysAgo(10),
|
|
103
266
|
updatedAt: daysAgo(8),
|
|
267
|
+
statusHistory: [
|
|
268
|
+
entry(daysAgo(10), "buyer", "makeOffer", {
|
|
269
|
+
status: { from: null, to: "pending" },
|
|
270
|
+
offerAmount: { from: null, to: 1050 },
|
|
271
|
+
}, { actorUid: BUYER_YUGI, note: "Offering ₹1,050 — slightly above my budget." }),
|
|
272
|
+
entry(daysAgo(8), "seller", "respondToOffer:decline", {
|
|
273
|
+
status: { from: "pending", to: "declined" },
|
|
274
|
+
}, { actorUid: STORE, note: "Sorry, we cannot go below ₹1,300 for this piece." }),
|
|
275
|
+
],
|
|
104
276
|
},
|
|
105
277
|
// ── 5. EXPIRED — Vivaan → Beyblade Arena — X Wizard Arrow ───────────────
|
|
106
278
|
{
|
|
@@ -112,14 +284,20 @@ export const offersSeedData = [
|
|
|
112
284
|
buyerUid: "user-seto-kaiba",
|
|
113
285
|
buyerName: "Mock User 2",
|
|
114
286
|
buyerEmail: "vivaan.kapoor@gmail.com",
|
|
115
|
-
listedPrice:
|
|
116
|
-
offerAmount:
|
|
287
|
+
listedPrice: 899,
|
|
288
|
+
offerAmount: 700,
|
|
117
289
|
currency: "INR",
|
|
118
290
|
status: OfferStatusValues.EXPIRED,
|
|
119
|
-
buyerNote: "₹
|
|
291
|
+
buyerNote: "₹700 — let me know.",
|
|
120
292
|
expiresAt: daysAgo(2),
|
|
121
293
|
createdAt: daysAgo(9),
|
|
122
294
|
updatedAt: daysAgo(2),
|
|
295
|
+
// NO `statusHistory`, deliberately. This is the ONLY fixture exercising the
|
|
296
|
+
// timeline's legacy branch, and it is exactly the shape of every offer
|
|
297
|
+
// written before W2. Its "Expired" step renders with an em-dash and no
|
|
298
|
+
// date — `expireMany` never wrote a timestamp, `updatedAt` means "last
|
|
299
|
+
// write of any kind", and `expiresAt` is a deadline rather than an event,
|
|
300
|
+
// so any date shown here would be fabricated. Do not "complete" this one.
|
|
123
301
|
},
|
|
124
302
|
// ── 6. WITHDRAWN — Admin → Beyblade Arena — Original Driger V ───────────
|
|
125
303
|
{
|
|
@@ -131,14 +309,25 @@ export const offersSeedData = [
|
|
|
131
309
|
buyerUid: "user-admin-letitrip",
|
|
132
310
|
buyerName: "Mock User 1",
|
|
133
311
|
buyerEmail: "admin@letitrip.in",
|
|
134
|
-
listedPrice:
|
|
135
|
-
offerAmount:
|
|
312
|
+
listedPrice: 1799,
|
|
313
|
+
offerAmount: 1450,
|
|
136
314
|
currency: "INR",
|
|
137
315
|
status: OfferStatusValues.WITHDRAWN,
|
|
138
|
-
buyerNote: "Offering ₹1,
|
|
316
|
+
buyerNote: "Offering ₹1,450 for the Driger V.",
|
|
139
317
|
expiresAt: daysAgo(3),
|
|
140
318
|
createdAt: daysAgo(7),
|
|
141
319
|
updatedAt: daysAgo(5),
|
|
320
|
+
// No `supersededByOfferId` — a genuine walk-away, so this renders as
|
|
321
|
+
// "Withdrawn" (negative). Contrast with the two Pegasus rounds above.
|
|
322
|
+
statusHistory: [
|
|
323
|
+
entry(daysAgo(7), "buyer", "makeOffer", {
|
|
324
|
+
status: { from: null, to: "pending" },
|
|
325
|
+
offerAmount: { from: null, to: 1450 },
|
|
326
|
+
}, { actorUid: BUYER_ADMIN, note: "Offering ₹1,450 for the Driger V." }),
|
|
327
|
+
entry(daysAgo(5), "buyer", "withdrawOffer", {
|
|
328
|
+
status: { from: "pending", to: "withdrawn" },
|
|
329
|
+
}, { actorUid: BUYER_ADMIN }),
|
|
330
|
+
],
|
|
142
331
|
},
|
|
143
332
|
// ── 7. ACCEPTED — Vivaan → Beyblade Arena — Original Dranzer S (pending payment) ──
|
|
144
333
|
{
|
|
@@ -150,36 +339,57 @@ export const offersSeedData = [
|
|
|
150
339
|
buyerUid: "user-seto-kaiba",
|
|
151
340
|
buyerName: "Mock User 2",
|
|
152
341
|
buyerEmail: "vivaan.kapoor@gmail.com",
|
|
153
|
-
listedPrice:
|
|
154
|
-
offerAmount:
|
|
155
|
-
lockedPrice:
|
|
342
|
+
listedPrice: 1499,
|
|
343
|
+
offerAmount: 1250,
|
|
344
|
+
lockedPrice: 1250,
|
|
156
345
|
currency: "INR",
|
|
157
346
|
status: OfferStatusValues.ACCEPTED,
|
|
158
|
-
buyerNote: "₹1,
|
|
347
|
+
buyerNote: "₹1,250 final offer on the sealed Dranzer S.",
|
|
159
348
|
sellerNote: "Accepted! Please complete payment within 24 hours.",
|
|
160
349
|
expiresAt: daysFromNow(1),
|
|
350
|
+
// Without this the offer is invisible to findExpiredAccepted() and the
|
|
351
|
+
// seller/admin "Buyer must pay by" row never renders — the field is what
|
|
352
|
+
// makes an accepted offer a CLAIM ON A CLOCK rather than an open promise.
|
|
353
|
+
checkoutDeadline: daysFromNow(2),
|
|
161
354
|
acceptedAt: daysAgo(0),
|
|
162
355
|
respondedAt: daysAgo(0),
|
|
163
356
|
createdAt: daysAgo(1),
|
|
164
357
|
updatedAt: daysAgo(0),
|
|
358
|
+
statusHistory: [
|
|
359
|
+
entry(daysAgo(1), "buyer", "makeOffer", {
|
|
360
|
+
status: { from: null, to: "pending" },
|
|
361
|
+
offerAmount: { from: null, to: 1250 },
|
|
362
|
+
}, { actorUid: BUYER_KAIBA, note: "₹1,250 final offer on the sealed Dranzer S." }),
|
|
363
|
+
entry(daysAgo(0), "seller", "respondToOffer:accept", {
|
|
364
|
+
status: { from: "pending", to: "accepted" },
|
|
365
|
+
lockedPrice: { from: null, to: 1250 },
|
|
366
|
+
checkoutDeadline: { from: null, to: daysFromNow(2) },
|
|
367
|
+
}, { actorUid: STORE, note: "Accepted! Please complete payment within 24 hours." }),
|
|
368
|
+
],
|
|
165
369
|
},
|
|
166
370
|
// ── 8. PENDING — Admin → Beyblade Arena — Metal Lightning L-Drago ───────
|
|
167
371
|
{
|
|
168
|
-
id: "offer-admin-
|
|
169
|
-
productId: "
|
|
170
|
-
productTitle: "Beyblade Metal
|
|
372
|
+
id: "offer-admin-flame-sagittario-pending",
|
|
373
|
+
productId: "product-beyblade-metal-flame-sagittario",
|
|
374
|
+
productTitle: "Beyblade Metal Flame Sagittario",
|
|
171
375
|
storeId: "store-beyblade-arena",
|
|
172
376
|
storeName: "Beyblade Arena",
|
|
173
377
|
buyerUid: "user-admin-letitrip",
|
|
174
378
|
buyerName: "Mock User 1",
|
|
175
379
|
buyerEmail: "admin@letitrip.in",
|
|
176
|
-
listedPrice:
|
|
177
|
-
offerAmount:
|
|
380
|
+
listedPrice: 1199,
|
|
381
|
+
offerAmount: 950,
|
|
178
382
|
currency: "INR",
|
|
179
383
|
status: OfferStatusValues.PENDING,
|
|
180
|
-
buyerNote: "Interested in this piece. Would you accept ₹
|
|
384
|
+
buyerNote: "Interested in this piece. Would you accept ₹950?",
|
|
181
385
|
expiresAt: daysFromNow(3),
|
|
182
386
|
createdAt: daysAgo(1),
|
|
183
387
|
updatedAt: daysAgo(1),
|
|
388
|
+
statusHistory: [
|
|
389
|
+
entry(daysAgo(1), "buyer", "makeOffer", {
|
|
390
|
+
status: { from: null, to: "pending" },
|
|
391
|
+
offerAmount: { from: null, to: 950 },
|
|
392
|
+
}, { actorUid: BUYER_ADMIN, note: "Interested in this piece. Would you accept ₹950?" }),
|
|
393
|
+
],
|
|
184
394
|
},
|
|
185
395
|
];
|