@mohasinac/appkit 2.3.1 → 2.3.2

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 (253) hide show
  1. package/dist/client.d.ts +12 -8
  2. package/dist/client.js +7 -4
  3. package/dist/constants/api-endpoints.d.ts +4 -0
  4. package/dist/constants/api-endpoints.js +2 -0
  5. package/dist/core/contact-submissions.repository.d.ts +32 -0
  6. package/dist/core/contact-submissions.repository.js +49 -0
  7. package/dist/core/index.d.ts +2 -0
  8. package/dist/core/index.js +1 -0
  9. package/dist/features/about/components/HowPayoutsWorkView.js +1 -1
  10. package/dist/features/account/components/AddressFilters.d.ts +5 -0
  11. package/dist/features/account/components/AddressFilters.js +20 -0
  12. package/dist/features/account/components/AddressesIndexListing.d.ts +6 -0
  13. package/dist/features/account/components/AddressesIndexListing.js +51 -0
  14. package/dist/features/account/components/UserSidebar.d.ts +7 -3
  15. package/dist/features/account/components/UserSidebar.js +55 -7
  16. package/dist/features/account/hooks/useAddresses.d.ts +7 -0
  17. package/dist/features/account/hooks/useAddresses.js +12 -1
  18. package/dist/features/admin/actions/admin-read-actions.d.ts +12 -0
  19. package/dist/features/admin/actions/admin-read-actions.js +18 -0
  20. package/dist/features/admin/components/AdminBlogView.js +26 -2
  21. package/dist/features/admin/components/AdminCarouselView.js +18 -2
  22. package/dist/features/admin/components/AdminCategoriesView.js +27 -2
  23. package/dist/features/admin/components/AdminContactView.d.ts +4 -0
  24. package/dist/features/admin/components/AdminContactView.js +50 -0
  25. package/dist/features/admin/components/AdminFaqsView.js +19 -2
  26. package/dist/features/admin/components/AdminListingScaffold.d.ts +11 -2
  27. package/dist/features/admin/components/AdminListingScaffold.js +14 -3
  28. package/dist/features/admin/components/AdminNewsletterView.d.ts +4 -0
  29. package/dist/features/admin/components/AdminNewsletterView.js +50 -0
  30. package/dist/features/admin/components/AdminProductsView.js +30 -2
  31. package/dist/features/admin/components/AdminReviewsView.js +26 -2
  32. package/dist/features/admin/components/AdminStoresView.js +17 -2
  33. package/dist/features/admin/components/AdminUsersView.js +27 -2
  34. package/dist/features/admin/components/DataTable.d.ts +2 -1
  35. package/dist/features/admin/components/DataTable.js +18 -4
  36. package/dist/features/admin/components/index.d.ts +6 -0
  37. package/dist/features/admin/components/index.js +3 -0
  38. package/dist/features/admin/hooks/useAdminListingData.d.ts +3 -1
  39. package/dist/features/admin/hooks/useAdminListingData.js +12 -7
  40. package/dist/features/admin/server.d.ts +3 -0
  41. package/dist/features/admin/server.js +2 -0
  42. package/dist/features/auctions/components/AuctionDetailPageView.js +93 -47
  43. package/dist/features/auctions/components/AuctionFilters.d.ts +8 -0
  44. package/dist/features/auctions/components/AuctionFilters.js +12 -0
  45. package/dist/features/auctions/components/AuctionsListView.d.ts +6 -1
  46. package/dist/features/auctions/components/AuctionsListView.js +37 -5
  47. package/dist/features/auctions/schemas/index.d.ts +4 -4
  48. package/dist/features/blog/components/BlogFeaturedCard.d.ts +1 -7
  49. package/dist/features/blog/components/BlogFeaturedCard.js +4 -5
  50. package/dist/features/blog/components/BlogFilters.js +2 -1
  51. package/dist/features/blog/components/BlogIndexListing.js +14 -9
  52. package/dist/features/blog/components/BlogIndexPageView.d.ts +6 -1
  53. package/dist/features/blog/components/BlogIndexPageView.js +10 -2
  54. package/dist/features/blog/components/BlogListView.d.ts +2 -1
  55. package/dist/features/blog/components/BlogListView.js +10 -3
  56. package/dist/features/categories/components/CategoriesIndexListing.d.ts +1 -1
  57. package/dist/features/categories/components/CategoriesIndexListing.js +41 -38
  58. package/dist/features/categories/components/CategoriesIndexPageView.d.ts +6 -1
  59. package/dist/features/categories/components/CategoriesIndexPageView.js +41 -2
  60. package/dist/features/categories/components/CategoryDetailPageView.js +13 -6
  61. package/dist/features/categories/components/CategoryDetailTabs.d.ts +5 -0
  62. package/dist/features/categories/components/CategoryDetailTabs.js +17 -0
  63. package/dist/features/categories/components/CategoryFilters.js +2 -1
  64. package/dist/features/categories/components/CategoryGrid.d.ts +2 -1
  65. package/dist/features/categories/components/CategoryGrid.js +8 -6
  66. package/dist/features/categories/components/CategoryProductsListing.js +22 -11
  67. package/dist/features/categories/components/index.d.ts +2 -0
  68. package/dist/features/categories/components/index.js +1 -0
  69. package/dist/features/categories/hooks/useCategories.d.ts +20 -0
  70. package/dist/features/categories/hooks/useCategories.js +50 -1
  71. package/dist/features/categories/hooks/useCategoryTree.d.ts +17 -0
  72. package/dist/features/categories/hooks/useCategoryTree.js +65 -0
  73. package/dist/features/events/components/AdminEventEditorView.d.ts +6 -0
  74. package/dist/features/events/components/AdminEventEditorView.js +203 -0
  75. package/dist/features/events/components/AdminEventsView.js +28 -2
  76. package/dist/features/events/components/EventCard.js +4 -2
  77. package/dist/features/events/components/EventFilters.js +2 -1
  78. package/dist/features/events/components/EventsIndexListing.js +40 -10
  79. package/dist/features/events/components/EventsListPageView.d.ts +6 -1
  80. package/dist/features/events/components/EventsListPageView.js +40 -7
  81. package/dist/features/events/components/index.d.ts +2 -0
  82. package/dist/features/events/components/index.js +1 -0
  83. package/dist/features/events/hooks/useEvents.js +2 -0
  84. package/dist/features/events/types/index.d.ts +1 -0
  85. package/dist/features/homepage/components/BlogArticlesSection.js +1 -1
  86. package/dist/features/homepage/components/EventsSection.js +1 -1
  87. package/dist/features/homepage/components/FeaturedAuctionsSection.js +1 -1
  88. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +1 -1
  89. package/dist/features/homepage/components/FeaturedProductsSection.js +1 -1
  90. package/dist/features/homepage/components/FeaturedStoresSection.js +1 -1
  91. package/dist/features/homepage/components/HeroCarousel.js +1 -1
  92. package/dist/features/homepage/components/MarketplaceHomepageView.js +27 -17
  93. package/dist/features/homepage/components/SectionCarousel.js +4 -4
  94. package/dist/features/homepage/components/ShopByCategorySection.js +2 -2
  95. package/dist/features/homepage/schemas/firestore.d.ts +1 -1
  96. package/dist/features/homepage/schemas/firestore.js +2 -1
  97. package/dist/features/layout/AppLayoutShell.d.ts +6 -2
  98. package/dist/features/layout/AppLayoutShell.js +7 -3
  99. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +3 -1
  100. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +6 -2
  101. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +80 -12
  102. package/dist/features/pre-orders/components/PreOrderFilters.d.ts +8 -0
  103. package/dist/features/pre-orders/components/PreOrderFilters.js +21 -0
  104. package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +2 -1
  105. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +69 -10
  106. package/dist/features/pre-orders/components/PreOrdersListView.d.ts +6 -1
  107. package/dist/features/pre-orders/components/PreOrdersListView.js +26 -7
  108. package/dist/features/pre-orders/components/index.d.ts +2 -0
  109. package/dist/features/pre-orders/components/index.js +1 -0
  110. package/dist/features/products/components/AuctionsIndexListing.d.ts +2 -1
  111. package/dist/features/products/components/AuctionsIndexListing.js +61 -9
  112. package/dist/features/products/components/InteractiveProductCard.d.ts +2 -4
  113. package/dist/features/products/components/InteractiveProductCard.js +2 -2
  114. package/dist/features/products/components/ProductDetailPageView.d.ts +1 -1
  115. package/dist/features/products/components/ProductDetailPageView.js +116 -25
  116. package/dist/features/products/components/ProductFilters.d.ts +6 -11
  117. package/dist/features/products/components/ProductFilters.js +5 -3
  118. package/dist/features/products/components/ProductGrid.d.ts +8 -2
  119. package/dist/features/products/components/ProductGrid.js +20 -5
  120. package/dist/features/products/components/ProductTabsShell.d.ts +3 -11
  121. package/dist/features/products/components/ProductTabsShell.js +14 -14
  122. package/dist/features/products/components/ProductsIndexListing.js +73 -9
  123. package/dist/features/products/components/ProductsIndexPageView.d.ts +6 -1
  124. package/dist/features/products/components/ProductsIndexPageView.js +39 -6
  125. package/dist/features/products/components/RelatedProductsCarousel.d.ts +7 -0
  126. package/dist/features/products/components/RelatedProductsCarousel.js +11 -0
  127. package/dist/features/products/components/index.d.ts +1 -0
  128. package/dist/features/products/components/index.js +1 -0
  129. package/dist/features/products/hooks/useProducts.js +16 -0
  130. package/dist/features/products/repository/products.repository.d.ts +8 -0
  131. package/dist/features/products/repository/products.repository.js +2 -0
  132. package/dist/features/products/schemas/index.d.ts +8 -8
  133. package/dist/features/products/types/index.d.ts +12 -0
  134. package/dist/features/promotions/components/CouponsIndexListing.d.ts +9 -0
  135. package/dist/features/promotions/components/CouponsIndexListing.js +86 -0
  136. package/dist/features/promotions/components/PromotionsView.d.ts +11 -5
  137. package/dist/features/promotions/components/PromotionsView.js +6 -1
  138. package/dist/features/promotions/components/index.d.ts +4 -2
  139. package/dist/features/promotions/components/index.js +2 -1
  140. package/dist/features/reviews/components/ReviewDetailPageView.d.ts +4 -0
  141. package/dist/features/reviews/components/ReviewDetailPageView.js +20 -0
  142. package/dist/features/reviews/components/ReviewDetailShell.d.ts +7 -0
  143. package/dist/features/reviews/components/ReviewDetailShell.js +80 -0
  144. package/dist/features/reviews/components/ReviewFilters.d.ts +3 -3
  145. package/dist/features/reviews/components/ReviewFilters.js +5 -4
  146. package/dist/features/reviews/components/ReviewsIndexListing.d.ts +4 -3
  147. package/dist/features/reviews/components/ReviewsIndexListing.js +35 -51
  148. package/dist/features/reviews/components/ReviewsIndexPageView.d.ts +6 -1
  149. package/dist/features/reviews/components/ReviewsIndexPageView.js +49 -3
  150. package/dist/features/reviews/components/ReviewsList.js +9 -1
  151. package/dist/features/reviews/components/index.d.ts +1 -0
  152. package/dist/features/reviews/hooks/useReviews.js +15 -1
  153. package/dist/features/reviews/types/index.d.ts +6 -1
  154. package/dist/features/seller/components/SellerSidebar.d.ts +8 -4
  155. package/dist/features/seller/components/SellerSidebar.js +6 -4
  156. package/dist/features/seller/components/index.d.ts +30 -0
  157. package/dist/features/seller/components/index.js +17 -0
  158. package/dist/features/seller/hooks/useSellerStore.d.ts +2 -0
  159. package/dist/features/seller/hooks/useSellerStore.js +2 -0
  160. package/dist/features/seller/permission-map.d.ts +4 -2
  161. package/dist/features/seller/permission-map.js +16 -14
  162. package/dist/features/seller/schemas/index.d.ts +2 -2
  163. package/dist/features/stores/api/[storeSlug]/reviews/route.d.ts +1 -1
  164. package/dist/features/stores/api/[storeSlug]/reviews/route.js +24 -19
  165. package/dist/features/stores/components/InteractiveStoreCard.d.ts +0 -5
  166. package/dist/features/stores/components/InteractiveStoreCard.js +9 -9
  167. package/dist/features/stores/components/StoreAuctionsListing.js +27 -9
  168. package/dist/features/stores/components/StoreDetailLayoutView.js +2 -0
  169. package/dist/features/stores/components/StoreFilters.d.ts +5 -0
  170. package/dist/features/stores/components/StoreFilters.js +20 -0
  171. package/dist/features/stores/components/StoreHeader.js +2 -2
  172. package/dist/features/stores/components/StorePreOrdersListing.d.ts +5 -0
  173. package/dist/features/stores/components/StorePreOrdersListing.js +40 -0
  174. package/dist/features/stores/components/StorePreOrdersPageView.d.ts +4 -0
  175. package/dist/features/stores/components/StorePreOrdersPageView.js +21 -0
  176. package/dist/features/stores/components/StoreProductsListing.js +21 -11
  177. package/dist/features/stores/components/StoreReviewsListing.js +2 -7
  178. package/dist/features/stores/components/StoresIndexListing.js +42 -8
  179. package/dist/features/stores/components/StoresIndexPageView.d.ts +6 -1
  180. package/dist/features/stores/components/StoresIndexPageView.js +9 -2
  181. package/dist/features/stores/components/index.d.ts +3 -0
  182. package/dist/features/stores/components/index.js +1 -0
  183. package/dist/features/stores/hooks/useStores.d.ts +7 -1
  184. package/dist/features/stores/hooks/useStores.js +16 -3
  185. package/dist/features/stores/schemas/index.d.ts +2 -2
  186. package/dist/features/stores/types/index.d.ts +3 -0
  187. package/dist/features/wishlist/hooks/useGuestWishlist.d.ts +20 -0
  188. package/dist/features/wishlist/hooks/useGuestWishlist.js +49 -0
  189. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +7 -0
  190. package/dist/features/wishlist/hooks/useWishlistCount.js +31 -0
  191. package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +56 -0
  192. package/dist/features/wishlist/hooks/useWishlistWithGuest.js +57 -0
  193. package/dist/features/wishlist/index.d.ts +3 -0
  194. package/dist/features/wishlist/index.js +3 -0
  195. package/dist/features/wishlist/utils/guest-wishlist.d.ts +22 -0
  196. package/dist/features/wishlist/utils/guest-wishlist.js +70 -0
  197. package/dist/index.d.ts +50 -1
  198. package/dist/index.js +63 -1
  199. package/dist/next/routing/route-map.d.ts +70 -36
  200. package/dist/next/routing/route-map.js +30 -22
  201. package/dist/seed/addresses-seed-data.js +62 -261
  202. package/dist/seed/beyblade-seed-data.d.ts +7 -0
  203. package/dist/seed/beyblade-seed-data.js +947 -0
  204. package/dist/seed/bids-seed-data.d.ts +10 -2
  205. package/dist/seed/bids-seed-data.js +220 -1071
  206. package/dist/seed/blog-posts-seed-data.d.ts +2 -2
  207. package/dist/seed/blog-posts-seed-data.js +455 -117
  208. package/dist/seed/cart-seed-data.d.ts +9 -9
  209. package/dist/seed/cart-seed-data.js +73 -74
  210. package/dist/seed/coupons-seed-data.d.ts +3 -4
  211. package/dist/seed/coupons-seed-data.js +3 -509
  212. package/dist/seed/events-seed-data.d.ts +2 -2
  213. package/dist/seed/events-seed-data.js +315 -476
  214. package/dist/seed/faq-seed-data.d.ts +18 -41
  215. package/dist/seed/faq-seed-data.js +1059 -1172
  216. package/dist/seed/hot-wheels-seed-data.d.ts +7 -0
  217. package/dist/seed/hot-wheels-seed-data.js +1365 -0
  218. package/dist/seed/index.d.ts +6 -1
  219. package/dist/seed/index.js +6 -1
  220. package/dist/seed/pokemon-carousel-slides-seed-data.d.ts +4 -2
  221. package/dist/seed/pokemon-carousel-slides-seed-data.js +152 -268
  222. package/dist/seed/pokemon-categories-seed-data.d.ts +18 -21
  223. package/dist/seed/pokemon-categories-seed-data.js +424 -1004
  224. package/dist/seed/pokemon-coupons-seed-data.d.ts +6 -0
  225. package/dist/seed/pokemon-coupons-seed-data.js +465 -0
  226. package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +3 -2
  227. package/dist/seed/pokemon-homepage-sections-seed-data.js +67 -289
  228. package/dist/seed/pokemon-products-seed-data.js +662 -0
  229. package/dist/seed/pokemon-seed-bundle.d.ts +32 -11
  230. package/dist/seed/pokemon-seed-bundle.js +41 -11
  231. package/dist/seed/pokemon-stores-seed-data.d.ts +2 -3
  232. package/dist/seed/pokemon-stores-seed-data.js +56 -31
  233. package/dist/seed/pokemon-users-seed-data.d.ts +2 -2
  234. package/dist/seed/pokemon-users-seed-data.js +245 -261
  235. package/dist/seed/reviews-seed-data.d.ts +17 -2
  236. package/dist/seed/reviews-seed-data.js +519 -483
  237. package/dist/seed/site-settings-seed-data.js +14 -14
  238. package/dist/seed/store-addresses-seed-data.js +68 -50
  239. package/dist/seed/transformers-seed-data.d.ts +7 -0
  240. package/dist/seed/transformers-seed-data.js +510 -0
  241. package/dist/seed/wishlists-seed-data.d.ts +5 -1
  242. package/dist/seed/wishlists-seed-data.js +82 -4
  243. package/dist/server.d.ts +1 -0
  244. package/dist/server.js +2 -0
  245. package/dist/tokens/index.d.ts +6 -0
  246. package/dist/tokens/index.js +2 -0
  247. package/dist/ui/components/BaseListingCard.js +24 -26
  248. package/dist/ui/components/BaseListingCard.style.css +5 -5
  249. package/dist/ui/components/HorizontalScroller.d.ts +1 -1
  250. package/dist/ui/components/HorizontalScroller.js +19 -5
  251. package/dist/ui/components/SideDrawer.style.css +3 -11
  252. package/dist/ui/rich-text/RichText.js +19 -1
  253. package/package.json +1 -1
