@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.
Files changed (493) hide show
  1. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +14 -5
  2. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +3 -0
  3. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +6 -0
  4. package/dist/_internal/client/features/lottery/LotteryDetailView.d.ts +8 -0
  5. package/dist/_internal/client/features/lottery/LotteryDetailView.js +4 -1
  6. package/dist/_internal/client/features/lottery/LotteryListView.d.ts +7 -0
  7. package/dist/_internal/client/features/lottery/LotteryListView.js +1 -1
  8. package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +4 -1
  9. package/dist/_internal/client/features/lottery/slot-collage-items.d.ts +15 -0
  10. package/dist/_internal/client/features/lottery/slot-collage-items.js +13 -0
  11. package/dist/_internal/server/features/auctions/actions.js +8 -2
  12. package/dist/_internal/server/features/bundles/data.d.ts +16 -0
  13. package/dist/_internal/server/features/bundles/data.js +26 -0
  14. package/dist/_internal/server/features/bundles/index.d.ts +1 -1
  15. package/dist/_internal/server/features/bundles/index.js +1 -1
  16. package/dist/_internal/server/features/cart/service.d.ts +3 -3
  17. package/dist/_internal/server/features/checkout/actions.js +25 -0
  18. package/dist/_internal/server/features/checkout/locked-lines.d.ts +38 -0
  19. package/dist/_internal/server/features/checkout/locked-lines.js +171 -0
  20. package/dist/_internal/server/features/checkout/source-context.d.ts +5 -0
  21. package/dist/_internal/server/features/checkout/source-context.js +157 -0
  22. package/dist/_internal/server/features/homepage/index.d.ts +0 -1
  23. package/dist/_internal/server/features/homepage/index.js +7 -1
  24. package/dist/_internal/server/features/lottery/adapters.js +4 -0
  25. package/dist/_internal/server/features/offers/adapters.d.ts +103 -0
  26. package/dist/_internal/server/features/offers/adapters.js +88 -0
  27. package/dist/_internal/server/features/offers/index.d.ts +2 -0
  28. package/dist/_internal/server/features/offers/index.js +1 -0
  29. package/dist/_internal/server/features/orders/adapters.js +24 -0
  30. package/dist/_internal/server/features/products/data.js +15 -37
  31. package/dist/_internal/server/features/products/index.d.ts +1 -1
  32. package/dist/_internal/server/features/products/index.js +1 -1
  33. package/dist/_internal/server/features/products/list-public.d.ts +46 -20
  34. package/dist/_internal/server/features/products/list-public.js +266 -90
  35. package/dist/_internal/server/features/products/listing-tab-counts.d.ts +44 -0
  36. package/dist/_internal/server/features/products/listing-tab-counts.js +97 -0
  37. package/dist/_internal/server/features/site-settings/adapters.d.ts +51 -0
  38. package/dist/_internal/server/features/site-settings/adapters.js +75 -0
  39. package/dist/_internal/server/features/site-settings/index.d.ts +1 -0
  40. package/dist/_internal/server/features/site-settings/index.js +1 -0
  41. package/dist/_internal/server/features/stores/adapters.d.ts +56 -0
  42. package/dist/_internal/server/features/stores/adapters.js +91 -0
  43. package/dist/_internal/server/features/stores/index.d.ts +1 -0
  44. package/dist/_internal/server/features/stores/index.js +1 -0
  45. package/dist/_internal/server/jobs/core/auctionSettlement.js +56 -2
  46. package/dist/_internal/server/jobs/core/offerExpiry.js +55 -19
  47. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +5 -0
  48. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +33 -1
  49. package/dist/_internal/server/jobs/handlers/messages.d.ts +7 -0
  50. package/dist/_internal/server/jobs/handlers/messages.js +10 -0
  51. package/dist/_internal/shared/actions/action-registry.js +17 -1
  52. package/dist/_internal/shared/checkout/lanes.d.ts +25 -0
  53. package/dist/_internal/shared/checkout/lanes.js +26 -0
  54. package/dist/_internal/shared/features/auctions/config.d.ts +27 -0
  55. package/dist/_internal/shared/features/auctions/config.js +27 -0
  56. package/dist/_internal/shared/features/auctions/schema.d.ts +14 -2
  57. package/dist/_internal/shared/features/auctions/schema.js +13 -1
  58. package/dist/_internal/shared/features/blog/schema.d.ts +2 -2
  59. package/dist/_internal/shared/features/cart/schema.d.ts +20 -15
  60. package/dist/_internal/shared/features/cart/schema.js +15 -0
  61. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +32 -32
  62. package/dist/_internal/shared/features/emi/schedule.d.ts +24 -3
  63. package/dist/_internal/shared/features/emi/schedule.js +20 -5
  64. package/dist/_internal/shared/features/events/schema.d.ts +2 -2
  65. package/dist/_internal/shared/features/homepage/section-gate.d.ts +14 -0
  66. package/dist/_internal/shared/features/homepage/section-gate.js +51 -0
  67. package/dist/_internal/shared/features/offers/config.d.ts +30 -0
  68. package/dist/_internal/shared/features/offers/config.js +59 -0
  69. package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
  70. package/dist/_internal/shared/features/products/schema.d.ts +30 -30
  71. package/dist/_internal/shared/features/products/to-product-item.js +6 -0
  72. package/dist/_internal/shared/features/reviews/schema.d.ts +2 -2
  73. package/dist/_internal/shared/features/site-settings/fees.d.ts +60 -0
  74. package/dist/_internal/shared/features/site-settings/fees.js +39 -0
  75. package/dist/_internal/shared/features/site-settings/types.d.ts +40 -0
  76. package/dist/_internal/shared/features/site-settings/types.js +1 -0
  77. package/dist/_internal/shared/history/history.d.ts +88 -0
  78. package/dist/_internal/shared/history/history.js +198 -0
  79. package/dist/_internal/shared/history/index.d.ts +4 -0
  80. package/dist/_internal/shared/history/index.js +2 -0
  81. package/dist/_internal/shared/history/types.d.ts +61 -0
  82. package/dist/_internal/shared/history/types.js +6 -0
  83. package/dist/_internal/shared/listing-types/_registry.d.ts +54 -1
  84. package/dist/_internal/shared/listing-types/_registry.js +67 -0
  85. package/dist/_internal/shared/listing-types/art/config.d.ts +3 -0
  86. package/dist/_internal/shared/listing-types/art/config.js +5 -0
  87. package/dist/_internal/shared/listing-types/auction/config.d.ts +13 -0
  88. package/dist/_internal/shared/listing-types/auction/config.js +21 -0
  89. package/dist/_internal/shared/listing-types/availability.d.ts +79 -0
  90. package/dist/_internal/shared/listing-types/availability.js +104 -0
  91. package/dist/_internal/shared/listing-types/capabilities.d.ts +15 -0
  92. package/dist/_internal/shared/listing-types/capabilities.js +12 -0
  93. package/dist/_internal/shared/listing-types/classified/config.d.ts +3 -0
  94. package/dist/_internal/shared/listing-types/classified/config.js +5 -0
  95. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +11 -0
  96. package/dist/_internal/shared/listing-types/digital-code/config.js +22 -2
  97. package/dist/_internal/shared/listing-types/live/config.d.ts +3 -0
  98. package/dist/_internal/shared/listing-types/live/config.js +5 -0
  99. package/dist/_internal/shared/listing-types/pre-order/config.d.ts +3 -0
  100. package/dist/_internal/shared/listing-types/pre-order/config.js +19 -0
  101. package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +11 -0
  102. package/dist/_internal/shared/listing-types/prize-draw/config.js +15 -0
  103. package/dist/_internal/shared/listing-types/standard/config.d.ts +3 -0
  104. package/dist/_internal/shared/listing-types/standard/config.js +5 -0
  105. package/dist/_internal/shared/listing-types/stickers/config.d.ts +3 -0
  106. package/dist/_internal/shared/listing-types/stickers/config.js +5 -0
  107. package/dist/client.d.ts +20 -7
  108. package/dist/client.js +22 -4
  109. package/dist/constants/api-endpoints.d.ts +6 -0
  110. package/dist/constants/api-endpoints.js +2 -0
  111. package/dist/constants/field-names.d.ts +57 -8
  112. package/dist/constants/field-names.js +101 -8
  113. package/dist/constants/table-keys.d.ts +17 -0
  114. package/dist/constants/table-keys.js +17 -0
  115. package/dist/errors/error-codes.d.ts +13 -1
  116. package/dist/errors/error-codes.js +13 -1
  117. package/dist/errors/error-display-map.js +12 -3
  118. package/dist/errors/messages.d.ts +10 -2
  119. package/dist/errors/messages.js +10 -2
  120. package/dist/features/about/components/AboutView.d.ts +3 -0
  121. package/dist/features/about/components/AboutView.js +3 -2
  122. package/dist/features/about/components/PolicyPageView.d.ts +2 -1
  123. package/dist/features/about/components/PolicyPageView.js +61 -23
  124. package/dist/features/about/components/PublicProfileView.js +5 -0
  125. package/dist/features/about/schemas/firestore.d.ts +3 -0
  126. package/dist/features/account/components/UserBidsView.js +12 -4
  127. package/dist/features/account/components/UserOrdersView.js +7 -0
  128. package/dist/features/account/components/UserReturnsView.d.ts +3 -0
  129. package/dist/features/account/components/UserReturnsView.js +17 -1
  130. package/dist/features/account/components/index.d.ts +0 -2
  131. package/dist/features/account/components/index.js +0 -1
  132. package/dist/features/account/schemas/index.d.ts +2 -2
  133. package/dist/features/account/types/index.d.ts +21 -2
  134. package/dist/features/addresses/schemas/index.d.ts +4 -4
  135. package/dist/features/admin/components/AdminArtView.js +8 -3
  136. package/dist/features/admin/components/AdminAuditLogView.js +1 -0
  137. package/dist/features/admin/components/AdminBidsView.js +15 -2
  138. package/dist/features/admin/components/AdminBlogEditorView.js +65 -33
  139. package/dist/features/admin/components/AdminClassifiedView.js +8 -3
  140. package/dist/features/admin/components/AdminDigitalCodesView.js +8 -3
  141. package/dist/features/admin/components/AdminFeatureEditorView.js +35 -6
  142. package/dist/features/admin/components/AdminFeatureFlagsView.js +1 -0
  143. package/dist/features/admin/components/AdminLiveView.js +8 -3
  144. package/dist/features/admin/components/AdminNavEditorView.js +15 -5
  145. package/dist/features/admin/components/AdminNewsletterView.js +18 -2
  146. package/dist/features/admin/components/AdminOffersView.d.ts +4 -0
  147. package/dist/features/admin/components/AdminOffersView.js +230 -0
  148. package/dist/features/admin/components/AdminOrdersView.js +10 -1
  149. package/dist/features/admin/components/AdminPaymentMethodsView.js +24 -4
  150. package/dist/features/admin/components/AdminPrizeDrawsView.js +5 -0
  151. package/dist/features/admin/components/AdminProductsView.js +16 -29
  152. package/dist/features/admin/components/AdminScammerEditorView.d.ts +2 -1
  153. package/dist/features/admin/components/AdminScammerEditorView.js +3 -13
  154. package/dist/features/admin/components/AdminScammersView.js +3 -8
  155. package/dist/features/admin/components/AdminSectionsView.js +32 -23
  156. package/dist/features/admin/components/AdminSessionsView.js +17 -2
  157. package/dist/features/admin/components/AdminSiteSettingsView.js +31 -13
  158. package/dist/features/admin/components/AdminSiteView.js +6 -2
  159. package/dist/features/admin/components/AdminStickersView.js +8 -3
  160. package/dist/features/admin/components/ViewAuditLogEntryModal.js +1 -0
  161. package/dist/features/admin/components/index.d.ts +2 -0
  162. package/dist/features/admin/components/index.js +1 -0
  163. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +4 -2
  164. package/dist/features/admin/components/sections/adminSectionsTypes.js +45 -27
  165. package/dist/features/admin/constants/filter-tabs.d.ts +89 -0
  166. package/dist/features/admin/constants/filter-tabs.js +56 -0
  167. package/dist/features/admin/schemas/firestore.d.ts +122 -3
  168. package/dist/features/admin/schemas/firestore.js +1 -0
  169. package/dist/features/admin/schemas/homepage-section-form.d.ts +22 -0
  170. package/dist/features/admin/schemas/homepage-section-form.js +68 -0
  171. package/dist/features/admin/schemas/nav-item-form.d.ts +74 -0
  172. package/dist/features/admin/schemas/nav-item-form.js +72 -0
  173. package/dist/features/auctions/actions/bid-actions.d.ts +20 -5
  174. package/dist/features/auctions/actions/bid-actions.js +93 -20
  175. package/dist/features/auctions/components/AuctionBidsTable.d.ts +10 -1
  176. package/dist/features/auctions/components/AuctionBidsTable.js +22 -4
  177. package/dist/features/auctions/components/AuctionDetailPageView.js +11 -6
  178. package/dist/features/auctions/components/AuctionsListView.js +5 -6
  179. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +7 -0
  180. package/dist/features/auctions/components/MarketplaceAuctionCard.js +19 -2
  181. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +1 -2
  182. package/dist/features/auctions/components/PlaceBidFormClient.js +8 -4
  183. package/dist/features/auctions/components/bid-detail-fields.d.ts +29 -0
  184. package/dist/features/auctions/components/bid-detail-fields.js +103 -0
  185. package/dist/features/auctions/repository/bid.repository.d.ts +13 -0
  186. package/dist/features/auctions/repository/bid.repository.js +23 -0
  187. package/dist/features/auctions/schemas/firestore.d.ts +17 -0
  188. package/dist/features/auctions/schemas/index.d.ts +12 -12
  189. package/dist/features/audit-log/schemas/firestore.d.ts +14 -0
  190. package/dist/features/audit-log/schemas/firestore.js +7 -0
  191. package/dist/features/auth/permissions/constants.d.ts +1 -1
  192. package/dist/features/auth/permissions/constants.js +10 -1
  193. package/dist/features/blog/actions/blog-actions.d.ts +7 -7
  194. package/dist/features/blog/schemas/blog-form.d.ts +80 -0
  195. package/dist/features/blog/schemas/blog-form.js +100 -0
  196. package/dist/features/blog/schemas/index.d.ts +6 -6
  197. package/dist/features/cart/repository/cart.repository.js +1 -0
  198. package/dist/features/cart/schemas/firestore.d.ts +15 -0
  199. package/dist/features/catalogue/schemas/validation.d.ts +4 -4
  200. package/dist/features/categories/components/BrandDetailPageView.js +23 -40
  201. package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -7
  202. package/dist/features/categories/components/BrandDetailTabs.js +8 -12
  203. package/dist/features/categories/components/BundleCollage.js +1 -1
  204. package/dist/features/categories/components/CategoryDetailPageView.js +53 -57
  205. package/dist/features/categories/components/CategoryDetailTabs.d.ts +10 -8
  206. package/dist/features/categories/components/CategoryDetailTabs.js +11 -16
  207. package/dist/features/categories/components/CategoryProductsListing.js +11 -1
  208. package/dist/features/categories/components/ConcernCard.js +7 -1
  209. package/dist/features/categories/schemas/firestore.d.ts +13 -0
  210. package/dist/features/categories/schemas/index.d.ts +26 -26
  211. package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +16 -1
  212. package/dist/features/classified/components/ClassifiedDetailPageView.js +23 -3
  213. package/dist/features/events/components/AdminEventEditorView.js +32 -54
  214. package/dist/features/events/components/AdminEventEntriesView.js +22 -3
  215. package/dist/features/events/components/AdminEventsView.js +15 -11
  216. package/dist/features/events/components/EventFilters.d.ts +9 -1
  217. package/dist/features/events/components/EventFilters.js +45 -21
  218. package/dist/features/events/components/EventsIndexListing.d.ts +6 -1
  219. package/dist/features/events/components/EventsIndexListing.js +2 -2
  220. package/dist/features/events/components/EventsListPageView.js +13 -4
  221. package/dist/features/events/repository/events.repository.d.ts +17 -0
  222. package/dist/features/events/repository/events.repository.js +27 -0
  223. package/dist/features/events/schemas/event-form.d.ts +113 -0
  224. package/dist/features/events/schemas/event-form.js +82 -0
  225. package/dist/features/events/schemas/firestore.d.ts +12 -0
  226. package/dist/features/events/schemas/firestore.js +12 -0
  227. package/dist/features/events/schemas/index.d.ts +50 -50
  228. package/dist/features/events/types/index.d.ts +11 -0
  229. package/dist/features/events/types/index.js +57 -1
  230. package/dist/features/faq/actions/faq-actions.d.ts +12 -12
  231. package/dist/features/faq/schemas/index.d.ts +8 -8
  232. package/dist/features/filters/FilterFacetSection.d.ts +7 -1
  233. package/dist/features/filters/FilterFacetSection.js +11 -3
  234. package/dist/features/grouped/schemas/grouped-listing-form.d.ts +101 -0
  235. package/dist/features/grouped/schemas/grouped-listing-form.js +89 -0
  236. package/dist/features/grouped/schemas/index.d.ts +4 -4
  237. package/dist/features/homepage/actions/homepage-section-actions.d.ts +11 -3
  238. package/dist/features/homepage/actions/homepage-section-actions.js +33 -1
  239. package/dist/features/homepage/components/AnnouncementBar.d.ts +7 -1
  240. package/dist/features/homepage/components/AnnouncementBar.js +3 -3
  241. package/dist/features/homepage/components/MarketplaceHomepageView.js +20 -6
  242. package/dist/features/homepage/hooks/homepage-query.d.ts +16 -0
  243. package/dist/features/homepage/hooks/homepage-query.js +45 -0
  244. package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +10 -0
  245. package/dist/features/homepage/hooks/useFeaturedAuctions.js +28 -8
  246. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +17 -8
  247. package/dist/features/homepage/hooks/useFeaturedProducts.js +15 -8
  248. package/dist/features/homepage/schemas/index.d.ts +33 -2
  249. package/dist/features/homepage/schemas/index.js +24 -0
  250. package/dist/features/layout/AppLayoutShell.d.ts +11 -1
  251. package/dist/features/layout/AppLayoutShell.js +15 -14
  252. package/dist/features/layout/BackToTop.d.ts +9 -0
  253. package/dist/features/layout/BackToTop.js +10 -1
  254. package/dist/features/layout/BottomActions.js +28 -25
  255. package/dist/features/layout/BottomChrome.d.ts +34 -0
  256. package/dist/features/layout/BottomChrome.js +55 -0
  257. package/dist/features/layout/BottomNavLayout.d.ts +6 -0
  258. package/dist/features/layout/BottomNavLayout.js +7 -1
  259. package/dist/features/layout/BottomNavbar.js +15 -2
  260. package/dist/features/layout/FooterLayout.js +11 -1
  261. package/dist/features/layout/NavbarLayout.js +1 -1
  262. package/dist/features/layout/TitleBarLayout.d.ts +7 -0
  263. package/dist/features/layout/TitleBarLayout.js +28 -5
  264. package/dist/features/layout/index.d.ts +2 -0
  265. package/dist/features/layout/index.js +1 -0
  266. package/dist/features/lottery/types/index.d.ts +3 -0
  267. package/dist/features/media/MediaPickerModal.js +5 -1
  268. package/dist/features/messages/schemas/index.d.ts +2 -2
  269. package/dist/features/orders/components/OrderScopeTabs.d.ts +20 -0
  270. package/dist/features/orders/components/OrderScopeTabs.js +31 -0
  271. package/dist/features/orders/components/OrderStatusTimeline.d.ts +5 -1
  272. package/dist/features/orders/components/OrderStatusTimeline.js +39 -20
  273. package/dist/features/orders/constants/order-scope.d.ts +48 -0
  274. package/dist/features/orders/constants/order-scope.js +111 -0
  275. package/dist/features/orders/repository/orders.repository.d.ts +54 -7
  276. package/dist/features/orders/repository/orders.repository.js +121 -22
  277. package/dist/features/orders/schemas/firestore.d.ts +152 -0
  278. package/dist/features/orders/schemas/firestore.js +30 -0
  279. package/dist/features/orders/schemas/index.d.ts +18 -18
  280. package/dist/features/orders/types/index.d.ts +35 -7
  281. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +14 -9
  282. package/dist/features/pre-orders/components/PreOrdersListView.js +6 -5
  283. package/dist/features/pre-orders/schemas/index.d.ts +1 -1
  284. package/dist/features/products/actions/product-actions.d.ts +14 -0
  285. package/dist/features/products/actions/product-actions.js +49 -11
  286. package/dist/features/products/api/route.d.ts +12 -0
  287. package/dist/features/products/api/route.js +42 -100
  288. package/dist/features/products/components/ArtStickersListView.js +2 -2
  289. package/dist/features/products/components/AuctionsIndexListing.js +13 -11
  290. package/dist/features/products/components/AvailabilityTabs.d.ts +11 -0
  291. package/dist/features/products/components/AvailabilityTabs.js +47 -0
  292. package/dist/features/products/components/GroupSettingsPanel.js +5 -1
  293. package/dist/features/products/components/MakeOfferButton.js +48 -49
  294. package/dist/features/products/components/PrizeDrawCollage.d.ts +20 -4
  295. package/dist/features/products/components/PrizeDrawCollage.js +9 -1
  296. package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -12
  297. package/dist/features/products/components/PrizeDrawsListingView.js +2 -2
  298. package/dist/features/products/components/PrizeDrawsSection.d.ts +7 -1
  299. package/dist/features/products/components/PrizeDrawsSection.js +23 -18
  300. package/dist/features/products/components/ProductDetailPageView.d.ts +4 -1
  301. package/dist/features/products/components/ProductDetailPageView.js +18 -4
  302. package/dist/features/products/components/ProductForm.js +5 -2
  303. package/dist/features/products/components/ProductGrid.js +6 -1
  304. package/dist/features/products/components/ProductsIndexListing.js +22 -32
  305. package/dist/features/products/components/ProductsIndexPageView.js +6 -9
  306. package/dist/features/products/components/index.d.ts +2 -2
  307. package/dist/features/products/components/index.js +1 -1
  308. package/dist/features/products/config/listing-type-listing-config.d.ts +20 -0
  309. package/dist/features/products/config/listing-type-listing-config.js +22 -10
  310. package/dist/features/products/constants/action-defs.d.ts +2 -0
  311. package/dist/features/products/constants/action-defs.js +6 -0
  312. package/dist/features/products/hooks/useAvailabilityScope.d.ts +13 -0
  313. package/dist/features/products/hooks/useAvailabilityScope.js +19 -0
  314. package/dist/features/products/hooks/useProducts.d.ts +5 -0
  315. package/dist/features/products/hooks/useProducts.js +13 -2
  316. package/dist/features/products/repository/products.repository.d.ts +31 -2
  317. package/dist/features/products/repository/products.repository.js +53 -21
  318. package/dist/features/products/schemas/firestore.d.ts +17 -3
  319. package/dist/features/products/schemas/firestore.js +7 -2
  320. package/dist/features/products/schemas/index.d.ts +64 -64
  321. package/dist/features/products/schemas/product-features.validators.d.ts +79 -6
  322. package/dist/features/products/schemas/product-features.validators.js +63 -0
  323. package/dist/features/products/types/index.d.ts +16 -1
  324. package/dist/features/promotions/schemas/index.d.ts +2 -2
  325. package/dist/features/reviews/schemas/index.d.ts +16 -16
  326. package/dist/features/scams/constants/scammer-status-display.d.ts +28 -0
  327. package/dist/features/scams/constants/scammer-status-display.js +79 -0
  328. package/dist/features/search/schemas/index.d.ts +4 -4
  329. package/dist/features/seller/actions/offer-actions.js +57 -4
  330. package/dist/features/seller/components/OfferPhaseTimeline.d.ts +59 -0
  331. package/dist/features/seller/components/OfferPhaseTimeline.js +107 -0
  332. package/dist/features/seller/components/SellerArtView.js +5 -0
  333. package/dist/features/seller/components/SellerAuctionsView.js +13 -15
  334. package/dist/features/seller/components/SellerBidsView.js +11 -4
  335. package/dist/features/seller/components/SellerClassifiedView.js +5 -0
  336. package/dist/features/seller/components/SellerCouponEditorView.js +17 -17
  337. package/dist/features/seller/components/SellerDigitalCodesView.js +5 -0
  338. package/dist/features/seller/components/SellerLiveView.js +5 -0
  339. package/dist/features/seller/components/SellerOffersView.js +2 -1
  340. package/dist/features/seller/components/SellerOrdersView.js +31 -9
  341. package/dist/features/seller/components/SellerPayoutSettingsView.js +56 -31
  342. package/dist/features/seller/components/SellerPreOrdersView.js +5 -0
  343. package/dist/features/seller/components/SellerPrizeDrawsView.js +14 -16
  344. package/dist/features/seller/components/SellerProductShell.js +7 -1
  345. package/dist/features/seller/components/SellerProductsView.js +11 -8
  346. package/dist/features/seller/components/SellerStickersView.js +5 -0
  347. package/dist/features/seller/components/index.d.ts +0 -2
  348. package/dist/features/seller/components/index.js +0 -1
  349. package/dist/features/seller/repository/offer.repository.d.ts +142 -24
  350. package/dist/features/seller/repository/offer.repository.js +165 -26
  351. package/dist/features/seller/schemas/coupon-form.d.ts +72 -0
  352. package/dist/features/seller/schemas/coupon-form.js +116 -0
  353. package/dist/features/seller/schemas/firestore.d.ts +56 -2
  354. package/dist/features/seller/schemas/firestore.js +27 -0
  355. package/dist/features/seller/schemas/index.d.ts +2 -2
  356. package/dist/features/seller/schemas/offer-forms.d.ts +46 -0
  357. package/dist/features/seller/schemas/offer-forms.js +42 -0
  358. package/dist/features/seller/server.d.ts +0 -1
  359. package/dist/features/seller/server.js +0 -1
  360. package/dist/features/shell/SectionForm.d.ts +99 -0
  361. package/dist/features/shell/SectionForm.js +128 -0
  362. package/dist/features/shell/build-sections.d.ts +63 -0
  363. package/dist/features/shell/build-sections.js +207 -0
  364. package/dist/features/shell/entity-form.d.ts +109 -0
  365. package/dist/features/shell/entity-form.js +96 -0
  366. package/dist/features/shell/field-ui-meta.d.ts +115 -0
  367. package/dist/features/shell/field-ui-meta.js +324 -0
  368. package/dist/features/shell/index.d.ts +8 -0
  369. package/dist/features/shell/index.js +4 -0
  370. package/dist/features/status-history/components/StatusTimeline.d.ts +74 -0
  371. package/dist/features/status-history/components/StatusTimeline.js +46 -0
  372. package/dist/features/status-history/index.d.ts +11 -0
  373. package/dist/features/status-history/index.js +10 -0
  374. package/dist/features/store-extensions/components/ReviewDecisionModal.d.ts +27 -0
  375. package/dist/features/store-extensions/components/ReviewDecisionModal.js +82 -0
  376. package/dist/features/store-extensions/index.d.ts +12 -0
  377. package/dist/features/store-extensions/index.js +12 -0
  378. package/dist/features/store-extensions/schemas/admin-notification-form.d.ts +36 -0
  379. package/dist/features/store-extensions/schemas/admin-notification-form.js +114 -0
  380. package/dist/features/store-extensions/schemas/analytics-forms.d.ts +57 -0
  381. package/dist/features/store-extensions/schemas/analytics-forms.js +158 -0
  382. package/dist/features/store-extensions/schemas/custom-role-form.d.ts +85 -0
  383. package/dist/features/store-extensions/schemas/custom-role-form.js +118 -0
  384. package/dist/features/store-extensions/schemas/firestore.d.ts +21 -1
  385. package/dist/features/store-extensions/schemas/firestore.js +60 -0
  386. package/dist/features/store-extensions/schemas/google-config-form.d.ts +53 -0
  387. package/dist/features/store-extensions/schemas/google-config-form.js +105 -0
  388. package/dist/features/store-extensions/schemas/item-request-create-form.d.ts +28 -0
  389. package/dist/features/store-extensions/schemas/item-request-create-form.js +80 -0
  390. package/dist/features/store-extensions/schemas/listing-template-form.d.ts +78 -0
  391. package/dist/features/store-extensions/schemas/listing-template-form.js +87 -0
  392. package/dist/features/store-extensions/schemas/moderation-review-form.d.ts +49 -0
  393. package/dist/features/store-extensions/schemas/moderation-review-form.js +101 -0
  394. package/dist/features/store-extensions/schemas/payout-method-form.d.ts +153 -0
  395. package/dist/features/store-extensions/schemas/payout-method-form.js +155 -0
  396. package/dist/features/store-extensions/schemas/report-create-form.d.ts +25 -0
  397. package/dist/features/store-extensions/schemas/report-create-form.js +79 -0
  398. package/dist/features/store-extensions/schemas/report-review-form.d.ts +47 -0
  399. package/dist/features/store-extensions/schemas/report-review-form.js +111 -0
  400. package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +148 -0
  401. package/dist/features/store-extensions/schemas/shipping-config-form.js +104 -0
  402. package/dist/features/store-extensions/schemas/store-category-form.d.ts +54 -0
  403. package/dist/features/store-extensions/schemas/store-category-form.js +73 -0
  404. package/dist/features/stores/api/[storeSlug]/route.js +2 -25
  405. package/dist/features/stores/components/StoreAuctionsListing.js +15 -1
  406. package/dist/features/stores/components/StoreClassifiedsListing.js +12 -2
  407. package/dist/features/stores/components/StoreDetailLayoutView.js +24 -71
  408. package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -2
  409. package/dist/features/stores/components/StoreLiveItemsListing.js +12 -2
  410. package/dist/features/stores/components/StorePreOrdersListing.js +12 -1
  411. package/dist/features/stores/components/StoreProductsListing.js +11 -1
  412. package/dist/features/stores/repository/store.repository.js +6 -0
  413. package/dist/features/stores/schemas/index.d.ts +6 -6
  414. package/dist/features/support/schemas/index.d.ts +4 -4
  415. package/dist/features/tester/actions/checklist-item-actions.d.ts +4 -4
  416. package/dist/features/tester/seed-data/offers-tester-seed-data.js +119 -3
  417. package/dist/features/tester/seed-data/products-tester-seed-data.js +131 -1
  418. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +431 -1
  419. package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
  420. package/dist/index.d.ts +25 -12
  421. package/dist/index.js +26 -11
  422. package/dist/next/routing/route-map.d.ts +23 -3
  423. package/dist/next/routing/route-map.js +14 -2
  424. package/dist/providers/db-firebase/base.repository.d.ts +30 -0
  425. package/dist/providers/db-firebase/base.repository.js +50 -1
  426. package/dist/providers/db-firebase/index.d.ts +1 -1
  427. package/dist/providers/db-firebase/index.js +1 -1
  428. package/dist/providers/db-firebase/sieve.d.ts +25 -0
  429. package/dist/providers/db-firebase/sieve.js +52 -18
  430. package/dist/react/hooks/useUrlTable.js +10 -1
  431. package/dist/schemas/firestore-value.d.ts +8 -0
  432. package/dist/schemas/firestore-value.js +44 -0
  433. package/dist/schemas/index.d.ts +1 -1
  434. package/dist/schemas/index.js +1 -1
  435. package/dist/schemas/registry.d.ts +702 -69
  436. package/dist/schemas/registry.js +64 -1
  437. package/dist/seed/_helpers/category-forest.d.ts +2 -0
  438. package/dist/seed/_helpers/category-forest.js +309 -0
  439. package/dist/seed/_helpers/category-tree.d.ts +27 -0
  440. package/dist/seed/_helpers/category-tree.js +103 -0
  441. package/dist/seed/bids-seed-data.js +30 -0
  442. package/dist/seed/catalogue-seed-data.js +12 -12
  443. package/dist/seed/categories-seed-data.js +177 -162
  444. package/dist/seed/events-seed-data.js +61 -10
  445. package/dist/seed/homepage-sections-seed-data.js +5 -1
  446. package/dist/seed/offers-seed-data.js +244 -34
  447. package/dist/seed/orders-seed-data.js +336 -1
  448. package/dist/seed/products-art-seed-data.js +50 -12
  449. package/dist/seed/products-auctions-seed-data.js +138 -18
  450. package/dist/seed/products-classifieds-seed-data.js +80 -16
  451. package/dist/seed/products-digital-codes-seed-data.js +66 -18
  452. package/dist/seed/products-live-items-seed-data.js +64 -13
  453. package/dist/seed/products-preorders-seed-data.d.ts +0 -1
  454. package/dist/seed/products-preorders-seed-data.js +52 -13
  455. package/dist/seed/products-prize-draws-seed-data.js +63 -14
  456. package/dist/seed/products-standard-seed-data.js +99 -26
  457. package/dist/seed/products-stickers-seed-data.js +47 -12
  458. package/dist/seed/reviews-seed-data.js +6 -1
  459. package/dist/seed/site-settings-seed-data.d.ts +1 -38
  460. package/dist/seed/site-settings-seed-data.js +38 -76
  461. package/dist/seed/stores-seed-data.js +71 -1
  462. package/dist/seed/users-seed-data.js +15 -5
  463. package/dist/server-entry.d.ts +1 -2
  464. package/dist/server-entry.js +4 -3
  465. package/dist/server.d.ts +6 -3
  466. package/dist/server.js +13 -4
  467. package/dist/styles.css +78 -12
  468. package/dist/tailwind-utilities.css +1 -1
  469. package/dist/ui/components/Button.style.css +19 -4
  470. package/dist/ui/components/CollapsibleSection.d.ts +17 -1
  471. package/dist/ui/components/CollapsibleSection.js +6 -2
  472. package/dist/ui/components/FilterChipGroup.d.ts +25 -1
  473. package/dist/ui/components/FilterChipGroup.js +21 -4
  474. package/dist/ui/components/HandMode.style.css +47 -0
  475. package/dist/ui/components/Layout.d.ts +9 -2
  476. package/dist/ui/components/Layout.js +1 -1
  477. package/dist/ui/components/ListingLayout.js +8 -8
  478. package/dist/ui/components/ListingLayout.style.css +8 -7
  479. package/dist/ui/components/RecordDetailModal.d.ts +10 -1
  480. package/dist/ui/components/RecordDetailModal.js +2 -2
  481. package/dist/ui/components/StickyToolbar.d.ts +3 -1
  482. package/dist/ui/components/StickyToolbar.js +62 -20
  483. package/dist/ui/components/bottom-chrome-slot.d.ts +21 -0
  484. package/dist/ui/components/bottom-chrome-slot.js +29 -0
  485. package/dist/ui/components/index.style.css +3 -0
  486. package/dist/ui/forms/FormShell.d.ts +43 -13
  487. package/dist/ui/forms/FormShell.js +22 -11
  488. package/dist/ui/forms/index.d.ts +1 -1
  489. package/dist/ui/index.d.ts +1 -1
  490. package/package.json +2 -1
  491. package/scripts/node-esm-loader.mjs +65 -0
  492. package/scripts/seed-cli-loader.mjs +6 -49
  493. package/scripts/seed-cli.mjs +1 -1
