@mohasinac/appkit 4.1.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/dist/_internal/client/features/maintenance/index.d.ts +2 -0
  2. package/dist/_internal/client/features/maintenance/index.js +1 -0
  3. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.d.ts +9 -0
  4. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +55 -0
  5. package/dist/_internal/server/features/auctions/index.d.ts +1 -1
  6. package/dist/_internal/server/features/auctions/index.js +1 -1
  7. package/dist/_internal/server/features/auctions/service.js +2 -2
  8. package/dist/_internal/server/features/checkout/actions.d.ts +15 -0
  9. package/dist/_internal/server/features/checkout/actions.js +245 -182
  10. package/dist/_internal/server/features/maintenance/cloud-logs-data.d.ts +50 -0
  11. package/dist/_internal/server/features/maintenance/cloud-logs-data.js +152 -0
  12. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  13. package/dist/_internal/server/functions/scheduled.js +9 -1
  14. package/dist/_internal/server/jobs/core/jobRunners.js +10 -0
  15. package/dist/_internal/server/jobs/core/newsletterExport.d.ts +15 -0
  16. package/dist/_internal/server/jobs/core/newsletterExport.js +43 -0
  17. package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +4 -12
  18. package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -3
  19. package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +2 -0
  20. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +1 -0
  21. package/dist/_internal/server/jobs/core/onProductWrite.js +14 -2
  22. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +1 -0
  23. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +1 -0
  24. package/dist/_internal/server/jobs/core/revenueRollup.d.ts +13 -0
  25. package/dist/_internal/server/jobs/core/revenueRollup.js +22 -0
  26. package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +35 -0
  27. package/dist/_internal/server/jobs/core/whatsappNotify.js +82 -0
  28. package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
  29. package/dist/_internal/server/jobs/handlers/index.js +1 -0
  30. package/dist/_internal/server/jobs/handlers/revenueRollup.d.ts +2 -0
  31. package/dist/_internal/server/jobs/handlers/revenueRollup.js +2 -0
  32. package/dist/_internal/shared/features/auctions/config.d.ts +1 -1
  33. package/dist/_internal/shared/features/auctions/config.js +1 -1
  34. package/dist/_internal/shared/features/auctions/schema.js +1 -1
  35. package/dist/_internal/shared/features/cart/schema.js +2 -2
  36. package/dist/_internal/shared/features/checkout/config.d.ts +7 -0
  37. package/dist/_internal/shared/features/checkout/config.js +7 -0
  38. package/dist/_internal/shared/features/events/schema.js +1 -1
  39. package/dist/_internal/shared/features/orders/schema.js +1 -1
  40. package/dist/_internal/shared/features/products/schema.js +3 -3
  41. package/dist/_internal/shared/features/promotions/schema.js +3 -3
  42. package/dist/_internal/shared/fees/calculator.d.ts +32 -7
  43. package/dist/_internal/shared/fees/calculator.js +25 -0
  44. package/dist/client.d.ts +4 -4
  45. package/dist/client.js +4 -2
  46. package/dist/constants/api-endpoints.d.ts +9 -6
  47. package/dist/constants/api-endpoints.js +3 -2
  48. package/dist/contracts/client-payment-gateway.d.ts +1 -2
  49. package/dist/features/about/components/AboutView.d.ts +6 -16
  50. package/dist/features/about/components/AboutView.js +3 -3
  51. package/dist/features/about/components/FeesView.js +18 -0
  52. package/dist/features/about/index.d.ts +2 -1
  53. package/dist/features/about/schemas/firestore.d.ts +47 -0
  54. package/dist/features/about/schemas/firestore.js +6 -0
  55. package/dist/features/about/schemas/index.d.ts +210 -0
  56. package/dist/features/about/schemas/index.js +45 -0
  57. package/dist/features/account/hooks/useProfile.js +3 -0
  58. package/dist/features/admin/actions/notification-actions.d.ts +4 -1
  59. package/dist/features/admin/actions/notification-actions.js +56 -10
  60. package/dist/features/admin/components/AdminAdsView.js +1 -1
  61. package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +6 -0
  62. package/dist/features/admin/components/AdminCarouselGroupEditorView.js +50 -0
  63. package/dist/features/admin/components/AdminCartsView.js +16 -3
  64. package/dist/features/admin/components/AdminCouponEditorView.js +2 -2
  65. package/dist/features/admin/components/AdminCouponsView.js +14 -4
  66. package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -42
  67. package/dist/features/admin/components/AdminMediaView.js +1 -1
  68. package/dist/features/admin/components/AdminNewsletterView.js +42 -11
  69. package/dist/features/admin/components/AdminNotificationsView.js +31 -19
  70. package/dist/features/admin/components/AdminOrdersView.js +7 -0
  71. package/dist/features/admin/components/AdminPayoutsView.js +18 -3
  72. package/dist/features/admin/components/AdminProductsView.js +17 -2
  73. package/dist/features/admin/components/AdminReviewsView.js +16 -2
  74. package/dist/features/admin/components/AdminScammersView.js +7 -0
  75. package/dist/features/admin/components/AdminSectionsView.js +4 -0
  76. package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
  77. package/dist/features/admin/components/AdminSiteSettingsView.js +127 -8
  78. package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
  79. package/dist/features/admin/components/AdminStoreEditorView.js +4 -4
  80. package/dist/features/admin/components/AdminStoresView.js +1 -1
  81. package/dist/features/admin/components/AdminSupportTicketDetailView.js +23 -5
  82. package/dist/features/admin/components/AdminSupportTicketsView.js +20 -2
  83. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
  84. package/dist/features/admin/components/AdminTesterChecklistView.js +8 -0
  85. package/dist/features/admin/components/index.d.ts +2 -0
  86. package/dist/features/admin/components/index.js +1 -0
  87. package/dist/features/admin/constants/filter-tabs.d.ts +55 -41
  88. package/dist/features/admin/constants/filter-tabs.js +55 -27
  89. package/dist/features/admin/repository/analytics-rollup.repository.d.ts +25 -0
  90. package/dist/features/admin/repository/analytics-rollup.repository.js +31 -0
  91. package/dist/features/admin/repository/site-settings.repository.js +8 -1
  92. package/dist/features/admin/schemas/firestore.d.ts +46 -0
  93. package/dist/features/admin/schemas/firestore.js +62 -24
  94. package/dist/features/auctions/actions/bid-actions.js +1 -1
  95. package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
  96. package/dist/features/auctions/components/AuctionsListView.js +8 -1
  97. package/dist/features/auth/components/LoginForm.js +2 -2
  98. package/dist/features/auth/components/RegisterForm.js +2 -2
  99. package/dist/features/auth/permissions/constants.d.ts +16 -0
  100. package/dist/features/auth/permissions/constants.js +53 -0
  101. package/dist/features/auth/schemas/firestore.js +1 -0
  102. package/dist/features/blog/components/BlogFilters.js +1 -1
  103. package/dist/features/cart/schemas/firestore.d.ts +1 -1
  104. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  105. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  106. package/dist/features/events/components/EventFilters.js +2 -0
  107. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  108. package/dist/features/layout/BackToTop.d.ts +9 -5
  109. package/dist/features/layout/BackToTop.js +17 -21
  110. package/dist/features/layout/TitleBarLayout.d.ts +2 -2
  111. package/dist/features/layout/TitleBarLayout.js +4 -4
  112. package/dist/features/media/AvatarUpload.js +7 -3
  113. package/dist/features/media/MediaVideo.js +1 -1
  114. package/dist/features/media/finalize.d.ts +9 -13
  115. package/dist/features/media/finalize.js +23 -74
  116. package/dist/features/media/server.d.ts +1 -1
  117. package/dist/features/media/server.js +1 -1
  118. package/dist/features/orders/actions/refund-actions.js +1 -0
  119. package/dist/features/orders/hooks/useOrders.js +16 -4
  120. package/dist/features/orders/schemas/firestore.d.ts +19 -5
  121. package/dist/features/payments/schemas/firestore.d.ts +2 -2
  122. package/dist/features/pre-orders/components/PreOrdersListView.js +7 -0
  123. package/dist/features/products/components/ArtStickersListView.js +5 -0
  124. package/dist/features/products/components/ProductDetailPageView.d.ts +7 -1
  125. package/dist/features/products/components/ProductForm.js +14 -1
  126. package/dist/features/products/components/ProductsIndexPageView.js +7 -0
  127. package/dist/features/products/constants/action-defs.d.ts +29 -3
  128. package/dist/features/products/constants/action-defs.js +77 -1
  129. package/dist/features/products/schemas/firestore.d.ts +1 -1
  130. package/dist/features/products/schemas/product-templates.d.ts +1 -1
  131. package/dist/features/products/types/index.d.ts +4 -0
  132. package/dist/features/scams/schemas/index.js +2 -2
  133. package/dist/features/search/components/Search.js +3 -3
  134. package/dist/features/seller/components/SellerAuctionsView.js +27 -2
  135. package/dist/features/seller/components/SellerOrdersView.js +2 -2
  136. package/dist/features/seller/components/SellerPayoutsView.js +24 -10
  137. package/dist/features/seller/components/SellerPreOrdersView.js +12 -4
  138. package/dist/features/seller/components/SellerPrizeDrawsView.js +23 -5
  139. package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
  140. package/dist/features/seller/components/SellerProductShell.js +1 -1
  141. package/dist/features/seller/components/SellerProductsView.js +8 -6
  142. package/dist/features/seller/components/SellerReviewsView.js +27 -6
  143. package/dist/features/seller/components/index.d.ts +0 -2
  144. package/dist/features/seller/components/index.js +0 -1
  145. package/dist/features/stores/components/StoreListingsGuideView.js +2 -1
  146. package/dist/features/stores/components/StoreProductsView.js +1 -1
  147. package/dist/features/stores/schemas/firestore.d.ts +11 -0
  148. package/dist/features/stores/schemas/firestore.js +5 -0
  149. package/dist/features/stores/schemas/index.d.ts +2 -2
  150. package/dist/features/tester/actions/checklist-item-actions.d.ts +6 -0
  151. package/dist/features/tester/actions/checklist-item-actions.js +2 -0
  152. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +13 -2
  153. package/dist/features/tester/components/AdminTesterFeedbackListView.js +2 -1
  154. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +9 -5
  155. package/dist/features/tester/components/TesterHubView.js +34 -21
  156. package/dist/features/tester/repository/tester-checklist-item.repository.js +1 -0
  157. package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +18 -4
  158. package/dist/features/tester/repository/tester-checklist-response.repository.js +43 -8
  159. package/dist/features/tester/schemas/firestore.d.ts +8 -3
  160. package/dist/features/tester/schemas/firestore.js +6 -0
  161. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +21 -9
  162. package/dist/features/tester/utils/phases.d.ts +31 -0
  163. package/dist/features/tester/utils/phases.js +46 -0
  164. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +1 -1
  165. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +10 -1
  166. package/dist/features/whatsapp-bot/helpers/whatsapp.js +47 -0
  167. package/dist/features/whatsapp-bot/types/index.d.ts +20 -1
  168. package/dist/features/wishlist/types/index.d.ts +3 -0
  169. package/dist/index.d.ts +15 -6
  170. package/dist/index.js +19 -9
  171. package/dist/next/components/NotFoundView.js +2 -1
  172. package/dist/next/routing/route-map.d.ts +6 -12
  173. package/dist/next/routing/route-map.js +3 -4
  174. package/dist/providers/db-firebase/admin.d.ts +1 -0
  175. package/dist/providers/db-firebase/admin.js +1 -1
  176. package/dist/repositories/index.d.ts +2 -0
  177. package/dist/repositories/index.js +1 -0
  178. package/dist/schemas/registry.d.ts +2 -2
  179. package/dist/seed/addresses-seed-data.js +18 -18
  180. package/dist/seed/bids-seed-data.js +4 -4
  181. package/dist/seed/blog-posts-seed-data.js +82 -82
  182. package/dist/seed/carousel-slides-seed-data.js +14 -10
  183. package/dist/seed/carousels-seed-data.js +3 -3
  184. package/dist/seed/cart-seed-data.js +92 -92
  185. package/dist/seed/claimed-coupons-seed-data.js +10 -10
  186. package/dist/seed/conversations-seed-data.js +75 -75
  187. package/dist/seed/coupon-usage-seed-data.js +12 -12
  188. package/dist/seed/coupons-seed-data.js +41 -41
  189. package/dist/seed/events-seed-data.js +105 -105
  190. package/dist/seed/grouped-listings-seed-data.d.ts +2 -137
  191. package/dist/seed/grouped-listings-seed-data.js +79 -143
  192. package/dist/seed/history-seed-data.js +38 -38
  193. package/dist/seed/homepage-sections-seed-data.js +9 -9
  194. package/dist/seed/notifications-seed-data.js +56 -56
  195. package/dist/seed/offers-seed-data.js +91 -91
  196. package/dist/seed/orders-seed-data.js +121 -106
  197. package/dist/seed/payouts-seed-data.js +42 -42
  198. package/dist/seed/products-auctions-seed-data.js +10 -2
  199. package/dist/seed/products-standard-seed-data.js +40 -8
  200. package/dist/seed/reviews-seed-data.js +42 -23
  201. package/dist/seed/scammers-seed-data.js +22 -22
  202. package/dist/seed/sessions-seed-data.js +7 -7
  203. package/dist/seed/shipments-seed-data.js +10 -10
  204. package/dist/seed/site-settings-seed-data.js +89 -0
  205. package/dist/seed/store-addresses-seed-data.js +2 -2
  206. package/dist/seed/store-extensions-seed-data.js +93 -93
  207. package/dist/seed/stores-seed-data.js +2 -0
  208. package/dist/seed/support-tickets-seed-data.js +47 -47
  209. package/dist/seed/users-seed-data.js +55 -89
  210. package/dist/seed/wishlists-seed-data.js +22 -22
  211. package/dist/server.d.ts +4 -3
  212. package/dist/server.js +7 -7
  213. package/dist/styles.css +1 -1
  214. package/dist/tailwind-utilities.css +1 -1
  215. package/dist/ui/components/PageLoader.js +8 -3
  216. package/dist/ui/components/Select.d.ts +8 -1
  217. package/dist/ui/components/Select.js +2 -2
  218. package/dist/ui/components/SiteMark.d.ts +23 -0
  219. package/dist/ui/components/SiteMark.js +76 -0
  220. package/dist/ui/index.d.ts +2 -0
  221. package/dist/ui/index.js +1 -0
  222. package/dist/validation/schemas.d.ts +0 -2
  223. package/dist/validation/schemas.js +0 -2
  224. package/package.json +1 -1
  225. package/scripts/seed-cli.mjs +17 -15
