@mohasinac/appkit 4.57.0 → 4.59.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/.build-stamp.json +4 -4
- package/dist/_internal/server/features/beys/data.d.ts +44 -0
- package/dist/_internal/server/features/beys/data.js +107 -0
- package/dist/_internal/server/features/beys/og.d.ts +42 -0
- package/dist/_internal/server/features/beys/og.js +89 -0
- package/dist/_internal/server/features/parts/data.js +3 -2
- package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
- package/dist/_internal/server/jobs/handlers/messages.js +1 -1
- package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
- package/dist/_internal/shared/actions/action-registry.js +86 -0
- package/dist/_internal/shared/types/base-document.d.ts +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/api-endpoints.d.ts +12 -0
- package/dist/constants/api-endpoints.js +10 -0
- package/dist/constants/field-names.d.ts +46 -0
- package/dist/constants/field-names.js +46 -0
- package/dist/constants/seed-meta.d.ts +113 -0
- package/dist/constants/seed-meta.js +91 -0
- package/dist/features/admin/components/AdminBeysView.d.ts +27 -0
- package/dist/features/admin/components/AdminBeysView.js +178 -0
- package/dist/features/admin/components/AdminPartsView.d.ts +27 -0
- package/dist/features/admin/components/AdminPartsView.js +160 -0
- package/dist/features/admin/components/OwnerQuickActions.d.ts +19 -2
- package/dist/features/admin/components/OwnerQuickActions.js +31 -3
- package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +31 -0
- package/dist/features/admin/components/RecordOwnerQuickActions.js +128 -0
- package/dist/features/admin/components/ReferenceRecordEditor.d.ts +45 -0
- package/dist/features/admin/components/ReferenceRecordEditor.js +153 -0
- package/dist/features/admin/schemas/firestore.d.ts +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +15 -2
- package/dist/features/auth/permissions/constants.d.ts +1 -1
- package/dist/features/auth/permissions/constants.js +12 -1
- package/dist/features/beys/components/BeyDetailPageView.d.ts +50 -0
- package/dist/features/beys/components/BeyDetailPageView.js +98 -0
- package/dist/features/beys/schemas/firestore.d.ts +417 -0
- package/dist/features/beys/schemas/firestore.js +65 -0
- package/dist/features/blog/components/BlogFeaturedCard.js +15 -2
- package/dist/features/blog/components/BlogPostView.js +2 -2
- package/dist/features/categories/components/BrandDetailPageView.js +4 -2
- package/dist/features/categories/components/BundleDetailView.js +2 -2
- package/dist/features/categories/components/CategoryDetailPageView.js +36 -3
- package/dist/features/categories/components/CategoryGrid.js +24 -2
- package/dist/features/categories/components/FranchiseDetailPageView.js +2 -3
- package/dist/features/events/components/EventCard.js +15 -2
- package/dist/features/grouped/components/GroupedListingDetailView.js +2 -3
- package/dist/features/homepage/components/CustomCardsSection.js +67 -50
- package/dist/features/homepage/components/ShopByCategorySection.js +23 -10
- package/dist/features/homepage/schemas/index.d.ts +10 -10
- package/dist/features/parts/components/PartDetailPageView.js +5 -3
- package/dist/features/parts/components/PartsSearchBox.js +79 -4
- package/dist/features/parts/schemas/admin-edit.d.ts +81 -0
- package/dist/features/parts/schemas/admin-edit.js +89 -0
- package/dist/features/parts/schemas/firestore.d.ts +2 -1
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +15 -2
- package/dist/features/products/components/MarketplaceBundleCard.js +15 -2
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +15 -2
- package/dist/features/products/components/ProductGrid.js +18 -2
- package/dist/features/products/schemas/firestore.d.ts +18 -0
- package/dist/features/seller/components/CategoryInlineSelect.d.ts +10 -1
- package/dist/features/seller/components/CategoryInlineSelect.js +53 -5
- package/dist/features/seller/components/SellerProductShell.d.ts +39 -0
- package/dist/features/seller/components/SellerProductShell.js +31 -3
- package/dist/index.d.ts +6 -129
- package/dist/index.js +61 -292
- package/dist/next/routing/route-map.d.ts +13 -1
- package/dist/next/routing/route-map.js +37 -0
- package/dist/schemas/registry.d.ts +6 -6
- package/dist/server.d.ts +2 -69
- package/dist/server.js +8 -69
- package/dist/styles.css +468 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/PosterCard.d.ts +99 -0
- package/dist/ui/components/PosterCard.js +109 -0
- package/dist/ui/components/PosterCard.style.css +466 -0
- package/dist/ui/components/index.style.css +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +2 -0
- package/package.json +4 -2
- package/scripts/seed-cli.mjs +177 -2
- package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
- package/dist/features/tester/seed-data/_happy-path.js +0 -710
- package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
- package/dist/features/tester/seed-data/_money-flows.js +0 -610
- package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
- package/dist/features/tester/seed-data/authored/_types.js +0 -35
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
- package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
- package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
- package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
- package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
- package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
- package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
- package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
- package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
- package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
- package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
- package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
- package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
- package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
- package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
- package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
- package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
- package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
- package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
- package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
- package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
- package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
- package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
- package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
- package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/index.js +0 -301
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
- package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
- package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
- package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
- package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
- package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
- package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
- package/dist/features/tester/seed-data/index.d.ts +0 -2
- package/dist/features/tester/seed-data/index.js +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
- package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
- package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
- package/dist/features/tester/seed-data/tester-window.js +0 -66
- package/dist/seed/_helpers/brand-rows.d.ts +0 -35
- package/dist/seed/_helpers/brand-rows.js +0 -600
- package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
- package/dist/seed/_helpers/category-content-generated.js +0 -1853
- package/dist/seed/_helpers/category-content.d.ts +0 -68
- package/dist/seed/_helpers/category-content.js +0 -731
- package/dist/seed/_helpers/category-forest.d.ts +0 -4
- package/dist/seed/_helpers/category-forest.js +0 -824
- package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
- package/dist/seed/_helpers/category-images-generated.js +0 -618
- package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
- package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
- package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
- package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
- package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
- package/dist/seed/_helpers/category-models.d.ts +0 -12
- package/dist/seed/_helpers/category-models.js +0 -45
- package/dist/seed/_helpers/category-names.d.ts +0 -54
- package/dist/seed/_helpers/category-names.js +0 -118
- package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
- package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
- package/dist/seed/_helpers/category-parts.d.ts +0 -9
- package/dist/seed/_helpers/category-parts.js +0 -15022
- package/dist/seed/_helpers/category-tree.d.ts +0 -27
- package/dist/seed/_helpers/category-tree.js +0 -119
- package/dist/seed/_helpers/character-features.d.ts +0 -10
- package/dist/seed/_helpers/character-features.js +0 -120
- package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
- package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
- package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
- package/dist/seed/_helpers/franchise-rows.js +0 -189
- package/dist/seed/_helpers/media.d.ts +0 -67
- package/dist/seed/_helpers/media.js +0 -172
- package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
- package/dist/seed/_helpers/part-colours-generated.js +0 -273
- package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
- package/dist/seed/_helpers/product-search-txt.js +0 -23
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
- package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
- package/dist/seed/addresses-seed-data.d.ts +0 -2
- package/dist/seed/addresses-seed-data.js +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
- package/dist/seed/bids-seed-data.d.ts +0 -2
- package/dist/seed/bids-seed-data.js +0 -206
- package/dist/seed/blog-posts-seed-data.d.ts +0 -6
- package/dist/seed/blog-posts-seed-data.js +0 -442
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
- package/dist/seed/carousel-slides-seed-data.js +0 -411
- package/dist/seed/carousels-seed-data.d.ts +0 -2
- package/dist/seed/carousels-seed-data.js +0 -36
- package/dist/seed/cart-seed-data.d.ts +0 -2
- package/dist/seed/cart-seed-data.js +0 -241
- package/dist/seed/catalogue-seed-data.d.ts +0 -2
- package/dist/seed/catalogue-seed-data.js +0 -112
- package/dist/seed/categories-seed-data.d.ts +0 -3
- package/dist/seed/categories-seed-data.js +0 -816
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
- package/dist/seed/claimed-coupons-seed-data.js +0 -85
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
- package/dist/seed/coupon-usage-seed-data.js +0 -55
- package/dist/seed/coupons-seed-data.d.ts +0 -2
- package/dist/seed/coupons-seed-data.js +0 -226
- package/dist/seed/defaults/categories.d.ts +0 -2
- package/dist/seed/defaults/categories.js +0 -12
- package/dist/seed/defaults/faqs.d.ts +0 -2
- package/dist/seed/defaults/faqs.js +0 -40
- package/dist/seed/events-seed-data.d.ts +0 -7
- package/dist/seed/events-seed-data.js +0 -482
- package/dist/seed/factories/address.factory.d.ts +0 -21
- package/dist/seed/factories/address.factory.js +0 -44
- package/dist/seed/factories/bid.factory.d.ts +0 -15
- package/dist/seed/factories/bid.factory.js +0 -33
- package/dist/seed/factories/blog-post.factory.d.ts +0 -15
- package/dist/seed/factories/blog-post.factory.js +0 -22
- package/dist/seed/factories/carousel.factory.d.ts +0 -11
- package/dist/seed/factories/carousel.factory.js +0 -17
- package/dist/seed/factories/cart.factory.d.ts +0 -25
- package/dist/seed/factories/cart.factory.js +0 -35
- package/dist/seed/factories/category.factory.d.ts +0 -11
- package/dist/seed/factories/category.factory.js +0 -16
- package/dist/seed/factories/coupon.factory.d.ts +0 -21
- package/dist/seed/factories/coupon.factory.js +0 -43
- package/dist/seed/factories/faq.factory.d.ts +0 -10
- package/dist/seed/factories/faq.factory.js +0 -15
- package/dist/seed/factories/notification.factory.d.ts +0 -18
- package/dist/seed/factories/notification.factory.js +0 -39
- package/dist/seed/factories/order.factory.d.ts +0 -20
- package/dist/seed/factories/order.factory.js +0 -20
- package/dist/seed/factories/payout.factory.d.ts +0 -21
- package/dist/seed/factories/payout.factory.js +0 -38
- package/dist/seed/factories/product.factory.d.ts +0 -27
- package/dist/seed/factories/product.factory.js +0 -80
- package/dist/seed/factories/review.factory.d.ts +0 -14
- package/dist/seed/factories/review.factory.js +0 -52
- package/dist/seed/factories/session.factory.d.ts +0 -15
- package/dist/seed/factories/session.factory.js +0 -31
- package/dist/seed/factories/store.factory.d.ts +0 -23
- package/dist/seed/factories/store.factory.js +0 -47
- package/dist/seed/factories/user.factory.d.ts +0 -19
- package/dist/seed/factories/user.factory.js +0 -56
- package/dist/seed/faq-seed-data.d.ts +0 -18
- package/dist/seed/faq-seed-data.js +0 -1956
- package/dist/seed/firestore-indexes.d.ts +0 -12
- package/dist/seed/firestore-indexes.js +0 -31
- package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
- package/dist/seed/grouped-listings-seed-data.js +0 -283
- package/dist/seed/history-seed-data.d.ts +0 -12
- package/dist/seed/history-seed-data.js +0 -70
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
- package/dist/seed/homepage-sections-seed-data.js +0 -1018
- package/dist/seed/index.d.ts +0 -98
- package/dist/seed/index.js +0 -112
- package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
- package/dist/seed/lottery-entries-seed-data.js +0 -108
- package/dist/seed/manifest.d.ts +0 -16
- package/dist/seed/manifest.js +0 -235
- package/dist/seed/media-assets-seed-data.d.ts +0 -22
- package/dist/seed/media-assets-seed-data.js +0 -5593
- package/dist/seed/model-composition-seed-data.d.ts +0 -15
- package/dist/seed/model-composition-seed-data.js +0 -9032
- package/dist/seed/notifications-seed-data.d.ts +0 -2
- package/dist/seed/notifications-seed-data.js +0 -606
- package/dist/seed/offers-seed-data.d.ts +0 -2
- package/dist/seed/offers-seed-data.js +0 -398
- package/dist/seed/orders-seed-data.d.ts +0 -2
- package/dist/seed/orders-seed-data.js +0 -845
- package/dist/seed/part-glossary/chunk0.d.ts +0 -9
- package/dist/seed/part-glossary/chunk0.js +0 -35448
- package/dist/seed/part-glossary/chunk1.d.ts +0 -9
- package/dist/seed/part-glossary/chunk1.js +0 -40494
- package/dist/seed/part-glossary/chunk2.d.ts +0 -9
- package/dist/seed/part-glossary/chunk2.js +0 -51242
- package/dist/seed/part-glossary/chunk3.d.ts +0 -9
- package/dist/seed/part-glossary/chunk3.js +0 -53337
- package/dist/seed/part-glossary/chunk4.d.ts +0 -9
- package/dist/seed/part-glossary/chunk4.js +0 -51454
- package/dist/seed/part-glossary-seed-data.d.ts +0 -15
- package/dist/seed/part-glossary-seed-data.js +0 -25
- package/dist/seed/payouts-seed-data.d.ts +0 -2
- package/dist/seed/payouts-seed-data.js +0 -302
- package/dist/seed/product-features-seed-data.d.ts +0 -3
- package/dist/seed/product-features-seed-data.js +0 -366
- package/dist/seed/products-art-seed-data.d.ts +0 -2
- package/dist/seed/products-art-seed-data.js +0 -289
- package/dist/seed/products-auctions-seed-data.d.ts +0 -2
- package/dist/seed/products-auctions-seed-data.js +0 -475
- package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
- package/dist/seed/products-beyblade-x-seed-data.js +0 -476
- package/dist/seed/products-catalogue-seed-data.d.ts +0 -22
- package/dist/seed/products-catalogue-seed-data.js +0 -86384
- package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
- package/dist/seed/products-classifieds-seed-data.js +0 -435
- package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
- package/dist/seed/products-digital-codes-seed-data.js +0 -395
- package/dist/seed/products-live-items-seed-data.d.ts +0 -7
- package/dist/seed/products-live-items-seed-data.js +0 -269
- package/dist/seed/products-preorders-seed-data.d.ts +0 -2
- package/dist/seed/products-preorders-seed-data.js +0 -360
- package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
- package/dist/seed/products-prize-draws-seed-data.js +0 -427
- package/dist/seed/products-spares-seed-data.d.ts +0 -2
- package/dist/seed/products-spares-seed-data.js +0 -368
- package/dist/seed/products-standard-seed-data.d.ts +0 -2
- package/dist/seed/products-standard-seed-data.js +0 -632
- package/dist/seed/products-stickers-seed-data.d.ts +0 -2
- package/dist/seed/products-stickers-seed-data.js +0 -319
- package/dist/seed/reviews-seed-data.d.ts +0 -1
- package/dist/seed/reviews-seed-data.js +0 -185
- package/dist/seed/runner.d.ts +0 -2
- package/dist/seed/runner.js +0 -125
- package/dist/seed/scammers-seed-data.d.ts +0 -2
- package/dist/seed/scammers-seed-data.js +0 -235
- package/dist/seed/seed-market-config.d.ts +0 -48
- package/dist/seed/seed-market-config.js +0 -199
- package/dist/seed/seed-purpose.d.ts +0 -299
- package/dist/seed/seed-purpose.js +0 -431
- package/dist/seed/sessions-seed-data.d.ts +0 -3
- package/dist/seed/sessions-seed-data.js +0 -116
- package/dist/seed/shipments-seed-data.d.ts +0 -5
- package/dist/seed/shipments-seed-data.js +0 -185
- package/dist/seed/site-settings-seed-data.d.ts +0 -2
- package/dist/seed/site-settings-seed-data.js +0 -1069
- package/dist/seed/store-addresses-seed-data.d.ts +0 -18
- package/dist/seed/store-addresses-seed-data.js +0 -71
- package/dist/seed/store-extensions-seed-data.d.ts +0 -11
- package/dist/seed/store-extensions-seed-data.js +0 -292
- package/dist/seed/stores-seed-data.d.ts +0 -6
- package/dist/seed/stores-seed-data.js +0 -242
- package/dist/seed/support-tickets-seed-data.d.ts +0 -16
- package/dist/seed/support-tickets-seed-data.js +0 -239
- package/dist/seed/tax-codes-seed-data.d.ts +0 -34
- package/dist/seed/tax-codes-seed-data.js +0 -100
- package/dist/seed/test-data-ttl.d.ts +0 -29
- package/dist/seed/test-data-ttl.js +0 -31
- package/dist/seed/test-utils.d.ts +0 -49
- package/dist/seed/test-utils.js +0 -110
- package/dist/seed/types.d.ts +0 -89
- package/dist/seed/types.js +0 -15
- package/dist/seed/users-seed-data.d.ts +0 -2
- package/dist/seed/users-seed-data.js +0 -597
- package/dist/seed/wishlists-seed-data.d.ts +0 -12
- package/dist/seed/wishlists-seed-data.js +0 -54
|
@@ -1,845 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: Seeds purchase orders representing completed transactions across Beyblade marketplace buyers and sellers.
|
|
3
|
-
* WHAT: Exports 50 orders across 3 buyer/store combos. All statuses distributed. Order IDs: order-{itemCount}-{YYYYMMDD}-{rand6}.
|
|
4
|
-
*
|
|
5
|
-
* ## One fixture per acquisition path
|
|
6
|
-
*
|
|
7
|
-
* The six `acquisitionOrders` below exist so every branch of the
|
|
8
|
-
* `OrderSourceContext` union has real data behind it. `orderType` has five
|
|
9
|
-
* values and cannot separate a settled auction win from a buyout — both are
|
|
10
|
-
* "auction" — which is exactly why `sourceContext` keys on its own
|
|
11
|
-
* discriminator.
|
|
12
|
-
*
|
|
13
|
-
* Every FK in a `sourceContext` points at a real seeded document: the winning
|
|
14
|
-
* bid, the buyout bid, the accepted offer. A provenance record pointing at
|
|
15
|
-
* nothing is worse than none, because it reads as evidence (Root Cause #26).
|
|
16
|
-
*
|
|
17
|
-
* ## `statusHistory` is a DELTA log, never a snapshot
|
|
18
|
-
*
|
|
19
|
-
* Each entry records only the tracked fields that changed. Money is
|
|
20
|
-
* deliberately absent: the final coupon and add-on state already lives on the
|
|
21
|
-
* order document, and replaying pricing churn buries the handful of
|
|
22
|
-
* transitions anyone actually reads. Refunds ARE here — a partial refund
|
|
23
|
-
* changes no tracked field, so it is contributed explicitly.
|
|
24
|
-
*
|
|
25
|
-
* `actorUid` is the only identity an entry may carry. Never a name or an
|
|
26
|
-
* email: `encryptPiiFields` never descends into arrays, so PII inside
|
|
27
|
-
* `statusHistory` would be stored in plaintext.
|
|
28
|
-
*
|
|
29
|
-
* EXPORTS:
|
|
30
|
-
* ordersSeedData — Array of 50 order documents with full transactional metadata
|
|
31
|
-
*
|
|
32
|
-
* @tag domain:orders,checkout
|
|
33
|
-
* @tag layer:seed
|
|
34
|
-
* @tag pattern:none
|
|
35
|
-
* @tag access:server-only
|
|
36
|
-
* @tag consumers:seed/index.ts,seed/runner.ts
|
|
37
|
-
* @tag sideEffects:none
|
|
38
|
-
*/
|
|
39
|
-
import { withOrderSearchTxt } from "./_helpers/search-txt-wrappers.js";
|
|
40
|
-
import { seedPhoto } from "./_helpers/media.js";
|
|
41
|
-
const NOW = new Date();
|
|
42
|
-
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
43
|
-
/**
|
|
44
|
-
* The anchor the order IDs are built from — fixed, never `NOW`.
|
|
45
|
-
*
|
|
46
|
-
* 🛑 An ID may not contain a value that moves. `generateOrderId` embeds a
|
|
47
|
-
* `yyyymmdd` derived from its anchor, so with `NOW` every order's id changed on
|
|
48
|
-
* every calendar day: `appkit-seed load` CREATED 50 fresh documents instead of
|
|
49
|
-
* upserting the same 50, and `status`/`delete` computed ids that had never been
|
|
50
|
-
* written.
|
|
51
|
-
*
|
|
52
|
-
* Measured immediately after a successful `load --collections orders` that
|
|
53
|
-
* reported "created 50, errors 0": `appkit-seed status` answered
|
|
54
|
-
* **`orders 50 seed / 0 in db`**. Both numbers were right; they were about
|
|
55
|
-
* different sets of ids.
|
|
56
|
-
*
|
|
57
|
-
* This is exactly the case Recurrent Root Cause #25 names — "`Date.now()` used
|
|
58
|
-
* as an ID component (as opposed to just a display timestamp)". The
|
|
59
|
-
* distinction is the whole fix:
|
|
60
|
-
*
|
|
61
|
-
* - **IDs** anchor to `SEED_EPOCH`, so they are reproducible forever.
|
|
62
|
-
* - **Display timestamps** (`orderDate`, `createdAt`, shipping dates) keep
|
|
63
|
-
* using `daysAgo()` off `NOW`, so a reseeded catalogue still looks recent
|
|
64
|
-
* and time-bound fixtures re-arm, which is what the tester window needs.
|
|
65
|
-
*
|
|
66
|
-
* It also broke every checklist case that names an order by id: they were
|
|
67
|
-
* authored against one day's ids and could never resolve afterwards.
|
|
68
|
-
*/
|
|
69
|
-
const SEED_EPOCH = new Date("2026-01-01T00:00:00.000Z");
|
|
70
|
-
// Deterministic per-product thumbnail — `seedPhoto` maps a seed string to one
|
|
71
|
-
// of six LOCAL tiles, so this doesn't need to match the real product seed's
|
|
72
|
-
// own image, just be present and consistent across reseeds. (It used to name
|
|
73
|
-
// picsum.photos here; seeded imagery stopped being a third-party fetch on
|
|
74
|
-
// 2026-10-09 — see seedPhoto's header.) Backfills the
|
|
75
|
-
// `image`/`imageUrls` fields real checkout orders only started carrying
|
|
76
|
-
// 2026-08-20 (see OrderDocumentItem.image), so seeded order fixtures show a
|
|
77
|
-
// thumbnail on My Orders / order-detail like real orders do.
|
|
78
|
-
function orderItemImage(productId) {
|
|
79
|
-
return seedPhoto(`order-item-${productId}`, 300, 300);
|
|
80
|
-
}
|
|
81
|
-
// Deterministic 6-char base36 suffix derived from a seed string — replaces the
|
|
82
|
-
// previous Math.random() suffix, which regenerated a fresh id on every module
|
|
83
|
-
// import (every `load`/`status`/`delete` CLI invocation), so re-running `load`
|
|
84
|
-
// never actually updated existing docs and `status`/`delete` could never find
|
|
85
|
-
// what a previous `load` had written. A simple string hash keeps ids stable
|
|
86
|
-
// across runs on the same day while remaining unique per (itemCount, daysBack, seed).
|
|
87
|
-
function seededSuffix(seed) {
|
|
88
|
-
let hash = 0;
|
|
89
|
-
for (let i = 0; i < seed.length; i++) {
|
|
90
|
-
hash = (Math.imul(31, hash) + seed.charCodeAt(i)) | 0;
|
|
91
|
-
}
|
|
92
|
-
// Force unsigned before base36 so the suffix is always 6 lowercase alnum chars.
|
|
93
|
-
return (hash >>> 0).toString(36).padStart(6, "0").slice(0, 6);
|
|
94
|
-
}
|
|
95
|
-
const generateOrderId = (itemCount, daysBack, seed) => {
|
|
96
|
-
// SEED_EPOCH, not NOW — see the block comment on SEED_EPOCH. An id that
|
|
97
|
-
// moves with the calendar is an id that never upserts.
|
|
98
|
-
const date = new Date(SEED_EPOCH.getTime() - daysBack * 86400000);
|
|
99
|
-
const yyyymmdd = date.toISOString().split("T")[0].replace(/-/g, "");
|
|
100
|
-
const rand = seededSuffix(`${itemCount}-${daysBack}-${seed}`);
|
|
101
|
-
return `order-${itemCount}-${yyyymmdd}-${rand}`;
|
|
102
|
-
};
|
|
103
|
-
const USER_NAMES = {
|
|
104
|
-
"user-yugi-muto": "Mock User 3",
|
|
105
|
-
"user-admin-letitrip": "Mock User 1",
|
|
106
|
-
"user-seto-kaiba": "Mock User 2",
|
|
107
|
-
};
|
|
108
|
-
const USER_EMAILS = {
|
|
109
|
-
"user-yugi-muto": "rehan.sheikh@gmail.com",
|
|
110
|
-
"user-admin-letitrip": "admin@letitrip.in",
|
|
111
|
-
"user-seto-kaiba": "vivaan.kapoor@gmail.com",
|
|
112
|
-
};
|
|
113
|
-
const _rawOrdersSeedData = [
|
|
114
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
115
|
-
// Rehan buying from Beyblade Arena — 4 explicit orders
|
|
116
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
117
|
-
{
|
|
118
|
-
id: generateOrderId(2, 45, "yugi-dranzer-pegasus"),
|
|
119
|
-
productId: "product-beyblade-original-dranzer-s",
|
|
120
|
-
productTitle: "Beyblade Original Dranzer S",
|
|
121
|
-
userId: "user-yugi-muto",
|
|
122
|
-
userName: "Mock User 3",
|
|
123
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
124
|
-
storeId: "store-beyblade-arena",
|
|
125
|
-
items: [
|
|
126
|
-
{
|
|
127
|
-
productId: "product-beyblade-original-dranzer-s",
|
|
128
|
-
productTitle: "Beyblade Original Dranzer S",
|
|
129
|
-
listingType: "standard",
|
|
130
|
-
quantity: 1,
|
|
131
|
-
unitPrice: 1799,
|
|
132
|
-
totalPrice: 1799,
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
productId: "product-beyblade-metal-storm-pegasus",
|
|
136
|
-
productTitle: "Beyblade Metal Storm Pegasus",
|
|
137
|
-
listingType: "standard",
|
|
138
|
-
quantity: 1,
|
|
139
|
-
unitPrice: 2499,
|
|
140
|
-
totalPrice: 2499,
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
quantity: 2,
|
|
144
|
-
unitPrice: 1799,
|
|
145
|
-
totalPrice: 4298,
|
|
146
|
-
currency: "INR",
|
|
147
|
-
status: "delivered",
|
|
148
|
-
paymentStatus: "paid",
|
|
149
|
-
paymentMethod: "cash",
|
|
150
|
-
paymentId: "pay-yugi-kaiba-001",
|
|
151
|
-
shippingAddress: "addr-yugi-home",
|
|
152
|
-
trackingNumber: "IN-0001-ARENA-DELIVERED",
|
|
153
|
-
shippingCarrier: "India Post",
|
|
154
|
-
shippingDate: daysAgo(30),
|
|
155
|
-
deliveryDate: daysAgo(20),
|
|
156
|
-
orderDate: daysAgo(45),
|
|
157
|
-
createdAt: daysAgo(45),
|
|
158
|
-
updatedAt: daysAgo(20),
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
id: generateOrderId(1, 40, "yugi-metal-flame-sagittario"),
|
|
162
|
-
productId: "product-beyblade-metal-flame-sagittario",
|
|
163
|
-
productTitle: "Beyblade Metal Flame Sagittario",
|
|
164
|
-
userId: "user-yugi-muto",
|
|
165
|
-
userName: "Mock User 3",
|
|
166
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
167
|
-
storeId: "store-beyblade-arena",
|
|
168
|
-
quantity: 1,
|
|
169
|
-
unitPrice: 2299,
|
|
170
|
-
totalPrice: 2299,
|
|
171
|
-
currency: "INR",
|
|
172
|
-
status: "shipped",
|
|
173
|
-
paymentStatus: "paid",
|
|
174
|
-
paymentMethod: "cash",
|
|
175
|
-
paymentId: "pay-yugi-kaiba-002",
|
|
176
|
-
shippingAddress: "addr-yugi-home",
|
|
177
|
-
trackingNumber: "IN-0002-ARENA-SHIPPED",
|
|
178
|
-
shippingCarrier: "India Post",
|
|
179
|
-
shippingDate: daysAgo(8),
|
|
180
|
-
orderDate: daysAgo(40),
|
|
181
|
-
createdAt: daysAgo(40),
|
|
182
|
-
updatedAt: daysAgo(8),
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
id: generateOrderId(3, 35, "yugi-x-bx08-wave"),
|
|
186
|
-
productId: "preorder-beyblade-x-bx-08-wave",
|
|
187
|
-
productTitle: "Beyblade X BX-08 Wave",
|
|
188
|
-
userId: "user-yugi-muto",
|
|
189
|
-
userName: "Mock User 3",
|
|
190
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
191
|
-
storeId: "store-beyblade-arena",
|
|
192
|
-
quantity: 3,
|
|
193
|
-
unitPrice: 899,
|
|
194
|
-
totalPrice: 2697,
|
|
195
|
-
currency: "INR",
|
|
196
|
-
status: "processing",
|
|
197
|
-
paymentStatus: "paid",
|
|
198
|
-
paymentMethod: "cash",
|
|
199
|
-
paymentId: "pay-yugi-kaiba-003",
|
|
200
|
-
shippingAddress: "addr-yugi-home",
|
|
201
|
-
orderDate: daysAgo(35),
|
|
202
|
-
createdAt: daysAgo(35),
|
|
203
|
-
updatedAt: daysAgo(2),
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
id: generateOrderId(1, 30, "yugi-burst-valkyrie"),
|
|
207
|
-
productId: "product-beyblade-burst-valkyrie",
|
|
208
|
-
productTitle: "Beyblade Burst Valkyrie",
|
|
209
|
-
userId: "user-yugi-muto",
|
|
210
|
-
userName: "Mock User 3",
|
|
211
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
212
|
-
storeId: "store-beyblade-arena",
|
|
213
|
-
quantity: 1,
|
|
214
|
-
unitPrice: 1899,
|
|
215
|
-
totalPrice: 1899,
|
|
216
|
-
currency: "INR",
|
|
217
|
-
status: "pending",
|
|
218
|
-
paymentStatus: "pending",
|
|
219
|
-
paymentMethod: "cash",
|
|
220
|
-
paymentId: "pay-yugi-kaiba-004",
|
|
221
|
-
shippingAddress: "addr-yugi-home",
|
|
222
|
-
orderDate: daysAgo(30),
|
|
223
|
-
createdAt: daysAgo(30),
|
|
224
|
-
updatedAt: daysAgo(30),
|
|
225
|
-
},
|
|
226
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
227
|
-
// Rehan buying from LetItRip Official
|
|
228
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
229
|
-
{
|
|
230
|
-
id: generateOrderId(1, 28, "yugi-mystery-box"),
|
|
231
|
-
productId: "prizedraw-beyblade-mystery-box",
|
|
232
|
-
productTitle: "Beyblade Mystery Box",
|
|
233
|
-
userId: "user-yugi-muto",
|
|
234
|
-
userName: "Mock User 3",
|
|
235
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
236
|
-
storeId: "store-letitrip-official",
|
|
237
|
-
quantity: 1,
|
|
238
|
-
unitPrice: 499,
|
|
239
|
-
totalPrice: 499,
|
|
240
|
-
currency: "INR",
|
|
241
|
-
status: "delivered",
|
|
242
|
-
paymentStatus: "paid",
|
|
243
|
-
paymentMethod: "cash",
|
|
244
|
-
paymentId: "pay-yugi-admin-001",
|
|
245
|
-
shippingAddress: "addr-yugi-home",
|
|
246
|
-
trackingNumber: "IN-0001-ADMIN-DELIVERED",
|
|
247
|
-
shippingCarrier: "India Post",
|
|
248
|
-
shippingDate: daysAgo(15),
|
|
249
|
-
deliveryDate: daysAgo(8),
|
|
250
|
-
orderDate: daysAgo(28),
|
|
251
|
-
createdAt: daysAgo(28),
|
|
252
|
-
updatedAt: daysAgo(8),
|
|
253
|
-
},
|
|
254
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
255
|
-
// Admin buying from Beyblade Arena
|
|
256
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
257
|
-
{
|
|
258
|
-
id: generateOrderId(1, 50, "admin-x-knife-shinobi"),
|
|
259
|
-
productId: "product-beyblade-x-knife-shinobi",
|
|
260
|
-
productTitle: "Beyblade X Knife Shinobi",
|
|
261
|
-
userId: "user-admin-letitrip",
|
|
262
|
-
userName: "Mock User 1",
|
|
263
|
-
userEmail: "admin@letitrip.in",
|
|
264
|
-
storeId: "store-beyblade-arena",
|
|
265
|
-
quantity: 1,
|
|
266
|
-
unitPrice: 2999,
|
|
267
|
-
totalPrice: 2999,
|
|
268
|
-
currency: "INR",
|
|
269
|
-
status: "delivered",
|
|
270
|
-
paymentStatus: "paid",
|
|
271
|
-
paymentMethod: "cash",
|
|
272
|
-
paymentId: "pay-admin-kaiba-001",
|
|
273
|
-
shippingAddress: "addr-letitrip-hq",
|
|
274
|
-
trackingNumber: "IN-0010-ARENA-DELIVERED",
|
|
275
|
-
shippingCarrier: "DHL India",
|
|
276
|
-
shippingDate: daysAgo(40),
|
|
277
|
-
deliveryDate: daysAgo(30),
|
|
278
|
-
orderDate: daysAgo(50),
|
|
279
|
-
createdAt: daysAgo(50),
|
|
280
|
-
updatedAt: daysAgo(30),
|
|
281
|
-
},
|
|
282
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
283
|
-
// Vivaan buying from Beyblade Arena
|
|
284
|
-
// ────────────────────────────────────────────────────────────────────────────
|
|
285
|
-
{
|
|
286
|
-
id: generateOrderId(1, 55, "kaiba-driger-v"),
|
|
287
|
-
productId: "product-beyblade-original-driger-v",
|
|
288
|
-
productTitle: "Beyblade Original Driger V",
|
|
289
|
-
userId: "user-seto-kaiba",
|
|
290
|
-
userName: "Mock User 2",
|
|
291
|
-
userEmail: "vivaan.kapoor@gmail.com",
|
|
292
|
-
storeId: "store-beyblade-arena",
|
|
293
|
-
quantity: 1,
|
|
294
|
-
unitPrice: 1999,
|
|
295
|
-
totalPrice: 1999,
|
|
296
|
-
currency: "INR",
|
|
297
|
-
status: "delivered",
|
|
298
|
-
paymentStatus: "paid",
|
|
299
|
-
paymentMethod: "cash",
|
|
300
|
-
paymentId: "pay-kaiba-admin-001",
|
|
301
|
-
shippingAddress: "addr-kaiba-mansion",
|
|
302
|
-
trackingNumber: "IN-0005-ARENA-DELIVERED",
|
|
303
|
-
shippingCarrier: "India Post",
|
|
304
|
-
shippingDate: daysAgo(12),
|
|
305
|
-
deliveryDate: daysAgo(5),
|
|
306
|
-
orderDate: daysAgo(55),
|
|
307
|
-
createdAt: daysAgo(55),
|
|
308
|
-
updatedAt: daysAgo(5),
|
|
309
|
-
},
|
|
310
|
-
];
|
|
311
|
-
const productPool = [
|
|
312
|
-
{ productId: "product-beyblade-original-dranzer-s", productTitle: "Beyblade Original Dranzer S", unitPrice: 1799 },
|
|
313
|
-
{ productId: "product-beyblade-original-driger-v", productTitle: "Beyblade Original Driger V", unitPrice: 1999 },
|
|
314
|
-
{ productId: "product-beyblade-metal-storm-pegasus", productTitle: "Beyblade Metal Storm Pegasus", unitPrice: 2499 },
|
|
315
|
-
{ productId: "product-beyblade-metal-flame-sagittario", productTitle: "Beyblade Metal Flame Sagittario", unitPrice: 2299 },
|
|
316
|
-
{ productId: "product-beyblade-burst-valkyrie", productTitle: "Beyblade Burst Valkyrie", unitPrice: 1899 },
|
|
317
|
-
{ productId: "product-beyblade-burst-regalia-genesis", productTitle: "Beyblade Burst Regalia Genesis", unitPrice: 3499 },
|
|
318
|
-
{ productId: "product-beyblade-x-wizard-arrow", productTitle: "Beyblade X Wizard Arrow", unitPrice: 1699 },
|
|
319
|
-
{ productId: "product-beyblade-x-knife-shinobi", productTitle: "Beyblade X Knife Shinobi", unitPrice: 2999 },
|
|
320
|
-
];
|
|
321
|
-
const statuses = [
|
|
322
|
-
"pending",
|
|
323
|
-
"confirmed",
|
|
324
|
-
"processing",
|
|
325
|
-
"shipped",
|
|
326
|
-
"delivered",
|
|
327
|
-
"cancelled",
|
|
328
|
-
"refunded",
|
|
329
|
-
"return_requested",
|
|
330
|
-
"returned",
|
|
331
|
-
];
|
|
332
|
-
const paymentStatuses = {
|
|
333
|
-
pending: "pending",
|
|
334
|
-
confirmed: "paid",
|
|
335
|
-
processing: "processing",
|
|
336
|
-
shipped: "paid",
|
|
337
|
-
delivered: "paid",
|
|
338
|
-
cancelled: "refunded",
|
|
339
|
-
refunded: "refunded",
|
|
340
|
-
return_requested: "paid",
|
|
341
|
-
returned: "refunded",
|
|
342
|
-
};
|
|
343
|
-
const buyerStoreMatrix = [
|
|
344
|
-
{ userId: "user-yugi-muto", storeId: "store-beyblade-arena", addressId: "addr-yugi-home" },
|
|
345
|
-
{ userId: "user-yugi-muto", storeId: "store-letitrip-official", addressId: "addr-yugi-home" },
|
|
346
|
-
{ userId: "user-admin-letitrip", storeId: "store-beyblade-arena", addressId: "addr-letitrip-hq" },
|
|
347
|
-
{ userId: "user-seto-kaiba", storeId: "store-beyblade-arena", addressId: "addr-kaiba-mansion" },
|
|
348
|
-
];
|
|
349
|
-
const expandedOrders = [];
|
|
350
|
-
for (let i = _rawOrdersSeedData.length; i < 50; i++) {
|
|
351
|
-
const combo = buyerStoreMatrix[i % buyerStoreMatrix.length];
|
|
352
|
-
const product = productPool[i % productPool.length];
|
|
353
|
-
const status = statuses[i % statuses.length];
|
|
354
|
-
const daysBack = 70 - i;
|
|
355
|
-
const qty = (i % 3) + 1;
|
|
356
|
-
expandedOrders.push({
|
|
357
|
-
id: generateOrderId(qty, daysBack, `${combo.userId}-${product.productId}-${i}`),
|
|
358
|
-
/*
|
|
359
|
-
* 🛑 `items[]` IS THE CANONICAL SHAPE. The flat `productId`/`productTitle`
|
|
360
|
-
* pair below is legacy and is kept only for back-compat readers.
|
|
361
|
-
*
|
|
362
|
-
* This generator emitted the flat fields alone, so 44 of the 50 seeded
|
|
363
|
-
* orders had NO `items[]` — and every order surface reads
|
|
364
|
-
* `items[0].productTitle` for its row label. The admin list therefore
|
|
365
|
-
* rendered "🧾 Order order-1-20260822-aucwon" on 22 of 25 rows: a raw id
|
|
366
|
-
* beside a placeholder emoji, for orders whose product was known all along.
|
|
367
|
-
*
|
|
368
|
-
* Same family as Root Cause #60 — a writer producing a shape no reader can
|
|
369
|
-
* render — except the writer here is the seed, which is why it survived a
|
|
370
|
-
* fix to the readers.
|
|
371
|
-
*/
|
|
372
|
-
items: [
|
|
373
|
-
{
|
|
374
|
-
productId: product.productId,
|
|
375
|
-
productTitle: product.productTitle,
|
|
376
|
-
listingType: "standard",
|
|
377
|
-
quantity: qty,
|
|
378
|
-
unitPrice: product.unitPrice,
|
|
379
|
-
totalPrice: product.unitPrice * qty,
|
|
380
|
-
},
|
|
381
|
-
],
|
|
382
|
-
productId: product.productId,
|
|
383
|
-
productTitle: product.productTitle,
|
|
384
|
-
userId: combo.userId,
|
|
385
|
-
userName: USER_NAMES[combo.userId],
|
|
386
|
-
userEmail: USER_EMAILS[combo.userId],
|
|
387
|
-
storeId: combo.storeId,
|
|
388
|
-
quantity: qty,
|
|
389
|
-
unitPrice: product.unitPrice,
|
|
390
|
-
totalPrice: product.unitPrice * qty,
|
|
391
|
-
currency: "INR",
|
|
392
|
-
status: status,
|
|
393
|
-
paymentStatus: (paymentStatuses[status] ?? "pending"),
|
|
394
|
-
paymentMethod: "cash",
|
|
395
|
-
shippingAddress: combo.addressId,
|
|
396
|
-
orderDate: daysAgo(daysBack),
|
|
397
|
-
shippingDate: status === "shipped" || status === "delivered" ? daysAgo(daysBack - 5) : undefined,
|
|
398
|
-
deliveryDate: status === "delivered" ? daysAgo(daysBack - 10) : undefined,
|
|
399
|
-
createdAt: daysAgo(daysBack),
|
|
400
|
-
updatedAt: daysAgo(Math.max(0, daysBack - 10)),
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
// P-1 MVP: two cash/UPI manual payment orders for demo purposes.
|
|
404
|
-
// cashOrderPendingProof: buyer submitted proof, admin has NOT yet verified.
|
|
405
|
-
const cashOrderPendingProof = {
|
|
406
|
-
id: "order-1-20260729-cash01",
|
|
407
|
-
productId: "product-beyblade-original-dranzer-s",
|
|
408
|
-
productTitle: "Beyblade Original Dranzer S",
|
|
409
|
-
userId: "user-yugi-muto",
|
|
410
|
-
userName: "Mock User 3",
|
|
411
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
412
|
-
storeId: "store-beyblade-arena",
|
|
413
|
-
quantity: 1,
|
|
414
|
-
unitPrice: 1799,
|
|
415
|
-
totalPrice: 1799,
|
|
416
|
-
currency: "INR",
|
|
417
|
-
status: "pending",
|
|
418
|
-
paymentStatus: "pending",
|
|
419
|
-
paymentMethod: "cash",
|
|
420
|
-
paymentProofUrl: "/media/payment-proof-demo-pending.jpg",
|
|
421
|
-
paymentTransactionId: "UPI-DEMO-20260728-PROOF",
|
|
422
|
-
paymentProofMimeType: "image/jpeg",
|
|
423
|
-
paymentProofUploadedAt: daysAgo(1),
|
|
424
|
-
shippingAddress: "addr-yugi-home",
|
|
425
|
-
orderDate: daysAgo(2),
|
|
426
|
-
createdAt: daysAgo(2),
|
|
427
|
-
updatedAt: daysAgo(1),
|
|
428
|
-
};
|
|
429
|
-
const cashOrderVerified = {
|
|
430
|
-
id: "order-1-20260729-cash02",
|
|
431
|
-
productId: "product-beyblade-metal-storm-pegasus",
|
|
432
|
-
productTitle: "Beyblade Metal Storm Pegasus",
|
|
433
|
-
userId: "user-yugi-muto",
|
|
434
|
-
userName: "Mock User 3",
|
|
435
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
436
|
-
storeId: "store-beyblade-arena",
|
|
437
|
-
quantity: 1,
|
|
438
|
-
unitPrice: 2499,
|
|
439
|
-
totalPrice: 2499,
|
|
440
|
-
currency: "INR",
|
|
441
|
-
status: "processing",
|
|
442
|
-
paymentStatus: "paid",
|
|
443
|
-
paymentMethod: "cash",
|
|
444
|
-
paymentProofUrl: "/media/payment-proof-demo-verified.jpg",
|
|
445
|
-
paymentTransactionId: "UPI-DEMO-20260727-YUGI",
|
|
446
|
-
paymentProofMimeType: "image/jpeg",
|
|
447
|
-
paymentProofUploadedAt: daysAgo(3),
|
|
448
|
-
shippingAddress: "addr-yugi-home",
|
|
449
|
-
orderDate: daysAgo(4),
|
|
450
|
-
createdAt: daysAgo(4),
|
|
451
|
-
updatedAt: daysAgo(2),
|
|
452
|
-
};
|
|
453
|
-
/*
|
|
454
|
-
* 🛑 DERIVES `items[]` FROM THE FLAT FIELDS WHEN A FIXTURE OMITS IT.
|
|
455
|
-
*
|
|
456
|
-
* `items[]` is the canonical shape and every orders surface reads
|
|
457
|
-
* `items[0].productTitle` for its row label (Root Cause #52). The generator
|
|
458
|
-
* below was taught to emit it — and that fix was NARROWER THAN THE DEFECT:
|
|
459
|
-
* measured after it shipped, 14 of the 50 seeded orders still had none,
|
|
460
|
-
* because the hand-written fixtures never go through the generator.
|
|
461
|
-
*
|
|
462
|
-
* That is Root Cause #84's shape — a fix scoped to the population you happened
|
|
463
|
-
* to be looking at. Patching those 14 by hand would leave the 15th to whoever
|
|
464
|
-
* writes it next, so the derivation lives here instead, on the path EVERY
|
|
465
|
-
* fixture already takes.
|
|
466
|
-
*
|
|
467
|
-
* It only ever fills a gap: a fixture that declares its own `items[]` (the
|
|
468
|
-
* multi-line ones, where the flat fields cannot express two products) is
|
|
469
|
-
* passed through untouched.
|
|
470
|
-
*/
|
|
471
|
-
function withOrderItems(order) {
|
|
472
|
-
if (Array.isArray(order.items) && order.items.length > 0)
|
|
473
|
-
return order;
|
|
474
|
-
if (!order.productId)
|
|
475
|
-
return order;
|
|
476
|
-
const quantity = order.quantity ?? 1;
|
|
477
|
-
const unitPrice = order.unitPrice ?? 0;
|
|
478
|
-
return {
|
|
479
|
-
...order,
|
|
480
|
-
items: [
|
|
481
|
-
{
|
|
482
|
-
productId: order.productId,
|
|
483
|
-
productTitle: order.productTitle ?? order.productId,
|
|
484
|
-
listingType: "standard",
|
|
485
|
-
quantity,
|
|
486
|
-
unitPrice,
|
|
487
|
-
// Prefer the order's own total: on a single-line order it is the
|
|
488
|
-
// authoritative figure, and re-deriving it would silently drop any
|
|
489
|
-
// fixture that deliberately encodes a locked or negotiated price.
|
|
490
|
-
totalPrice: order.totalPrice ?? unitPrice * quantity,
|
|
491
|
-
},
|
|
492
|
-
],
|
|
493
|
-
};
|
|
494
|
-
}
|
|
495
|
-
// Backfills image/imageUrls (see orderItemImage() above) on every fixture
|
|
496
|
-
// regardless of which shape it uses (multi-item `items[]` vs the legacy
|
|
497
|
-
// single-item top-level fields), so no seeded order silently renders without
|
|
498
|
-
// a thumbnail the way real pre-2026-08-20 orders do.
|
|
499
|
-
function withOrderImages(input) {
|
|
500
|
-
const order = withOrderItems(input);
|
|
501
|
-
return {
|
|
502
|
-
...order,
|
|
503
|
-
imageUrls: order.imageUrls ?? (order.productId ? [orderItemImage(order.productId)] : undefined),
|
|
504
|
-
items: order.items?.map((item) => ({
|
|
505
|
-
...item,
|
|
506
|
-
image: item.image ?? orderItemImage(item.productId),
|
|
507
|
-
})),
|
|
508
|
-
};
|
|
509
|
-
}
|
|
510
|
-
/**
|
|
511
|
-
* One history entry, in the same delta shape `withHistory()` writes at runtime,
|
|
512
|
-
* so a seeded timeline and a real one render identically.
|
|
513
|
-
*/
|
|
514
|
-
function entry(at, actorRole, trigger, changes, extra = {}) {
|
|
515
|
-
return { at, actorRole, trigger, changes, ...extra };
|
|
516
|
-
}
|
|
517
|
-
const BUYER_YUGI = "user-yugi-muto";
|
|
518
|
-
const BUYER_KAIBA = "user-seto-kaiba";
|
|
519
|
-
const BUYER_ADMIN = "user-admin-letitrip";
|
|
520
|
-
const ARENA = "store-beyblade-arena";
|
|
521
|
-
/**
|
|
522
|
-
* Six orders, one per `OrderSourceContext` path.
|
|
523
|
-
*
|
|
524
|
-
* The two auction fixtures are the point of the set: they are the pair
|
|
525
|
-
* `orderType` alone cannot tell apart.
|
|
526
|
-
*/
|
|
527
|
-
const acquisitionOrders = [
|
|
528
|
-
// ── standard ──────────────────────────────────────────────────────────
|
|
529
|
-
{
|
|
530
|
-
id: "order-1-20260818-stdctx",
|
|
531
|
-
productId: "product-beyblade-burst-valkyrie",
|
|
532
|
-
productTitle: "Beyblade Burst B-01 Valkyrie",
|
|
533
|
-
userId: BUYER_YUGI,
|
|
534
|
-
userName: "Mock User 3",
|
|
535
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
536
|
-
storeId: ARENA,
|
|
537
|
-
quantity: 1,
|
|
538
|
-
unitPrice: 999,
|
|
539
|
-
totalPrice: 999,
|
|
540
|
-
currency: "INR",
|
|
541
|
-
status: "delivered",
|
|
542
|
-
paymentStatus: "paid",
|
|
543
|
-
paymentMethod: "cash",
|
|
544
|
-
orderType: "standard",
|
|
545
|
-
shippingAddress: "addr-yugi-home",
|
|
546
|
-
trackingNumber: "LIR-TRK-88213004",
|
|
547
|
-
shippingCarrier: "Delhivery",
|
|
548
|
-
orderDate: daysAgo(12),
|
|
549
|
-
shippingDate: daysAgo(9),
|
|
550
|
-
/*
|
|
551
|
-
* 🛑 TWO DAYS, NOT SIX — THIS IS THE RETURN-WINDOW FIXTURE.
|
|
552
|
-
*
|
|
553
|
-
* A return can only be requested on a DELIVERED order inside the 7-day
|
|
554
|
-
* window, and you cannot reach "delivered" by buying in a test: it needs
|
|
555
|
-
* seller action. So the return flow is testable only if a seeded delivered
|
|
556
|
-
* order sits inside the window — and until now none did for the harness's
|
|
557
|
-
* own identity. Every candidate was 6, 7, 8, 20, 29 days old, so
|
|
558
|
-
* /user/orders/{id}/return answered 'The 7-day return window for this
|
|
559
|
-
* order has closed.' and the case could never be worked.
|
|
560
|
-
*
|
|
561
|
-
* Six days would have been inside the window today and OUTSIDE it
|
|
562
|
-
* tomorrow — a fixture that passes on Monday and fails on Tuesday is worse
|
|
563
|
-
* than one that always fails, because the failure looks like a regression.
|
|
564
|
-
* Two days leaves five days of margin.
|
|
565
|
-
*
|
|
566
|
-
* Do not raise this without checking RETURN_WINDOW_DAYS.
|
|
567
|
-
*/
|
|
568
|
-
deliveryDate: daysAgo(2),
|
|
569
|
-
createdAt: daysAgo(12),
|
|
570
|
-
updatedAt: daysAgo(6),
|
|
571
|
-
sourceContext: { path: "standard", listPrice: 999 },
|
|
572
|
-
statusHistory: [
|
|
573
|
-
entry(daysAgo(12), "buyer", "createCheckoutOrder", {
|
|
574
|
-
status: { from: null, to: "pending" },
|
|
575
|
-
}, { actorUid: BUYER_YUGI }),
|
|
576
|
-
entry(daysAgo(11), "seller", "updateOrderStatus", {
|
|
577
|
-
status: { from: "pending", to: "confirmed" },
|
|
578
|
-
paymentStatus: { from: "pending", to: "paid" },
|
|
579
|
-
}, { actorUid: ARENA }),
|
|
580
|
-
entry(daysAgo(9), "seller", "customShipOrder", {
|
|
581
|
-
status: { from: "confirmed", to: "shipped" },
|
|
582
|
-
trackingNumber: { from: null, to: "LIR-TRK-88213004" },
|
|
583
|
-
}, { actorUid: ARENA }),
|
|
584
|
-
entry(daysAgo(6), "system", "deliveryConfirmation", {
|
|
585
|
-
status: { from: "shipped", to: "delivered" },
|
|
586
|
-
}),
|
|
587
|
-
],
|
|
588
|
-
},
|
|
589
|
-
// ── auction-won — settled at close, against a real ladder ─────────────
|
|
590
|
-
{
|
|
591
|
-
id: "order-1-20260822-aucwon",
|
|
592
|
-
productId: "auction-beyblade-metal-diablo-nemesis",
|
|
593
|
-
productTitle: "Metal Fight Beyblade BB-122 Diablo Nemesis (Ended — Sold)",
|
|
594
|
-
userId: BUYER_KAIBA,
|
|
595
|
-
userName: "Mock User 2",
|
|
596
|
-
userEmail: "vivaan.kapoor@gmail.com",
|
|
597
|
-
storeId: ARENA,
|
|
598
|
-
quantity: 1,
|
|
599
|
-
unitPrice: 6200,
|
|
600
|
-
totalPrice: 6200,
|
|
601
|
-
currency: "INR",
|
|
602
|
-
status: "processing",
|
|
603
|
-
paymentStatus: "paid",
|
|
604
|
-
paymentMethod: "upi_manual",
|
|
605
|
-
orderType: "auction",
|
|
606
|
-
shippingAddress: "addr-kaiba-mansion",
|
|
607
|
-
orderDate: daysAgo(2),
|
|
608
|
-
createdAt: daysAgo(2),
|
|
609
|
-
updatedAt: daysAgo(1),
|
|
610
|
-
sourceContext: {
|
|
611
|
-
path: "auction-won",
|
|
612
|
-
auctionId: "auction-beyblade-metal-diablo-nemesis",
|
|
613
|
-
bidId: "bid-beyblade-metal-diablo-nemesis-rohit-collector-20260601-005",
|
|
614
|
-
winningBidAmount: 6200,
|
|
615
|
-
bidCount: 6,
|
|
616
|
-
startingBid: 3499,
|
|
617
|
-
// No reserve on this auction, so the reserve cannot fail to be met.
|
|
618
|
-
reserveMet: true,
|
|
619
|
-
auctionEndedAt: daysAgo(2),
|
|
620
|
-
runnerUpAmount: 5428,
|
|
621
|
-
},
|
|
622
|
-
statusHistory: [
|
|
623
|
-
entry(daysAgo(2), "system", "auctionSettlement", {
|
|
624
|
-
status: { from: null, to: "pending" },
|
|
625
|
-
}, { reason: "Won at auction close" }),
|
|
626
|
-
entry(daysAgo(1), "admin", "adminVerifyPayment", {
|
|
627
|
-
status: { from: "pending", to: "processing" },
|
|
628
|
-
paymentStatus: { from: "pending", to: "paid" },
|
|
629
|
-
paymentReviewOutcome: { from: null, to: "verified" },
|
|
630
|
-
}, { actorUid: BUYER_ADMIN }),
|
|
631
|
-
],
|
|
632
|
-
},
|
|
633
|
-
// ── auction-buy-now — a buyout ENDED a live auction ───────────────────
|
|
634
|
-
{
|
|
635
|
-
// Referenced back by the buyout bid's `orderId`, so the link resolves in
|
|
636
|
-
// both directions.
|
|
637
|
-
id: "order-1-20260820-buyout",
|
|
638
|
-
productId: "auction-beyblade-burst-spriggan-requiem-bought-out",
|
|
639
|
-
productTitle: "Beyblade Burst B-128 Spriggan Requiem (Ended — Bought Out)",
|
|
640
|
-
userId: BUYER_KAIBA,
|
|
641
|
-
userName: "Mock User 2",
|
|
642
|
-
userEmail: "vivaan.kapoor@gmail.com",
|
|
643
|
-
storeId: ARENA,
|
|
644
|
-
quantity: 1,
|
|
645
|
-
unitPrice: 4999,
|
|
646
|
-
totalPrice: 4999,
|
|
647
|
-
currency: "INR",
|
|
648
|
-
status: "shipped",
|
|
649
|
-
paymentStatus: "paid",
|
|
650
|
-
paymentMethod: "cash",
|
|
651
|
-
orderType: "auction",
|
|
652
|
-
// What separates this from the win above. Both are orderType "auction";
|
|
653
|
-
// only a buyout gets the 24h admin-review window.
|
|
654
|
-
isBuyout: true,
|
|
655
|
-
shippingAddress: "addr-kaiba-mansion",
|
|
656
|
-
trackingNumber: "LIR-TRK-77410992",
|
|
657
|
-
shippingCarrier: "Blue Dart",
|
|
658
|
-
orderDate: daysAgo(4),
|
|
659
|
-
shippingDate: daysAgo(2),
|
|
660
|
-
createdAt: daysAgo(4),
|
|
661
|
-
updatedAt: daysAgo(2),
|
|
662
|
-
sourceContext: {
|
|
663
|
-
path: "auction-buy-now",
|
|
664
|
-
auctionId: "auction-beyblade-burst-spriggan-requiem-bought-out",
|
|
665
|
-
bidId: "bid-beyblade-burst-spriggan-requiem-seto-kaiba-20260820-buyout",
|
|
666
|
-
buyNowPrice: 4999,
|
|
667
|
-
listPrice: 5499,
|
|
668
|
-
// The highest NON-buyout bid the buyout beat.
|
|
669
|
-
standingBidAtBuyout: 3100,
|
|
670
|
-
// Three, not zero. The old type asserted "zero bids by definition"
|
|
671
|
-
// because Buy Now used to be gated on `!bidsHaveStarted`; that gate was
|
|
672
|
-
// removed, and recording 0 would bake a falsehood into an audit record.
|
|
673
|
-
bidCount: 3,
|
|
674
|
-
boughtAt: daysAgo(4),
|
|
675
|
-
checkoutDeadline: daysAgo(4),
|
|
676
|
-
},
|
|
677
|
-
statusHistory: [
|
|
678
|
-
entry(daysAgo(4), "buyer", "claimAuctionForCheckout", {
|
|
679
|
-
status: { from: null, to: "pending" },
|
|
680
|
-
}, { actorUid: BUYER_KAIBA, reason: "Buy Now claim won" }),
|
|
681
|
-
entry(daysAgo(3), "seller", "updateOrderStatus", {
|
|
682
|
-
status: { from: "pending", to: "confirmed" },
|
|
683
|
-
paymentStatus: { from: "pending", to: "paid" },
|
|
684
|
-
}, { actorUid: ARENA }),
|
|
685
|
-
entry(daysAgo(2), "seller", "customShipOrder", {
|
|
686
|
-
status: { from: "confirmed", to: "shipped" },
|
|
687
|
-
trackingNumber: { from: null, to: "LIR-TRK-77410992" },
|
|
688
|
-
}, { actorUid: ARENA }),
|
|
689
|
-
],
|
|
690
|
-
},
|
|
691
|
-
// ── offer-accepted — the end of a real negotiation ────────────────────
|
|
692
|
-
{
|
|
693
|
-
id: "order-1-20260813-offerctx",
|
|
694
|
-
productId: "product-beyblade-x-knife-shinobi",
|
|
695
|
-
productTitle: "Beyblade X Knife Shinobi",
|
|
696
|
-
userId: BUYER_ADMIN,
|
|
697
|
-
userName: "Mock User 1",
|
|
698
|
-
userEmail: "admin@letitrip.in",
|
|
699
|
-
storeId: ARENA,
|
|
700
|
-
quantity: 1,
|
|
701
|
-
unitPrice: 800,
|
|
702
|
-
totalPrice: 800,
|
|
703
|
-
currency: "INR",
|
|
704
|
-
status: "delivered",
|
|
705
|
-
paymentStatus: "paid",
|
|
706
|
-
paymentMethod: "cash",
|
|
707
|
-
orderType: "offer",
|
|
708
|
-
// The offer this order settled — its own status is `paid`, and this is the
|
|
709
|
-
// order id it points at.
|
|
710
|
-
offerId: "offer-admin-x-knife-shinobi-paid",
|
|
711
|
-
shippingAddress: "addr-letitrip-hq",
|
|
712
|
-
orderDate: daysAgo(11),
|
|
713
|
-
shippingDate: daysAgo(9),
|
|
714
|
-
deliveryDate: daysAgo(7),
|
|
715
|
-
createdAt: daysAgo(11),
|
|
716
|
-
updatedAt: daysAgo(7),
|
|
717
|
-
sourceContext: {
|
|
718
|
-
path: "offer-accepted",
|
|
719
|
-
offerId: "offer-admin-x-knife-shinobi-paid",
|
|
720
|
-
offeredAmount: 800,
|
|
721
|
-
listPriceAtOffer: 949,
|
|
722
|
-
// Accepted outright — no counter rounds. Compare the Metal Storm
|
|
723
|
-
// Pegasus chain in offers-seed-data.ts, which reaches round 3.
|
|
724
|
-
counterRounds: 1,
|
|
725
|
-
acceptedBy: ARENA,
|
|
726
|
-
acceptedAt: daysAgo(12),
|
|
727
|
-
checkoutDeadline: daysAgo(10),
|
|
728
|
-
},
|
|
729
|
-
statusHistory: [
|
|
730
|
-
entry(daysAgo(11), "buyer", "createCheckoutOrder", {
|
|
731
|
-
status: { from: null, to: "pending" },
|
|
732
|
-
}, { actorUid: BUYER_ADMIN }),
|
|
733
|
-
entry(daysAgo(10), "seller", "updateOrderStatus", {
|
|
734
|
-
status: { from: "pending", to: "confirmed" },
|
|
735
|
-
paymentStatus: { from: "pending", to: "paid" },
|
|
736
|
-
}, { actorUid: ARENA }),
|
|
737
|
-
entry(daysAgo(9), "seller", "customShipOrder", {
|
|
738
|
-
status: { from: "confirmed", to: "shipped" },
|
|
739
|
-
trackingNumber: { from: null, to: "LIR-TRK-30028841" },
|
|
740
|
-
}, { actorUid: ARENA }),
|
|
741
|
-
entry(daysAgo(7), "system", "deliveryConfirmation", {
|
|
742
|
-
status: { from: "shipped", to: "delivered" },
|
|
743
|
-
}),
|
|
744
|
-
// A PARTIAL refund. It changes no tracked field, so it can only reach the
|
|
745
|
-
// timeline as an explicit contribution — diffing `refunds[]` would render
|
|
746
|
-
// as "an array of 0 became an array of 1", which is true and useless.
|
|
747
|
-
entry(daysAgo(6), "admin", "postRefundEvent", {
|
|
748
|
-
refund: {
|
|
749
|
-
from: null,
|
|
750
|
-
to: { refundId: "refund-x-knife-shinobi-1", type: "partial", amount: 120, reason: "Minor box damage in transit" },
|
|
751
|
-
},
|
|
752
|
-
}, { actorUid: BUYER_ADMIN, reason: "Minor box damage in transit" }),
|
|
753
|
-
],
|
|
754
|
-
trackingNumber: "LIR-TRK-30028841",
|
|
755
|
-
shippingCarrier: "Delhivery",
|
|
756
|
-
},
|
|
757
|
-
// ── pre-order — deposit taken, balance outstanding ────────────────────
|
|
758
|
-
{
|
|
759
|
-
id: "order-1-20260819-preordr",
|
|
760
|
-
productId: "preorder-beyblade-x-bx-08-wave",
|
|
761
|
-
productTitle: "Beyblade X BX-08 Wave (Pre-Order)",
|
|
762
|
-
userId: BUYER_YUGI,
|
|
763
|
-
userName: "Mock User 3",
|
|
764
|
-
userEmail: "rehan.sheikh@gmail.com",
|
|
765
|
-
storeId: ARENA,
|
|
766
|
-
quantity: 1,
|
|
767
|
-
unitPrice: 799,
|
|
768
|
-
totalPrice: 799,
|
|
769
|
-
currency: "INR",
|
|
770
|
-
status: "confirmed",
|
|
771
|
-
paymentStatus: "pending",
|
|
772
|
-
paymentMethod: "cash",
|
|
773
|
-
orderType: "preorder",
|
|
774
|
-
// 25% of ₹799 — matches `preOrderDepositPercent` on the product.
|
|
775
|
-
depositAmount: 199.75,
|
|
776
|
-
shippingAddress: "addr-yugi-home",
|
|
777
|
-
orderDate: daysAgo(5),
|
|
778
|
-
createdAt: daysAgo(5),
|
|
779
|
-
updatedAt: daysAgo(5),
|
|
780
|
-
sourceContext: {
|
|
781
|
-
path: "pre-order",
|
|
782
|
-
depositAmount: 199.75,
|
|
783
|
-
balanceDue: 599.25,
|
|
784
|
-
},
|
|
785
|
-
statusHistory: [
|
|
786
|
-
entry(daysAgo(5), "buyer", "createCheckoutOrder", {
|
|
787
|
-
status: { from: null, to: "pending" },
|
|
788
|
-
}, { actorUid: BUYER_YUGI }),
|
|
789
|
-
entry(daysAgo(5), "seller", "updateOrderStatus", {
|
|
790
|
-
status: { from: "pending", to: "confirmed" },
|
|
791
|
-
}, { actorUid: ARENA, note: "Deposit received — balance due on dispatch." }),
|
|
792
|
-
],
|
|
793
|
-
},
|
|
794
|
-
// ── prize-draw — several entries bought in one order ──────────────────
|
|
795
|
-
{
|
|
796
|
-
id: "order-1-20260821-prizedr",
|
|
797
|
-
productId: "prizedraw-beyblade-mystery-box",
|
|
798
|
-
productTitle: "Beyblade Mystery Box — Prize Draw",
|
|
799
|
-
userId: BUYER_KAIBA,
|
|
800
|
-
userName: "Mock User 2",
|
|
801
|
-
userEmail: "vivaan.kapoor@gmail.com",
|
|
802
|
-
storeId: ARENA,
|
|
803
|
-
quantity: 3,
|
|
804
|
-
unitPrice: 99,
|
|
805
|
-
totalPrice: 297,
|
|
806
|
-
currency: "INR",
|
|
807
|
-
status: "confirmed",
|
|
808
|
-
paymentStatus: "paid",
|
|
809
|
-
paymentMethod: "cash",
|
|
810
|
-
orderType: "prize-draw",
|
|
811
|
-
shippingAddress: "addr-kaiba-mansion",
|
|
812
|
-
orderDate: daysAgo(3),
|
|
813
|
-
createdAt: daysAgo(3),
|
|
814
|
-
updatedAt: daysAgo(3),
|
|
815
|
-
sourceContext: {
|
|
816
|
-
path: "prize-draw",
|
|
817
|
-
prizeDrawProductId: "prizedraw-beyblade-mystery-box",
|
|
818
|
-
pricePerEntry: 99,
|
|
819
|
-
entryCount: 3,
|
|
820
|
-
// `prizeDrawMode` is reveal-vs-lottery, a different axis. This records
|
|
821
|
-
// the reveal TIMING: no reveal window means it reveals on sell-out.
|
|
822
|
-
revealMode: "instant",
|
|
823
|
-
},
|
|
824
|
-
statusHistory: [
|
|
825
|
-
entry(daysAgo(3), "buyer", "createCheckoutOrder", {
|
|
826
|
-
status: { from: null, to: "pending" },
|
|
827
|
-
}, { actorUid: BUYER_KAIBA }),
|
|
828
|
-
entry(daysAgo(3), "seller", "updateOrderStatus", {
|
|
829
|
-
status: { from: "pending", to: "confirmed" },
|
|
830
|
-
paymentStatus: { from: "pending", to: "paid" },
|
|
831
|
-
}, { actorUid: ARENA }),
|
|
832
|
-
],
|
|
833
|
-
},
|
|
834
|
-
];
|
|
835
|
-
export const ordersSeedData = [
|
|
836
|
-
cashOrderPendingProof,
|
|
837
|
-
cashOrderVerified,
|
|
838
|
-
...acquisitionOrders,
|
|
839
|
-
// The slice keeps the fixture count stable as fixtures are added above it —
|
|
840
|
-
// it used to be 48 for the two manual-payment orders, and now also absorbs
|
|
841
|
-
// the six acquisition-path orders.
|
|
842
|
-
...[..._rawOrdersSeedData, ...expandedOrders].slice(0, 42),
|
|
843
|
-
// Derived through the wrapper, never written per record — an inline literal
|
|
844
|
-
// is how five product seed files shipped their last fixture with no tokens.
|
|
845
|
-
].map(withOrderImages).map(withOrderSearchTxt);
|