@@ -2,6 +2,30 @@
2
2
  * WHY: Seeds purchase orders representing completed transactions across Beyblade marketplace buyers and sellers.
3
3
  * WHAT: Exports 50 orders across 3 buyer/store combos. All statuses distributed. Order IDs: order-{itemCount}-{YYYYMMDD}-{rand6}.
4
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
+ *
5
29
  * EXPORTS:
6
30
  * ordersSeedData — Array of 50 order documents with full transactional metadata
7
31
  *
@@ -384,8 +408,319 @@ function withOrderImages(order) {
384
408
  })),
385
409
  };
386
410
  }
411
+ /**
412
+ * One history entry, in the same delta shape `withHistory()` writes at runtime,
413
+ * so a seeded timeline and a real one render identically.
414
+ */
415
+ function entry(at, actorRole, trigger, changes, extra = {}) {
416
+ return { at, actorRole, trigger, changes, ...extra };
417
+ }
418
+ const BUYER_YUGI = "user-yugi-muto";
419
+ const BUYER_KAIBA = "user-seto-kaiba";
420
+ const BUYER_ADMIN = "user-admin-letitrip";
421
+ const ARENA = "store-beyblade-arena";
422
+ /**
423
+ * Six orders, one per `OrderSourceContext` path.
424
+ *
425
+ * The two auction fixtures are the point of the set: they are the pair
426
+ * `orderType` alone cannot tell apart.
427
+ */
428
+ const acquisitionOrders = [
429
+ // ── standard ──────────────────────────────────────────────────────────
430
+ {
431
+ id: "order-1-20260818-stdctx",
432
+ productId: "product-beyblade-burst-valkyrie",
433
+ productTitle: "Beyblade Burst B-01 Valkyrie",
434
+ userId: BUYER_YUGI,
435
+ userName: "Mock User 3",
436
+ userEmail: "rehan.sheikh@gmail.com",
437
+ storeId: ARENA,
438
+ quantity: 1,
439
+ unitPrice: 999,
440
+ totalPrice: 999,
441
+ currency: "INR",
442
+ status: "delivered",
443
+ paymentStatus: "paid",
444
+ paymentMethod: "cash",
445
+ orderType: "standard",
446
+ shippingAddress: "addr-yugi-home",
447
+ trackingNumber: "LIR-TRK-88213004",
448
+ shippingCarrier: "Delhivery",
449
+ orderDate: daysAgo(12),
450
+ shippingDate: daysAgo(9),
451
+ deliveryDate: daysAgo(6),
452
+ createdAt: daysAgo(12),
453
+ updatedAt: daysAgo(6),
454
+ sourceContext: { path: "standard", listPrice: 999 },
455
+ statusHistory: [
456
+ entry(daysAgo(12), "buyer", "createCheckoutOrder", {
457
+ status: { from: null, to: "pending" },
458
+ }, { actorUid: BUYER_YUGI }),
459
+ entry(daysAgo(11), "seller", "updateOrderStatus", {
460
+ status: { from: "pending", to: "confirmed" },
461
+ paymentStatus: { from: "pending", to: "paid" },
462
+ }, { actorUid: ARENA }),
463
+ entry(daysAgo(9), "seller", "customShipOrder", {
464
+ status: { from: "confirmed", to: "shipped" },
465
+ trackingNumber: { from: null, to: "LIR-TRK-88213004" },
466
+ }, { actorUid: ARENA }),
467
+ entry(daysAgo(6), "system", "deliveryConfirmation", {
468
+ status: { from: "shipped", to: "delivered" },
469
+ }),
470
+ ],
471
+ },
472
+ // ── auction-won — settled at close, against a real ladder ─────────────
473
+ {
474
+ id: "order-1-20260822-aucwon",
475
+ productId: "auction-beyblade-metal-diablo-nemesis",
476
+ productTitle: "Metal Fight Beyblade BB-122 Diablo Nemesis (Ended — Sold)",
477
+ userId: BUYER_KAIBA,
478
+ userName: "Mock User 2",
479
+ userEmail: "vivaan.kapoor@gmail.com",
480
+ storeId: ARENA,
481
+ quantity: 1,
482
+ unitPrice: 6200,
483
+ totalPrice: 6200,
484
+ currency: "INR",
485
+ status: "processing",
486
+ paymentStatus: "paid",
487
+ paymentMethod: "upi_manual",
488
+ orderType: "auction",
489
+ shippingAddress: "addr-kaiba-mansion",
490
+ orderDate: daysAgo(2),
491
+ createdAt: daysAgo(2),
492
+ updatedAt: daysAgo(1),
493
+ sourceContext: {
494
+ path: "auction-won",
495
+ auctionId: "auction-beyblade-metal-diablo-nemesis",
496
+ bidId: "bid-beyblade-metal-diablo-nemesis-rohit-collector-20260601-005",
497
+ winningBidAmount: 6200,
498
+ bidCount: 6,
499
+ startingBid: 3499,
500
+ // No reserve on this auction, so the reserve cannot fail to be met.
501
+ reserveMet: true,
502
+ auctionEndedAt: daysAgo(2),
503
+ runnerUpAmount: 5428,
504
+ },
505
+ statusHistory: [
506
+ entry(daysAgo(2), "system", "auctionSettlement", {
507
+ status: { from: null, to: "pending" },
508
+ }, { reason: "Won at auction close" }),
509
+ entry(daysAgo(1), "admin", "adminVerifyPayment", {
510
+ status: { from: "pending", to: "processing" },
511
+ paymentStatus: { from: "pending", to: "paid" },
512
+ paymentReviewOutcome: { from: null, to: "verified" },
513
+ }, { actorUid: BUYER_ADMIN }),
514
+ ],
515
+ },
516
+ // ── auction-buy-now — a buyout ENDED a live auction ───────────────────
517
+ {
518
+ // Referenced back by the buyout bid's `orderId`, so the link resolves in
519
+ // both directions.
520
+ id: "order-1-20260820-buyout",
521
+ productId: "auction-beyblade-burst-spriggan-requiem-bought-out",
522
+ productTitle: "Beyblade Burst B-128 Spriggan Requiem (Ended — Bought Out)",
523
+ userId: BUYER_KAIBA,
524
+ userName: "Mock User 2",
525
+ userEmail: "vivaan.kapoor@gmail.com",
526
+ storeId: ARENA,
527
+ quantity: 1,
528
+ unitPrice: 4999,
529
+ totalPrice: 4999,
530
+ currency: "INR",
531
+ status: "shipped",
532
+ paymentStatus: "paid",
533
+ paymentMethod: "cash",
534
+ orderType: "auction",
535
+ // What separates this from the win above. Both are orderType "auction";
536
+ // only a buyout gets the 24h admin-review window.
537
+ isBuyout: true,
538
+ shippingAddress: "addr-kaiba-mansion",
539
+ trackingNumber: "LIR-TRK-77410992",
540
+ shippingCarrier: "Blue Dart",
541
+ orderDate: daysAgo(4),
542
+ shippingDate: daysAgo(2),
543
+ createdAt: daysAgo(4),
544
+ updatedAt: daysAgo(2),
545
+ sourceContext: {
546
+ path: "auction-buy-now",
547
+ auctionId: "auction-beyblade-burst-spriggan-requiem-bought-out",
548
+ bidId: "bid-beyblade-burst-spriggan-requiem-seto-kaiba-20260820-buyout",
549
+ buyNowPrice: 4999,
550
+ listPrice: 5499,
551
+ // The highest NON-buyout bid the buyout beat.
552
+ standingBidAtBuyout: 3100,
553
+ // Three, not zero. The old type asserted "zero bids by definition"
554
+ // because Buy Now used to be gated on `!bidsHaveStarted`; that gate was
555
+ // removed, and recording 0 would bake a falsehood into an audit record.
556
+ bidCount: 3,
557
+ boughtAt: daysAgo(4),
558
+ checkoutDeadline: daysAgo(4),
559
+ },
560
+ statusHistory: [
561
+ entry(daysAgo(4), "buyer", "claimAuctionForCheckout", {
562
+ status: { from: null, to: "pending" },
563
+ }, { actorUid: BUYER_KAIBA, reason: "Buy Now claim won" }),
564
+ entry(daysAgo(3), "seller", "updateOrderStatus", {
565
+ status: { from: "pending", to: "confirmed" },
566
+ paymentStatus: { from: "pending", to: "paid" },
567
+ }, { actorUid: ARENA }),
568
+ entry(daysAgo(2), "seller", "customShipOrder", {
569
+ status: { from: "confirmed", to: "shipped" },
570
+ trackingNumber: { from: null, to: "LIR-TRK-77410992" },
571
+ }, { actorUid: ARENA }),
572
+ ],
573
+ },
574
+ // ── offer-accepted — the end of a real negotiation ────────────────────
575
+ {
576
+ id: "order-1-20260813-offerctx",
577
+ productId: "product-beyblade-x-knife-shinobi",
578
+ productTitle: "Beyblade X Knife Shinobi",
579
+ userId: BUYER_ADMIN,
580
+ userName: "Mock User 1",
581
+ userEmail: "admin@letitrip.in",
582
+ storeId: ARENA,
583
+ quantity: 1,
584
+ unitPrice: 800,
585
+ totalPrice: 800,
586
+ currency: "INR",
587
+ status: "delivered",
588
+ paymentStatus: "paid",
589
+ paymentMethod: "cash",
590
+ orderType: "offer",
591
+ // The offer this order settled — its own status is `paid`, and this is the
592
+ // order id it points at.
593
+ offerId: "offer-admin-x-knife-shinobi-paid",
594
+ shippingAddress: "addr-letitrip-hq",
595
+ orderDate: daysAgo(11),
596
+ shippingDate: daysAgo(9),
597
+ deliveryDate: daysAgo(7),
598
+ createdAt: daysAgo(11),
599
+ updatedAt: daysAgo(7),
600
+ sourceContext: {
601
+ path: "offer-accepted",
602
+ offerId: "offer-admin-x-knife-shinobi-paid",
603
+ offeredAmount: 800,
604
+ listPriceAtOffer: 949,
605
+ // Accepted outright — no counter rounds. Compare the Metal Storm
606
+ // Pegasus chain in offers-seed-data.ts, which reaches round 3.
607
+ counterRounds: 1,
608
+ acceptedBy: ARENA,
609
+ acceptedAt: daysAgo(12),
610
+ checkoutDeadline: daysAgo(10),
611
+ },
612
+ statusHistory: [
613
+ entry(daysAgo(11), "buyer", "createCheckoutOrder", {
614
+ status: { from: null, to: "pending" },
615
+ }, { actorUid: BUYER_ADMIN }),
616
+ entry(daysAgo(10), "seller", "updateOrderStatus", {
617
+ status: { from: "pending", to: "confirmed" },
618
+ paymentStatus: { from: "pending", to: "paid" },
619
+ }, { actorUid: ARENA }),
620
+ entry(daysAgo(9), "seller", "customShipOrder", {
621
+ status: { from: "confirmed", to: "shipped" },
622
+ trackingNumber: { from: null, to: "LIR-TRK-30028841" },
623
+ }, { actorUid: ARENA }),
624
+ entry(daysAgo(7), "system", "deliveryConfirmation", {
625
+ status: { from: "shipped", to: "delivered" },
626
+ }),
627
+ // A PARTIAL refund. It changes no tracked field, so it can only reach the
628
+ // timeline as an explicit contribution — diffing `refunds[]` would render
629
+ // as "an array of 0 became an array of 1", which is true and useless.
630
+ entry(daysAgo(6), "admin", "postRefundEvent", {
631
+ refund: {
632
+ from: null,
633
+ to: { refundId: "refund-x-knife-shinobi-1", type: "partial", amount: 120, reason: "Minor box damage in transit" },
634
+ },
635
+ }, { actorUid: BUYER_ADMIN, reason: "Minor box damage in transit" }),
636
+ ],
637
+ trackingNumber: "LIR-TRK-30028841",
638
+ shippingCarrier: "Delhivery",
639
+ },
640
+ // ── pre-order — deposit taken, balance outstanding ────────────────────
641
+ {
642
+ id: "order-1-20260819-preordr",
643
+ productId: "preorder-beyblade-x-bx-08-wave",
644
+ productTitle: "Beyblade X BX-08 Wave (Pre-Order)",
645
+ userId: BUYER_YUGI,
646
+ userName: "Mock User 3",
647
+ userEmail: "rehan.sheikh@gmail.com",
648
+ storeId: ARENA,
649
+ quantity: 1,
650
+ unitPrice: 799,
651
+ totalPrice: 799,
652
+ currency: "INR",
653
+ status: "confirmed",
654
+ paymentStatus: "pending",
655
+ paymentMethod: "cash",
656
+ orderType: "preorder",
657
+ // 25% of ₹799 — matches `preOrderDepositPercent` on the product.
658
+ depositAmount: 199.75,
659
+ shippingAddress: "addr-yugi-home",
660
+ orderDate: daysAgo(5),
661
+ createdAt: daysAgo(5),
662
+ updatedAt: daysAgo(5),
663
+ sourceContext: {
664
+ path: "pre-order",
665
+ depositAmount: 199.75,
666
+ balanceDue: 599.25,
667
+ },
668
+ statusHistory: [
669
+ entry(daysAgo(5), "buyer", "createCheckoutOrder", {
670
+ status: { from: null, to: "pending" },
671
+ }, { actorUid: BUYER_YUGI }),
672
+ entry(daysAgo(5), "seller", "updateOrderStatus", {
673
+ status: { from: "pending", to: "confirmed" },
674
+ }, { actorUid: ARENA, note: "Deposit received — balance due on dispatch." }),
675
+ ],
676
+ },
677
+ // ── prize-draw — several entries bought in one order ──────────────────
678
+ {
679
+ id: "order-1-20260821-prizedr",
680
+ productId: "prizedraw-beyblade-mystery-box",
681
+ productTitle: "Beyblade Mystery Box — Prize Draw",
682
+ userId: BUYER_KAIBA,
683
+ userName: "Mock User 2",
684
+ userEmail: "vivaan.kapoor@gmail.com",
685
+ storeId: ARENA,
686
+ quantity: 3,
687
+ unitPrice: 99,
688
+ totalPrice: 297,
689
+ currency: "INR",
690
+ status: "confirmed",
691
+ paymentStatus: "paid",
692
+ paymentMethod: "cash",
693
+ orderType: "prize-draw",
694
+ shippingAddress: "addr-kaiba-mansion",
695
+ orderDate: daysAgo(3),
696
+ createdAt: daysAgo(3),
697
+ updatedAt: daysAgo(3),
698
+ sourceContext: {
699
+ path: "prize-draw",
700
+ prizeDrawProductId: "prizedraw-beyblade-mystery-box",
701
+ pricePerEntry: 99,
702
+ entryCount: 3,
703
+ // `prizeDrawMode` is reveal-vs-lottery, a different axis. This records
704
+ // the reveal TIMING: no reveal window means it reveals on sell-out.
705
+ revealMode: "instant",
706
+ },
707
+ statusHistory: [
708
+ entry(daysAgo(3), "buyer", "createCheckoutOrder", {
709
+ status: { from: null, to: "pending" },
710
+ }, { actorUid: BUYER_KAIBA }),
711
+ entry(daysAgo(3), "seller", "updateOrderStatus", {
712
+ status: { from: "pending", to: "confirmed" },
713
+ paymentStatus: { from: "pending", to: "paid" },
714
+ }, { actorUid: ARENA }),
715
+ ],
716
+ },
717
+ ];
387
718
  export const ordersSeedData = [
388
719
  cashOrderPendingProof,
389
720
  cashOrderVerified,
390
- ...[..._rawOrdersSeedData, ...expandedOrders].slice(0, 48),
721
+ ...acquisitionOrders,
722
+ // The slice keeps the fixture count stable as fixtures are added above it —
723
+ // it used to be 48 for the two manual-payment orders, and now also absorbs
724
+ // the six acquisition-path orders.
725
+ ...[..._rawOrdersSeedData, ...expandedOrders].slice(0, 42),
391
726
  ].map(withOrderImages);