@@ -1,6 +1,6 @@
1
1
  /*
2
- * WHY: Seeds notifications for YGO marketplace — covers all notification types across 3 users.
3
- * WHAT: 23 notifications (10 Yugi, 8 Kaiba, 5 Admin). Mix of read/unread, all notification types.
2
+ * WHY: Seeds notifications for the Beyblade collectibles marketplace — covers all notification types across 3 users.
3
+ * WHAT: 23 notifications (10 Rehan, 8 Tyson, 5 Admin). Mix of read/unread, all notification types.
4
4
  *
5
5
  * EXPORTS:
6
6
  * notificationsSeedData — Array of Partial<NotificationDocument> for seed runner
@@ -18,18 +18,18 @@ const NOW = new Date();
18
18
  const hoursAgo = (n) => new Date(NOW.getTime() - n * 3600000);
19
19
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
20
20
  export const notificationsSeedData = [
21
- // ── Yugi's notifications (10) — buyer-focused ─────────────────────────────
21
+ // ── Rehan's notifications (10) — buyer-focused ────────────────────────────
22
22
  {
23
23
  id: "notif-yugi-outbid-001",
24
24
  userId: "user-yugi-muto",
25
25
  type: NOTIFICATION_FIELDS.TYPE_VALUES.BID_OUTBID,
26
26
  priority: "high",
27
27
  title: "You've been outbid!",
28
- message: "Someone placed a higher bid on Blue-Eyes White Dragon LOB 1st Ed PSA 10. Current bid: ₹1,50,000.",
29
- actionUrl: "/auctions/auction-blue-eyes-lob-1st-psa10",
28
+ message: "Someone placed a higher bid on Beyblade Original Dragoon Storm. Current bid: ₹4,500.",
29
+ actionUrl: "/auctions/auction-beyblade-original-dragoon-storm",
30
30
  actionLabel: "Place New Bid",
31
31
  isRead: false,
32
- relatedId: "auction-blue-eyes-lob-1st-psa10",
32
+ relatedId: "auction-beyblade-original-dragoon-storm",
33
33
  relatedType: "product",
34
34
  createdAt: hoursAgo(2),
35
35
  updatedAt: hoursAgo(2),
@@ -40,7 +40,7 @@ export const notificationsSeedData = [
40
40
  type: NOTIFICATION_FIELDS.TYPE_VALUES.ORDER_SHIPPED,
41
41
  priority: "normal",
42
42
  title: "Your order has shipped!",
43
- message: "Order #order-1-20260515-abc123 — Dark Magician LOB is on its way. Track your shipment.",
43
+ message: "Order #order-1-20260515-abc123 — Beyblade Original Dranzer S is on its way. Track your shipment.",
44
44
  actionUrl: "/user/orders/order-1-20260515-abc123",
45
45
  actionLabel: "Track Order",
46
46
  isRead: false,
@@ -71,11 +71,11 @@ export const notificationsSeedData = [
71
71
  type: NOTIFICATION_FIELDS.TYPE_VALUES.PRODUCT_AVAILABLE,
72
72
  priority: "normal",
73
73
  title: "Price drop on your wishlist item!",
74
- message: "Pot of Greed LOB dropped from ₹14,999 to ₹12,999. Get it before it's gone.",
75
- actionUrl: "/products/product-pot-of-greed-lob",
74
+ message: "Beyblade Metal Storm Pegasus dropped from ₹1,999 to ₹1,699. Get it before it's gone.",
75
+ actionUrl: "/products/product-beyblade-metal-storm-pegasus",
76
76
  actionLabel: "View Product",
77
77
  isRead: false,
78
- relatedId: "product-pot-of-greed-lob",
78
+ relatedId: "product-beyblade-metal-storm-pegasus",
79
79
  relatedType: "product",
80
80
  createdAt: daysAgo(1),
81
81
  updatedAt: daysAgo(1),
@@ -86,12 +86,12 @@ export const notificationsSeedData = [
86
86
  type: NOTIFICATION_FIELDS.TYPE_VALUES.BID_WON,
87
87
  priority: "high",
88
88
  title: "Congratulations! You won the auction!",
89
- message: "You won the Mirror Force MRD 1st Ed auction for ₹15,000. Complete payment within 48 hours.",
90
- actionUrl: "/auctions/auction-mirror-force-mrd-1st-psa10",
89
+ message: "You won the Beyblade Metal Lightning L-Drago auction for ₹5,200. Complete payment within 48 hours.",
90
+ actionUrl: "/auctions/auction-beyblade-metal-lightning-l-drago",
91
91
  actionLabel: "Pay Now",
92
92
  isRead: true,
93
93
  readAt: daysAgo(3),
94
- relatedId: "auction-mirror-force-mrd-1st-psa10",
94
+ relatedId: "auction-beyblade-metal-lightning-l-drago",
95
95
  relatedType: "product",
96
96
  createdAt: daysAgo(5),
97
97
  updatedAt: daysAgo(3),
@@ -101,13 +101,13 @@ export const notificationsSeedData = [
101
101
  userId: "user-yugi-muto",
102
102
  type: NOTIFICATION_FIELDS.TYPE_VALUES.SYSTEM,
103
103
  priority: "high",
104
- title: "You won the LOB 1st Edition Raffle!",
105
- message: "Congratulations! You've been selected as the winner of the Complete LOB 1st Edition Set raffle.",
106
- actionUrl: "/events/event-won-complete-lob-raffle",
104
+ title: "You won the Original Series Raffle!",
105
+ message: "Congratulations! You've been selected as the winner of the Complete Original Series Collectors Set raffle.",
106
+ actionUrl: "/events/event-won-original-set-raffle",
107
107
  actionLabel: "View Details",
108
108
  isRead: true,
109
109
  readAt: daysAgo(4),
110
- relatedId: "event-won-complete-lob-raffle",
110
+ relatedId: "event-won-original-set-raffle",
111
111
  relatedType: "product",
112
112
  createdAt: daysAgo(5),
113
113
  updatedAt: daysAgo(4),
@@ -118,7 +118,7 @@ export const notificationsSeedData = [
118
118
  type: NOTIFICATION_FIELDS.TYPE_VALUES.REVIEW_APPROVED,
119
119
  priority: "low",
120
120
  title: "Your review was published",
121
- message: "Your review for Dark Magician LOB 1st Edition has been approved and is now live.",
121
+ message: "Your review for Beyblade Original Dranzer S has been approved and is now live.",
122
122
  isRead: true,
123
123
  readAt: daysAgo(6),
124
124
  relatedId: "review-1",
@@ -131,8 +131,8 @@ export const notificationsSeedData = [
131
131
  userId: "user-yugi-muto",
132
132
  type: NOTIFICATION_FIELDS.TYPE_VALUES.WELCOME,
133
133
  priority: "normal",
134
- title: "Welcome to LetItRip, Yugi!",
135
- message: "Your account is ready. Start browsing verified Yu-Gi-Oh! cards from sellers across India.",
134
+ title: "Welcome to LetItRip, Rehan!",
135
+ message: "Your account is ready. Start browsing verified Beyblade collectibles from sellers across India.",
136
136
  actionUrl: String(ROUTES.PUBLIC.PRODUCTS),
137
137
  actionLabel: "Start Shopping",
138
138
  isRead: true,
@@ -145,12 +145,12 @@ export const notificationsSeedData = [
145
145
  userId: "user-yugi-muto",
146
146
  type: NOTIFICATION_FIELDS.TYPE_VALUES.OFFER_RECEIVED,
147
147
  priority: "normal",
148
- title: "Counter-offer on your Dark Magician Girl bid",
149
- message: "Kaiba Corp countered your offer of ₹7,500 with ₹8,200 for Dark Magician Girl IOC.",
148
+ title: "Counter-offer on your Burst Valkyrie bid",
149
+ message: "Beyblade Arena countered your offer of ₹1,200 with ₹1,450 for Beyblade Burst Valkyrie.",
150
150
  actionUrl: "/user/offers",
151
151
  actionLabel: "View Offer",
152
152
  isRead: false,
153
- relatedId: "product-dark-magician-girl-ioc",
153
+ relatedId: "product-beyblade-burst-valkyrie",
154
154
  relatedType: "product",
155
155
  createdAt: hoursAgo(8),
156
156
  updatedAt: hoursAgo(8),
@@ -160,24 +160,24 @@ export const notificationsSeedData = [
160
160
  userId: "user-yugi-muto",
161
161
  type: NOTIFICATION_FIELDS.TYPE_VALUES.PRODUCT_AVAILABLE,
162
162
  priority: "normal",
163
- title: "New listing from Kaiba Corp!",
164
- message: "Kaiba Corp Card Vault just listed a Rainbow Dragon POTD 1st Edition.",
165
- actionUrl: "/products/product-rainbow-dragon",
163
+ title: "New listing from Beyblade Arena!",
164
+ message: "Beyblade Arena just listed a Beyblade X Wizard Arrow.",
165
+ actionUrl: "/products/product-beyblade-x-wizard-arrow",
166
166
  actionLabel: "View",
167
167
  isRead: false,
168
- relatedId: "product-rainbow-dragon",
168
+ relatedId: "product-beyblade-x-wizard-arrow",
169
169
  relatedType: "product",
170
170
  createdAt: daysAgo(1),
171
171
  updatedAt: daysAgo(1),
172
172
  },
173
- // ── Kaiba's notifications (8) — seller-focused ────────────────────────────
173
+ // ── Tyson's notifications (8) — seller-focused (Beyblade Arena) ───────────
174
174
  {
175
175
  id: "notif-kaiba-new-order-001",
176
- userId: "user-seto-kaiba",
176
+ userId: "user-tyson-blader",
177
177
  type: NOTIFICATION_FIELDS.TYPE_VALUES.ORDER_PLACED,
178
178
  priority: "high",
179
179
  title: "New order received!",
180
- message: "Yugi Muto ordered Dark Magician LOB 1st Edition. Ship within 3 business days.",
180
+ message: "Mock User 3 ordered Beyblade Original Dranzer S. Ship within 3 business days.",
181
181
  actionUrl: "/store/orders",
182
182
  actionLabel: "View Order",
183
183
  isRead: false,
@@ -188,11 +188,11 @@ export const notificationsSeedData = [
188
188
  },
189
189
  {
190
190
  id: "notif-kaiba-new-review-001",
191
- userId: "user-seto-kaiba",
191
+ userId: "user-tyson-blader",
192
192
  type: NOTIFICATION_FIELDS.TYPE_VALUES.REVIEW_APPROVED,
193
193
  priority: "normal",
194
194
  title: "New 5-star review!",
195
- message: "Yugi Muto left a 5-star review: 'Excellent quality and fast shipping!'",
195
+ message: "Mock User 3 left a 5-star review: 'Excellent quality and fast shipping!'",
196
196
  actionUrl: "/store/reviews",
197
197
  actionLabel: "View Review",
198
198
  isRead: true,
@@ -204,26 +204,26 @@ export const notificationsSeedData = [
204
204
  },
205
205
  {
206
206
  id: "notif-kaiba-new-bid-001",
207
- userId: "user-seto-kaiba",
207
+ userId: "user-tyson-blader",
208
208
  type: NOTIFICATION_FIELDS.TYPE_VALUES.BID_PLACED,
209
209
  priority: "normal",
210
210
  title: "New bid on your auction",
211
- message: "Yugi Muto bid ₹1,25,000 on Blue-Eyes White Dragon LOB 1st Ed PSA 10.",
212
- actionUrl: "/store/products/auction-blue-eyes-lob-1st-psa10",
211
+ message: "Mock User 3 bid ₹4,200 on Beyblade Original Dragoon Storm.",
212
+ actionUrl: "/store/products/auction-beyblade-original-dragoon-storm",
213
213
  actionLabel: "View Auction",
214
214
  isRead: false,
215
- relatedId: "auction-blue-eyes-lob-1st-psa10",
215
+ relatedId: "auction-beyblade-original-dragoon-storm",
216
216
  relatedType: "bid",
217
217
  createdAt: hoursAgo(3),
218
218
  updatedAt: hoursAgo(3),
219
219
  },
220
220
  {
221
221
  id: "notif-kaiba-payout-001",
222
- userId: "user-seto-kaiba",
222
+ userId: "user-tyson-blader",
223
223
  type: NOTIFICATION_FIELDS.TYPE_VALUES.SYSTEM,
224
224
  priority: "normal",
225
225
  title: "Payout processed",
226
- message: "₹45,000 has been transferred to your UPI account for May orders.",
226
+ message: "₹9,800 has been transferred to your UPI account for April orders.",
227
227
  actionUrl: "/store/payouts",
228
228
  actionLabel: "View Payout",
229
229
  isRead: true,
@@ -233,41 +233,41 @@ export const notificationsSeedData = [
233
233
  },
234
234
  {
235
235
  id: "notif-kaiba-bid-received-001",
236
- userId: "user-seto-kaiba",
236
+ userId: "user-tyson-blader",
237
237
  type: NOTIFICATION_FIELDS.TYPE_VALUES.BID_PLACED,
238
238
  priority: "normal",
239
- title: "New bid on Exodia Complete Set",
240
- message: "LetItRip Admin bid ₹2,00,000 on Exodia Complete Set PSA 9.",
241
- actionUrl: "/store/products/auction-exodia-complete-set-psa9",
239
+ title: "New bid on Metal Lightning L-Drago",
240
+ message: "Mock User 1 bid ₹5,000 on Beyblade Metal Lightning L-Drago.",
241
+ actionUrl: "/store/products/auction-beyblade-metal-lightning-l-drago",
242
242
  actionLabel: "View",
243
243
  isRead: false,
244
- relatedId: "auction-exodia-complete-set-psa9",
244
+ relatedId: "auction-beyblade-metal-lightning-l-drago",
245
245
  relatedType: "bid",
246
246
  createdAt: hoursAgo(12),
247
247
  updatedAt: hoursAgo(12),
248
248
  },
249
249
  {
250
250
  id: "notif-kaiba-offer-001",
251
- userId: "user-seto-kaiba",
251
+ userId: "user-tyson-blader",
252
252
  type: NOTIFICATION_FIELDS.TYPE_VALUES.OFFER_RECEIVED,
253
253
  priority: "normal",
254
- title: "New offer on Dark Magician Girl",
255
- message: "Yugi Muto made an offer of ₹7,500 for Dark Magician Girl IOC.",
254
+ title: "New offer on Burst Valkyrie",
255
+ message: "Mock User 3 made an offer of ₹1,200 for Beyblade Burst Valkyrie.",
256
256
  actionUrl: "/store/offers",
257
257
  actionLabel: "Respond",
258
258
  isRead: false,
259
- relatedId: "product-dark-magician-girl-ioc",
259
+ relatedId: "product-beyblade-burst-valkyrie",
260
260
  relatedType: "offer",
261
261
  createdAt: hoursAgo(10),
262
262
  updatedAt: hoursAgo(10),
263
263
  },
264
264
  {
265
265
  id: "notif-kaiba-welcome-001",
266
- userId: "user-seto-kaiba",
266
+ userId: "user-tyson-blader",
267
267
  type: NOTIFICATION_FIELDS.TYPE_VALUES.WELCOME,
268
268
  priority: "normal",
269
- title: "Welcome to LetItRip, Kaiba!",
270
- message: "Your store Kaiba Corp Card Vault is now live. Start listing cards.",
269
+ title: "Welcome to LetItRip, Tyson!",
270
+ message: "Your store Beyblade Arena is now live. Start listing beyblades.",
271
271
  isRead: true,
272
272
  readAt: daysAgo(30),
273
273
  createdAt: daysAgo(30),
@@ -275,7 +275,7 @@ export const notificationsSeedData = [
275
275
  },
276
276
  {
277
277
  id: "notif-kaiba-order-cancelled-001",
278
- userId: "user-seto-kaiba",
278
+ userId: "user-tyson-blader",
279
279
  type: NOTIFICATION_FIELDS.TYPE_VALUES.ORDER_CANCELLED,
280
280
  priority: "high",
281
281
  title: "Order cancelled",
@@ -296,7 +296,7 @@ export const notificationsSeedData = [
296
296
  type: NOTIFICATION_FIELDS.TYPE_VALUES.ORDER_SHIPPED,
297
297
  priority: "normal",
298
298
  title: "Your order has shipped!",
299
- message: "Order from Kaiba CorpChaos Emperor Dragon is on its way.",
299
+ message: "Order from Beyblade ArenaBeyblade Metal Flame Sagittario is on its way.",
300
300
  actionUrl: "/user/orders",
301
301
  actionLabel: "Track",
302
302
  isRead: false,
@@ -309,10 +309,10 @@ export const notificationsSeedData = [
309
309
  type: NOTIFICATION_FIELDS.TYPE_VALUES.BID_PLACED,
310
310
  priority: "normal",
311
311
  title: "Your bid was placed",
312
- message: "You bid ₹2,00,000 on Exodia Complete Set PSA 9.",
312
+ message: "You bid ₹5,000 on Beyblade Metal Lightning L-Drago.",
313
313
  isRead: true,
314
314
  readAt: daysAgo(1),
315
- relatedId: "auction-exodia-complete-set-psa9",
315
+ relatedId: "auction-beyblade-metal-lightning-l-drago",
316
316
  relatedType: "bid",
317
317
  createdAt: daysAgo(1),
318
318
  updatedAt: daysAgo(1),
@@ -323,7 +323,7 @@ export const notificationsSeedData = [
323
323
  type: NOTIFICATION_FIELDS.TYPE_VALUES.ORDER_DELIVERED,
324
324
  priority: "normal",
325
325
  title: "Order delivered",
326
- message: "Your order of Raigeki LOB has been delivered.",
326
+ message: "Your order of Beyblade X Knife Shinobi has been delivered.",
327
327
  isRead: true,
328
328
  readAt: daysAgo(5),
329
329
  createdAt: daysAgo(6),
@@ -348,7 +348,7 @@ export const notificationsSeedData = [
348
348
  userId: "user-admin-letitrip",
349
349
  type: NOTIFICATION_FIELDS.TYPE_VALUES.WELCOME,
350
350
  priority: "normal",
351
- title: "Welcome to LetItRip Admin!",
351
+ title: "Welcome to Mock User 1!",
352
352
  message: "Your admin account is active. Manage stores, products, and site settings.",
353
353
  isRead: true,
354
354
  readAt: daysAgo(60),
@@ -1,5 +1,5 @@
1
1
  /*
2
- * WHY: Seeds offers for YGO marketplace — 8 offers across all statuses.
2
+ * WHY: Seeds offers for the Beyblade marketplace — 8 offers across all statuses.
3
3
  * WHAT: pending (2), accepted (1), declined (1), countered (1), expired (1), withdrawn (1), paid (1).
4
4
  *
5
5
  * EXPORTS:
@@ -17,63 +17,63 @@ const NOW = new Date();
17
17
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
18
18
  const daysFromNow = (n) => new Date(NOW.getTime() + n * 86400000);
19
19
  export const offersSeedData = [
20
- // ── 1. PENDING — YugiKaibaDark Magician Girl IOC ──────────────────
20
+ // ── 1. PENDING — RehanBeyblade Arena Burst Valkyrie ────────────────
21
21
  {
22
- id: "offer-yugi-dmg-ioc-pending",
23
- productId: "product-dark-magician-girl-ioc",
24
- productTitle: "Dark Magician Girl IOC 1st Edition (NM)",
25
- storeId: "store-kaiba-corp-cards",
26
- storeName: "Kaiba Corp Card Vault",
22
+ id: "offer-yugi-burst-valkyrie-pending",
23
+ productId: "product-beyblade-burst-valkyrie",
24
+ productTitle: "Beyblade Burst Valkyrie",
25
+ storeId: "store-beyblade-arena",
26
+ storeName: "Beyblade Arena",
27
27
  buyerUid: "user-yugi-muto",
28
- buyerName: "Yugi Muto",
29
- buyerEmail: "yugi.muto@letitrip.in",
30
- listedPrice: 8999,
31
- offerAmount: 7500,
28
+ buyerName: "Mock User 3",
29
+ buyerEmail: "rehan.sheikh@gmail.com",
30
+ listedPrice: 1899,
31
+ offerAmount: 1500,
32
32
  currency: "INR",
33
33
  status: OfferStatusValues.PENDING,
34
- buyerNote: "Would you accept ₹7,500 for the Dark Magician Girl?",
34
+ buyerNote: "Would you accept ₹1,500 for the Burst Valkyrie?",
35
35
  expiresAt: daysFromNow(3),
36
36
  createdAt: daysAgo(0),
37
37
  updatedAt: daysAgo(0),
38
38
  },
39
- // ── 2. COUNTERED — YugiKaibaPot of Greed LOB ──────────────────────
39
+ // ── 2. COUNTERED — RehanBeyblade Arena Metal Storm Pegasus ─────────
40
40
  {
41
- id: "offer-yugi-pot-of-greed-countered",
42
- productId: "product-pot-of-greed-lob",
43
- productTitle: "Pot of Greed LOB 1st Edition (NM)",
44
- storeId: "store-kaiba-corp-cards",
45
- storeName: "Kaiba Corp Card Vault",
41
+ id: "offer-yugi-metal-storm-pegasus-countered",
42
+ productId: "product-beyblade-metal-storm-pegasus",
43
+ productTitle: "Beyblade Metal Storm Pegasus",
44
+ storeId: "store-beyblade-arena",
45
+ storeName: "Beyblade Arena",
46
46
  buyerUid: "user-yugi-muto",
47
- buyerName: "Yugi Muto",
48
- buyerEmail: "yugi.muto@letitrip.in",
49
- listedPrice: 14999,
50
- offerAmount: 12000,
51
- counterAmount: 13500,
47
+ buyerName: "Mock User 3",
48
+ buyerEmail: "rehan.sheikh@gmail.com",
49
+ listedPrice: 2499,
50
+ offerAmount: 2000,
51
+ counterAmount: 2250,
52
52
  currency: "INR",
53
53
  status: OfferStatusValues.COUNTERED,
54
- buyerNote: "₹12,000 — will you take it?",
55
- sellerNote: "Best I can do is ₹13,500.",
54
+ buyerNote: "₹2,000 — will you take it?",
55
+ sellerNote: "Best I can do is ₹2,250.",
56
56
  expiresAt: daysFromNow(2),
57
57
  respondedAt: daysAgo(1),
58
58
  createdAt: daysAgo(3),
59
59
  updatedAt: daysAgo(1),
60
60
  },
61
- // ── 3. PAID — Admin → KaibaChaos Emperor Dragon IOC (order placed) ───
61
+ // ── 3. PAID — Admin → Beyblade Arena X Knife Shinobi (order placed) ───
62
62
  {
63
- id: "offer-admin-ced-ioc-paid",
64
- productId: "product-chaos-emperor-dragon-ioc",
65
- productTitle: "Chaos Emperor Dragon — Envoy of the End IOC 1st Ed",
66
- storeId: "store-kaiba-corp-cards",
67
- storeName: "Kaiba Corp Card Vault",
63
+ id: "offer-admin-x-knife-shinobi-paid",
64
+ productId: "product-beyblade-x-knife-shinobi",
65
+ productTitle: "Beyblade X Knife Shinobi",
66
+ storeId: "store-beyblade-arena",
67
+ storeName: "Beyblade Arena",
68
68
  buyerUid: "user-admin-letitrip",
69
- buyerName: "LetItRip Admin",
69
+ buyerName: "Mock User 1",
70
70
  buyerEmail: "admin@letitrip.in",
71
- listedPrice: 24999,
72
- offerAmount: 22000,
73
- lockedPrice: 22000,
71
+ listedPrice: 2999,
72
+ offerAmount: 2600,
73
+ lockedPrice: 2600,
74
74
  currency: "INR",
75
75
  status: OfferStatusValues.PAID,
76
- buyerNote: "Would you accept ₹22,000 for the CED?",
76
+ buyerNote: "Would you accept ₹2,600 for the X Knife Shinobi?",
77
77
  sellerNote: "Accepted. Thank you!",
78
78
  expiresAt: daysAgo(3),
79
79
  acceptedAt: daysAgo(12),
@@ -81,81 +81,81 @@ export const offersSeedData = [
81
81
  createdAt: daysAgo(14),
82
82
  updatedAt: daysAgo(11),
83
83
  },
84
- // ── 4. DECLINED — YugiAdminMirror Force MRD ───────────────────────
84
+ // ── 4. DECLINED — RehanBeyblade Arena Burst Regalia Genesis ────────
85
85
  {
86
- id: "offer-yugi-mirror-force-declined",
87
- productId: "product-mirror-force-mrd-1st",
88
- productTitle: "Mirror Force MRD 1st Edition (NM)",
89
- storeId: "store-letitrip-official",
90
- storeName: "LetItRip Official",
86
+ id: "offer-yugi-regalia-genesis-declined",
87
+ productId: "product-beyblade-burst-regalia-genesis",
88
+ productTitle: "Beyblade Burst Regalia Genesis",
89
+ storeId: "store-beyblade-arena",
90
+ storeName: "Beyblade Arena",
91
91
  buyerUid: "user-yugi-muto",
92
- buyerName: "Yugi Muto",
93
- buyerEmail: "yugi.muto@letitrip.in",
94
- listedPrice: 15000,
95
- offerAmount: 10000,
92
+ buyerName: "Mock User 3",
93
+ buyerEmail: "rehan.sheikh@gmail.com",
94
+ listedPrice: 3499,
95
+ offerAmount: 2500,
96
96
  currency: "INR",
97
97
  status: OfferStatusValues.DECLINED,
98
- buyerNote: "Offering ₹10,000 — slightly above my budget.",
99
- sellerNote: "Sorry, we cannot go below ₹13,999 for this card.",
98
+ buyerNote: "Offering ₹2,500 — slightly above my budget.",
99
+ sellerNote: "Sorry, we cannot go below ₹3,200 for this piece.",
100
100
  expiresAt: daysAgo(5),
101
101
  respondedAt: daysAgo(8),
102
102
  createdAt: daysAgo(10),
103
103
  updatedAt: daysAgo(8),
104
104
  },
105
- // ── 5. EXPIRED — KaibaAdminRaigeki LOB ────────────────────────────
105
+ // ── 5. EXPIRED — VivaanBeyblade Arena X Wizard Arrow ───────────────
106
106
  {
107
- id: "offer-kaiba-raigeki-expired",
108
- productId: "product-raigeki-lob-nm",
109
- productTitle: "Raigeki LOB 1st Edition (NM)",
110
- storeId: "store-letitrip-official",
111
- storeName: "LetItRip Official",
107
+ id: "offer-kaiba-x-wizard-arrow-expired",
108
+ productId: "product-beyblade-x-wizard-arrow",
109
+ productTitle: "Beyblade X Wizard Arrow",
110
+ storeId: "store-beyblade-arena",
111
+ storeName: "Beyblade Arena",
112
112
  buyerUid: "user-seto-kaiba",
113
- buyerName: "Seto Kaiba",
114
- buyerEmail: "seto.kaiba@letitrip.in",
115
- listedPrice: 7999,
116
- offerAmount: 6000,
113
+ buyerName: "Mock User 2",
114
+ buyerEmail: "vivaan.kapoor@gmail.com",
115
+ listedPrice: 1699,
116
+ offerAmount: 1300,
117
117
  currency: "INR",
118
118
  status: OfferStatusValues.EXPIRED,
119
- buyerNote: "₹6,000 — let me know.",
119
+ buyerNote: "₹1,300 — let me know.",
120
120
  expiresAt: daysAgo(2),
121
121
  createdAt: daysAgo(9),
122
122
  updatedAt: daysAgo(2),
123
123
  },
124
- // ── 6. WITHDRAWN — Admin → KaibaExodia Right Arm ─────────────────────
124
+ // ── 6. WITHDRAWN — Admin → Beyblade Arena Original Driger V ───────────
125
125
  {
126
- id: "offer-admin-exodia-arm-withdrawn",
127
- productId: "product-exodia-right-arm-lob",
128
- productTitle: "Right Arm of the Forbidden One LOB 1st Ed",
129
- storeId: "store-kaiba-corp-cards",
130
- storeName: "Kaiba Corp Card Vault",
126
+ id: "offer-admin-driger-v-withdrawn",
127
+ productId: "product-beyblade-original-driger-v",
128
+ productTitle: "Beyblade Original Driger V",
129
+ storeId: "store-beyblade-arena",
130
+ storeName: "Beyblade Arena",
131
131
  buyerUid: "user-admin-letitrip",
132
- buyerName: "LetItRip Admin",
132
+ buyerName: "Mock User 1",
133
133
  buyerEmail: "admin@letitrip.in",
134
- listedPrice: 4999,
135
- offerAmount: 4000,
134
+ listedPrice: 1999,
135
+ offerAmount: 1600,
136
136
  currency: "INR",
137
137
  status: OfferStatusValues.WITHDRAWN,
138
- buyerNote: "Offering ₹4,000 for the Right Arm piece.",
138
+ buyerNote: "Offering ₹1,600 for the Driger V.",
139
139
  expiresAt: daysAgo(3),
140
140
  createdAt: daysAgo(7),
141
141
  updatedAt: daysAgo(5),
142
142
  },
143
- // ── 7. ACCEPTED — KaibaAdminStarter Deck Yugi (pending payment) ───
143
+ // ── 7. ACCEPTED — VivaanBeyblade Arena Original Dranzer S (pending payment) ──
144
144
  {
145
- id: "offer-kaiba-starter-deck-accepted",
146
- productId: "product-starter-deck-yugi-sealed",
147
- productTitle: "Starter Deck Yugi — Sealed (2002)",
148
- storeId: "store-letitrip-official",
149
- storeName: "LetItRip Official",
145
+ id: "offer-kaiba-dranzer-s-accepted",
146
+ productId: "product-beyblade-original-dranzer-s",
147
+ productTitle: "Beyblade Original Dranzer S",
148
+ storeId: "store-beyblade-arena",
149
+ storeName: "Beyblade Arena",
150
150
  buyerUid: "user-seto-kaiba",
151
- buyerName: "Seto Kaiba",
152
- buyerEmail: "seto.kaiba@letitrip.in",
153
- listedPrice: 5999,
154
- offerAmount: 4999,
155
- lockedPrice: 4999,
151
+ buyerName: "Mock User 2",
152
+ buyerEmail: "vivaan.kapoor@gmail.com",
153
+ listedPrice: 1799,
154
+ offerAmount: 1500,
155
+ lockedPrice: 1500,
156
156
  currency: "INR",
157
157
  status: OfferStatusValues.ACCEPTED,
158
- buyerNote: "₹4,999 final offer on the sealed Starter Deck.",
158
+ buyerNote: "₹1,500 final offer on the sealed Dranzer S.",
159
159
  sellerNote: "Accepted! Please complete payment within 24 hours.",
160
160
  expiresAt: daysFromNow(1),
161
161
  acceptedAt: daysAgo(0),
@@ -163,21 +163,21 @@ export const offersSeedData = [
163
163
  createdAt: daysAgo(1),
164
164
  updatedAt: daysAgo(0),
165
165
  },
166
- // ── 8. PENDING — Admin → KaibaBlue-Eyes Ultimate Dragon ──────────────
166
+ // ── 8. PENDING — Admin → Beyblade Arena Metal Lightning L-Drago ───────
167
167
  {
168
- id: "offer-admin-beud-pending",
169
- productId: "product-blue-eyes-ultimate-dragon",
170
- productTitle: "Blue-Eyes Ultimate Dragon LOB 1st Ed",
171
- storeId: "store-kaiba-corp-cards",
172
- storeName: "Kaiba Corp Card Vault",
168
+ id: "offer-admin-l-drago-pending",
169
+ productId: "auction-beyblade-metal-lightning-l-drago",
170
+ productTitle: "Beyblade Metal Lightning L-Drago",
171
+ storeId: "store-beyblade-arena",
172
+ storeName: "Beyblade Arena",
173
173
  buyerUid: "user-admin-letitrip",
174
- buyerName: "LetItRip Admin",
174
+ buyerName: "Mock User 1",
175
175
  buyerEmail: "admin@letitrip.in",
176
- listedPrice: 39999,
177
- offerAmount: 35000,
176
+ listedPrice: 5200,
177
+ offerAmount: 4700,
178
178
  currency: "INR",
179
179
  status: OfferStatusValues.PENDING,
180
- buyerNote: "Interested in this piece. Would you accept ₹35,000?",
180
+ buyerNote: "Interested in this piece. Would you accept ₹4,700?",
181
181
  expiresAt: daysFromNow(3),
182
182
  createdAt: daysAgo(1),
183
183
  updatedAt: daysAgo(1),