@@ -2,8 +2,9 @@ import { getDefaultPhonePrefix } from "./seed-market-config";
2
2
  const _phonePrefix = getDefaultPhonePrefix();
3
3
  const NOW = new Date();
4
4
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
5
+ const emptyStats = { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 };
5
6
  export const pokemonUsersSeedData = [
6
- // -- Admin -----------------------------------------------------------------
7
+ // ─── ADMIN ──────────────────────────────────────────────────────────────────
7
8
  {
8
9
  uid: "user-admin-user-admin",
9
10
  email: "admin@letitrip.in",
@@ -18,22 +19,15 @@ export const pokemonUsersSeedData = [
18
19
  createdAt: daysAgo(365),
19
20
  updatedAt: daysAgo(1),
20
21
  publicProfile: {
21
- isPublic: false,
22
- showEmail: false,
23
- showPhone: false,
24
- showOrders: false,
25
- showWishlist: false,
22
+ isPublic: false, showEmail: false, showPhone: false,
23
+ showOrders: false, showWishlist: false,
26
24
  bio: "System Administrator",
27
25
  },
28
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
29
- metadata: {
30
- lastSignInTime: daysAgo(1),
31
- creationTime: daysAgo(365).toISOString(),
32
- loginCount: 200,
33
- },
26
+ stats: emptyStats,
27
+ metadata: { lastSignInTime: daysAgo(1), creationTime: daysAgo(365).toISOString(), loginCount: 200 },
34
28
  },
35
- // -- Sellers (Gym Leaders themed) ------------------------------------------
36
- // Misty's Water Cards — Water type seller
29
+ // ─── SELLERS ────────────────────────────────────────────────────────────────
30
+ // 1. Misty — Water-type Pokémon cards
37
31
  {
38
32
  uid: "user-misty-water-gym-misty",
39
33
  email: "misty@letitrip.in",
@@ -51,11 +45,7 @@ export const pokemonUsersSeedData = [
51
45
  storeSlug: "mistys-water-cards",
52
46
  storeStatus: "approved",
53
47
  publicProfile: {
54
- isPublic: true,
55
- showEmail: true,
56
- showPhone: false,
57
- showOrders: false,
58
- showWishlist: true,
48
+ isPublic: true, showEmail: true, showPhone: false, showOrders: false, showWishlist: true,
59
49
  bio: "Cerulean City Gym Leader. I specialise in Water-type Pokémon cards from the original Base Set.",
60
50
  storeName: "Misty's Water Cards",
61
51
  storeDescription: "The best source for Water-type Base Set singles — Blastoise, Lapras, Starmie and more.",
@@ -63,18 +53,11 @@ export const pokemonUsersSeedData = [
63
53
  storeBannerURL: "https://images.pokemontcg.io/base1/2_hires.png",
64
54
  storeReturnPolicy: "7-day returns on all NM cards.",
65
55
  storeShippingPolicy: "Ships in top-loaders with tracking.",
66
- storeCategory: "pokemon-cards",
67
- location: "Cerulean City",
68
- socialLinks: { instagram: "mistys_water_gym" },
69
56
  },
70
57
  stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 45, reviewsCount: 12 },
71
- metadata: {
72
- lastSignInTime: daysAgo(2),
73
- creationTime: daysAgo(180).toISOString(),
74
- loginCount: 88,
75
- },
58
+ metadata: { lastSignInTime: daysAgo(2), creationTime: daysAgo(180).toISOString(), loginCount: 89 },
76
59
  },
77
- // Surge's Electric Emporium — Electric type seller
60
+ // 2. Lt. Surge — Electric-type Pokémon cards
78
61
  {
79
62
  uid: "user-lt-surge-electric-surge",
80
63
  email: "surge@letitrip.in",
@@ -92,36 +75,26 @@ export const pokemonUsersSeedData = [
92
75
  storeSlug: "surges-electric-emporium",
93
76
  storeStatus: "approved",
94
77
  publicProfile: {
95
- isPublic: true,
96
- showEmail: true,
97
- showPhone: false,
98
- showOrders: false,
99
- showWishlist: true,
100
- bio: "Vermilion City Gym Leader. Shock and awe — the best Electric-type cards at the best prices.",
78
+ isPublic: true, showEmail: true, showPhone: false, showOrders: false, showWishlist: true,
79
+ bio: "Vermilion City Gym Leader. Electric-type specialists — Pikachu, Raichu, Zapdos.",
101
80
  storeName: "Surge's Electric Emporium",
102
- storeDescription: "Pikachu, Raichu, Zapdos and all Base Set Electric singles.",
81
+ storeDescription: "Vermilion City's Electric-type marketplace for Pikachu, Raichu and Zapdos collectors.",
103
82
  storeLogoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/26.png",
104
83
  storeBannerURL: "https://images.pokemontcg.io/base1/16_hires.png",
105
- storeReturnPolicy: "No returns on heavily played cards.",
106
- storeShippingPolicy: "Flat-rate ₹60 shipping, free over ₹2,000.",
107
- storeCategory: "pokemon-cards",
108
- location: "Vermilion City",
84
+ storeReturnPolicy: "7-day returns.",
85
+ storeShippingPolicy: "Ships with bubble wrap and tracking.",
109
86
  },
110
87
  stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 70, reviewsCount: 22 },
111
- metadata: {
112
- lastSignInTime: daysAgo(3),
113
- creationTime: daysAgo(200).toISOString(),
114
- loginCount: 120,
115
- },
88
+ metadata: { lastSignInTime: daysAgo(3), creationTime: daysAgo(200).toISOString(), loginCount: 120 },
116
89
  },
117
- // Blaine's Fire Shoppe — Fire type seller
90
+ // 3. Blaine — Fire-type Pokémon cards
118
91
  {
119
92
  uid: "user-blaine-fire-gym-blaine",
120
93
  email: "blaine@letitrip.in",
121
94
  phoneNumber: `${_phonePrefix}9000000003`,
122
95
  phoneVerified: true,
123
- displayName: "Blaine (Cinnabar Gym)",
124
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png",
96
+ displayName: "Blaine (Fire Gym)",
97
+ photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/59.png",
125
98
  avatarMetadata: null,
126
99
  role: "seller",
127
100
  emailVerified: true,
@@ -132,33 +105,83 @@ export const pokemonUsersSeedData = [
132
105
  storeSlug: "blaines-fire-shoppe",
133
106
  storeStatus: "approved",
134
107
  publicProfile: {
135
- isPublic: true,
136
- showEmail: true,
137
- showPhone: false,
138
- showOrders: false,
139
- showWishlist: true,
140
- bio: "Cinnabar Island Gym Leader. No one can beat my Fire-type collection.",
108
+ isPublic: true, showEmail: true, showPhone: false, showOrders: false, showWishlist: true,
109
+ bio: "Cinnabar Island Gym Leader. Fire-type specialist — Charizard, Arcanine, Moltres.",
141
110
  storeName: "Blaine's Fire Shoppe",
142
- storeDescription: "Charizard, Arcanine, Ninetales — the hottest Fire-type Base Set singles.",
143
- storeLogoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/77.png",
111
+ storeDescription: "Cinnabar Island's premier Fire-type card shop. Charizard, Ninetales, Moltres.",
112
+ storeLogoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/6.png",
144
113
  storeBannerURL: "https://images.pokemontcg.io/base1/4_hires.png",
145
- storeReturnPolicy: "3-day returns, card must be in original condition.",
146
- storeShippingPolicy: "All cards shipped in penny sleeves + top-loader.",
147
- storeCategory: "pokemon-cards",
148
- location: "Cinnabar Island",
114
+ storeReturnPolicy: "3-day returns. Card must be in same condition.",
115
+ storeShippingPolicy: "Shipped in rigid top-loader + bubble mailer with insurance.",
149
116
  },
150
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 120, reviewsCount: 40 },
151
- metadata: {
152
- lastSignInTime: daysAgo(1),
153
- creationTime: daysAgo(220).toISOString(),
154
- loginCount: 200,
117
+ stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 38, reviewsCount: 15 },
118
+ metadata: { lastSignInTime: daysAgo(1), creationTime: daysAgo(220).toISOString(), loginCount: 95 },
119
+ },
120
+ // 4. Speed King — Hot Wheels + Transformers
121
+ {
122
+ uid: "user-speed-king-diecast",
123
+ email: "speedking@letitrip.in",
124
+ phoneNumber: `${_phonePrefix}9000000004`,
125
+ phoneVerified: true,
126
+ displayName: "Speed King Diecast",
127
+ photoURL: "https://picsum.photos/seed/speedking-avatar/200/200",
128
+ avatarMetadata: null,
129
+ role: "seller",
130
+ emailVerified: true,
131
+ disabled: false,
132
+ createdAt: daysAgo(90),
133
+ updatedAt: daysAgo(1),
134
+ storeId: "store-speed-king-diecast",
135
+ storeSlug: "speed-king-diecast",
136
+ storeStatus: "approved",
137
+ publicProfile: {
138
+ isPublic: true, showEmail: true, showPhone: false, showOrders: false, showWishlist: true,
139
+ bio: "India's largest Hot Wheels collector and reseller. Treasure Hunts, Car Culture, and Transformers.",
140
+ storeName: "Speed King Diecast",
141
+ storeDescription: "Premium Hot Wheels and Transformers collectibles — Treasure Hunts, Car Culture, and G1 figures.",
142
+ storeLogoURL: "https://picsum.photos/seed/speedking-logo/200/200",
143
+ storeBannerURL: "https://picsum.photos/seed/speedking-banner/1200/400",
144
+ storeReturnPolicy: "10-day hassle-free returns on all sealed items.",
145
+ storeShippingPolicy: "Bubble-packed in rigid box. PAN India delivery with tracking.",
155
146
  },
147
+ stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 215, reviewsCount: 67 },
148
+ metadata: { lastSignInTime: daysAgo(1), creationTime: daysAgo(90).toISOString(), loginCount: 310 },
156
149
  },
157
- // -- Buyers (classic trainers) ---------------------------------------------
150
+ // 5. Bladers Paradise Beyblade Burst + Transformers
158
151
  {
159
- uid: "user-ash-ketchum-pallet-ash",
160
- email: "ash@pallet.town",
161
- phoneNumber: `${_phonePrefix}9111111111`,
152
+ uid: "user-bladers-paradise",
153
+ email: "bladers@letitrip.in",
154
+ phoneNumber: `${_phonePrefix}9000000005`,
155
+ phoneVerified: true,
156
+ displayName: "Bladers Paradise",
157
+ photoURL: "https://picsum.photos/seed/bladers-avatar/200/200",
158
+ avatarMetadata: null,
159
+ role: "seller",
160
+ emailVerified: true,
161
+ disabled: false,
162
+ createdAt: daysAgo(120),
163
+ updatedAt: daysAgo(2),
164
+ storeId: "store-bladers-paradise",
165
+ storeSlug: "bladers-paradise",
166
+ storeStatus: "approved",
167
+ publicProfile: {
168
+ isPublic: true, showEmail: true, showPhone: false, showOrders: false, showWishlist: true,
169
+ bio: "Beyblade Burst specialist. Attack, Defense, Stamina and Balance types — all series.",
170
+ storeName: "Bladers Paradise",
171
+ storeDescription: "Your one-stop shop for Beyblade Burst tops, stadiums, launchers, and accessories.",
172
+ storeLogoURL: "https://picsum.photos/seed/bladers-logo/200/200",
173
+ storeBannerURL: "https://picsum.photos/seed/bladers-banner/1200/400",
174
+ storeReturnPolicy: "7-day returns for unopened items.",
175
+ storeShippingPolicy: "Padded boxes, nationwide delivery in 3–5 business days.",
176
+ },
177
+ stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 143, reviewsCount: 48 },
178
+ metadata: { lastSignInTime: daysAgo(2), creationTime: daysAgo(120).toISOString(), loginCount: 178 },
179
+ },
180
+ // ─── ACTIVE BUYERS (10) ─────────────────────────────────────────────────────
181
+ {
182
+ uid: "user-ash-ketchum-buyer",
183
+ email: "ash.ketchum@letitrip.in",
184
+ phoneNumber: `${_phonePrefix}9100000001`,
162
185
  phoneVerified: false,
163
186
  displayName: "Ash Ketchum",
164
187
  photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png",
@@ -166,273 +189,234 @@ export const pokemonUsersSeedData = [
166
189
  role: "user",
167
190
  emailVerified: true,
168
191
  disabled: false,
169
- createdAt: daysAgo(100),
192
+ createdAt: daysAgo(120),
170
193
  updatedAt: daysAgo(5),
171
194
  publicProfile: {
172
- isPublic: true,
173
- showEmail: false,
174
- showPhone: false,
175
- showOrders: true,
176
- showWishlist: true,
177
- bio: "Pokémon trainer from Pallet Town. Gotta collect 'em all!",
178
- location: "Pallet Town",
179
- },
180
- stats: {
181
- totalOrders: 14,
182
- auctionsWon: 2,
183
- itemsSold: 0,
184
- reviewsCount: 8,
185
- rating: 4.9,
195
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
196
+ bio: "Pokémon Master in training. Collecting every holo rare from Base Set 151.",
186
197
  },
187
- metadata: {
188
- lastSignInTime: daysAgo(5),
189
- creationTime: daysAgo(100).toISOString(),
190
- loginCount: 55,
198
+ stats: { totalOrders: 8, auctionsWon: 2, itemsSold: 0, reviewsCount: 5 },
199
+ metadata: { lastSignInTime: daysAgo(5), creationTime: daysAgo(120).toISOString(), loginCount: 34 },
200
+ },
201
+ {
202
+ uid: "user-brock-pewter-buyer",
203
+ email: "brock.pewter@letitrip.in",
204
+ phoneNumber: `${_phonePrefix}9100000002`,
205
+ phoneVerified: true,
206
+ displayName: "Brock Pewter",
207
+ photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/74.png",
208
+ avatarMetadata: null,
209
+ role: "user",
210
+ emailVerified: true,
211
+ disabled: false,
212
+ createdAt: daysAgo(95),
213
+ updatedAt: daysAgo(8),
214
+ publicProfile: {
215
+ isPublic: false, showEmail: false, showPhone: false, showOrders: false, showWishlist: false,
216
+ bio: "Rock-type trainer looking for Onix and Geodude singles.",
191
217
  },
218
+ stats: { totalOrders: 4, auctionsWon: 0, itemsSold: 0, reviewsCount: 2 },
219
+ metadata: { lastSignInTime: daysAgo(8), creationTime: daysAgo(95).toISOString(), loginCount: 18 },
192
220
  },
193
221
  {
194
- uid: "user-gary-oak-pallet-gary",
195
- email: "gary@pallet.town",
196
- phoneNumber: `${_phonePrefix}9222222222`,
222
+ uid: "user-gary-oak-buyer",
223
+ email: "gary.oak@letitrip.in",
224
+ phoneNumber: `${_phonePrefix}9100000003`,
197
225
  phoneVerified: true,
198
226
  displayName: "Gary Oak",
199
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png",
227
+ photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/131.png",
200
228
  avatarMetadata: null,
201
229
  role: "user",
202
230
  emailVerified: true,
203
231
  disabled: false,
204
- createdAt: daysAgo(110),
205
- updatedAt: daysAgo(7),
232
+ createdAt: daysAgo(150),
233
+ updatedAt: daysAgo(3),
206
234
  publicProfile: {
207
- isPublic: true,
208
- showEmail: false,
209
- showPhone: false,
210
- showOrders: true,
211
- showWishlist: false,
212
- bio: "My collection is better than yours.",
213
- location: "Pallet Town",
214
- },
215
- stats: {
216
- totalOrders: 30,
217
- auctionsWon: 5,
218
- itemsSold: 0,
219
- reviewsCount: 12,
220
- rating: 4.7,
235
+ isPublic: true, showEmail: false, showPhone: false, showOrders: true, showWishlist: true,
236
+ bio: "Smell ya later! Collecting PSA 10 graded Base Set Holo Rares.",
221
237
  },
222
- metadata: {
223
- lastSignInTime: daysAgo(7),
224
- creationTime: daysAgo(110).toISOString(),
225
- loginCount: 80,
238
+ stats: { totalOrders: 22, auctionsWon: 5, itemsSold: 0, reviewsCount: 18 },
239
+ metadata: { lastSignInTime: daysAgo(3), creationTime: daysAgo(150).toISOString(), loginCount: 87 },
240
+ },
241
+ {
242
+ uid: "user-dawn-sinnoh-buyer",
243
+ email: "dawn.sinnoh@letitrip.in",
244
+ phoneNumber: `${_phonePrefix}9100000004`,
245
+ phoneVerified: false,
246
+ displayName: "Dawn (Sinnoh)",
247
+ photoURL: "https://picsum.photos/seed/dawn-avatar/200/200",
248
+ avatarMetadata: null,
249
+ role: "user",
250
+ emailVerified: true,
251
+ disabled: false,
252
+ createdAt: daysAgo(60),
253
+ updatedAt: daysAgo(12),
254
+ publicProfile: {
255
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
256
+ bio: "Pokémon Coordinator and Hot Wheels collector — especially Japanese exclusives.",
226
257
  },
258
+ stats: { totalOrders: 6, auctionsWon: 1, itemsSold: 0, reviewsCount: 3 },
259
+ metadata: { lastSignInTime: daysAgo(12), creationTime: daysAgo(60).toISOString(), loginCount: 22 },
227
260
  },
228
261
  {
229
- uid: "user-brock-pewter-brock",
230
- email: "brock@pewter.gym",
231
- phoneNumber: `${_phonePrefix}9333333333`,
262
+ uid: "user-may-hoenn-buyer",
263
+ email: "may.hoenn@letitrip.in",
264
+ phoneNumber: `${_phonePrefix}9100000005`,
232
265
  phoneVerified: true,
233
- displayName: "Brock",
234
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/74.png",
266
+ displayName: "May (Hoenn)",
267
+ photoURL: "https://picsum.photos/seed/may-avatar/200/200",
235
268
  avatarMetadata: null,
236
269
  role: "user",
237
270
  emailVerified: true,
238
271
  disabled: false,
239
- createdAt: daysAgo(90),
240
- updatedAt: daysAgo(10),
272
+ createdAt: daysAgo(75),
273
+ updatedAt: daysAgo(7),
241
274
  publicProfile: {
242
- isPublic: true,
243
- showEmail: false,
244
- showPhone: false,
245
- showOrders: false,
246
- showWishlist: true,
247
- bio: "Pewter City Gym Leader and rock-solid collector.",
248
- location: "Pewter City",
249
- },
250
- stats: { totalOrders: 8, auctionsWon: 1, itemsSold: 0, reviewsCount: 5 },
251
- metadata: {
252
- lastSignInTime: daysAgo(10),
253
- creationTime: daysAgo(90).toISOString(),
254
- loginCount: 30,
275
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
276
+ bio: "Hoenn Coordinator. Building a complete Grass-type Base Set collection.",
255
277
  },
278
+ stats: { totalOrders: 11, auctionsWon: 0, itemsSold: 0, reviewsCount: 7 },
279
+ metadata: { lastSignInTime: daysAgo(7), creationTime: daysAgo(75).toISOString(), loginCount: 41 },
256
280
  },
257
281
  {
258
- uid: "user-prof-oak-pallet-oak",
259
- email: "oak@pallettown.lab",
260
- phoneNumber: `${_phonePrefix}9444444444`,
282
+ uid: "user-wheels-king-hw",
283
+ email: "wheels.king@letitrip.in",
284
+ phoneNumber: `${_phonePrefix}9100000006`,
261
285
  phoneVerified: true,
262
- displayName: "Professor Oak",
263
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/143.png",
286
+ displayName: "Wheels King",
287
+ photoURL: "https://picsum.photos/seed/wheelsking-avatar/200/200",
264
288
  avatarMetadata: null,
265
289
  role: "user",
266
290
  emailVerified: true,
267
291
  disabled: false,
268
- createdAt: daysAgo(300),
269
- updatedAt: daysAgo(20),
292
+ createdAt: daysAgo(45),
293
+ updatedAt: daysAgo(2),
270
294
  publicProfile: {
271
- isPublic: true,
272
- showEmail: true,
273
- showPhone: false,
274
- showOrders: false,
275
- showWishlist: true,
276
- bio: "Pokémon researcher. Looking for rare Base Set specimens for my Pokédex.",
277
- location: "Pallet Town",
278
- },
279
- stats: {
280
- totalOrders: 50,
281
- auctionsWon: 10,
282
- itemsSold: 0,
283
- reviewsCount: 30,
284
- rating: 5.0,
285
- },
286
- metadata: {
287
- lastSignInTime: daysAgo(20),
288
- creationTime: daysAgo(300).toISOString(),
289
- loginCount: 300,
295
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
296
+ bio: "Hardcore Hot Wheels Super Treasure Hunt hunter. 500+ in collection.",
290
297
  },
298
+ stats: { totalOrders: 31, auctionsWon: 7, itemsSold: 0, reviewsCount: 24 },
299
+ metadata: { lastSignInTime: daysAgo(2), creationTime: daysAgo(45).toISOString(), loginCount: 156 },
291
300
  },
292
301
  {
293
- uid: "user-sabrina-saffron-sabrina",
294
- email: "sabrina@saffron.gym",
295
- phoneNumber: `${_phonePrefix}9555555555`,
302
+ uid: "user-metal-hiro-beyblade",
303
+ email: "metal.hiro@letitrip.in",
304
+ phoneNumber: `${_phonePrefix}9100000007`,
296
305
  phoneVerified: true,
297
- displayName: "Sabrina",
298
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/65.png",
306
+ displayName: "Metal Hiro",
307
+ photoURL: "https://picsum.photos/seed/metalhiro-avatar/200/200",
299
308
  avatarMetadata: null,
300
309
  role: "user",
301
310
  emailVerified: true,
302
311
  disabled: false,
303
- createdAt: daysAgo(140),
304
- updatedAt: daysAgo(15),
312
+ createdAt: daysAgo(30),
313
+ updatedAt: daysAgo(4),
305
314
  publicProfile: {
306
- isPublic: true,
307
- showEmail: false,
308
- showPhone: false,
309
- showOrders: false,
310
- showWishlist: true,
311
- bio: "Psychic-type enthusiast from Saffron City. I only collect Psychic cards.",
312
- location: "Saffron City",
313
- },
314
- stats: { totalOrders: 20, auctionsWon: 3, itemsSold: 0, reviewsCount: 9 },
315
- metadata: {
316
- lastSignInTime: daysAgo(15),
317
- creationTime: daysAgo(140).toISOString(),
318
- loginCount: 60,
315
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
316
+ bio: "Beyblade Burst GT champion. Let it rip! Collecting all limited edition tops.",
319
317
  },
318
+ stats: { totalOrders: 14, auctionsWon: 3, itemsSold: 0, reviewsCount: 11 },
319
+ metadata: { lastSignInTime: daysAgo(4), creationTime: daysAgo(30).toISOString(), loginCount: 67 },
320
320
  },
321
321
  {
322
- uid: "user-erika-celadon-erika",
323
- email: "erika@celadon.gym",
324
- phoneNumber: `${_phonePrefix}9666666666`,
322
+ uid: "user-optimus-collector",
323
+ email: "optimus.collector@letitrip.in",
324
+ phoneNumber: `${_phonePrefix}9100000008`,
325
325
  phoneVerified: false,
326
- displayName: "Erika",
327
- photoURL: "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/45.png",
326
+ displayName: "Optimus Collector",
327
+ photoURL: "https://picsum.photos/seed/optimus-avatar/200/200",
328
328
  avatarMetadata: null,
329
329
  role: "user",
330
330
  emailVerified: true,
331
331
  disabled: false,
332
- createdAt: daysAgo(70),
333
- updatedAt: daysAgo(3),
332
+ createdAt: daysAgo(55),
333
+ updatedAt: daysAgo(9),
334
334
  publicProfile: {
335
- isPublic: true,
336
- showEmail: false,
337
- showPhone: false,
338
- showOrders: true,
339
- showWishlist: true,
340
- bio: "Celadon City Gym Leader. Passionate about Grass-type cards.",
341
- location: "Celadon City",
342
- },
343
- stats: { totalOrders: 6, auctionsWon: 0, itemsSold: 0, reviewsCount: 3 },
344
- metadata: {
345
- lastSignInTime: daysAgo(3),
346
- creationTime: daysAgo(70).toISOString(),
347
- loginCount: 25,
335
+ isPublic: false, showEmail: false, showPhone: false, showOrders: false, showWishlist: false,
336
+ bio: "G1 Transformers purist. Looking for MISB 1984 originals.",
348
337
  },
338
+ stats: { totalOrders: 9, auctionsWon: 4, itemsSold: 0, reviewsCount: 6 },
339
+ metadata: { lastSignInTime: daysAgo(9), creationTime: daysAgo(55).toISOString(), loginCount: 29 },
349
340
  },
350
- // -- Moderator -------------------------------------------------------------
351
341
  {
352
- uid: "user-moderator-mod-user",
353
- email: "mod@letitrip.in",
354
- phoneNumber: `${_phonePrefix}9800000001`,
342
+ uid: "user-riku-beyblade-fan",
343
+ email: "riku.blader@letitrip.in",
344
+ phoneNumber: `${_phonePrefix}9100000009`,
355
345
  phoneVerified: true,
356
- displayName: "Moderator",
357
- photoURL: null,
346
+ displayName: "Riku Blader",
347
+ photoURL: "https://picsum.photos/seed/riku-avatar/200/200",
358
348
  avatarMetadata: null,
359
- role: "moderator",
349
+ role: "user",
360
350
  emailVerified: true,
361
351
  disabled: false,
362
- createdAt: daysAgo(300),
363
- updatedAt: daysAgo(5),
352
+ createdAt: daysAgo(40),
353
+ updatedAt: daysAgo(6),
364
354
  publicProfile: {
365
- isPublic: false,
366
- showEmail: false,
367
- showPhone: false,
368
- showOrders: false,
369
- showWishlist: false,
370
- bio: "Keeping the marketplace fair for all trainers.",
355
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
356
+ bio: "Stamina-type Beyblade expert. Longinus and Neptune main.",
371
357
  },
372
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
373
- metadata: {
374
- lastSignInTime: daysAgo(5),
375
- creationTime: daysAgo(300).toISOString(),
376
- loginCount: 90,
358
+ stats: { totalOrders: 7, auctionsWon: 1, itemsSold: 0, reviewsCount: 5 },
359
+ metadata: { lastSignInTime: daysAgo(6), creationTime: daysAgo(40).toISOString(), loginCount: 33 },
360
+ },
361
+ {
362
+ uid: "user-priya-collector",
363
+ email: "priya.collector@letitrip.in",
364
+ phoneNumber: `${_phonePrefix}9100000010`,
365
+ phoneVerified: true,
366
+ displayName: "Priya Collector",
367
+ photoURL: "https://picsum.photos/seed/priya-avatar/200/200",
368
+ avatarMetadata: null,
369
+ role: "user",
370
+ emailVerified: true,
371
+ disabled: false,
372
+ createdAt: daysAgo(85),
373
+ updatedAt: daysAgo(14),
374
+ publicProfile: {
375
+ isPublic: true, showEmail: false, showPhone: false, showOrders: false, showWishlist: true,
376
+ bio: "Multi-hobby collector — Pokémon, Hot Wheels, and Transformers. PSA grader too.",
377
377
  },
378
+ stats: { totalOrders: 18, auctionsWon: 2, itemsSold: 0, reviewsCount: 14 },
379
+ metadata: { lastSignInTime: daysAgo(14), creationTime: daysAgo(85).toISOString(), loginCount: 62 },
378
380
  },
379
- // -- Edge-case users -------------------------------------------------------
381
+ // ─── BANNED USERS (2) ───────────────────────────────────────────────────────
380
382
  {
381
- uid: "user-unverified-new-user",
382
- email: "newtrainer@example.com",
383
- phoneNumber: null,
383
+ uid: "user-banned-scammer-001",
384
+ email: "fake.seller.banned@example.com",
385
+ phoneNumber: `${_phonePrefix}9999000001`,
384
386
  phoneVerified: false,
385
- displayName: "New Trainer",
387
+ displayName: "Banned User 001",
386
388
  photoURL: null,
387
389
  avatarMetadata: null,
388
390
  role: "user",
389
391
  emailVerified: false,
390
- disabled: false,
391
- createdAt: daysAgo(1),
392
- updatedAt: daysAgo(1),
392
+ disabled: true,
393
+ createdAt: daysAgo(90),
394
+ updatedAt: daysAgo(30),
393
395
  publicProfile: {
394
- isPublic: false,
395
- showEmail: false,
396
- showPhone: false,
397
- showOrders: false,
398
- showWishlist: false,
399
- },
400
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
401
- metadata: {
402
- lastSignInTime: daysAgo(1),
403
- creationTime: daysAgo(1).toISOString(),
404
- loginCount: 1,
396
+ isPublic: false, showEmail: false, showPhone: false, showOrders: false, showWishlist: false,
397
+ bio: "",
405
398
  },
399
+ stats: emptyStats,
400
+ metadata: { lastSignInTime: daysAgo(31), creationTime: daysAgo(90).toISOString(), loginCount: 12 },
406
401
  },
407
402
  {
408
- uid: "user-pending-seller-pendingsl",
409
- email: "pendingseller@example.com",
410
- phoneNumber: `${_phonePrefix}9700000002`,
411
- phoneVerified: true,
412
- displayName: "Pending Seller",
403
+ uid: "user-banned-fraud-002",
404
+ email: "fraud.buyer.banned@example.com",
405
+ phoneNumber: `${_phonePrefix}9999000002`,
406
+ phoneVerified: false,
407
+ displayName: "Banned User 002",
413
408
  photoURL: null,
414
409
  avatarMetadata: null,
415
- role: "seller",
416
- emailVerified: true,
417
- disabled: false,
418
- createdAt: daysAgo(3),
419
- updatedAt: daysAgo(1),
420
- storeId: "store-pending-trainer-shop",
421
- storeSlug: "pending-trainer-shop",
422
- storeStatus: "pending",
410
+ role: "user",
411
+ emailVerified: false,
412
+ disabled: true,
413
+ createdAt: daysAgo(60),
414
+ updatedAt: daysAgo(15),
423
415
  publicProfile: {
424
- isPublic: false,
425
- showEmail: false,
426
- showPhone: false,
427
- showOrders: false,
428
- showWishlist: false,
429
- storeName: "Pending Trainer Shop",
430
- },
431
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
432
- metadata: {
433
- lastSignInTime: daysAgo(1),
434
- creationTime: daysAgo(3).toISOString(),
435
- loginCount: 2,
416
+ isPublic: false, showEmail: false, showPhone: false, showOrders: false, showWishlist: false,
417
+ bio: "",
436
418
  },
419
+ stats: emptyStats,
420
+ metadata: { lastSignInTime: daysAgo(16), creationTime: daysAgo(60).toISOString(), loginCount: 8 },
437
421
  },
438
422
  ];