@@ -4,11 +4,11 @@
4
4
  * stub with the note "out of scope for the minimal Beyblade-focused demo catalog,"
5
5
  * but unlike "live," art prints fit the Beyblade theme naturally as fan-art (see
6
6
  * CLAUDE.md seed-data blandness sweep, 2026-08-20 session).
7
- * WHAT: Exports 5 Beyblade fan-art print listings on Beyblade Arena, varying size,
7
+ * WHAT: Exports 6 Beyblade fan-art print listings on Beyblade Arena, varying size,
8
8
  * material, finish, and edition size (including one open-edition, no editionSize).
9
9
  *
10
10
  * EXPORTS:
11
- * productsArtSeedData — Array of 5 Partial<ProductDocument> with listingType:"art"
11
+ * productsArtSeedData — Array of 6 Partial<ProductDocument> with listingType:"art"
12
12
  *
13
13
  * @tag domain:products,art
14
14
  * @tag layer:seed
@@ -26,8 +26,8 @@ export const productsArtSeedData = [
26
26
  slug: "art-dranzer-phoenix-poster",
27
27
  title: "Dranzer Phoenix Rising — Fan Art Poster",
28
28
  description: "A vibrant fan-art poster of Dranzer erupting in phoenix flame, hand-illustrated and giclée-printed on matte photo paper.",
29
- categorySlugs: ["category-spinning-tops"],
30
- categoryNames: ["Spinning Tops"],
29
+ categorySlugs: ["category-stadiums-standard", "category-gear-stadiums", "category-battle-gear", "category-spinning-tops"],
30
+ categoryNames: ["Standard Stadiums", "Stadiums", "Battle Gear", "Spinning Tops"],
31
31
  brandSlug: "brand-beyblade",
32
32
  brand: "Beyblade",
33
33
  price: 599,
@@ -61,8 +61,8 @@ export const productsArtSeedData = [
61
61
  slug: "art-valkyrie-holographic-print",
62
62
  title: "Beyblade Burst Valkyrie — Holographic Art Print (Limited /100)",
63
63
  description: "A limited-edition holographic art print of Valkyrie mid-battle, numbered out of 100. Ships in a rigid mailer to prevent bending.",
64
- categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
65
- categoryNames: ["Beyblade Burst", "Spinning Tops"],
64
+ categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
65
+ categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
66
66
  brandSlug: "brand-beyblade",
67
67
  brand: "Beyblade",
68
68
  price: 1299,
@@ -96,8 +96,8 @@ export const productsArtSeedData = [
96
96
  slug: "art-beyblade-x-lineup-canvas",
97
97
  title: "Beyblade X Full Lineup — Canvas Print",
98
98
  description: "A gallery-style canvas print featuring the full current Beyblade X roster in battle formation. Stretched and ready to hang.",
99
- categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
100
- categoryNames: ["Beyblade X", "Spinning Tops"],
99
+ categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
100
+ categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
101
101
  brandSlug: "brand-takara-tomy",
102
102
  brand: "Takara-Tomy",
103
103
  price: 2499,
@@ -134,8 +134,8 @@ export const productsArtSeedData = [
134
134
  slug: "art-metal-fight-vintage-poster",
135
135
  title: "Metal Fight Beyblade — Vintage-Style Poster (Open Edition)",
136
136
  description: "A retro-styled poster celebrating the Metal Fight era, printed on demand — open edition, no print run limit.",
137
- categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
138
- categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
137
+ categorySlugs: ["category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
138
+ categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
139
139
  brandSlug: "brand-takara-tomy",
140
140
  brand: "Takara-Tomy",
141
141
  price: 449,
@@ -166,8 +166,8 @@ export const productsArtSeedData = [
166
166
  slug: "art-original-series-anniversary-print",
167
167
  title: "Original Series 25th Anniversary — Glossy Art Print",
168
168
  description: "A commemorative glossy print marking 25 years of the original Beyblade series, featuring Dragoon, Dranzer, Driger, and Draciel together.",
169
- categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
170
- categoryNames: ["Beyblade Original", "Spinning Tops"],
169
+ categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
170
+ categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
171
171
  brandSlug: "brand-beyblade",
172
172
  brand: "Beyblade",
173
173
  price: 899,
@@ -196,4 +196,42 @@ export const productsArtSeedData = [
196
196
  updatedAt: new Date("2026-08-19"),
197
197
  searchTokens: buildSearchTokens("Original Series 25th Anniversary — Glossy Art Print", "Commemorative glossy print marking 25 years of the original Beyblade series.", "Beyblade", "brand-beyblade", ["Beyblade Original", "Spinning Tops"], ["fan-art", "vintage-collectible", "limited-run"]),
198
198
  },
199
+ {
200
+ // Sold-out fixture. The canonical unavailable shape for a stock-only type:
201
+ // isSold + both quantities zeroed, and status STILL published — an
202
+ // archived row is hidden by the status filter before the availability
203
+ // predicate ever runs, so it would prove nothing.
204
+ id: "art-dragoon-galaxy-turbo-print-sold-out",
205
+ slug: "art-dragoon-galaxy-turbo-print-sold-out",
206
+ title: "Dragoon Galaxy Turbo — Fan Art Print (Sold Out)",
207
+ description: "A sold-out run of the Dragoon Galaxy Turbo fan-art print. Every copy of this edition has shipped.",
208
+ categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
209
+ categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
210
+ brandSlug: "brand-beyblade",
211
+ brand: "Beyblade",
212
+ price: 749,
213
+ currency: "INR",
214
+ stockQuantity: 0,
215
+ availableQuantity: 0,
216
+ isSold: true,
217
+ mainImage: seedExtMedia("https://picsum.photos/seed/art-image-dragoon-galaxy-sold-out-1-20260824/900/900"),
218
+ images: [
219
+ seedExtMedia("https://picsum.photos/seed/art-image-dragoon-galaxy-sold-out-1-20260824/900/900"),
220
+ ],
221
+ status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
222
+ condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
223
+ listingType: "art",
224
+ storeId: "store-beyblade-arena",
225
+ storeName: "Beyblade Arena",
226
+ printMeta: { size: "18x24 in", material: "Archival cotton rag", finish: "Matte", editionSize: 40 },
227
+ customFields: [],
228
+ customSections: [],
229
+ featured: false,
230
+ isPromoted: false,
231
+ isOnSale: false,
232
+ tags: ["fan-art", "poster", "sold-out"],
233
+ createdAt: new Date("2026-08-24"),
234
+ updatedAt: new Date("2026-08-24"),
235
+ searchTokens: buildSearchTokens("Dragoon Galaxy Turbo — Fan Art Print (Sold Out)", "A sold-out run of the Dragoon Galaxy Turbo fan-art print.", "Beyblade", "brand-beyblade", ["Beyblade Original", "Spinning Tops"], ["fan-art", "poster", "sold-out"]),
236
+ },
199
237
  ];