@mohasinac/appkit 2.3.2 → 2.4.1

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 (677) hide show
  1. package/dist/client.d.ts +48 -12
  2. package/dist/client.js +25 -6
  3. package/dist/constants/api-endpoints.d.ts +380 -22
  4. package/dist/constants/api-endpoints.js +66 -13
  5. package/dist/constants/index.d.ts +1 -1
  6. package/dist/constants/index.js +1 -1
  7. package/dist/core/hooks/useSyncManager.d.ts +1 -0
  8. package/dist/core/hooks/useSyncManager.js +83 -0
  9. package/dist/core/integration-keys.d.ts +4 -0
  10. package/dist/core/integration-keys.js +8 -0
  11. package/dist/features/about/components/FAQPageView.js +9 -11
  12. package/dist/features/about/components/PolicyPageView.js +32 -11
  13. package/dist/features/about/components/PublicProfileView.js +77 -11
  14. package/dist/features/account/components/AddressesIndexListing.js +63 -38
  15. package/dist/features/account/components/UserOffersPanel.d.ts +8 -0
  16. package/dist/features/account/components/UserOffersPanel.js +81 -0
  17. package/dist/features/account/components/UserSettingsView.d.ts +2 -1
  18. package/dist/features/account/components/UserSettingsView.js +2 -1
  19. package/dist/features/account/components/UserSidebar.d.ts +6 -1
  20. package/dist/features/account/components/UserSidebar.js +48 -42
  21. package/dist/features/account/components/index.d.ts +2 -0
  22. package/dist/features/account/components/index.js +1 -0
  23. package/dist/features/admin/actions/admin-actions.d.ts +1 -1
  24. package/dist/features/admin/actions/admin-actions.js +13 -3
  25. package/dist/features/admin/components/AdminAdEditorView.js +6 -7
  26. package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +4 -0
  27. package/dist/features/admin/components/AdminAllEventEntriesView.js +102 -0
  28. package/dist/features/admin/components/AdminBidsView.js +94 -8
  29. package/dist/features/admin/components/AdminBlogEditorView.d.ts +7 -0
  30. package/dist/features/admin/components/AdminBlogEditorView.js +162 -0
  31. package/dist/features/admin/components/AdminBlogView.d.ts +4 -1
  32. package/dist/features/admin/components/AdminBlogView.js +61 -31
  33. package/dist/features/admin/components/AdminBrandEditorView.d.ts +7 -0
  34. package/dist/features/admin/components/AdminBrandEditorView.js +104 -0
  35. package/dist/features/admin/components/AdminBrandsView.d.ts +4 -0
  36. package/dist/features/admin/components/AdminBrandsView.js +76 -0
  37. package/dist/features/admin/components/AdminCarouselEditorView.d.ts +8 -0
  38. package/dist/features/admin/components/AdminCarouselEditorView.js +204 -0
  39. package/dist/features/admin/components/AdminCarouselView.js +153 -34
  40. package/dist/features/admin/components/AdminCartsView.d.ts +4 -0
  41. package/dist/features/admin/components/AdminCartsView.js +82 -0
  42. package/dist/features/admin/components/AdminCategoriesView.d.ts +4 -1
  43. package/dist/features/admin/components/AdminCategoriesView.js +66 -48
  44. package/dist/features/admin/components/AdminCategoryEditorView.d.ts +7 -0
  45. package/dist/features/admin/components/AdminCategoryEditorView.js +115 -0
  46. package/dist/features/admin/components/AdminContactEditorView.d.ts +11 -0
  47. package/dist/features/admin/components/AdminContactEditorView.js +32 -0
  48. package/dist/features/admin/components/AdminContactView.js +111 -20
  49. package/dist/features/admin/components/AdminCouponEditorView.d.ts +7 -0
  50. package/dist/features/admin/components/AdminCouponEditorView.js +179 -0
  51. package/dist/features/admin/components/AdminCouponsView.d.ts +4 -1
  52. package/dist/features/admin/components/AdminCouponsView.js +57 -9
  53. package/dist/features/admin/components/AdminDashboardView.js +3 -0
  54. package/dist/features/admin/components/AdminFaqEditorView.d.ts +7 -0
  55. package/dist/features/admin/components/AdminFaqEditorView.js +128 -0
  56. package/dist/features/admin/components/AdminFaqsView.d.ts +4 -1
  57. package/dist/features/admin/components/AdminFaqsView.js +55 -23
  58. package/dist/features/admin/components/AdminFeatureFlagsView.js +33 -24
  59. package/dist/features/admin/components/AdminListingScaffold.d.ts +7 -1
  60. package/dist/features/admin/components/AdminListingScaffold.js +2 -2
  61. package/dist/features/admin/components/AdminMediaView.js +18 -8
  62. package/dist/features/admin/components/AdminNavEditorView.d.ts +20 -0
  63. package/dist/features/admin/components/AdminNavEditorView.js +84 -0
  64. package/dist/features/admin/components/AdminNavigationView.d.ts +1 -7
  65. package/dist/features/admin/components/AdminNavigationView.js +84 -72
  66. package/dist/features/admin/components/AdminNewsletterView.js +102 -20
  67. package/dist/features/admin/components/AdminNotificationsView.d.ts +4 -0
  68. package/dist/features/admin/components/AdminNotificationsView.js +119 -0
  69. package/dist/features/admin/components/AdminOrderEditorView.d.ts +8 -0
  70. package/dist/features/admin/components/AdminOrderEditorView.js +74 -0
  71. package/dist/features/admin/components/AdminOrdersView.js +64 -8
  72. package/dist/features/admin/components/AdminPayoutsView.js +122 -13
  73. package/dist/features/admin/components/AdminProductEditorView.d.ts +7 -0
  74. package/dist/features/admin/components/AdminProductEditorView.js +143 -0
  75. package/dist/features/admin/components/AdminProductsView.d.ts +4 -1
  76. package/dist/features/admin/components/AdminProductsView.js +119 -30
  77. package/dist/features/admin/components/AdminReturnRequestsView.d.ts +5 -0
  78. package/dist/features/admin/components/AdminReturnRequestsView.js +101 -0
  79. package/dist/features/admin/components/AdminReviewsView.js +138 -28
  80. package/dist/features/admin/components/AdminSectionsView.js +361 -472
  81. package/dist/features/admin/components/AdminSessionsView.d.ts +4 -0
  82. package/dist/features/admin/components/AdminSessionsView.js +119 -0
  83. package/dist/features/admin/components/AdminSidebar.d.ts +18 -3
  84. package/dist/features/admin/components/AdminSidebar.js +51 -4
  85. package/dist/features/admin/components/AdminSiteSettingsView.d.ts +7 -0
  86. package/dist/features/admin/components/AdminSiteSettingsView.js +319 -0
  87. package/dist/features/admin/components/AdminStoreAddressesView.d.ts +5 -0
  88. package/dist/features/admin/components/AdminStoreAddressesView.js +52 -0
  89. package/dist/features/admin/components/AdminStoreEditorView.d.ts +9 -0
  90. package/dist/features/admin/components/AdminStoreEditorView.js +55 -0
  91. package/dist/features/admin/components/AdminStoresView.js +62 -20
  92. package/dist/features/admin/components/AdminUserEditorView.d.ts +10 -0
  93. package/dist/features/admin/components/AdminUserEditorView.js +72 -0
  94. package/dist/features/admin/components/AdminUsersView.js +70 -36
  95. package/dist/features/admin/components/AdminWishlistsView.d.ts +4 -0
  96. package/dist/features/admin/components/AdminWishlistsView.js +53 -0
  97. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +5 -0
  98. package/dist/features/admin/components/BrandQuickCreateForm.js +36 -0
  99. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +5 -0
  100. package/dist/features/admin/components/CategoryQuickCreateForm.js +35 -0
  101. package/dist/features/admin/components/DataTable.d.ts +4 -2
  102. package/dist/features/admin/components/DataTable.js +26 -6
  103. package/dist/features/admin/components/index.d.ts +47 -1
  104. package/dist/features/admin/components/index.js +23 -0
  105. package/dist/features/admin/components/sections/adminSectionsBuildParse.d.ts +48 -0
  106. package/dist/features/admin/components/sections/adminSectionsBuildParse.js +653 -0
  107. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +298 -0
  108. package/dist/features/admin/components/sections/adminSectionsTypes.js +278 -0
  109. package/dist/features/admin/schemas/firestore.d.ts +26 -0
  110. package/dist/features/admin/schemas/firestore.js +1 -0
  111. package/dist/features/admin/types/product.types.d.ts +2 -3
  112. package/dist/features/auctions/actions/bid-actions.js +6 -2
  113. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +3 -1
  114. package/dist/features/auctions/components/AuctionDetailPageView.js +38 -12
  115. package/dist/features/auctions/components/AuctionFilters.d.ts +3 -1
  116. package/dist/features/auctions/components/AuctionFilters.js +6 -2
  117. package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +7 -0
  118. package/dist/features/auctions/components/CollapsibleBidHistory.js +8 -0
  119. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +4 -0
  120. package/dist/features/auctions/components/MarketplaceAuctionCard.js +43 -9
  121. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +1 -0
  122. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +18 -0
  123. package/dist/features/auctions/components/PlaceBidFormClient.js +33 -0
  124. package/dist/features/auctions/hooks/useAuctions.d.ts +1 -0
  125. package/dist/features/auctions/hooks/useAuctions.js +1 -0
  126. package/dist/features/auctions/schemas/index.d.ts +22 -12
  127. package/dist/features/auth/actions/profile-actions.d.ts +5 -3
  128. package/dist/features/auth/actions/profile-actions.js +30 -11
  129. package/dist/features/auth/auth-helpers.js +1 -0
  130. package/dist/features/auth/components/LoginForm.js +2 -1
  131. package/dist/features/auth/hooks/useAuth.js +16 -4
  132. package/dist/features/auth/permissions/constants.d.ts +63 -0
  133. package/dist/features/auth/permissions/constants.js +323 -0
  134. package/dist/features/auth/schemas/firestore.d.ts +20 -0
  135. package/dist/features/auth/schemas/index.d.ts +4 -4
  136. package/dist/features/auth/schemas/index.js +3 -2
  137. package/dist/features/auth/types/index.d.ts +1 -1
  138. package/dist/features/before-after/schemas/index.d.ts +2 -2
  139. package/dist/features/blog/actions/blog-actions.d.ts +15 -15
  140. package/dist/features/blog/components/BlogFilters.js +1 -1
  141. package/dist/features/blog/components/BlogIndexListing.js +57 -5
  142. package/dist/features/blog/components/BlogIndexPageView.js +14 -2
  143. package/dist/features/blog/components/BlogPostForm.js +6 -2
  144. package/dist/features/blog/components/BlogPostView.js +2 -1
  145. package/dist/features/blog/hooks/useBlog.d.ts +2 -0
  146. package/dist/features/blog/hooks/useBlog.js +2 -0
  147. package/dist/features/blog/schemas/index.d.ts +46 -12
  148. package/dist/features/brands/actions/brand-actions.d.ts +2 -0
  149. package/dist/features/brands/actions/brand-actions.js +5 -0
  150. package/dist/features/brands/index.d.ts +3 -0
  151. package/dist/features/brands/index.js +3 -0
  152. package/dist/features/brands/repository/brands.repository.d.ts +13 -0
  153. package/dist/features/brands/repository/brands.repository.js +60 -0
  154. package/dist/features/brands/schemas/index.d.ts +33 -0
  155. package/dist/features/brands/schemas/index.js +15 -0
  156. package/dist/features/brands/server.d.ts +7 -0
  157. package/dist/features/brands/server.js +7 -0
  158. package/dist/features/cart/actions/cart-actions.js +2 -2
  159. package/dist/features/cart/components/CartDrawer.d.ts +5 -1
  160. package/dist/features/cart/components/CartDrawer.js +3 -3
  161. package/dist/features/cart/hooks/useCartCount.d.ts +3 -2
  162. package/dist/features/cart/hooks/useCartCount.js +4 -2
  163. package/dist/features/cart/hooks/useGuestCartMerge.js +1 -1
  164. package/dist/features/cart/index.d.ts +1 -0
  165. package/dist/features/cart/index.js +1 -0
  166. package/dist/features/cart/repository/cart.repository.d.ts +5 -1
  167. package/dist/features/cart/repository/cart.repository.js +36 -5
  168. package/dist/features/cart/schemas/firestore.d.ts +25 -6
  169. package/dist/features/cart/schemas/firestore.js +2 -2
  170. package/dist/features/cart/schemas/index.d.ts +9 -9
  171. package/dist/features/cart/schemas/index.js +1 -1
  172. package/dist/features/cart/types/index.d.ts +1 -1
  173. package/dist/features/cart/utils/pending-ops.d.ts +33 -0
  174. package/dist/features/cart/utils/pending-ops.js +102 -0
  175. package/dist/features/categories/components/BrandDetailPageView.d.ts +4 -0
  176. package/dist/features/categories/components/BrandDetailPageView.js +54 -0
  177. package/dist/features/categories/components/BrandDetailTabs.d.ts +10 -0
  178. package/dist/features/categories/components/BrandDetailTabs.js +22 -0
  179. package/dist/features/categories/components/CategoriesIndexListing.d.ts +3 -1
  180. package/dist/features/categories/components/CategoriesIndexListing.js +83 -7
  181. package/dist/features/categories/components/CategoryDetailPageView.js +42 -21
  182. package/dist/features/categories/components/CategoryDetailTabs.d.ts +7 -1
  183. package/dist/features/categories/components/CategoryDetailTabs.js +12 -7
  184. package/dist/features/categories/components/CategoryFilters.js +1 -1
  185. package/dist/features/categories/components/CategoryForm.js +10 -4
  186. package/dist/features/categories/components/CategoryProductsListing.d.ts +4 -1
  187. package/dist/features/categories/components/CategoryProductsListing.js +34 -5
  188. package/dist/features/categories/components/ConcernCard.js +1 -1
  189. package/dist/features/categories/hooks/useCategories.js +2 -0
  190. package/dist/features/categories/repository/categories.repository.js +2 -3
  191. package/dist/features/categories/schemas/firestore.d.ts +23 -2
  192. package/dist/features/categories/schemas/firestore.js +8 -0
  193. package/dist/features/categories/schemas/index.d.ts +8 -8
  194. package/dist/features/categories/types/index.d.ts +1 -0
  195. package/dist/features/collections/schemas/index.d.ts +2 -2
  196. package/dist/features/events/components/AdminEventEditorView.js +2 -2
  197. package/dist/features/events/components/AdminEventsView.d.ts +4 -1
  198. package/dist/features/events/components/AdminEventsView.js +64 -38
  199. package/dist/features/events/components/EventCard.js +1 -1
  200. package/dist/features/events/components/EventFilters.js +1 -1
  201. package/dist/features/events/components/EventPollWidget.d.ts +12 -0
  202. package/dist/features/events/components/EventPollWidget.js +62 -0
  203. package/dist/features/events/components/EventsIndexListing.js +57 -5
  204. package/dist/features/events/components/EventsListPageView.js +1 -1
  205. package/dist/features/events/components/index.d.ts +2 -0
  206. package/dist/features/events/components/index.js +1 -0
  207. package/dist/features/events/hooks/useEvents.d.ts +1 -0
  208. package/dist/features/events/hooks/useEvents.js +1 -0
  209. package/dist/features/events/repository/events.repository.js +3 -0
  210. package/dist/features/events/schemas/firestore.d.ts +1 -0
  211. package/dist/features/events/schemas/index.d.ts +44 -0
  212. package/dist/features/events/types/index.d.ts +2 -0
  213. package/dist/features/faq/actions/faq-actions.d.ts +16 -16
  214. package/dist/features/faq/hooks/useFaqList.js +1 -1
  215. package/dist/features/faq/schemas/firestore.d.ts +2 -2
  216. package/dist/features/faq/schemas/firestore.js +2 -1
  217. package/dist/features/faq/schemas/index.d.ts +4 -4
  218. package/dist/features/filters/FilterFacetSection.d.ts +1 -0
  219. package/dist/features/filters/FilterFacetSection.js +13 -1
  220. package/dist/features/filters/SwitchFilter.js +1 -1
  221. package/dist/features/grouped/schemas/firestore.d.ts +32 -0
  222. package/dist/features/grouped/schemas/firestore.js +19 -0
  223. package/dist/features/homepage/components/AdSlot.d.ts +1 -3
  224. package/dist/features/homepage/components/AdSlot.js +15 -14
  225. package/dist/features/homepage/components/BlogArticlesSection.d.ts +3 -1
  226. package/dist/features/homepage/components/BlogArticlesSection.js +2 -2
  227. package/dist/features/homepage/components/BrandsSection.d.ts +3 -1
  228. package/dist/features/homepage/components/BrandsSection.js +4 -3
  229. package/dist/features/homepage/components/CustomCardsSection.d.ts +3 -0
  230. package/dist/features/homepage/components/CustomCardsSection.js +76 -0
  231. package/dist/features/homepage/components/EventsSection.d.ts +3 -1
  232. package/dist/features/homepage/components/EventsSection.js +2 -2
  233. package/dist/features/homepage/components/FeaturedAuctionsSection.d.ts +4 -1
  234. package/dist/features/homepage/components/FeaturedAuctionsSection.js +2 -2
  235. package/dist/features/homepage/components/FeaturedPreOrdersSection.d.ts +4 -1
  236. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +2 -2
  237. package/dist/features/homepage/components/FeaturedProductsSection.d.ts +4 -1
  238. package/dist/features/homepage/components/FeaturedProductsSection.js +8 -3
  239. package/dist/features/homepage/components/FeaturedStoresSection.d.ts +3 -1
  240. package/dist/features/homepage/components/FeaturedStoresSection.js +2 -2
  241. package/dist/features/homepage/components/GoogleReviewsSection.d.ts +3 -0
  242. package/dist/features/homepage/components/GoogleReviewsSection.js +65 -0
  243. package/dist/features/homepage/components/HeroCarousel.js +128 -84
  244. package/dist/features/homepage/components/MarketplaceHomepageView.d.ts +2 -20
  245. package/dist/features/homepage/components/MarketplaceHomepageView.js +73 -230
  246. package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
  247. package/dist/features/homepage/components/SectionCarousel.js +2 -0
  248. package/dist/features/homepage/components/ShopByCategorySection.d.ts +3 -1
  249. package/dist/features/homepage/components/ShopByCategorySection.js +8 -4
  250. package/dist/features/homepage/components/SocialFeedSection.d.ts +3 -0
  251. package/dist/features/homepage/components/SocialFeedSection.js +86 -0
  252. package/dist/features/homepage/components/SocialPostCard.d.ts +7 -0
  253. package/dist/features/homepage/components/SocialPostCard.js +39 -0
  254. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  255. package/dist/features/homepage/components/WelcomeSection.js +1 -1
  256. package/dist/features/homepage/components/WhatsAppCommunitySection.js +1 -1
  257. package/dist/features/homepage/hooks/useActiveAd.d.ts +23 -0
  258. package/dist/features/homepage/hooks/useActiveAd.js +20 -0
  259. package/dist/features/homepage/hooks/useBlogArticles.d.ts +1 -0
  260. package/dist/features/homepage/hooks/useBlogArticles.js +10 -0
  261. package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +4 -1
  262. package/dist/features/homepage/hooks/useFeaturedAuctions.js +8 -4
  263. package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +4 -1
  264. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +8 -4
  265. package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +1 -0
  266. package/dist/features/homepage/hooks/useFeaturedProducts.js +6 -3
  267. package/dist/features/homepage/hooks/useFeaturedStores.d.ts +3 -1
  268. package/dist/features/homepage/hooks/useFeaturedStores.js +2 -1
  269. package/dist/features/homepage/hooks/useHomepageEvents.d.ts +3 -1
  270. package/dist/features/homepage/hooks/useHomepageEvents.js +2 -1
  271. package/dist/features/homepage/hooks/useTopBrands.d.ts +3 -1
  272. package/dist/features/homepage/hooks/useTopBrands.js +2 -1
  273. package/dist/features/homepage/index.d.ts +2 -0
  274. package/dist/features/homepage/index.js +1 -0
  275. package/dist/features/homepage/lib/google-reviews-fetcher.d.ts +14 -0
  276. package/dist/features/homepage/lib/google-reviews-fetcher.js +27 -0
  277. package/dist/features/homepage/lib/live-stats.d.ts +14 -0
  278. package/dist/features/homepage/lib/live-stats.js +62 -0
  279. package/dist/features/homepage/lib/section-defaults.d.ts +11 -0
  280. package/dist/features/homepage/lib/section-defaults.js +45 -0
  281. package/dist/features/homepage/lib/section-helpers.d.ts +5 -0
  282. package/dist/features/homepage/lib/section-helpers.js +25 -0
  283. package/dist/features/homepage/lib/section-renderer.d.ts +33 -0
  284. package/dist/features/homepage/lib/section-renderer.js +164 -0
  285. package/dist/features/homepage/lib/social-feed-fetcher.d.ts +5 -0
  286. package/dist/features/homepage/lib/social-feed-fetcher.js +193 -0
  287. package/dist/features/homepage/schemas/firestore.d.ts +180 -29
  288. package/dist/features/homepage/schemas/firestore.js +5 -0
  289. package/dist/features/homepage/types/index.d.ts +48 -19
  290. package/dist/features/layout/AppLayoutShell.d.ts +6 -1
  291. package/dist/features/layout/AppLayoutShell.js +25 -9
  292. package/dist/features/layout/BottomActions.js +1 -1
  293. package/dist/features/layout/BottomNavbar.d.ts +15 -1
  294. package/dist/features/layout/BottomNavbar.js +8 -2
  295. package/dist/features/layout/FooterLayout.d.ts +7 -1
  296. package/dist/features/layout/FooterLayout.js +3 -3
  297. package/dist/features/layout/ListingLayout.js +2 -2
  298. package/dist/features/layout/MainNavbar.d.ts +6 -14
  299. package/dist/features/layout/MainNavbar.js +4 -16
  300. package/dist/features/layout/NavItem.js +1 -1
  301. package/dist/features/layout/NavbarLayout.d.ts +3 -1
  302. package/dist/features/layout/NavbarLayout.js +5 -5
  303. package/dist/features/layout/TitleBar.d.ts +4 -2
  304. package/dist/features/layout/TitleBar.js +5 -3
  305. package/dist/features/layout/TitleBarLayout.d.ts +3 -1
  306. package/dist/features/layout/TitleBarLayout.js +2 -2
  307. package/dist/features/layout/index.d.ts +1 -1
  308. package/dist/features/media/MediaPickerModal.d.ts +30 -0
  309. package/dist/features/media/MediaPickerModal.js +72 -0
  310. package/dist/features/media/index.d.ts +3 -1
  311. package/dist/features/media/index.js +1 -0
  312. package/dist/features/media/types/index.d.ts +12 -0
  313. package/dist/features/media/types/index.js +4 -2
  314. package/dist/features/media/upload/MediaUploadField.d.ts +5 -1
  315. package/dist/features/media/upload/MediaUploadField.js +56 -3
  316. package/dist/features/messages/schemas/firestore.d.ts +36 -0
  317. package/dist/features/messages/schemas/firestore.js +16 -0
  318. package/dist/features/orders/repository/orders.repository.d.ts +2 -2
  319. package/dist/features/orders/repository/orders.repository.js +2 -2
  320. package/dist/features/orders/schemas/firestore.d.ts +17 -4
  321. package/dist/features/orders/schemas/firestore.js +2 -2
  322. package/dist/features/orders/schemas/index.d.ts +18 -18
  323. package/dist/features/orders/schemas/index.js +3 -3
  324. package/dist/features/orders/types/index.d.ts +1 -1
  325. package/dist/features/orders/utils/order-splitter.d.ts +1 -1
  326. package/dist/features/orders/utils/order-splitter.js +2 -2
  327. package/dist/features/payments/repository/payout.repository.d.ts +4 -4
  328. package/dist/features/payments/repository/payout.repository.js +7 -7
  329. package/dist/features/payments/schemas/firestore.d.ts +6 -6
  330. package/dist/features/payments/schemas/firestore.js +6 -6
  331. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +11 -10
  332. package/dist/features/pre-orders/components/PreOrderActionsClient.d.ts +11 -0
  333. package/dist/features/pre-orders/components/PreOrderActionsClient.js +28 -0
  334. package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +2 -1
  335. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +27 -9
  336. package/dist/features/pre-orders/components/PreOrderFilters.d.ts +3 -1
  337. package/dist/features/pre-orders/components/PreOrderFilters.js +9 -6
  338. package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +3 -1
  339. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +132 -36
  340. package/dist/features/pre-orders/components/PreOrdersListView.js +3 -3
  341. package/dist/features/pre-orders/components/PreorderCard.js +1 -1
  342. package/dist/features/pre-orders/schemas/index.d.ts +10 -0
  343. package/dist/features/products/actions/product-actions.d.ts +2 -2
  344. package/dist/features/products/actions/product-actions.js +5 -5
  345. package/dist/features/products/api/[id]/route.js +5 -2
  346. package/dist/features/products/api/route.js +10 -14
  347. package/dist/features/products/columns/productTableColumns.js +2 -2
  348. package/dist/features/products/components/AuctionDetailView.d.ts +2 -1
  349. package/dist/features/products/components/AuctionDetailView.js +2 -2
  350. package/dist/features/products/components/AuctionsIndexListing.d.ts +3 -1
  351. package/dist/features/products/components/AuctionsIndexListing.js +93 -31
  352. package/dist/features/products/components/BidHistory.d.ts +2 -1
  353. package/dist/features/products/components/BidHistory.js +18 -2
  354. package/dist/features/products/components/MakeOfferButton.d.ts +10 -0
  355. package/dist/features/products/components/MakeOfferButton.js +68 -0
  356. package/dist/features/products/components/ProductDetailPageView.d.ts +11 -1
  357. package/dist/features/products/components/ProductDetailPageView.js +27 -8
  358. package/dist/features/products/components/ProductFilters.d.ts +7 -1
  359. package/dist/features/products/components/ProductFilters.js +4 -2
  360. package/dist/features/products/components/ProductForm.d.ts +19 -1
  361. package/dist/features/products/components/ProductForm.js +24 -6
  362. package/dist/features/products/components/ProductGrid.d.ts +10 -2
  363. package/dist/features/products/components/ProductGrid.js +76 -29
  364. package/dist/features/products/components/ProductsIndexListing.js +131 -45
  365. package/dist/features/products/components/RelatedProductsCarousel.js +1 -1
  366. package/dist/features/products/components/ShareButton.d.ts +7 -0
  367. package/dist/features/products/components/ShareButton.js +22 -0
  368. package/dist/features/products/components/index.d.ts +2 -0
  369. package/dist/features/products/components/index.js +1 -0
  370. package/dist/features/products/hooks/useProducts.d.ts +7 -0
  371. package/dist/features/products/hooks/useProducts.js +6 -4
  372. package/dist/features/products/repository/products.repository.d.ts +4 -8
  373. package/dist/features/products/repository/products.repository.js +17 -50
  374. package/dist/features/products/schemas/firestore.d.ts +11 -9
  375. package/dist/features/products/schemas/firestore.js +11 -3
  376. package/dist/features/products/schemas/index.d.ts +51 -50
  377. package/dist/features/products/schemas/index.js +2 -5
  378. package/dist/features/products/types/index.d.ts +13 -5
  379. package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
  380. package/dist/features/promotions/actions/coupon-actions.js +1 -1
  381. package/dist/features/promotions/actions/seller-coupon-actions.js +11 -6
  382. package/dist/features/promotions/api/route.js +3 -3
  383. package/dist/features/promotions/components/CouponCard.js +16 -7
  384. package/dist/features/promotions/components/CouponsIndexListing.js +3 -9
  385. package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
  386. package/dist/features/promotions/hooks/usePromotions.js +2 -2
  387. package/dist/features/promotions/repository/coupons.repository.d.ts +21 -15
  388. package/dist/features/promotions/repository/coupons.repository.js +97 -125
  389. package/dist/features/promotions/schemas/firestore.d.ts +31 -2
  390. package/dist/features/promotions/schemas/firestore.js +29 -0
  391. package/dist/features/promotions/schemas/index.d.ts +9 -12
  392. package/dist/features/promotions/schemas/index.js +1 -2
  393. package/dist/features/promotions/types/index.d.ts +1 -2
  394. package/dist/features/reviews/actions/review-actions.js +3 -2
  395. package/dist/features/reviews/components/ReviewDetailPageView.js +5 -9
  396. package/dist/features/reviews/components/ReviewFilters.js +1 -1
  397. package/dist/features/reviews/components/ReviewsIndexListing.js +58 -7
  398. package/dist/features/reviews/components/ReviewsList.js +2 -2
  399. package/dist/features/reviews/hooks/useReviews.d.ts +1 -0
  400. package/dist/features/reviews/hooks/useReviews.js +2 -1
  401. package/dist/features/reviews/repository/reviews.repository.d.ts +9 -4
  402. package/dist/features/reviews/repository/reviews.repository.js +18 -7
  403. package/dist/features/reviews/schemas/firestore.d.ts +5 -2
  404. package/dist/features/reviews/schemas/firestore.js +1 -0
  405. package/dist/features/reviews/schemas/index.d.ts +19 -16
  406. package/dist/features/reviews/schemas/index.js +3 -2
  407. package/dist/features/reviews/types/index.d.ts +3 -2
  408. package/dist/features/scams/actions/scam-actions.d.ts +29 -0
  409. package/dist/features/scams/actions/scam-actions.js +62 -0
  410. package/dist/features/scams/components/ScamProfileView.d.ts +10 -0
  411. package/dist/features/scams/components/ScamProfileView.js +51 -0
  412. package/dist/features/scams/components/ScamRegistryView.d.ts +6 -0
  413. package/dist/features/scams/components/ScamRegistryView.js +41 -0
  414. package/dist/features/scams/components/index.d.ts +4 -0
  415. package/dist/features/scams/components/index.js +2 -0
  416. package/dist/features/scams/constants/scam-types.d.ts +38 -0
  417. package/dist/features/scams/constants/scam-types.js +443 -0
  418. package/dist/features/scams/repository/scammer.repository.d.ts +67 -0
  419. package/dist/features/scams/repository/scammer.repository.js +160 -0
  420. package/dist/features/scams/schemas/firestore.d.ts +362 -0
  421. package/dist/features/scams/schemas/firestore.js +233 -0
  422. package/dist/features/search/components/Search.d.ts +12 -2
  423. package/dist/features/search/components/Search.js +26 -7
  424. package/dist/features/search/components/index.d.ts +1 -1
  425. package/dist/features/search/hooks/useNavSuggestions.d.ts +1 -1
  426. package/dist/features/search/hooks/useNavSuggestions.js +2 -2
  427. package/dist/features/search/schemas/index.d.ts +7 -7
  428. package/dist/features/seller/actions/offer-actions.js +52 -36
  429. package/dist/features/seller/actions/seller-actions.js +19 -13
  430. package/dist/features/seller/api/products/route.js +9 -4
  431. package/dist/features/seller/components/SellerAddressesView.d.ts +3 -12
  432. package/dist/features/seller/components/SellerAddressesView.js +144 -4
  433. package/dist/features/seller/components/SellerAuctionsView.js +58 -5
  434. package/dist/features/seller/components/SellerBidsView.d.ts +4 -0
  435. package/dist/features/seller/components/SellerBidsView.js +131 -0
  436. package/dist/features/seller/components/SellerCouponEditorView.d.ts +19 -0
  437. package/dist/features/seller/components/SellerCouponEditorView.js +67 -0
  438. package/dist/features/seller/components/SellerCouponsView.d.ts +5 -3
  439. package/dist/features/seller/components/SellerCouponsView.js +135 -13
  440. package/dist/features/seller/components/SellerCreateProductView.d.ts +4 -10
  441. package/dist/features/seller/components/SellerCreateProductView.js +4 -3
  442. package/dist/features/seller/components/SellerEditProductView.d.ts +4 -10
  443. package/dist/features/seller/components/SellerEditProductView.js +4 -3
  444. package/dist/features/seller/components/SellerOffersPanel.d.ts +20 -0
  445. package/dist/features/seller/components/SellerOffersPanel.js +138 -0
  446. package/dist/features/seller/components/SellerOffersView.js +56 -5
  447. package/dist/features/seller/components/SellerOrdersView.d.ts +2 -1
  448. package/dist/features/seller/components/SellerOrdersView.js +185 -16
  449. package/dist/features/seller/components/SellerPayoutRequestView.d.ts +7 -0
  450. package/dist/features/seller/components/SellerPayoutRequestView.js +63 -0
  451. package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +3 -10
  452. package/dist/features/seller/components/SellerPayoutSettingsView.js +89 -3
  453. package/dist/features/seller/components/SellerPayoutsView.js +56 -5
  454. package/dist/features/seller/components/SellerProductShell.d.ts +68 -0
  455. package/dist/features/seller/components/SellerProductShell.js +179 -0
  456. package/dist/features/seller/components/SellerProductsView.d.ts +2 -3
  457. package/dist/features/seller/components/SellerProductsView.js +194 -18
  458. package/dist/features/seller/components/SellerReviewsView.d.ts +5 -0
  459. package/dist/features/seller/components/SellerReviewsView.js +100 -0
  460. package/dist/features/seller/components/SellerShippingView.d.ts +3 -11
  461. package/dist/features/seller/components/SellerShippingView.js +87 -3
  462. package/dist/features/seller/components/SellerSidebar.d.ts +11 -3
  463. package/dist/features/seller/components/SellerSidebar.js +52 -8
  464. package/dist/features/seller/components/SellerStorefrontView.d.ts +26 -11
  465. package/dist/features/seller/components/SellerStorefrontView.js +45 -7
  466. package/dist/features/seller/components/index.d.ts +16 -2
  467. package/dist/features/seller/components/index.js +7 -0
  468. package/dist/features/seller/hooks/useSellerListingData.d.ts +3 -1
  469. package/dist/features/seller/hooks/useSellerListingData.js +6 -4
  470. package/dist/features/seller/repository/offer.repository.d.ts +3 -3
  471. package/dist/features/seller/repository/offer.repository.js +6 -6
  472. package/dist/features/seller/schemas/firestore.d.ts +7 -7
  473. package/dist/features/seller/schemas/firestore.js +4 -4
  474. package/dist/features/seller/schemas/index.d.ts +16 -16
  475. package/dist/features/shell/FormShell.d.ts +29 -0
  476. package/dist/features/shell/FormShell.js +103 -0
  477. package/dist/features/shell/QuickFormDrawer.d.ts +29 -0
  478. package/dist/features/shell/QuickFormDrawer.js +117 -0
  479. package/dist/features/shell/StepForm.d.ts +44 -0
  480. package/dist/features/shell/StepForm.js +81 -0
  481. package/dist/features/shell/index.d.ts +6 -0
  482. package/dist/features/shell/index.js +3 -0
  483. package/dist/features/stores/actions/store-query-actions.js +3 -3
  484. package/dist/features/stores/api/[storeSlug]/auctions/route.js +1 -1
  485. package/dist/features/stores/api/[storeSlug]/products/route.js +1 -1
  486. package/dist/features/stores/api/[storeSlug]/reviews/route.js +1 -1
  487. package/dist/features/stores/components/InteractiveStoreCard.d.ts +2 -2
  488. package/dist/features/stores/components/InteractiveStoreCard.js +21 -7
  489. package/dist/features/stores/components/StoreAboutView.js +1 -1
  490. package/dist/features/stores/components/StoreAuctionsListing.d.ts +5 -2
  491. package/dist/features/stores/components/StoreAuctionsListing.js +81 -8
  492. package/dist/features/stores/components/StoreAuctionsPageView.js +8 -7
  493. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -0
  494. package/dist/features/stores/components/StoreDetailLayoutView.js +29 -5
  495. package/dist/features/stores/components/StoreHeader.js +2 -1
  496. package/dist/features/stores/components/StorePreOrdersListing.d.ts +4 -2
  497. package/dist/features/stores/components/StorePreOrdersListing.js +59 -7
  498. package/dist/features/stores/components/StorePreOrdersPageView.js +8 -7
  499. package/dist/features/stores/components/StoreProductsListing.d.ts +5 -2
  500. package/dist/features/stores/components/StoreProductsListing.js +97 -8
  501. package/dist/features/stores/components/StoreProductsPageView.js +8 -7
  502. package/dist/features/stores/components/StoreReviewsListing.js +2 -2
  503. package/dist/features/stores/components/StoresIndexListing.js +74 -11
  504. package/dist/features/stores/components/StoresListView.js +1 -1
  505. package/dist/features/stores/hooks/useStores.d.ts +1 -0
  506. package/dist/features/stores/hooks/useStores.js +1 -0
  507. package/dist/features/stores/schemas/firestore.d.ts +34 -0
  508. package/dist/features/stores/schemas/index.d.ts +8 -8
  509. package/dist/features/sublisting/schemas/firestore.d.ts +30 -0
  510. package/dist/features/sublisting/schemas/firestore.js +19 -0
  511. package/dist/features/support/schemas/firestore.d.ts +113 -0
  512. package/dist/features/support/schemas/firestore.js +95 -0
  513. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +5 -0
  514. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +143 -0
  515. package/dist/features/whatsapp-bot/components/index.d.ts +2 -0
  516. package/dist/features/whatsapp-bot/components/index.js +1 -0
  517. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +23 -1
  518. package/dist/features/whatsapp-bot/helpers/whatsapp.js +104 -0
  519. package/dist/features/whatsapp-bot/server.d.ts +1 -0
  520. package/dist/features/whatsapp-bot/server.js +1 -0
  521. package/dist/features/whatsapp-bot/types/index.d.ts +49 -0
  522. package/dist/features/wishlist/components/WishlistView.d.ts +0 -10
  523. package/dist/features/wishlist/components/WishlistView.js +13 -6
  524. package/dist/features/wishlist/hooks/useWishlist.js +2 -0
  525. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +11 -3
  526. package/dist/features/wishlist/hooks/useWishlistCount.js +89 -25
  527. package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
  528. package/dist/features/wishlist/schemas/index.d.ts +2 -2
  529. package/dist/features/wishlist/types/index.d.ts +16 -0
  530. package/dist/http/api-handler.js +8 -1
  531. package/dist/index.d.ts +114 -16
  532. package/dist/index.js +136 -28
  533. package/dist/monitoring/server-logger.js +9 -3
  534. package/dist/next/routing/route-map.d.ts +120 -6
  535. package/dist/next/routing/route-map.js +53 -2
  536. package/dist/providers/db-firebase/realtime.d.ts +1 -1
  537. package/dist/react/contexts/SessionContext.js +17 -26
  538. package/dist/react/hooks/useBulkSelection.d.ts +7 -24
  539. package/dist/react/hooks/useBulkSelection.js +27 -34
  540. package/dist/react/hooks/useLongPress.d.ts +3 -16
  541. package/dist/react/hooks/useLongPress.js +6 -25
  542. package/dist/react/index.d.ts +1 -0
  543. package/dist/react/index.js +2 -0
  544. package/dist/repositories/index.d.ts +3 -0
  545. package/dist/repositories/index.js +2 -0
  546. package/dist/seed/actions/demo-seed-actions.d.ts +2 -2
  547. package/dist/seed/actions/demo-seed-actions.js +1 -1
  548. package/dist/seed/anime-figures-seed-data.d.ts +8 -0
  549. package/dist/seed/anime-figures-seed-data.js +1033 -0
  550. package/dist/seed/beyblade-seed-data.js +206 -24
  551. package/dist/seed/bids-seed-data.d.ts +4 -10
  552. package/dist/seed/bids-seed-data.js +365 -238
  553. package/dist/seed/blog-posts-seed-data.d.ts +3 -2
  554. package/dist/seed/blog-posts-seed-data.js +250 -511
  555. package/dist/seed/brands-seed-data.d.ts +7 -0
  556. package/dist/seed/brands-seed-data.js +410 -0
  557. package/dist/seed/carousel-slides-seed-data.d.ts +3 -2
  558. package/dist/seed/carousel-slides-seed-data.js +177 -216
  559. package/dist/seed/cart-seed-data.d.ts +9 -9
  560. package/dist/seed/cart-seed-data.js +73 -73
  561. package/dist/seed/categories-seed-data.d.ts +4 -2
  562. package/dist/seed/categories-seed-data.js +720 -879
  563. package/dist/seed/conversations-seed-data.d.ts +8 -0
  564. package/dist/seed/conversations-seed-data.js +388 -0
  565. package/dist/seed/cosplay-accessories-seed-data.d.ts +8 -0
  566. package/dist/seed/cosplay-accessories-seed-data.js +647 -0
  567. package/dist/seed/coupon-usage-seed-data.d.ts +25 -0
  568. package/dist/seed/coupon-usage-seed-data.js +69 -0
  569. package/dist/seed/coupons-seed-data.d.ts +6 -3
  570. package/dist/seed/coupons-seed-data.js +375 -3
  571. package/dist/seed/events-seed-data.d.ts +4 -2
  572. package/dist/seed/events-seed-data.js +128 -430
  573. package/dist/seed/factories/cart.factory.d.ts +0 -1
  574. package/dist/seed/factories/cart.factory.js +2 -2
  575. package/dist/seed/faq-seed-data.d.ts +11 -18
  576. package/dist/seed/faq-seed-data.js +786 -1817
  577. package/dist/seed/grouped-listings-seed-data.d.ts +8 -0
  578. package/dist/seed/grouped-listings-seed-data.js +201 -0
  579. package/dist/seed/homepage-sections-seed-data.d.ts +3 -13
  580. package/dist/seed/homepage-sections-seed-data.js +228 -252
  581. package/dist/seed/hot-wheels-seed-data.js +285 -38
  582. package/dist/seed/index.d.ts +12 -11
  583. package/dist/seed/index.js +10 -12
  584. package/dist/seed/letitrip-official-seed-data.d.ts +8 -0
  585. package/dist/seed/letitrip-official-seed-data.js +399 -0
  586. package/dist/seed/manifest.d.ts +15 -0
  587. package/dist/seed/manifest.js +140 -0
  588. package/dist/seed/notifications-seed-data.d.ts +4 -2
  589. package/dist/seed/notifications-seed-data.js +117 -440
  590. package/dist/seed/orders-seed-data.d.ts +4 -2
  591. package/dist/seed/orders-seed-data.js +1090 -521
  592. package/dist/seed/payouts-seed-data.d.ts +4 -2
  593. package/dist/seed/payouts-seed-data.js +522 -145
  594. package/dist/seed/pokemon-carousel-slides-seed-data.js +6 -1
  595. package/dist/seed/pokemon-categories-seed-data.js +81 -81
  596. package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +1 -1
  597. package/dist/seed/pokemon-homepage-sections-seed-data.js +116 -23
  598. package/dist/seed/pokemon-products-seed-data.d.ts +1 -1
  599. package/dist/seed/pokemon-products-seed-data.js +83 -73
  600. package/dist/seed/pokemon-seed-bundle.d.ts +5 -1
  601. package/dist/seed/pokemon-seed-bundle.js +21 -2
  602. package/dist/seed/pokemon-stores-seed-data.js +85 -9
  603. package/dist/seed/pokemon-users-seed-data.js +107 -8
  604. package/dist/seed/products-auctions-seed-data.d.ts +10 -0
  605. package/dist/seed/products-auctions-seed-data.js +689 -0
  606. package/dist/seed/products-preorders-seed-data.d.ts +9 -0
  607. package/dist/seed/products-preorders-seed-data.js +483 -0
  608. package/dist/seed/products-seed-data.js +34 -13
  609. package/dist/seed/products-standard-seed-data.d.ts +8 -0
  610. package/dist/seed/products-standard-seed-data.js +4179 -0
  611. package/dist/seed/retro-gaming-seed-data.d.ts +8 -0
  612. package/dist/seed/retro-gaming-seed-data.js +801 -0
  613. package/dist/seed/reviews-seed-data.d.ts +4 -17
  614. package/dist/seed/reviews-seed-data.js +1043 -515
  615. package/dist/seed/scammers-seed-data.d.ts +17 -0
  616. package/dist/seed/scammers-seed-data.js +118 -0
  617. package/dist/seed/site-settings-seed-data.js +25 -2
  618. package/dist/seed/store-addresses-seed-data.js +188 -84
  619. package/dist/seed/stores-seed-data.d.ts +3 -9
  620. package/dist/seed/stores-seed-data.js +212 -102
  621. package/dist/seed/sublisting-categories-seed-data.d.ts +7 -0
  622. package/dist/seed/sublisting-categories-seed-data.js +315 -0
  623. package/dist/seed/transformers-seed-data.js +34 -14
  624. package/dist/seed/users-seed-data.d.ts +3 -2
  625. package/dist/seed/users-seed-data.js +531 -440
  626. package/dist/seed/wishlists-seed-data.js +13 -13
  627. package/dist/server.d.ts +9 -2
  628. package/dist/server.js +12 -4
  629. package/dist/tokens/tokens.css +76 -31
  630. package/dist/ui/components/Avatar.style.css +10 -12
  631. package/dist/ui/components/BaseListingCard.d.ts +8 -3
  632. package/dist/ui/components/BaseListingCard.js +17 -6
  633. package/dist/ui/components/BaseListingCard.style.css +3 -1
  634. package/dist/ui/components/BulkActionsBar.d.ts +16 -0
  635. package/dist/ui/components/BulkActionsBar.js +22 -0
  636. package/dist/ui/components/Button.style.css +23 -23
  637. package/dist/ui/components/Card.style.css +60 -62
  638. package/dist/ui/components/Checkbox.style.css +19 -21
  639. package/dist/ui/components/DashboardStatsCard.style.css +12 -14
  640. package/dist/ui/components/Drawer.style.css +18 -14
  641. package/dist/ui/components/Dropdown.style.css +25 -27
  642. package/dist/ui/components/EmptyState.style.css +2 -4
  643. package/dist/ui/components/HorizontalScroller.d.ts +3 -1
  644. package/dist/ui/components/HorizontalScroller.js +116 -21
  645. package/dist/ui/components/HorizontalScroller.style.css +2 -2
  646. package/dist/ui/components/ImageLightbox.d.ts +0 -9
  647. package/dist/ui/components/ImageLightbox.js +43 -9
  648. package/dist/ui/components/InlineCreateSelect.d.ts +38 -0
  649. package/dist/ui/components/InlineCreateSelect.js +70 -0
  650. package/dist/ui/components/ListingLayout.style.css +41 -77
  651. package/dist/ui/components/ListingToolbar.d.ts +54 -0
  652. package/dist/ui/components/ListingToolbar.js +34 -0
  653. package/dist/ui/components/Modal.style.css +14 -10
  654. package/dist/ui/components/PageLoader.d.ts +11 -0
  655. package/dist/ui/components/PageLoader.js +21 -0
  656. package/dist/ui/components/Radio.style.css +34 -36
  657. package/dist/ui/components/RichTextEditor.js +1 -1
  658. package/dist/ui/components/RowActionMenu.d.ts +1 -0
  659. package/dist/ui/components/RowActionMenu.js +4 -2
  660. package/dist/ui/components/SectionTabs.js +1 -1
  661. package/dist/ui/components/SectionTabs.style.css +1 -0
  662. package/dist/ui/components/SideModal.style.css +4 -8
  663. package/dist/ui/components/Slider.style.css +2 -4
  664. package/dist/ui/components/Tabs.style.css +8 -10
  665. package/dist/ui/components/Toast.style.css +22 -24
  666. package/dist/ui/components/Toggle.style.css +11 -13
  667. package/dist/ui/index.d.ts +9 -0
  668. package/dist/ui/index.js +5 -0
  669. package/dist/ui/rich-text/RichText.js +2 -1
  670. package/dist/ui/rich-text/RichText.style.css +292 -5
  671. package/dist/ui/rich-text/RichTextRenderer.d.ts +15 -0
  672. package/dist/ui/rich-text/RichTextRenderer.js +15 -0
  673. package/dist/utils/id-generators.d.ts +10 -0
  674. package/dist/utils/id-generators.js +12 -0
  675. package/dist/validation/schemas.d.ts +9 -9
  676. package/package.json +5 -1
  677. package/README.md +0 -116
@@ -1,52 +1,57 @@
1
1
  /**
2
- * Categories Seed Data
3
- * Hierarchical category structure for products
2
+ * Categories Seed Data — Collectibles Edition
3
+ * 22 categories in 3-tier hierarchy covering 5 collectibles verticals.
4
+ * Verticals: action figures, trading cards, diecast, spinning tops, model kits + vintage/rare.
5
+ * id === slug convention enforced throughout.
4
6
  */
5
- // Dynamic date helpers
6
7
  const NOW = new Date();
7
8
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
8
- const daysAhead = (n) => new Date(NOW.getTime() + n * 86400000);
9
- export const categoriesSeedData = [
10
- // ROOT: Scale Figures
9
+ const emptyMetrics = {
10
+ productCount: 0,
11
+ productIds: [],
12
+ auctionCount: 0,
13
+ auctionIds: [],
14
+ totalProductCount: 0,
15
+ totalAuctionCount: 0,
16
+ totalItemCount: 0,
17
+ lastUpdated: daysAgo(1),
18
+ };
19
+ const rawCategories = [
20
+ // ──────────────────────────────────────────────────────────────────────────
21
+ // ROOT 1: Action Figures & Statues (tier 0)
22
+ // ──────────────────────────────────────────────────────────────────────────
11
23
  {
12
- id: "category-electronics",
13
- name: "Scale Figures",
14
- slug: "electronics",
15
- description: "Premium Beyblade products and collectibles",
16
- rootId: "category-electronics",
24
+ id: "category-action-figures",
25
+ slug: "category-action-figures",
26
+ name: "Action Figures & Statues",
27
+ description: "Premium anime figures, scale statues, Nendoroids, figma, and poseable action figures from top Japanese manufacturers.",
28
+ rootId: "category-action-figures",
17
29
  parentIds: [],
18
30
  childrenIds: [
19
- "category-mobiles-accessories-electronics",
20
- "category-laptops-computers-electronics",
21
- "category-audio-electronics",
22
- "category-cameras-photography-electronics",
31
+ "category-nendoroids-chibis",
32
+ "category-scale-figures",
33
+ "category-poseable-figures",
23
34
  ],
24
35
  tier: 0,
25
- path: "electronics",
36
+ path: "action-figures",
26
37
  order: 1,
27
38
  isLeaf: false,
28
- metrics: {
29
- productCount: 0,
30
- productIds: [],
31
- auctionCount: 1,
32
- auctionIds: ["auction-ps5-slim-gaming-console-techhub-1"],
33
- totalProductCount: 10,
34
- totalAuctionCount: 10,
35
- totalItemCount: 20,
36
- lastUpdated: daysAgo(4),
37
- },
39
+ position: 0,
40
+ subtreeSize: 4,
41
+ metrics: emptyMetrics,
38
42
  isFeatured: true,
39
- isBrand: false,
40
43
  featuredPriority: 1,
44
+ isBrand: false,
41
45
  seo: {
42
- title: "Scale Figures Beyblade Collectibles | LetItRip",
43
- description: "Shop premium Beyblade products including Beyblade Z, Beyblade, Beyblade, and more",
46
+ title: "Action Figures & Anime Statues | LetItRip",
47
+ description: "Shop premium anime figures, scale statues, Nendoroids, figma, and poseable action figures from Bandai, Good Smile Company, and more.",
44
48
  keywords: [
45
- "beyblade figures",
46
- "scale figures",
47
- "collectibles",
48
- "beyblade",
49
- "beyblade",
49
+ "anime figures",
50
+ "nendoroid",
51
+ "figma",
52
+ "scale figure",
53
+ "action figure",
54
+ "collectibles india",
50
55
  ],
51
56
  ogImage: "https://images.unsplash.com/photo-1578632767115-351597cf2477?w=1200&h=630&fit=crop",
52
57
  },
@@ -59,50 +64,34 @@ export const categoriesSeedData = [
59
64
  },
60
65
  isActive: true,
61
66
  isSearchable: true,
62
- showOnHomepage: false,
63
- createdBy: "user-admin-user-admin",
64
- createdAt: daysAgo(799),
65
- updatedAt: daysAgo(29),
67
+ showOnHomepage: true,
68
+ createdBy: "user-admin-letitrip",
69
+ createdAt: daysAgo(400),
70
+ updatedAt: daysAgo(30),
66
71
  ancestors: [],
67
72
  },
68
- // Scale Figures > Nendoroids & Chibis
73
+ // Action Figures > Nendoroids & Chibis (tier 1)
69
74
  {
70
- id: "category-mobiles-accessories-electronics",
75
+ id: "category-nendoroids-chibis",
76
+ slug: "category-nendoroids-chibis",
71
77
  name: "Nendoroids & Chibis",
72
- slug: "mobiles-accessories",
73
- description: "Nendoroids, chibi figurines, and small-scale collectibles",
74
- rootId: "category-electronics",
75
- parentIds: ["category-electronics"],
76
- childrenIds: [
77
- "category-smartphones-mobiles-accessories",
78
- "category-mobile-accessories-mobiles-accessories",
79
- ],
78
+ description: "Good Smile Company Nendoroids, Nendoroid Dolls, chibi-style figures, and gashapon mini collectibles.",
79
+ rootId: "category-action-figures",
80
+ parentIds: ["category-action-figures"],
81
+ childrenIds: [],
80
82
  tier: 1,
81
- path: "electronics/mobiles-accessories",
83
+ path: "action-figures/nendoroids-chibis",
82
84
  order: 1,
83
- isLeaf: false,
84
- metrics: {
85
- productCount: 1,
86
- productIds: ["product-samsung-galaxy-watch6-electronics-new-techhub-1"],
87
- auctionCount: 1,
88
- auctionIds: ["auction-gunpla-pg-wing-zero-techhub-1"],
89
- totalProductCount: 5,
90
- totalAuctionCount: 1,
91
- totalItemCount: 6,
92
- lastUpdated: daysAhead(4),
93
- },
85
+ isLeaf: true,
86
+ position: 0,
87
+ subtreeSize: 1,
88
+ metrics: emptyMetrics,
94
89
  isFeatured: false,
95
90
  isBrand: false,
96
91
  seo: {
97
- title: "Nendoroids & Chibis | LetItRip",
98
- description: "Browse Nendoroids, chibi figurines, and small-scale Beyblade collectibles",
99
- keywords: [
100
- "nendoroid",
101
- "chibi",
102
- "good smile company",
103
- "mini figurine",
104
- "beyblade",
105
- ],
92
+ title: "Nendoroids & Chibi Figures | LetItRip",
93
+ description: "Browse GSC Nendoroids, Nendoroid Dolls, chibi figurines, and gashapon mini collectibles.",
94
+ keywords: ["nendoroid", "chibi figure", "good smile", "gsc", "gashapon"],
106
95
  },
107
96
  display: {
108
97
  icon: "🫧",
@@ -112,1112 +101,964 @@ export const categoriesSeedData = [
112
101
  },
113
102
  isActive: true,
114
103
  isSearchable: true,
115
- showOnHomepage: false,
116
- createdBy: "user-admin-user-admin",
117
- createdAt: daysAgo(799),
118
- updatedAt: daysAgo(29),
119
- ancestors: [{ id: "category-electronics", name: "Scale Figures", tier: 0 }],
104
+ createdBy: "user-priya-singh",
105
+ createdAt: daysAgo(400),
106
+ updatedAt: daysAgo(30),
107
+ ancestors: [{ id: "category-action-figures", name: "Action Figures & Statues", tier: 0 }],
120
108
  },
121
- // Scale Figures > Nendoroids > Beyblade Figures
109
+ // Action Figures > Scale Figures (tier 1)
122
110
  {
123
- id: "category-smartphones-mobiles-accessories",
124
- name: "Beyblade Figures",
125
- slug: "smartphones",
126
- description: "Beyblade Z and Beyblade Super scale figures",
127
- rootId: "category-electronics",
128
- parentIds: [
129
- "category-electronics",
130
- "category-mobiles-accessories-electronics",
131
- ],
111
+ id: "category-scale-figures",
112
+ slug: "category-scale-figures",
113
+ name: "Scale Figures",
114
+ description: "High-end 1/4, 1/6, 1/7, and 1/8 scale PVC anime statues from Alter, Kotobukiya, Max Factory, and Aniplex.",
115
+ rootId: "category-action-figures",
116
+ parentIds: ["category-action-figures"],
132
117
  childrenIds: [],
133
- tier: 2,
134
- path: "electronics/mobiles-accessories/smartphones",
135
- order: 1,
118
+ tier: 1,
119
+ path: "action-figures/scale-figures",
120
+ order: 2,
136
121
  isLeaf: true,
137
- metrics: {
138
- productCount: 3,
139
- productIds: [
140
- "product-iphone-15-pro-max-smartphones-new-techhub-electronics-1",
141
- "product-samsung-galaxy-s24-ultra-smartphones-new-techhub-electronics-1",
142
- "product-google-pixel-8-pro-smartphones-new-techhub-electronics-1",
143
- ],
144
- auctionCount: 0,
145
- auctionIds: [],
146
- totalProductCount: 3,
147
- totalAuctionCount: 0,
148
- totalItemCount: 3,
149
- lastUpdated: daysAhead(4),
150
- },
122
+ position: 0,
123
+ subtreeSize: 1,
124
+ metrics: emptyMetrics,
151
125
  isFeatured: true,
152
- isBrand: false,
153
126
  featuredPriority: 2,
127
+ isBrand: false,
154
128
  seo: {
155
- title: "Beyblade Figures Dran Sword, Valkyrie & More | LetItRip",
156
- description: "Shop Beyblade Z and Super scale figures by Takara Tomy, Takara Tomy, and Hasbro",
157
- keywords: [
158
- "beyblade",
159
- "dran-sword",
160
- "valkyrie",
161
- "takara-tomy",
162
- "scale figure",
163
- ],
129
+ title: "Scale Figures 1/6, 1/7, 1/8 Anime PVC | LetItRip",
130
+ description: "Shop 1/4–1/8 scale anime PVC figures by Alter, Kotobukiya, Max Factory, and more.",
131
+ keywords: ["scale figure", "1/7 scale", "pvc figure", "alter", "kotobukiya", "anime statue"],
164
132
  },
165
133
  display: {
166
- icon: "🔥",
134
+ icon: "🏆",
167
135
  coverImage: "https://images.unsplash.com/photo-1608889825271-9696283b84bd?w=800&h=800&fit=crop",
168
136
  showInMenu: true,
169
- showInFooter: false,
137
+ showInFooter: true,
170
138
  },
171
139
  isActive: true,
172
140
  isSearchable: true,
173
- showOnHomepage: false,
174
- createdBy: "user-admin-user-admin",
175
- createdAt: daysAgo(799),
176
- updatedAt: daysAgo(29),
177
- ancestors: [
178
- { id: "category-electronics", name: "Scale Figures", tier: 0 },
179
- {
180
- id: "category-mobiles-accessories-electronics",
181
- name: "Nendoroids & Chibis",
182
- tier: 1,
183
- },
184
- ],
141
+ createdBy: "user-admin-letitrip",
142
+ createdAt: daysAgo(400),
143
+ updatedAt: daysAgo(30),
144
+ ancestors: [{ id: "category-action-figures", name: "Action Figures & Statues", tier: 0 }],
185
145
  },
186
- // Scale Figures > Nendoroids > Chibi Figurines
146
+ // Action Figures > Poseable Figures (tier 1)
187
147
  {
188
- id: "category-mobile-accessories-mobiles-accessories",
189
- name: "Chibi Figurines",
190
- slug: "mobile-accessories",
191
- description: "Mini figurines, gashapon, and chibi collectibles",
192
- rootId: "category-electronics",
193
- parentIds: [
194
- "category-electronics",
195
- "category-mobiles-accessories-electronics",
196
- ],
148
+ id: "category-poseable-figures",
149
+ slug: "category-poseable-figures",
150
+ name: "Poseable Action Figures",
151
+ description: "Fully articulated poseable action figures — figma, S.H.Figuarts, MAFEX, and Marvel Legends. Multiple points of articulation and interchangeable parts.",
152
+ rootId: "category-action-figures",
153
+ parentIds: ["category-action-figures"],
197
154
  childrenIds: [],
198
- tier: 2,
199
- path: "electronics/mobiles-accessories/mobile-accessories",
200
- order: 2,
155
+ tier: 1,
156
+ path: "action-figures/poseable-figures",
157
+ order: 3,
201
158
  isLeaf: true,
202
- metrics: {
203
- productCount: 1,
204
- productIds: ["product-anker-usbc-charger-electronics-new-techhub-1"],
205
- auctionCount: 0,
206
- auctionIds: [],
207
- totalProductCount: 1,
208
- totalAuctionCount: 0,
209
- totalItemCount: 1,
210
- lastUpdated: daysAhead(4),
211
- },
159
+ position: 0,
160
+ subtreeSize: 1,
161
+ metrics: emptyMetrics,
212
162
  isFeatured: false,
213
163
  isBrand: false,
214
164
  seo: {
215
- title: "Chibi Figurines & Mini Collectibles | LetItRip",
216
- description: "Shop Nendoroids, gashapon, mini figurines, and chibi Beyblade collectibles",
217
- keywords: [
218
- "chibi",
219
- "mini figurine",
220
- "gashapon",
221
- "spirited away",
222
- "studio ghibli",
223
- ],
165
+ title: "Poseable Action Figures figma, S.H.Figuarts | LetItRip",
166
+ description: "Shop fully articulated figma, S.H.Figuarts, MAFEX, and Revoltech poseable anime figures.",
167
+ keywords: ["figma", "sh figuarts", "mafex", "revoltech", "poseable figure", "articulated"],
224
168
  },
225
169
  display: {
226
- icon: "😊",
170
+ icon: "🦾",
227
171
  coverImage: "https://images.unsplash.com/photo-1560762484-813fc97650a0?w=800&h=800&fit=crop",
228
172
  showInMenu: true,
229
173
  showInFooter: false,
230
174
  },
231
175
  isActive: true,
232
176
  isSearchable: true,
233
- showOnHomepage: false,
234
- createdBy: "user-admin-user-admin",
235
- createdAt: daysAgo(799),
236
- updatedAt: daysAgo(29),
237
- ancestors: [
238
- { id: "category-electronics", name: "Scale Figures", tier: 0 },
239
- {
240
- id: "category-mobiles-accessories-electronics",
241
- name: "Nendoroids & Chibis",
242
- tier: 1,
243
- },
177
+ createdBy: "user-admin-letitrip",
178
+ createdAt: daysAgo(400),
179
+ updatedAt: daysAgo(30),
180
+ ancestors: [{ id: "category-action-figures", name: "Action Figures & Statues", tier: 0 }],
181
+ },
182
+ // ──────────────────────────────────────────────────────────────────────────
183
+ // ROOT 2: Trading Cards (tier 0)
184
+ // ──────────────────────────────────────────────────────────────────────────
185
+ {
186
+ id: "category-trading-cards",
187
+ slug: "category-trading-cards",
188
+ name: "Trading Cards",
189
+ description: "Pokémon TCG, Yu-Gi-Oh!, and other trading card games. Singles, booster packs, sealed boxes, ETBs, and graded slabs.",
190
+ rootId: "category-trading-cards",
191
+ parentIds: [],
192
+ childrenIds: [
193
+ "category-pokemon-tcg",
194
+ "category-yugioh-tcg",
195
+ "category-sealed-product",
244
196
  ],
197
+ tier: 0,
198
+ path: "trading-cards",
199
+ order: 2,
200
+ isLeaf: false,
201
+ position: 0,
202
+ subtreeSize: 4,
203
+ metrics: emptyMetrics,
204
+ isFeatured: true,
205
+ featuredPriority: 3,
206
+ isBrand: false,
207
+ seo: {
208
+ title: "Trading Cards — Pokémon TCG, Yu-Gi-Oh! | LetItRip",
209
+ description: "Shop Pokémon TCG singles, booster packs, sealed boxes, and Yu-Gi-Oh! cards. Graded slabs, ETBs, and more.",
210
+ keywords: [
211
+ "pokemon tcg",
212
+ "yugioh cards",
213
+ "trading cards india",
214
+ "booster pack",
215
+ "sealed box",
216
+ "graded cards",
217
+ ],
218
+ ogImage: "https://images.unsplash.com/photo-1607604276583-eef5d076aa5f?w=1200&h=630&fit=crop",
219
+ },
220
+ display: {
221
+ icon: "🃏",
222
+ coverImage: "https://images.unsplash.com/photo-1607604276583-eef5d076aa5f?w=800&h=800&fit=crop",
223
+ color: "#f59e0b",
224
+ showInMenu: true,
225
+ showInFooter: true,
226
+ },
227
+ isActive: true,
228
+ isSearchable: true,
229
+ showOnHomepage: true,
230
+ createdBy: "user-admin-letitrip",
231
+ createdAt: daysAgo(400),
232
+ updatedAt: daysAgo(30),
233
+ ancestors: [],
245
234
  },
246
- // Scale Figures > Premium Statues
235
+ // Trading Cards > Pokémon TCG (tier 1)
247
236
  {
248
- id: "category-laptops-computers-electronics",
249
- name: "Premium Statues",
250
- slug: "laptops-computers",
251
- description: "Large-scale Beyblade, Beyblade X, and premium beyblade statues",
252
- rootId: "category-electronics",
253
- parentIds: ["category-electronics"],
237
+ id: "category-pokemon-tcg",
238
+ slug: "category-pokemon-tcg",
239
+ name: "Pokémon TCG",
240
+ description: "Official Pokémon Trading Card Game product. Booster packs, Elite Trainer Boxes (ETBs), sealed booster boxes, singles, and graded PSA/BGS slabs.",
241
+ rootId: "category-trading-cards",
242
+ parentIds: ["category-trading-cards"],
254
243
  childrenIds: [],
255
244
  tier: 1,
256
- path: "electronics/laptops-computers",
257
- order: 2,
245
+ path: "trading-cards/pokemon-tcg",
246
+ order: 1,
258
247
  isLeaf: true,
259
- metrics: {
260
- productCount: 3,
261
- productIds: [
262
- "product-macbook-pro-16-m3-max-laptops-computers-new-techhub-electronics-1",
263
- "product-dell-xps-15-laptops-computers-new-techhub-electronics-1",
264
- "product-apple-ipad-pro-electronics-new-techhub-1",
265
- ],
266
- auctionCount: 1,
267
- auctionIds: ["product-macbook-pro-m3-auction-electronics-techhub-1"],
268
- totalProductCount: 3,
269
- totalAuctionCount: 1,
270
- totalItemCount: 4,
271
- lastUpdated: daysAhead(4),
272
- },
248
+ position: 0,
249
+ subtreeSize: 1,
250
+ metrics: emptyMetrics,
273
251
  isFeatured: true,
252
+ featuredPriority: 4,
274
253
  isBrand: false,
275
- featuredPriority: 3,
276
254
  seo: {
277
- title: "Premium Beyblade Statues � Beyblade, Beyblade X | LetItRip",
278
- description: "Browse large-scale Beyblade, Beyblade X, and premium beyblade statues by Takara Tomy and Takara Tomy",
255
+ title: "Pokémon TCG Cards, Booster Packs & ETBs | LetItRip",
256
+ description: "Shop Pokémon TCG booster packs, Elite Trainer Boxes, sealed boxes, and singles. Charizard ex, Pikachu VMAX, and more.",
279
257
  keywords: [
280
- "beyblade",
281
- "beyblade-x",
282
- "premium statue",
283
- "large scale",
284
- "takara-tomy",
258
+ "pokemon tcg",
259
+ "pokemon cards",
260
+ "booster pack",
261
+ "etb",
262
+ "charizard",
263
+ "pikachu vmax",
264
+ "psa graded",
285
265
  ],
286
266
  },
287
267
  display: {
288
- icon: "🏆",
289
- coverImage: "https://images.unsplash.com/photo-1599409636295-e3cf3538f212?w=800&h=800&fit=crop",
268
+ icon: "",
269
+ coverImage: "https://images.unsplash.com/photo-1613771404784-3a5686aa2be3?w=800&h=800&fit=crop",
270
+ color: "#fbbf24",
290
271
  showInMenu: true,
291
272
  showInFooter: true,
292
273
  },
293
274
  isActive: true,
294
275
  isSearchable: true,
295
- showOnHomepage: false,
296
- createdBy: "user-admin-user-admin",
297
- createdAt: daysAgo(799),
298
- updatedAt: daysAgo(29),
299
- ancestors: [{ id: "category-electronics", name: "Scale Figures", tier: 0 }],
276
+ createdBy: "user-aryan-kapoor",
277
+ createdAt: daysAgo(400),
278
+ updatedAt: daysAgo(30),
279
+ ancestors: [{ id: "category-trading-cards", name: "Trading Cards", tier: 0 }],
300
280
  },
301
- // Scale Figures > Limited Edition
281
+ // Trading Cards > Yu-Gi-Oh! TCG (tier 1)
302
282
  {
303
- id: "category-audio-electronics",
304
- name: "Limited Edition Figures",
305
- slug: "audio",
306
- description: "Limited and sold-out exclusive beyblade figures",
307
- rootId: "category-electronics",
308
- parentIds: ["category-electronics"],
283
+ id: "category-yugioh-tcg",
284
+ slug: "category-yugioh-tcg",
285
+ name: "Yu-Gi-Oh! TCG",
286
+ description: "Konami's Yu-Gi-Oh! Trading Card Game. Booster packs, structure decks, collector tins, secret rare singles, and tournament staples.",
287
+ rootId: "category-trading-cards",
288
+ parentIds: ["category-trading-cards"],
309
289
  childrenIds: [],
310
290
  tier: 1,
311
- path: "electronics/audio",
312
- order: 3,
291
+ path: "trading-cards/yugioh-tcg",
292
+ order: 2,
313
293
  isLeaf: true,
314
- metrics: {
315
- productCount: 2,
316
- productIds: [
317
- "preorder-chainsaw-man-makima-gsc-techhub-1",
318
- "preorder-frieren-1-7-alter-techhub-1",
319
- ],
320
- auctionCount: 4,
321
- auctionIds: [
322
- "auction-chainsaw-man-makima-figure-fashion-1",
323
- "auction-jjk-cobalt-drake-figure-homeessentials-1",
324
- "auction-fate-saber-alter-figure-techhub-1",
325
- "auction-rezero-rem-wedding-figure-techhub-1",
326
- ],
327
- totalProductCount: 2,
328
- totalAuctionCount: 4,
329
- totalItemCount: 6,
330
- lastUpdated: daysAhead(4),
331
- },
294
+ position: 0,
295
+ subtreeSize: 1,
296
+ metrics: emptyMetrics,
332
297
  isFeatured: false,
333
298
  isBrand: false,
334
299
  seo: {
335
- title: "Limited Edition Beyblade Figures | LetItRip",
336
- description: "Shop exclusive, limited-run beyblade figures Alter Co., Union Creative, limited releases",
300
+ title: "Yu-Gi-Oh! TCG Cards, Booster Packs & Decks | LetItRip",
301
+ description: "Shop Yu-Gi-Oh! booster packs, structure decks, collector tins, and secret rare singles by Konami.",
337
302
  keywords: [
338
- "limited edition",
339
- "exclusive figure",
340
- "alter co",
341
- "sold out",
342
- "rare beyblade",
303
+ "yugioh",
304
+ "yu-gi-oh cards",
305
+ "konami tcg",
306
+ "structure deck",
307
+ "secret rare",
308
+ "tournament cards",
343
309
  ],
344
310
  },
345
311
  display: {
346
- icon: "?",
347
- coverImage: "https://images.unsplash.com/photo-1614108831137-558fffac9ead?w=800&h=800&fit=crop",
312
+ icon: "🐉",
313
+ coverImage: "https://images.unsplash.com/photo-1612036782180-6f0b6cd846fe?w=800&h=800&fit=crop",
348
314
  showInMenu: true,
349
315
  showInFooter: false,
350
316
  },
351
317
  isActive: true,
352
318
  isSearchable: true,
353
- showOnHomepage: false,
354
- createdBy: "user-admin-user-admin",
355
- createdAt: daysAgo(799),
356
- updatedAt: daysAgo(29),
357
- ancestors: [{ id: "category-electronics", name: "Scale Figures", tier: 0 }],
319
+ createdBy: "user-nisha-reddy",
320
+ createdAt: daysAgo(400),
321
+ updatedAt: daysAgo(30),
322
+ ancestors: [{ id: "category-trading-cards", name: "Trading Cards", tier: 0 }],
358
323
  },
359
- // Scale Figures > Signed Art & Collectibles
324
+ // Trading Cards > Sealed Product (tier 1)
360
325
  {
361
- id: "category-cameras-photography-electronics",
362
- name: "Signed Art & Collectibles",
363
- slug: "cameras-photography",
364
- description: "Signed production art, original cels, and rare Beyblade collectibles",
365
- rootId: "category-electronics",
366
- parentIds: ["category-electronics"],
326
+ id: "category-sealed-product",
327
+ slug: "category-sealed-product",
328
+ name: "Sealed Product",
329
+ description: "Sealed booster boxes, collector's tins, Premium Collections, and first-edition sealed sets from all TCG brands. Investment-grade sealed collectibles.",
330
+ rootId: "category-trading-cards",
331
+ parentIds: ["category-trading-cards"],
367
332
  childrenIds: [],
368
333
  tier: 1,
369
- path: "electronics/cameras-photography",
370
- order: 4,
334
+ path: "trading-cards/sealed-product",
335
+ order: 3,
371
336
  isLeaf: true,
372
- metrics: {
373
- productCount: 0,
374
- productIds: [],
375
- auctionCount: 5,
376
- auctionIds: [
377
- "auction-vintage-canon-ae-1-film-camera-cameras-photography-used-techhub-electronics-1",
378
- "product-vintage-leica-camera-auction-artisan-1",
379
- "auction-pokemon-charizard-1st-ed-fashion-1",
380
- "auction-spirited-away-cel-homeessentials-1",
381
- "auction-one-piece-signed-artbook-techhub-1",
382
- ],
383
- totalProductCount: 0,
384
- totalAuctionCount: 5,
385
- totalItemCount: 5,
386
- lastUpdated: daysAhead(4),
387
- },
337
+ position: 0,
338
+ subtreeSize: 1,
339
+ metrics: emptyMetrics,
388
340
  isFeatured: false,
389
341
  isBrand: false,
390
342
  seo: {
391
- title: "Signed Beyblade Art & Rare Collectibles | LetItRip",
392
- description: "Shop original production cels, signed posters, and rare Beyblade collectibles from Gainax, Toei, and more",
343
+ title: "Sealed TCG Product — Boxes, Tins & Collections | LetItRip",
344
+ description: "Investment-grade sealed TCG product. Booster boxes, collector tins, and premium collections for Pokémon and Yu-Gi-Oh!.",
393
345
  keywords: [
394
- "production cel",
395
- "signed poster",
396
- "evangelion",
397
- "gainax",
398
- "beyblade auction",
346
+ "sealed booster box",
347
+ "tcg investment",
348
+ "pokemon booster box",
349
+ "collector tin",
350
+ "first edition",
351
+ "sealed set",
399
352
  ],
400
353
  },
401
354
  display: {
402
- icon: "🖼️",
403
- coverImage: "https://images.unsplash.com/photo-1578301978162-7aae4d755744?w=800&h=800&fit=crop",
355
+ icon: "📦",
356
+ coverImage: "https://images.unsplash.com/photo-1607604276583-eef5d076aa5f?w=800&h=800&fit=crop",
404
357
  showInMenu: true,
405
358
  showInFooter: false,
406
359
  },
407
360
  isActive: true,
408
361
  isSearchable: true,
409
- showOnHomepage: false,
410
- createdBy: "user-admin-user-admin",
411
- createdAt: daysAgo(799),
412
- updatedAt: daysAgo(29),
413
- ancestors: [{ id: "category-electronics", name: "Scale Figures", tier: 0 }],
362
+ createdBy: "user-admin-letitrip",
363
+ createdAt: daysAgo(400),
364
+ updatedAt: daysAgo(30),
365
+ ancestors: [{ id: "category-trading-cards", name: "Trading Cards", tier: 0 }],
414
366
  },
415
- // ROOT: Cosplay & Apparel
367
+ // ──────────────────────────────────────────────────────────────────────────
368
+ // ROOT 3: Diecast & Vehicles (tier 0)
369
+ // ──────────────────────────────────────────────────────────────────────────
416
370
  {
417
- id: "category-fashion",
418
- name: "Cosplay & Apparel",
419
- slug: "fashion",
420
- description: "Beyblade cosplay, apparel, and accessories",
421
- rootId: "category-fashion",
371
+ id: "category-diecast-vehicles",
372
+ slug: "category-diecast-vehicles",
373
+ name: "Diecast & Vehicles",
374
+ description: "Die-cast collectible vehicles — Hot Wheels 1:64 scale cars, Tomica Japanese vehicles, Treasure Hunts, Car Culture sets, and premium diecast.",
375
+ rootId: "category-diecast-vehicles",
422
376
  parentIds: [],
423
377
  childrenIds: [
424
- "category-mens-fashion-fashion",
425
- "category-womens-fashion-fashion",
378
+ "category-hot-wheels",
379
+ "category-tomica",
380
+ "category-premium-diecast",
426
381
  ],
427
382
  tier: 0,
428
- path: "fashion",
429
- order: 2,
383
+ path: "diecast-vehicles",
384
+ order: 3,
430
385
  isLeaf: false,
431
- metrics: {
432
- productCount: 0,
433
- productIds: [],
434
- auctionCount: 0,
435
- auctionIds: [],
436
- totalProductCount: 8,
437
- totalAuctionCount: 0,
438
- totalItemCount: 8,
439
- lastUpdated: daysAhead(4),
440
- },
386
+ position: 0,
387
+ subtreeSize: 4,
388
+ metrics: emptyMetrics,
441
389
  isFeatured: true,
390
+ featuredPriority: 5,
442
391
  isBrand: false,
443
- featuredPriority: 4,
444
392
  seo: {
445
- title: "Cosplay & Beyblade Apparel | LetItRip",
446
- description: "Shop beyblade cosplay outfits, graphic tees, hoodies, and official licensed apparel",
393
+ title: "Diecast Vehicles Hot Wheels, Tomica | LetItRip",
394
+ description: "Shop Hot Wheels Treasure Hunts, Car Culture sets, Tomica diecast, and premium 1:18 scale cars.",
447
395
  keywords: [
448
- "cosplay",
449
- "beyblade apparel",
450
- "cosplay outfit",
451
- "beyblade tee",
452
- "hoodie",
396
+ "hot wheels india",
397
+ "diecast cars",
398
+ "tomica",
399
+ "treasure hunt",
400
+ "car culture",
401
+ "1:64 scale",
453
402
  ],
403
+ ogImage: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=1200&h=630&fit=crop",
454
404
  },
455
405
  display: {
456
- icon: "🎭",
457
- coverImage: "https://images.unsplash.com/photo-1605296867304-46d5465a13f1?w=800&h=800&fit=crop",
458
- color: "#ec4899",
406
+ icon: "🚗",
407
+ coverImage: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=800&h=800&fit=crop",
408
+ color: "#ef4444",
459
409
  showInMenu: true,
460
410
  showInFooter: true,
461
411
  },
462
412
  isActive: true,
463
413
  isSearchable: true,
464
- showOnHomepage: false,
465
- createdBy: "user-admin-user-admin",
466
- createdAt: daysAgo(799),
467
- updatedAt: daysAgo(29),
414
+ showOnHomepage: true,
415
+ createdBy: "user-admin-letitrip",
416
+ createdAt: daysAgo(400),
417
+ updatedAt: daysAgo(30),
468
418
  ancestors: [],
469
419
  },
470
- // Cosplay > Men's Cosplay
420
+ // Diecast > Hot Wheels (tier 1)
471
421
  {
472
- id: "category-mens-fashion-fashion",
473
- name: "Men's Cosplay",
474
- slug: "mens-fashion",
475
- description: "Cosplay sets, jackets, hoodies, and apparel for men",
476
- rootId: "category-fashion",
477
- parentIds: ["category-fashion"],
422
+ id: "category-hot-wheels",
423
+ slug: "category-hot-wheels",
424
+ name: "Hot Wheels",
425
+ description: "Mattel Hot Wheels 1:64 scale diecast cars. Mainline, Treasure Hunt (TH), Super Treasure Hunt (STH), Car Culture, Team Transport, and RLC exclusives.",
426
+ rootId: "category-diecast-vehicles",
427
+ parentIds: ["category-diecast-vehicles"],
478
428
  childrenIds: [],
479
429
  tier: 1,
480
- path: "fashion/mens-fashion",
430
+ path: "diecast-vehicles/hot-wheels",
481
431
  order: 1,
482
432
  isLeaf: true,
483
- metrics: {
484
- productCount: 4,
485
- productIds: [
486
- "product-mens-cotton-casual-shirt-mens-fashion-new-fashion-boutique-1",
487
- "product-mens-oxford-shirt-fashion-new-fashionboutique-1",
488
- "product-mens-slim-chinos-fashion-new-fashionboutique-1",
489
- "product-mens-leather-derby-shoes-fashion-new-fashionboutique-1",
490
- ],
491
- auctionCount: 0,
492
- auctionIds: [],
493
- totalProductCount: 4,
494
- totalAuctionCount: 0,
495
- totalItemCount: 4,
496
- lastUpdated: daysAhead(4),
497
- },
433
+ position: 0,
434
+ subtreeSize: 1,
435
+ metrics: emptyMetrics,
498
436
  isFeatured: true,
437
+ featuredPriority: 6,
499
438
  isBrand: false,
500
- featuredPriority: 5,
501
439
  seo: {
502
- title: "Men's Cosplay & Beyblade Apparel | LetItRip",
503
- description: "Shop men's beyblade cosplay sets, Scout Regiment jackets, Beyblade X cloaks, and graphic hoodies",
440
+ title: "Hot Wheels Treasure Hunt, Car Culture, RLC | LetItRip",
441
+ description: "Shop Hot Wheels Mainline, Treasure Hunt, Super Treasure Hunt, Car Culture, and exclusive RLC sets.",
504
442
  keywords: [
505
- "mens cosplay",
506
- "beyblade jacket",
507
- "attack on titan",
508
- "beyblade",
509
- "beyblade-x cloak",
443
+ "hot wheels",
444
+ "treasure hunt",
445
+ "super treasure hunt",
446
+ "car culture",
447
+ "hot wheels india",
448
+ "rlc",
510
449
  ],
511
450
  },
512
451
  display: {
513
- icon: "👘",
514
- coverImage: "https://images.unsplash.com/photo-1605296867304-46d5465a13f1?w=800&h=800&fit=crop",
452
+ icon: "🔥",
453
+ coverImage: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=800&h=800&fit=crop",
454
+ color: "#ef4444",
515
455
  showInMenu: true,
516
456
  showInFooter: true,
517
457
  },
518
458
  isActive: true,
519
459
  isSearchable: true,
520
- showOnHomepage: false,
521
- createdBy: "user-admin-user-admin",
522
- createdAt: daysAgo(799),
523
- updatedAt: daysAgo(29),
524
- ancestors: [{ id: "category-fashion", name: "Cosplay & Apparel", tier: 0 }],
460
+ createdBy: "user-vikram-mehta",
461
+ createdAt: daysAgo(400),
462
+ updatedAt: daysAgo(30),
463
+ ancestors: [{ id: "category-diecast-vehicles", name: "Diecast & Vehicles", tier: 0 }],
525
464
  },
526
- // Cosplay > Women's Cosplay
465
+ // Diecast > Tomica (tier 1)
527
466
  {
528
- id: "category-womens-fashion-fashion",
529
- name: "Women's Cosplay",
530
- slug: "womens-fashion",
531
- description: "Cosplay dresses, kimono sets, and beyblade apparel for women",
532
- rootId: "category-fashion",
533
- parentIds: ["category-fashion"],
467
+ id: "category-tomica",
468
+ slug: "category-tomica",
469
+ name: "Tomica",
470
+ description: "Takara Tomy's Tomica 1:64 Japanese diecast cars. Standard Tomica, Tomica Premium, Tomica Limited Vintage, and Disney collaboration sets.",
471
+ rootId: "category-diecast-vehicles",
472
+ parentIds: ["category-diecast-vehicles"],
534
473
  childrenIds: [],
535
474
  tier: 1,
536
- path: "fashion/womens-fashion",
475
+ path: "diecast-vehicles/tomica",
537
476
  order: 2,
538
477
  isLeaf: true,
539
- metrics: {
540
- productCount: 4,
541
- productIds: [
542
- "product-womens-ethnic-kurti-womens-fashion-new-fashion-boutique-1",
543
- "product-womens-anarkali-kurta-fashion-new-fashionboutique-1",
544
- "product-womens-casual-midi-dress-fashion-new-fashionboutique-1",
545
- "product-womens-structured-tote-bag-fashion-new-fashionboutique-1",
546
- ],
547
- auctionCount: 0,
548
- auctionIds: [],
549
- totalProductCount: 4,
550
- totalAuctionCount: 0,
551
- totalItemCount: 4,
552
- lastUpdated: daysAhead(4),
553
- },
554
- isFeatured: true,
478
+ position: 0,
479
+ subtreeSize: 1,
480
+ metrics: emptyMetrics,
481
+ isFeatured: false,
555
482
  isBrand: false,
556
- featuredPriority: 6,
557
483
  seo: {
558
- title: "Women's Cosplay & Beyblade Apparel | LetItRip",
559
- description: "Shop women's cosplay dresses, Beyblade Burst sets, Beyblade X cosplay, and beyblade bags",
484
+ title: "Tomica Diecast — Tomica Premium & Limited Vintage | LetItRip",
485
+ description: "Shop Tomica Standard, Tomica Premium, and Tomica Limited Vintage diecast cars by Takara Tomy.",
560
486
  keywords: [
561
- "womens cosplay",
562
- "beyblade burst",
563
- "beyblade x",
564
- "nezuko",
565
- "cosplay dress",
487
+ "tomica",
488
+ "tomica premium",
489
+ "tomica limited vintage",
490
+ "takara tomy",
491
+ "japanese diecast",
566
492
  ],
567
493
  },
568
494
  display: {
569
- icon: "👗",
570
- coverImage: "https://images.unsplash.com/photo-1567401893414-76b7b1e5a7a5?w=800&h=800&fit=crop",
495
+ icon: "🚕",
496
+ coverImage: "https://images.unsplash.com/photo-1566576912321-d58ddd7a6088?w=800&h=800&fit=crop",
571
497
  showInMenu: true,
572
- showInFooter: true,
498
+ showInFooter: false,
573
499
  },
574
500
  isActive: true,
575
501
  isSearchable: true,
576
- showOnHomepage: false,
577
- createdBy: "user-admin-user-admin",
578
- createdAt: daysAgo(799),
579
- updatedAt: daysAgo(29),
580
- ancestors: [{ id: "category-fashion", name: "Cosplay & Apparel", tier: 0 }],
502
+ createdBy: "user-admin-letitrip",
503
+ createdAt: daysAgo(400),
504
+ updatedAt: daysAgo(30),
505
+ ancestors: [{ id: "category-diecast-vehicles", name: "Diecast & Vehicles", tier: 0 }],
581
506
  },
582
- // ROOT: Collectibles & Display
507
+ // Diecast > Premium Diecast (tier 1)
583
508
  {
584
- id: "category-home-kitchen",
585
- name: "Collectibles & Display",
586
- slug: "home-kitchen",
587
- description: "Nendoroids, garage kits, art replicas, and display collectibles",
588
- rootId: "category-home-kitchen",
589
- parentIds: [],
509
+ id: "category-premium-diecast",
510
+ slug: "category-premium-diecast",
511
+ name: "Premium Diecast",
512
+ description: "Premium 1:18 and 1:43 scale diecast from Maisto, Bburago, Kyosho, and AutoArt. Museum-quality replica cars including F1 and supercars.",
513
+ rootId: "category-diecast-vehicles",
514
+ parentIds: ["category-diecast-vehicles"],
590
515
  childrenIds: [],
591
- tier: 0,
592
- path: "home-kitchen",
516
+ tier: 1,
517
+ path: "diecast-vehicles/premium-diecast",
593
518
  order: 3,
594
519
  isLeaf: true,
595
- metrics: {
596
- productCount: 5,
597
- productIds: [
598
- "product-non-stick-cookware-set-home-kitchen-new-home-essentials-1",
599
- "product-prestige-pressure-cooker-home-new-homeessentials-1",
600
- "product-nonstick-cookware-set-home-new-homeessentials-1",
601
- "product-smart-air-purifier-home-new-homeessentials-1",
602
- "product-solid-wood-coffee-table-home-new-homeessentials-1",
603
- ],
604
- auctionCount: 0,
605
- auctionIds: [],
606
- totalProductCount: 5,
607
- totalAuctionCount: 0,
608
- totalItemCount: 5,
609
- lastUpdated: daysAhead(4),
610
- },
611
- isFeatured: true,
520
+ position: 0,
521
+ subtreeSize: 1,
522
+ metrics: emptyMetrics,
523
+ isFeatured: false,
612
524
  isBrand: false,
613
- featuredPriority: 7,
614
525
  seo: {
615
- title: "Beyblade Collectibles & Display Sets | LetItRip",
616
- description: "Shop Nendoroids, studio display sets, garage kits, 3D Maneuver Gear replicas and more",
617
- keywords: [
618
- "nendoroid",
619
- "garage kit",
620
- "collectible",
621
- "display set",
622
- "ghibli",
623
- ],
526
+ title: "Premium 1:18 Diecast Cars | LetItRip",
527
+ description: "Shop 1:18 and 1:43 scale premium diecast cars from Maisto, Kyosho, and AutoArt. F1 and supercar replicas.",
528
+ keywords: ["1:18 diecast", "premium diecast", "maisto", "kyosho", "autoart", "f1 car"],
624
529
  },
625
530
  display: {
626
- icon: "🎎",
627
- coverImage: "https://images.unsplash.com/photo-1614108831137-558fffac9ead?w=800&h=800&fit=crop",
628
- color: "#10b981",
531
+ icon: "🏎️",
532
+ coverImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=800&h=800&fit=crop",
629
533
  showInMenu: true,
630
- showInFooter: true,
534
+ showInFooter: false,
631
535
  },
632
536
  isActive: true,
633
537
  isSearchable: true,
634
- showOnHomepage: false,
635
- createdBy: "user-admin-user-admin",
636
- createdAt: daysAgo(799),
637
- updatedAt: daysAgo(29),
638
- ancestors: [],
538
+ createdBy: "user-admin-letitrip",
539
+ createdAt: daysAgo(400),
540
+ updatedAt: daysAgo(30),
541
+ ancestors: [{ id: "category-diecast-vehicles", name: "Diecast & Vehicles", tier: 0 }],
639
542
  },
640
- // ROOT: Model Kits & Gunpla
543
+ // ──────────────────────────────────────────────────────────────────────────
544
+ // ROOT 4: Spinning Tops (tier 0)
545
+ // ──────────────────────────────────────────────────────────────────────────
641
546
  {
642
- id: "category-sports-outdoors",
643
- name: "Model Kits & Gunpla",
644
- slug: "sports-outdoors",
645
- description: "Gundam model kits, Gunpla, ship models, and poseable figures",
646
- rootId: "category-sports-outdoors",
547
+ id: "category-spinning-tops",
548
+ slug: "category-spinning-tops",
549
+ name: "Spinning Tops",
550
+ description: "Competitive Beyblade spinning tops — Beyblade Burst, Beyblade X, Metal Fight Classic. Official Takara Tomy and Hasbro product including launchers and stadiums.",
551
+ rootId: "category-spinning-tops",
647
552
  parentIds: [],
648
- childrenIds: [],
553
+ childrenIds: [
554
+ "category-beyblade-burst",
555
+ "category-beyblade-x",
556
+ "category-beyblade-classic",
557
+ ],
649
558
  tier: 0,
650
- path: "sports-outdoors",
559
+ path: "spinning-tops",
651
560
  order: 4,
652
- isLeaf: true,
653
- metrics: {
654
- productCount: 5,
655
- productIds: [
656
- "product-yoga-mat-with-carrying-bag-sports-outdoors-new-home-essentials-1",
657
- "product-premium-yoga-mat-sports-new-sportszone-1",
658
- "product-adjustable-dumbbell-set-sports-new-sportszone-1",
659
- "product-cricket-bat-mrf-sports-new-sportszone-1",
660
- "product-running-shoes-adidas-sports-new-sportszone-1",
661
- ],
662
- auctionCount: 0,
663
- auctionIds: [],
664
- totalProductCount: 5,
665
- totalAuctionCount: 0,
666
- totalItemCount: 5,
667
- lastUpdated: daysAhead(4),
668
- },
561
+ isLeaf: false,
562
+ position: 0,
563
+ subtreeSize: 4,
564
+ metrics: emptyMetrics,
669
565
  isFeatured: true,
566
+ featuredPriority: 7,
670
567
  isBrand: false,
671
- featuredPriority: 8,
672
568
  seo: {
673
- title: "Gunpla & Model Kits | LetItRip",
674
- description: "Shop Gundam Perfect Grade, Master Grade model kits, ship models, and Beyblade Figures",
569
+ title: "Beyblade — Burst, X & Metal Fight | LetItRip",
570
+ description: "Shop Beyblade Burst, Beyblade X, and Metal Fight Classic tops, launchers, and stadiums. Official Takara Tomy and Hasbro.",
675
571
  keywords: [
676
- "gunpla",
677
- "gundam",
678
- "model kit",
679
- "perfect grade",
680
- "master grade",
572
+ "beyblade india",
573
+ "beyblade burst",
574
+ "beyblade x",
575
+ "metal fight",
576
+ "spinning top",
577
+ "takara tomy beyblade",
681
578
  ],
579
+ ogImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=1200&h=630&fit=crop",
682
580
  },
683
581
  display: {
684
- icon: "🤖",
685
- coverImage: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=800&h=800&fit=crop",
686
- color: "#f97316",
582
+ icon: "🌀",
583
+ coverImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=800&h=800&fit=crop",
584
+ color: "#8b5cf6",
687
585
  showInMenu: true,
688
586
  showInFooter: true,
689
587
  },
690
588
  isActive: true,
691
589
  isSearchable: true,
692
- showOnHomepage: false,
693
- createdBy: "user-admin-user-admin",
694
- createdAt: daysAgo(799),
695
- updatedAt: daysAgo(29),
590
+ showOnHomepage: true,
591
+ createdBy: "user-admin-letitrip",
592
+ createdAt: daysAgo(400),
593
+ updatedAt: daysAgo(30),
696
594
  ancestors: [],
697
595
  },
698
- // ROOT: Beauty & Health
596
+ // Spinning Tops > Beyblade Burst (tier 1)
699
597
  {
700
- id: "category-beauty-health",
701
- name: "Beauty & Health",
702
- slug: "beauty-health",
703
- description: "Skincare, cosmetics, and wellness products",
704
- rootId: "category-beauty-health",
705
- parentIds: [],
598
+ id: "category-beyblade-burst",
599
+ slug: "category-beyblade-burst",
600
+ name: "Beyblade Burst",
601
+ description: "Beyblade Burst series — Burst, Burst GT, Burst Rise, Burst Sparking, Burst QuadStrike. Layers, discs, drivers, launchers, and combo sets.",
602
+ rootId: "category-spinning-tops",
603
+ parentIds: ["category-spinning-tops"],
706
604
  childrenIds: [],
707
- tier: 0,
708
- path: "beauty-health",
709
- order: 5,
605
+ tier: 1,
606
+ path: "spinning-tops/beyblade-burst",
607
+ order: 1,
710
608
  isLeaf: true,
711
- metrics: {
712
- productCount: 0,
713
- productIds: [],
714
- auctionCount: 0,
715
- auctionIds: [],
716
- totalProductCount: 0,
717
- totalAuctionCount: 0,
718
- totalItemCount: 0,
719
- lastUpdated: daysAgo(29),
720
- },
609
+ position: 0,
610
+ subtreeSize: 1,
611
+ metrics: emptyMetrics,
721
612
  isFeatured: true,
613
+ featuredPriority: 8,
722
614
  isBrand: false,
723
- featuredPriority: 9,
724
615
  seo: {
725
- title: "Beauty & Health | LetItRip",
726
- description: "Shop skincare, cosmetics, and wellness products",
727
- keywords: ["beauty", "skincare", "cosmetics", "health", "wellness"],
616
+ title: "Beyblade Burst All Series | LetItRip",
617
+ description: "Shop Beyblade Burst series tops, launchers, and stadiums. GT, Rise, Sparking, and QuadStrike lines.",
618
+ keywords: [
619
+ "beyblade burst",
620
+ "burst gt",
621
+ "burst rise",
622
+ "burst sparking",
623
+ "quadstrike",
624
+ "beyblade combo",
625
+ ],
728
626
  },
729
627
  display: {
730
- icon: "💄",
731
- coverImage: "https://images.unsplash.com/photo-1596462502278-27bfdc403348?w=800&h=800&fit=crop",
732
- color: "#ec4899",
628
+ icon: "💥",
629
+ coverImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=800&h=800&fit=crop",
630
+ color: "#8b5cf6",
733
631
  showInMenu: true,
734
632
  showInFooter: true,
735
633
  },
736
634
  isActive: true,
737
635
  isSearchable: true,
738
- showOnHomepage: false,
739
- createdBy: "user-admin-user-admin",
740
- createdAt: daysAgo(799),
741
- updatedAt: daysAgo(29),
742
- ancestors: [],
636
+ createdBy: "user-admin-letitrip",
637
+ createdAt: daysAgo(400),
638
+ updatedAt: daysAgo(30),
639
+ ancestors: [{ id: "category-spinning-tops", name: "Spinning Tops", tier: 0 }],
743
640
  },
744
- // ROOT: Books & Stationery
641
+ // Spinning Tops > Beyblade X (tier 1)
745
642
  {
746
- id: "category-books-stationery",
747
- name: "Books & Stationery",
748
- slug: "books-stationery",
749
- description: "Books, notebooks, and office supplies",
750
- rootId: "category-books-stationery",
751
- parentIds: [],
643
+ id: "category-beyblade-x",
644
+ slug: "category-beyblade-x",
645
+ name: "Beyblade X",
646
+ description: "The latest generation of Beyblade — Beyblade X. Features the X-Line rail and Extreme Dash mechanic. Official Takara Tomy starter sets, booster packs, and XStadium.",
647
+ rootId: "category-spinning-tops",
648
+ parentIds: ["category-spinning-tops"],
752
649
  childrenIds: [],
753
- tier: 0,
754
- path: "books-stationery",
755
- order: 6,
650
+ tier: 1,
651
+ path: "spinning-tops/beyblade-x",
652
+ order: 2,
756
653
  isLeaf: true,
757
- metrics: {
758
- productCount: 0,
759
- productIds: [],
760
- auctionCount: 0,
761
- auctionIds: [],
762
- totalProductCount: 0,
763
- totalAuctionCount: 0,
764
- totalItemCount: 0,
765
- lastUpdated: daysAgo(29),
766
- },
654
+ position: 0,
655
+ subtreeSize: 1,
656
+ metrics: emptyMetrics,
767
657
  isFeatured: true,
658
+ featuredPriority: 9,
768
659
  isBrand: false,
769
- featuredPriority: 10,
770
660
  seo: {
771
- title: "Books & Stationery | LetItRip",
772
- description: "Shop books, notebooks, and office supplies",
773
- keywords: ["books", "stationery", "notebooks", "office supplies"],
661
+ title: "Beyblade X — Latest Gen Tops & Launchers | LetItRip",
662
+ description: "Shop Beyblade X generation tops, X-Line launchers, XStadium, and booster packs by Takara Tomy.",
663
+ keywords: [
664
+ "beyblade x",
665
+ "bx",
666
+ "extreme dash",
667
+ "xstadium",
668
+ "dran sword",
669
+ "takara tomy bx",
670
+ ],
774
671
  },
775
672
  display: {
776
- icon: "📚",
777
- coverImage: "https://images.unsplash.com/photo-1481627834876-b7833e8f5570?w=800&h=800&fit=crop",
778
- color: "#f59e0b",
673
+ icon: "⚔️",
674
+ coverImage: "https://images.unsplash.com/photo-1612287230202-1ff1d85d1bdf?w=800&h=800&fit=crop",
675
+ color: "#e11d48",
779
676
  showInMenu: true,
780
- showInFooter: true,
677
+ showInFooter: false,
781
678
  },
782
679
  isActive: true,
783
680
  isSearchable: true,
784
- showOnHomepage: false,
785
- createdBy: "user-admin-user-admin",
786
- createdAt: daysAgo(799),
787
- updatedAt: daysAgo(29),
788
- ancestors: [],
681
+ createdBy: "user-rohit-joshi",
682
+ createdAt: daysAgo(400),
683
+ updatedAt: daysAgo(30),
684
+ ancestors: [{ id: "category-spinning-tops", name: "Spinning Tops", tier: 0 }],
789
685
  },
790
- // ROOT: Automotive
686
+ // Spinning Tops > Metal Fight Classic (tier 1)
791
687
  {
792
- id: "category-automotive",
793
- name: "Automotive",
794
- slug: "automotive",
795
- description: "Car accessories, tools, and parts",
796
- rootId: "category-automotive",
797
- parentIds: [],
688
+ id: "category-beyblade-classic",
689
+ slug: "category-beyblade-classic",
690
+ name: "Metal Fight Classic",
691
+ description: "Original Beyblade and Metal Fight Beyblade series. Collector and tournament condition tops — Pegasis, Leone, Libra. Rare Japanese editions and vintage MFB.",
692
+ rootId: "category-spinning-tops",
693
+ parentIds: ["category-spinning-tops"],
798
694
  childrenIds: [],
799
- tier: 0,
800
- path: "automotive",
801
- order: 7,
695
+ tier: 1,
696
+ path: "spinning-tops/beyblade-classic",
697
+ order: 3,
802
698
  isLeaf: true,
803
- metrics: {
804
- productCount: 0,
805
- productIds: [],
806
- auctionCount: 0,
807
- auctionIds: [],
808
- totalProductCount: 0,
809
- totalAuctionCount: 0,
810
- totalItemCount: 0,
811
- lastUpdated: daysAgo(29),
812
- },
813
- isFeatured: true,
699
+ position: 0,
700
+ subtreeSize: 1,
701
+ metrics: emptyMetrics,
702
+ isFeatured: false,
814
703
  isBrand: false,
815
- featuredPriority: 11,
816
704
  seo: {
817
- title: "Automotive | LetItRip",
818
- description: "Shop car accessories, tools, and parts",
819
- keywords: ["automotive", "car accessories", "vehicle parts", "tools"],
705
+ title: "Metal Fight Beyblade & Classic Series | LetItRip",
706
+ description: "Shop Metal Fight Beyblade and original plastic-gen tops. Pegasis, Leone, Libra, and rare Japanese editions.",
707
+ keywords: [
708
+ "metal fight beyblade",
709
+ "mfb",
710
+ "classic beyblade",
711
+ "pegasis",
712
+ "leone",
713
+ "vintage beyblade",
714
+ ],
820
715
  },
821
716
  display: {
822
- icon: "🚗",
823
- coverImage: "https://images.unsplash.com/photo-1494976388531-d1058494cdd8?w=800&h=800&fit=crop",
824
- color: "#6b7280",
717
+ icon: "🌟",
718
+ coverImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=800&h=800&fit=crop",
825
719
  showInMenu: true,
826
720
  showInFooter: false,
827
721
  },
828
722
  isActive: true,
829
723
  isSearchable: true,
830
- showOnHomepage: false,
831
- createdBy: "user-admin-user-admin",
832
- createdAt: daysAgo(799),
833
- updatedAt: daysAgo(29),
834
- ancestors: [],
724
+ createdBy: "user-admin-letitrip",
725
+ createdAt: daysAgo(400),
726
+ updatedAt: daysAgo(30),
727
+ ancestors: [{ id: "category-spinning-tops", name: "Spinning Tops", tier: 0 }],
835
728
  },
836
- // ROOT: Jewelry & Accessories
729
+ // ──────────────────────────────────────────────────────────────────────────
730
+ // ROOT 5: Model Kits & Gunpla (tier 0)
731
+ // ──────────────────────────────────────────────────────────────────────────
837
732
  {
838
- id: "category-jewelry-accessories",
839
- name: "Jewelry & Accessories",
840
- slug: "jewelry-accessories",
841
- description: "Fine jewelry, watches, and fashion accessories",
842
- rootId: "category-jewelry-accessories",
733
+ id: "category-model-kits",
734
+ slug: "category-model-kits",
735
+ name: "Model Kits & Gunpla",
736
+ description: "Gundam plastic model kits (Gunpla) — High Grade (HG), Master Grade (MG), Real Grade (RG), and Perfect Grade (PG). Non-Gundam kits from Kotobukiya, Bandai, and Hasegawa.",
737
+ rootId: "category-model-kits",
843
738
  parentIds: [],
844
- childrenIds: [],
739
+ childrenIds: [
740
+ "category-gunpla",
741
+ "category-non-gundam-kits",
742
+ ],
845
743
  tier: 0,
846
- path: "jewelry-accessories",
847
- order: 8,
848
- isLeaf: true,
849
- metrics: {
850
- productCount: 0,
851
- productIds: [],
852
- auctionCount: 0,
853
- auctionIds: [],
854
- totalProductCount: 0,
855
- totalAuctionCount: 0,
856
- totalItemCount: 0,
857
- lastUpdated: daysAgo(29),
858
- },
744
+ path: "model-kits",
745
+ order: 5,
746
+ isLeaf: false,
747
+ position: 0,
748
+ subtreeSize: 3,
749
+ metrics: emptyMetrics,
859
750
  isFeatured: true,
751
+ featuredPriority: 10,
860
752
  isBrand: false,
861
- featuredPriority: 12,
862
753
  seo: {
863
- title: "Jewelry & Accessories | LetItRip",
864
- description: "Shop fine jewelry, watches, and fashion accessories",
865
- keywords: ["jewelry", "watches", "accessories", "rings", "necklaces"],
754
+ title: "Model Kits & Gunpla | LetItRip",
755
+ description: "Shop Gunpla HG, MG, RG, and PG model kits. Non-Gundam kits from Kotobukiya and Hasegawa. Build-and-display collectibles.",
756
+ keywords: [
757
+ "gunpla",
758
+ "gundam model kit",
759
+ "high grade",
760
+ "master grade",
761
+ "perfect grade",
762
+ "model kit india",
763
+ ],
764
+ ogImage: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=1200&h=630&fit=crop",
866
765
  },
867
766
  display: {
868
- icon: "💍",
869
- coverImage: "https://images.unsplash.com/photo-1515562141207-7a88fb7ce338?w=800&h=800&fit=crop",
870
- color: "#d97706",
767
+ icon: "🤖",
768
+ coverImage: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=800&h=800&fit=crop",
769
+ color: "#10b981",
871
770
  showInMenu: true,
872
771
  showInFooter: true,
873
772
  },
874
773
  isActive: true,
875
774
  isSearchable: true,
876
- showOnHomepage: false,
877
- createdBy: "user-admin-user-admin",
878
- createdAt: daysAgo(799),
879
- updatedAt: daysAgo(29),
775
+ showOnHomepage: true,
776
+ createdBy: "user-admin-letitrip",
777
+ createdAt: daysAgo(400),
778
+ updatedAt: daysAgo(30),
880
779
  ancestors: [],
881
780
  },
882
- // ROOT: Toys & Baby
781
+ // Model Kits > Gunpla (tier 1)
883
782
  {
884
- id: "category-toys-baby",
885
- name: "Toys & Baby",
886
- slug: "toys-baby",
887
- description: "Toys, games, and baby essentials",
888
- rootId: "category-toys-baby",
889
- parentIds: [],
783
+ id: "category-gunpla",
784
+ slug: "category-gunpla",
785
+ name: "Gunpla",
786
+ description: "Official Bandai Gundam Plastic Model Kits. HG (High Grade), RG (Real Grade), MG (Master Grade), PG (Perfect Grade), and SD Gundam kits. Entry-grade and panel-lined pre-built options available.",
787
+ rootId: "category-model-kits",
788
+ parentIds: ["category-model-kits"],
890
789
  childrenIds: [],
891
- tier: 0,
892
- path: "toys-baby",
893
- order: 9,
790
+ tier: 1,
791
+ path: "model-kits/gunpla",
792
+ order: 1,
894
793
  isLeaf: true,
895
- metrics: {
896
- productCount: 0,
897
- productIds: [],
898
- auctionCount: 0,
899
- auctionIds: [],
900
- totalProductCount: 0,
901
- totalAuctionCount: 0,
902
- totalItemCount: 0,
903
- lastUpdated: daysAgo(29),
904
- },
794
+ position: 0,
795
+ subtreeSize: 1,
796
+ metrics: emptyMetrics,
905
797
  isFeatured: true,
798
+ featuredPriority: 11,
906
799
  isBrand: false,
907
- featuredPriority: 13,
908
800
  seo: {
909
- title: "Toys & Baby | LetItRip",
910
- description: "Shop toys, games, and baby essentials",
911
- keywords: ["toys", "baby", "kids", "games", "educational toys"],
801
+ title: "Gunpla HG, MG, RG, PG Gundam Model Kits | LetItRip",
802
+ description: "Shop Gunpla High Grade, Real Grade, Master Grade, and Perfect Grade kits. Wing Zero, RX-78-2, Strike Freedom, and more.",
803
+ keywords: [
804
+ "gunpla",
805
+ "high grade",
806
+ "master grade",
807
+ "real grade",
808
+ "perfect grade",
809
+ "wing zero",
810
+ "rx-78-2",
811
+ ],
912
812
  },
913
813
  display: {
914
- icon: "🧸",
915
- coverImage: "https://images.unsplash.com/photo-1566576912321-d58ddd7a6088?w=800&h=800&fit=crop",
916
- color: "#8b5cf6",
814
+ icon: "⚙️",
815
+ coverImage: "https://images.unsplash.com/photo-1657664072470-99b02c2143f2?w=800&h=800&fit=crop",
816
+ color: "#10b981",
917
817
  showInMenu: true,
918
- showInFooter: false,
818
+ showInFooter: true,
919
819
  },
920
820
  isActive: true,
921
821
  isSearchable: true,
922
- showOnHomepage: false,
923
- createdBy: "user-admin-user-admin",
924
- createdAt: daysAgo(799),
925
- updatedAt: daysAgo(29),
926
- ancestors: [],
822
+ createdBy: "user-amit-sharma",
823
+ createdAt: daysAgo(400),
824
+ updatedAt: daysAgo(30),
825
+ ancestors: [{ id: "category-model-kits", name: "Model Kits & Gunpla", tier: 0 }],
927
826
  },
928
- // ROOT: Food & Groceries
827
+ // Model Kits > Non-Gundam Kits (tier 1)
929
828
  {
930
- id: "category-food-groceries",
931
- name: "Food & Groceries",
932
- slug: "food-groceries",
933
- description: "Fresh produce, packaged foods, and beverages",
934
- rootId: "category-food-groceries",
935
- parentIds: [],
829
+ id: "category-non-gundam-kits",
830
+ slug: "category-non-gundam-kits",
831
+ name: "Non-Gundam Kits",
832
+ description: "Non-Gundam plastic model kits — Kotobukiya Frame Arms and Megami Device, Bandai Star Wars and Ultraman kits, Hasegawa sci-fi and aircraft models.",
833
+ rootId: "category-model-kits",
834
+ parentIds: ["category-model-kits"],
936
835
  childrenIds: [],
937
- tier: 0,
938
- path: "food-groceries",
939
- order: 10,
836
+ tier: 1,
837
+ path: "model-kits/non-gundam-kits",
838
+ order: 2,
940
839
  isLeaf: true,
941
- metrics: {
942
- productCount: 0,
943
- productIds: [],
944
- auctionCount: 0,
945
- auctionIds: [],
946
- totalProductCount: 0,
947
- totalAuctionCount: 0,
948
- totalItemCount: 0,
949
- lastUpdated: daysAgo(29),
950
- },
951
- isFeatured: true,
840
+ position: 0,
841
+ subtreeSize: 1,
842
+ metrics: emptyMetrics,
843
+ isFeatured: false,
952
844
  isBrand: false,
953
- featuredPriority: 14,
954
845
  seo: {
955
- title: "Food & Groceries | LetItRip",
956
- description: "Shop fresh produce, packaged foods, and beverages",
957
- keywords: ["food", "groceries", "beverages", "fresh produce", "snacks"],
846
+ title: "Non-Gundam Model Kits — Frame Arms, Star Wars | LetItRip",
847
+ description: "Shop Kotobukiya Frame Arms, Megami Device, Bandai Star Wars model kits, and Hasegawa aircraft.",
848
+ keywords: [
849
+ "frame arms",
850
+ "megami device",
851
+ "kotobukiya kit",
852
+ "star wars model kit",
853
+ "hasegawa",
854
+ "non-gundam",
855
+ ],
958
856
  },
959
857
  display: {
960
- icon: "🛒",
961
- coverImage: "https://images.unsplash.com/photo-1498837167922-ddd27525d352?w=800&h=800&fit=crop",
962
- color: "#059669",
858
+ icon: "🔩",
859
+ coverImage: "https://images.unsplash.com/photo-1599409636295-e3cf3538f212?w=800&h=800&fit=crop",
963
860
  showInMenu: true,
964
861
  showInFooter: false,
965
862
  },
966
863
  isActive: true,
967
864
  isSearchable: true,
968
- showOnHomepage: false,
969
- createdBy: "user-admin-user-admin",
970
- createdAt: daysAgo(799),
971
- updatedAt: daysAgo(29),
972
- ancestors: [],
865
+ createdBy: "user-admin-letitrip",
866
+ createdAt: daysAgo(400),
867
+ updatedAt: daysAgo(30),
868
+ ancestors: [{ id: "category-model-kits", name: "Model Kits & Gunpla", tier: 0 }],
973
869
  },
974
- // BRAND: Apple
870
+ // ──────────────────────────────────────────────────────────────────────────
871
+ // ROOT 6: Vintage & Rare (tier 0)
872
+ // ──────────────────────────────────────────────────────────────────────────
975
873
  {
976
- id: "category-brand-apple",
977
- name: "Apple",
978
- slug: "apple",
979
- description: "Official Apple products including iPhone, Mac, iPad, and accessories",
980
- rootId: "category-brand-apple",
874
+ id: "category-vintage-rare",
875
+ slug: "category-vintage-rare",
876
+ name: "Vintage & Rare",
877
+ description: "Rare, vintage, and limited-edition collectibles. 1st-edition Pokémon cards, original-run Beyblade tops, production cels, signed merchandise, and graded slabs.",
878
+ rootId: "category-vintage-rare",
981
879
  parentIds: [],
982
- childrenIds: [],
880
+ childrenIds: [
881
+ "category-vintage-tcg",
882
+ "category-vintage-figures",
883
+ "category-limited-exclusives",
884
+ ],
983
885
  tier: 0,
984
- path: "brand/apple",
985
- order: 1,
986
- isLeaf: true,
987
- metrics: {
988
- productCount: 3,
989
- productIds: [
990
- "product-iphone-15-pro-max-smartphones-new-techhub-electronics-1",
991
- "product-macbook-pro-16-m3-max-laptops-computers-new-techhub-electronics-1",
992
- "product-sony-wh-1000xm5-headphones-audio-new-techhub-electronics-1",
993
- ],
994
- auctionCount: 2,
995
- auctionIds: [
996
- "auction-iphone15-sealed-bundle-techhub-1",
997
- "product-macbook-pro-m3-auction-electronics-techhub-1",
998
- ],
999
- totalProductCount: 3,
1000
- totalAuctionCount: 2,
1001
- totalItemCount: 5,
1002
- lastUpdated: daysAgo(3),
1003
- },
886
+ path: "vintage-rare",
887
+ order: 6,
888
+ isLeaf: false,
889
+ position: 0,
890
+ subtreeSize: 4,
891
+ metrics: emptyMetrics,
1004
892
  isFeatured: false,
1005
- isBrand: true,
893
+ isBrand: false,
1006
894
  seo: {
1007
- title: "Apple Products | LetItRip",
1008
- description: "Shop genuine Apple products iPhone, MacBook, iPad, and accessories",
1009
- keywords: ["apple", "iphone", "macbook", "ipad", "airpods"],
1010
- ogImage: "https://images.unsplash.com/photo-1611186871348-b1ce696e52c9?w=1200&h=630&fit=crop",
1011
- },
1012
- display: {
1013
- icon: "🍎",
1014
- coverImage: "https://images.unsplash.com/photo-1611186871348-b1ce696e52c9?w=800&h=800&fit=crop",
1015
- color: "#555555",
1016
- showInMenu: false,
1017
- showInFooter: false,
1018
- },
1019
- isActive: true,
1020
- isSearchable: true,
1021
- showOnHomepage: false,
1022
- createdBy: "user-admin-user-admin",
1023
- createdAt: daysAgo(799),
1024
- updatedAt: daysAgo(3),
1025
- ancestors: [],
1026
- },
1027
- // BRAND: Samsung
1028
- {
1029
- id: "category-brand-samsung",
1030
- name: "Samsung",
1031
- slug: "samsung",
1032
- description: "Samsung electronics including smartphones, TVs, and home appliances",
1033
- rootId: "category-brand-samsung",
1034
- parentIds: [],
1035
- childrenIds: [],
1036
- tier: 0,
1037
- path: "brand/samsung",
1038
- order: 2,
1039
- isLeaf: true,
1040
- metrics: {
1041
- productCount: 2,
1042
- productIds: [
1043
- "product-samsung-galaxy-s24-ultra-smartphones-new-techhub-electronics-1",
1044
- "product-google-pixel-8-pro-smartphones-new-techhub-electronics-1",
895
+ title: "Vintage & Rare Collectibles | LetItRip",
896
+ description: "Shop rare vintage collectibles 1st edition Pokémon cards, graded slabs, original anime cels, and limited exclusives.",
897
+ keywords: [
898
+ "vintage collectibles",
899
+ "rare collectibles",
900
+ "1st edition pokemon",
901
+ "graded slab",
902
+ "anime cel",
903
+ "limited edition",
1045
904
  ],
1046
- auctionCount: 0,
1047
- auctionIds: [],
1048
- totalProductCount: 2,
1049
- totalAuctionCount: 0,
1050
- totalItemCount: 2,
1051
- lastUpdated: daysAgo(3),
1052
- },
1053
- isFeatured: false,
1054
- isBrand: true,
1055
- seo: {
1056
- title: "Samsung Products | LetItRip",
1057
- description: "Shop Samsung smartphones, TVs, and home appliances",
1058
- keywords: ["samsung", "galaxy", "samsung tv", "samsung phone"],
1059
- ogImage: "https://images.unsplash.com/photo-1610945264803-c22b62831028?w=1200&h=630&fit=crop",
905
+ ogImage: "https://images.unsplash.com/photo-1578301978162-7aae4d755744?w=1200&h=630&fit=crop",
1060
906
  },
1061
907
  display: {
1062
- icon: "📺",
1063
- coverImage: "https://images.unsplash.com/photo-1610945264803-c22b62831028?w=800&h=800&fit=crop",
1064
- color: "#1428a0",
1065
- showInMenu: false,
1066
- showInFooter: false,
908
+ icon: "💎",
909
+ coverImage: "https://images.unsplash.com/photo-1578301978162-7aae4d755744?w=800&h=800&fit=crop",
910
+ color: "#d97706",
911
+ showInMenu: true,
912
+ showInFooter: true,
1067
913
  },
1068
914
  isActive: true,
1069
915
  isSearchable: true,
1070
916
  showOnHomepage: false,
1071
- createdBy: "user-admin-user-admin",
1072
- createdAt: daysAgo(799),
1073
- updatedAt: daysAgo(3),
917
+ createdBy: "user-admin-letitrip",
918
+ createdAt: daysAgo(400),
919
+ updatedAt: daysAgo(30),
1074
920
  ancestors: [],
1075
921
  },
1076
- // BRAND: Sony
922
+ // Vintage & Rare > Vintage TCG (tier 1)
1077
923
  {
1078
- id: "category-brand-sony",
1079
- name: "Sony",
1080
- slug: "sony",
1081
- description: "Sony electronics including headphones, cameras, and gaming consoles",
1082
- rootId: "category-brand-sony",
1083
- parentIds: [],
924
+ id: "category-vintage-tcg",
925
+ slug: "category-vintage-tcg",
926
+ name: "Vintage TCG",
927
+ description: "Vintage and 1st-edition trading cards. PSA/BGS graded Pokémon Base Set, Jungle, Fossil, and Team Rocket. First-edition Yu-Gi-Oh! Blue-Eyes and LOB.",
928
+ rootId: "category-vintage-rare",
929
+ parentIds: ["category-vintage-rare"],
1084
930
  childrenIds: [],
1085
- tier: 0,
1086
- path: "brand/sony",
1087
- order: 3,
931
+ tier: 1,
932
+ path: "vintage-rare/vintage-tcg",
933
+ order: 1,
1088
934
  isLeaf: true,
1089
- metrics: {
1090
- productCount: 1,
1091
- productIds: [
1092
- "product-sony-wh-1000xm5-headphones-audio-new-techhub-electronics-1",
1093
- ],
1094
- auctionCount: 2,
1095
- auctionIds: [
1096
- "auction-ps5-slim-gaming-console-techhub-1",
1097
- "auction-sony-alpha-7iv-camera-techhub-1",
1098
- ],
1099
- totalProductCount: 1,
1100
- totalAuctionCount: 2,
1101
- totalItemCount: 3,
1102
- lastUpdated: daysAgo(3),
1103
- },
935
+ position: 0,
936
+ subtreeSize: 1,
937
+ metrics: emptyMetrics,
1104
938
  isFeatured: false,
1105
- isBrand: true,
939
+ isBrand: false,
1106
940
  seo: {
1107
- title: "Sony Products | LetItRip",
1108
- description: "Shop Sony headphones, cameras, and PlayStation gaming consoles",
1109
- keywords: ["sony", "playstation", "sony headphones", "sony camera"],
1110
- ogImage: "https://images.unsplash.com/photo-1606144042614-b2417e99c4e3?w=1200&h=630&fit=crop",
941
+ title: "Vintage TCG — 1st Edition Pokémon & Yu-Gi-Oh! | LetItRip",
942
+ description: "Shop 1st edition and vintage trading cards. PSA/BGS graded Pokémon Base Set and Yu-Gi-Oh! LOB.",
943
+ keywords: [
944
+ "1st edition pokemon",
945
+ "base set charizard",
946
+ "psa graded",
947
+ "bgs graded",
948
+ "vintage tcg",
949
+ "lob yugioh",
950
+ ],
1111
951
  },
1112
952
  display: {
1113
- icon: "🎮",
1114
- coverImage: "https://images.unsplash.com/photo-1606144042614-b2417e99c4e3?w=800&h=800&fit=crop",
1115
- color: "#000000",
1116
- showInMenu: false,
953
+ icon: "🃏",
954
+ coverImage: "https://images.unsplash.com/photo-1607604276583-eef5d076aa5f?w=800&h=800&fit=crop",
955
+ color: "#d97706",
956
+ showInMenu: true,
1117
957
  showInFooter: false,
1118
958
  },
1119
959
  isActive: true,
1120
960
  isSearchable: true,
1121
- showOnHomepage: false,
1122
- createdBy: "user-admin-user-admin",
1123
- createdAt: daysAgo(799),
1124
- updatedAt: daysAgo(3),
1125
- ancestors: [],
961
+ createdBy: "user-admin-letitrip",
962
+ createdAt: daysAgo(400),
963
+ updatedAt: daysAgo(30),
964
+ ancestors: [{ id: "category-vintage-rare", name: "Vintage & Rare", tier: 0 }],
1126
965
  },
1127
- // BRAND: Nike
966
+ // Vintage & Rare > Vintage Figures (tier 1)
1128
967
  {
1129
- id: "category-brand-nike",
1130
- name: "Nike",
1131
- slug: "nike",
1132
- description: "Nike sportswear, footwear, and athletic equipment",
1133
- rootId: "category-brand-nike",
1134
- parentIds: [],
968
+ id: "category-vintage-figures",
969
+ slug: "category-vintage-figures",
970
+ name: "Vintage Figures",
971
+ description: "Vintage and rare anime figures — early-run garage kits, discontinued GSC, vintage SH Figuarts, original Revoltech, and original Beyblade tops from 1999–2009.",
972
+ rootId: "category-vintage-rare",
973
+ parentIds: ["category-vintage-rare"],
1135
974
  childrenIds: [],
1136
- tier: 0,
1137
- path: "brand/nike",
1138
- order: 4,
975
+ tier: 1,
976
+ path: "vintage-rare/vintage-figures",
977
+ order: 2,
1139
978
  isLeaf: true,
1140
- metrics: {
1141
- productCount: 1,
1142
- productIds: [
1143
- "product-mens-cotton-casual-shirt-mens-fashion-new-fashion-boutique-1",
1144
- ],
1145
- auctionCount: 1,
1146
- auctionIds: ["product-limited-air-jordan-sneakers-auction-artisan-1"],
1147
- totalProductCount: 1,
1148
- totalAuctionCount: 1,
1149
- totalItemCount: 2,
1150
- lastUpdated: daysAgo(3),
1151
- },
979
+ position: 0,
980
+ subtreeSize: 1,
981
+ metrics: emptyMetrics,
1152
982
  isFeatured: false,
1153
- isBrand: true,
983
+ isBrand: false,
1154
984
  seo: {
1155
- title: "Nike Products | LetItRip",
1156
- description: "Shop Nike sportswear, running shoes, and athletic gear",
1157
- keywords: ["nike", "nike shoes", "sportswear", "running", "athletic"],
1158
- ogImage: "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=1200&h=630&fit=crop",
985
+ title: "Vintage Anime Figures & Rare Collectibles | LetItRip",
986
+ description: "Shop rare vintage anime figures, discontinued Nendoroids, original Revoltech, and early-run Beyblade tops.",
987
+ keywords: [
988
+ "vintage figure",
989
+ "discontinued nendoroid",
990
+ "rare anime figure",
991
+ "original beyblade",
992
+ "garage kit",
993
+ ],
1159
994
  },
1160
995
  display: {
1161
- icon: "👟",
1162
- coverImage: "https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=800&h=800&fit=crop",
1163
- color: "#111111",
1164
- showInMenu: false,
996
+ icon: "🏺",
997
+ coverImage: "https://images.unsplash.com/photo-1578632767115-351597cf2477?w=800&h=800&fit=crop",
998
+ showInMenu: true,
1165
999
  showInFooter: false,
1166
1000
  },
1167
1001
  isActive: true,
1168
1002
  isSearchable: true,
1169
- showOnHomepage: false,
1170
- createdBy: "user-admin-user-admin",
1171
- createdAt: daysAgo(799),
1172
- updatedAt: daysAgo(3),
1173
- ancestors: [],
1003
+ createdBy: "user-admin-letitrip",
1004
+ createdAt: daysAgo(400),
1005
+ updatedAt: daysAgo(30),
1006
+ ancestors: [{ id: "category-vintage-rare", name: "Vintage & Rare", tier: 0 }],
1174
1007
  },
1175
- // BRAND: Adidas
1008
+ // Vintage & Rare > Limited Exclusives (tier 1)
1176
1009
  {
1177
- id: "category-brand-adidas",
1178
- name: "Adidas",
1179
- slug: "adidas",
1180
- description: "Adidas sportswear, footwear, and accessories",
1181
- rootId: "category-brand-adidas",
1182
- parentIds: [],
1010
+ id: "category-limited-exclusives",
1011
+ slug: "category-limited-exclusives",
1012
+ name: "Limited & Exclusives",
1013
+ description: "Event-exclusive, convention-only, and limited-run collectibles. Wonder Festival exclusive figures, Pokémon Center exclusives, Takara Tomy convention tops, and signed merchandise.",
1014
+ rootId: "category-vintage-rare",
1015
+ parentIds: ["category-vintage-rare"],
1183
1016
  childrenIds: [],
1184
- tier: 0,
1185
- path: "brand/adidas",
1186
- order: 5,
1017
+ tier: 1,
1018
+ path: "vintage-rare/limited-exclusives",
1019
+ order: 3,
1187
1020
  isLeaf: true,
1188
- metrics: {
1189
- productCount: 1,
1190
- productIds: [
1191
- "product-yoga-mat-with-carrying-bag-sports-outdoors-new-home-essentials-1",
1192
- ],
1193
- auctionCount: 0,
1194
- auctionIds: [],
1195
- totalProductCount: 1,
1196
- totalAuctionCount: 0,
1197
- totalItemCount: 1,
1198
- lastUpdated: daysAgo(3),
1199
- },
1021
+ position: 0,
1022
+ subtreeSize: 1,
1023
+ metrics: emptyMetrics,
1200
1024
  isFeatured: false,
1201
- isBrand: true,
1025
+ isBrand: false,
1202
1026
  seo: {
1203
- title: "Adidas Products | LetItRip",
1204
- description: "Shop Adidas sportswear, shoes, and accessories",
1205
- keywords: ["adidas", "adidas shoes", "sportswear", "running"],
1206
- ogImage: "https://images.unsplash.com/photo-1605348532760-6753d2c43329?w=1200&h=630&fit=crop",
1027
+ title: "Limited Edition & Convention Exclusives | LetItRip",
1028
+ description: "Shop Wonder Festival, Pokémon Center, and event-exclusive limited collectibles. Convention-only figures and signed merchandise.",
1029
+ keywords: [
1030
+ "wonder festival exclusive",
1031
+ "pokemon center exclusive",
1032
+ "limited edition figure",
1033
+ "convention exclusive",
1034
+ "signed collectible",
1035
+ ],
1207
1036
  },
1208
1037
  display: {
1209
- icon: "👕",
1210
- coverImage: "https://images.unsplash.com/photo-1605348532760-6753d2c43329?w=800&h=800&fit=crop",
1211
- color: "#000000",
1212
- showInMenu: false,
1038
+ icon: "",
1039
+ coverImage: "https://images.unsplash.com/photo-1614108831137-558fffac9ead?w=800&h=800&fit=crop",
1040
+ showInMenu: true,
1213
1041
  showInFooter: false,
1214
1042
  },
1215
1043
  isActive: true,
1216
1044
  isSearchable: true,
1217
- showOnHomepage: false,
1218
- createdBy: "user-admin-user-admin",
1219
- createdAt: daysAgo(799),
1220
- updatedAt: daysAgo(3),
1221
- ancestors: [],
1045
+ createdBy: "user-admin-letitrip",
1046
+ createdAt: daysAgo(400),
1047
+ updatedAt: daysAgo(30),
1048
+ ancestors: [{ id: "category-vintage-rare", name: "Vintage & Rare", tier: 0 }],
1222
1049
  },
1223
1050
  ];
1051
+ const STORE_CREATOR = {
1052
+ "user-aryan-kapoor": { createdByType: "store", createdByStoreId: "store-pokemon-palace", createdByStoreName: "Pokémon Palace" },
1053
+ "user-nisha-reddy": { createdByType: "store", createdByStoreId: "store-cardgame-hub", createdByStoreName: "CardGame Hub" },
1054
+ "user-vikram-mehta": { createdByType: "store", createdByStoreId: "store-diecast-depot", createdByStoreName: "Diecast Depot" },
1055
+ "user-rohit-joshi": { createdByType: "store", createdByStoreId: "store-beyblade-arena", createdByStoreName: "Beyblade Arena" },
1056
+ "user-amit-sharma": { createdByType: "store", createdByStoreId: "store-gundam-galaxy", createdByStoreName: "Gundam Galaxy" },
1057
+ "user-priya-singh": { createdByType: "store", createdByStoreId: "store-tokyo-toys-india", createdByStoreName: "Tokyo Toys India" },
1058
+ };
1059
+ export const categoriesSeedData = rawCategories.map((c) => ({
1060
+ ...c,
1061
+ ...(c.createdBy && STORE_CREATOR[c.createdBy]
1062
+ ? STORE_CREATOR[c.createdBy]
1063
+ : { createdByType: "admin" }),
1064
+ }));