@mohasinac/appkit 2.7.53 → 2.7.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +1 -1
- package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -3
- package/dist/_internal/server/jobs/core/bundleStockSync.js +9 -7
- package/dist/_internal/server/jobs/core/onProductStockChange.d.ts +12 -3
- package/dist/_internal/server/jobs/core/onProductStockChange.js +12 -13
- package/dist/_internal/server/jobs/core/onProductWrite.js +1 -3
- package/dist/_internal/server/jobs/handlers/onProductStockChange.js +11 -2
- package/dist/_internal/server/jobs/runtime/adapters/firebase.js +5 -14
- package/dist/_internal/shared/actions/action-registry.js +827 -4
- package/dist/_internal/shared/features/events/schema.d.ts +4 -4
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -0
- package/dist/constants/api-endpoints.d.ts +3 -0
- package/dist/constants/api-endpoints.js +1 -0
- package/dist/constants/field-names.d.ts +4 -3
- package/dist/constants/field-names.js +8 -8
- package/dist/errors/error-codes.d.ts +3 -0
- package/dist/errors/error-codes.js +3 -0
- package/dist/errors/messages.d.ts +3 -0
- package/dist/errors/messages.js +3 -0
- package/dist/features/account/components/UserOffersPanel.js +2 -1
- package/dist/features/admin/components/AdminAllEventEntriesView.js +4 -3
- package/dist/features/admin/components/AdminBidsView.js +5 -3
- package/dist/features/admin/components/AdminBlogView.js +3 -2
- package/dist/features/admin/components/AdminBrandsView.js +2 -1
- package/dist/features/admin/components/AdminBundleEditorView.js +4 -5
- package/dist/features/admin/components/AdminBundlesView.js +3 -3
- package/dist/features/admin/components/AdminCarouselView.d.ts +2 -1
- package/dist/features/admin/components/AdminCarouselView.js +14 -5
- package/dist/features/admin/components/AdminCategoriesView.js +2 -1
- package/dist/features/admin/components/AdminContactView.d.ts +4 -1
- package/dist/features/admin/components/AdminContactView.js +27 -7
- package/dist/features/admin/components/AdminCouponsView.d.ts +3 -1
- package/dist/features/admin/components/AdminCouponsView.js +17 -3
- package/dist/features/admin/components/AdminFaqsView.d.ts +3 -1
- package/dist/features/admin/components/AdminFaqsView.js +18 -4
- package/dist/features/admin/components/AdminFeaturesView.js +2 -1
- package/dist/features/admin/components/AdminMediaView.js +3 -2
- package/dist/features/admin/components/AdminNavigationView.js +3 -2
- package/dist/features/admin/components/AdminNewsletterView.d.ts +2 -1
- package/dist/features/admin/components/AdminNewsletterView.js +13 -4
- package/dist/features/admin/components/AdminNotificationsView.js +6 -4
- package/dist/features/admin/components/AdminOrdersView.js +4 -3
- package/dist/features/admin/components/AdminPayoutsView.js +2 -2
- package/dist/features/admin/components/AdminPrizeDrawsView.js +2 -1
- package/dist/features/admin/components/AdminProductsView.js +3 -3
- package/dist/features/admin/components/AdminReviewsView.js +4 -3
- package/dist/features/admin/components/AdminScammersView.js +2 -1
- package/dist/features/admin/components/AdminSessionsView.js +5 -3
- package/dist/features/admin/components/AdminStoresView.js +2 -2
- package/dist/features/admin/components/AdminSublistingCategoriesView.d.ts +5 -1
- package/dist/features/admin/components/AdminSublistingCategoriesView.js +12 -3
- package/dist/features/admin/components/AdminSupportTicketsView.js +2 -1
- package/dist/features/admin/components/AdminTeamView.d.ts +2 -1
- package/dist/features/admin/components/AdminTeamView.js +13 -4
- package/dist/features/admin/components/AdminUsersView.js +2 -2
- package/dist/features/admin/types/product.types.d.ts +1 -1
- package/dist/features/admin/types/product.types.js +2 -3
- package/dist/features/auctions/actions/bid-actions.d.ts +9 -0
- package/dist/features/auctions/actions/bid-actions.js +61 -0
- package/dist/features/auctions/components/AuctionDetailPageView.d.ts +2 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +5 -4
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +32 -2
- package/dist/features/auctions/types/index.d.ts +1 -1
- package/dist/features/layout/AppLayoutShell.js +1 -1
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -11
- package/dist/features/products/api/[id]/route.js +4 -8
- package/dist/features/products/api/route.js +1 -3
- package/dist/features/products/components/AuctionsIndexListing.js +3 -11
- package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -10
- package/dist/features/products/components/ProductFilters.d.ts +33 -9
- package/dist/features/products/components/ProductFilters.js +6 -29
- package/dist/features/products/components/ProductForm.js +2 -3
- package/dist/features/products/constants/action-defs.d.ts +86 -7
- package/dist/features/products/constants/action-defs.js +99 -7
- package/dist/features/products/constants/sieve.d.ts +162 -0
- package/dist/features/products/constants/sieve.js +95 -0
- package/dist/features/products/repository/products.repository.d.ts +5 -0
- package/dist/features/products/repository/products.repository.js +23 -3
- package/dist/features/products/schemas/firestore.d.ts +4 -4
- package/dist/features/products/schemas/firestore.js +2 -3
- package/dist/features/products/schemas/index.d.ts +6 -6
- package/dist/features/products/schemas/index.js +2 -6
- package/dist/features/products/types/index.d.ts +1 -1
- package/dist/features/seller/actions/offer-actions.js +2 -2
- package/dist/features/seller/components/QuickProductForm.d.ts +13 -0
- package/dist/features/seller/components/QuickProductForm.js +50 -0
- package/dist/features/seller/components/SellerAuctionsView.d.ts +4 -1
- package/dist/features/seller/components/SellerAuctionsView.js +37 -3
- package/dist/features/seller/components/SellerBidsView.js +2 -1
- package/dist/features/seller/components/SellerBundlesView.d.ts +3 -1
- package/dist/features/seller/components/SellerBundlesView.js +38 -5
- package/dist/features/seller/components/SellerClassifiedView.d.ts +3 -1
- package/dist/features/seller/components/SellerClassifiedView.js +37 -4
- package/dist/features/seller/components/SellerDigitalCodesView.d.ts +3 -1
- package/dist/features/seller/components/SellerDigitalCodesView.js +37 -4
- package/dist/features/seller/components/SellerGoogleReviewsView.js +2 -1
- package/dist/features/seller/components/SellerGroupedListingsView.js +3 -2
- package/dist/features/seller/components/SellerLiveView.d.ts +3 -1
- package/dist/features/seller/components/SellerLiveView.js +37 -4
- package/dist/features/seller/components/SellerOffersPanel.js +2 -1
- package/dist/features/seller/components/SellerOffersView.d.ts +4 -1
- package/dist/features/seller/components/SellerOffersView.js +8 -3
- package/dist/features/seller/components/SellerPayoutsView.d.ts +3 -1
- package/dist/features/seller/components/SellerPayoutsView.js +7 -3
- package/dist/features/seller/components/SellerPreOrdersView.d.ts +2 -1
- package/dist/features/seller/components/SellerPreOrdersView.js +30 -7
- package/dist/features/seller/components/SellerPrizeDrawsView.d.ts +2 -1
- package/dist/features/seller/components/SellerPrizeDrawsView.js +30 -7
- package/dist/features/seller/components/SellerProductShell.js +12 -0
- package/dist/features/seller/components/SellerReviewsView.js +2 -1
- package/dist/features/seller/components/SellerShippingConfigsView.js +3 -2
- package/dist/features/seller/components/SellerStoreCategoriesView.js +6 -5
- package/dist/features/seller/components/SellerTemplatesView.js +4 -3
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +30 -16
- package/dist/features/wishlist/types/index.d.ts +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +6 -4
- package/dist/seed/addresses-seed-data.d.ts +2 -18
- package/dist/seed/addresses-seed-data.js +137 -203
- package/dist/seed/bids-seed-data.d.ts +2 -8
- package/dist/seed/bids-seed-data.js +172 -648
- package/dist/seed/blog-posts-seed-data.d.ts +0 -5
- package/dist/seed/blog-posts-seed-data.js +341 -596
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -5
- package/dist/seed/carousel-slides-seed-data.js +61 -192
- package/dist/seed/carousels-seed-data.js +18 -1
- package/dist/seed/cart-seed-data.d.ts +1 -18
- package/dist/seed/cart-seed-data.js +116 -293
- package/dist/seed/categories-seed-data.d.ts +0 -6
- package/dist/seed/categories-seed-data.js +1409 -1537
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -11
- package/dist/seed/claimed-coupons-seed-data.js +32 -29
- package/dist/seed/conversations-seed-data.d.ts +0 -6
- package/dist/seed/conversations-seed-data.js +132 -280
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -16
- package/dist/seed/coupon-usage-seed-data.js +30 -44
- package/dist/seed/coupons-seed-data.d.ts +0 -6
- package/dist/seed/coupons-seed-data.js +141 -489
- package/dist/seed/events-seed-data.d.ts +0 -6
- package/dist/seed/events-seed-data.js +201 -379
- package/dist/seed/faq-seed-data.d.ts +0 -14
- package/dist/seed/faq-seed-data.js +609 -1184
- package/dist/seed/grouped-listings-seed-data.d.ts +119 -8
- package/dist/seed/grouped-listings-seed-data.js +148 -233
- package/dist/seed/history-seed-data.d.ts +0 -7
- package/dist/seed/history-seed-data.js +50 -54
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -5
- package/dist/seed/homepage-sections-seed-data.js +83 -175
- package/dist/seed/index.d.ts +1 -1
- package/dist/seed/index.js +1 -1
- package/dist/seed/manifest.js +2 -2
- package/dist/seed/notifications-seed-data.d.ts +0 -6
- package/dist/seed/notifications-seed-data.js +309 -196
- package/dist/seed/offers-seed-data.d.ts +0 -8
- package/dist/seed/offers-seed-data.js +118 -197
- package/dist/seed/orders-seed-data.d.ts +2 -8
- package/dist/seed/orders-seed-data.js +248 -1510
- package/dist/seed/payouts-seed-data.d.ts +0 -6
- package/dist/seed/payouts-seed-data.js +102 -441
- package/dist/seed/products-auctions-seed-data.d.ts +1 -14
- package/dist/seed/products-auctions-seed-data.js +612 -1084
- package/dist/seed/products-preorders-seed-data.d.ts +119 -14
- package/dist/seed/products-preorders-seed-data.js +154 -455
- package/dist/seed/products-standard-seed-data.d.ts +1 -15
- package/dist/seed/products-standard-seed-data.js +1355 -4128
- package/dist/seed/reviews-seed-data.d.ts +2 -8
- package/dist/seed/reviews-seed-data.js +99 -1182
- package/dist/seed/scammers-seed-data.d.ts +0 -15
- package/dist/seed/scammers-seed-data.js +36 -37
- package/dist/seed/sessions-seed-data.d.ts +0 -13
- package/dist/seed/sessions-seed-data.js +58 -335
- package/dist/seed/site-settings-seed-data.d.ts +0 -4
- package/dist/seed/site-settings-seed-data.js +61 -52
- package/dist/seed/store-addresses-seed-data.js +27 -151
- package/dist/seed/store-extensions-seed-data.d.ts +0 -7
- package/dist/seed/store-extensions-seed-data.js +147 -261
- package/dist/seed/stores-seed-data.d.ts +0 -5
- package/dist/seed/stores-seed-data.js +222 -184
- package/dist/seed/sub-listings-seed-data.d.ts +119 -0
- package/dist/seed/sub-listings-seed-data.js +447 -0
- package/dist/seed/support-tickets-seed-data.d.ts +0 -7
- package/dist/seed/support-tickets-seed-data.js +82 -75
- package/dist/seed/users-seed-data.d.ts +0 -5
- package/dist/seed/users-seed-data.js +279 -634
- package/dist/seed/wishlists-seed-data.d.ts +0 -9
- package/dist/seed/wishlists-seed-data.js +36 -52
- package/dist/seo/json-ld.js +6 -4
- package/dist/styles.css +8052 -3
- package/dist/tailwind-utilities.css +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/search-tokens.d.ts +2 -0
- package/dist/utils/search-tokens.js +21 -0
- package/package.json +2 -2
- package/scripts/seed-cli.mjs +2 -2
|
@@ -1,29 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
1
|
+
/*
|
|
2
|
+
* WHY: Seeds all homepage sections for LetItRip collectibles marketplace — defines the homepage layout and content.
|
|
3
|
+
* WHAT: 24 sections covering welcome, carousel, stats, trust, categories, brands, products, auctions, pre-orders, banner, features, reviews, stores, events, blog, whatsapp, faq, newsletter, social, bundles, prize-draws, brand-filtered, event-raffles.
|
|
4
|
+
*
|
|
5
|
+
* EXPORTS:
|
|
6
|
+
* homepageSectionsSeedData — Array of Partial<HomepageSectionDocument> for seed runner
|
|
7
|
+
*
|
|
8
|
+
* @tag domain:homepage
|
|
9
|
+
* @tag layer:seed
|
|
10
|
+
* @tag pattern:none
|
|
11
|
+
* @tag access:server-only
|
|
12
|
+
* @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
|
|
13
|
+
* @tag sideEffects:none
|
|
5
14
|
*/
|
|
6
15
|
const NOW = new Date();
|
|
7
16
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
8
17
|
export const homepageSectionsSeedData = [
|
|
9
|
-
// ── 1. welcome ────────────────────────────────────────────────────────────
|
|
10
18
|
{
|
|
11
19
|
id: "section-welcome-hero",
|
|
12
20
|
type: "welcome",
|
|
13
21
|
order: 1,
|
|
14
22
|
enabled: true,
|
|
15
23
|
config: {
|
|
16
|
-
h1: "India's
|
|
17
|
-
subtitle: "
|
|
18
|
-
description: "
|
|
24
|
+
h1: "India's Largest Collectibles Marketplace",
|
|
25
|
+
subtitle: "Trading Cards · Action Figures · Diecast · Beyblades · Model Kits · Vintage Rare",
|
|
26
|
+
description: "Buy, sell, and auction collectibles from verified sellers across India. Pokémon, Yu-Gi-Oh!, Hot Wheels, Gundam, Beyblade, Funko Pop, and thousands more — all with secure escrow payments and authenticity guarantees.",
|
|
19
27
|
showCTA: true,
|
|
20
28
|
ctaText: "Start Shopping",
|
|
21
29
|
ctaLink: "/products",
|
|
22
30
|
},
|
|
23
31
|
createdAt: daysAgo(90),
|
|
24
|
-
updatedAt: daysAgo(
|
|
32
|
+
updatedAt: daysAgo(2),
|
|
25
33
|
},
|
|
26
|
-
// ── 2. carousel ──────────────────────────────────────────────────────────
|
|
27
34
|
{
|
|
28
35
|
id: "section-hero-carousel",
|
|
29
36
|
type: "carousel",
|
|
@@ -33,7 +40,6 @@ export const homepageSectionsSeedData = [
|
|
|
33
40
|
createdAt: daysAgo(90),
|
|
34
41
|
updatedAt: daysAgo(5),
|
|
35
42
|
},
|
|
36
|
-
// ── 3. stats ─────────────────────────────────────────────────────────────
|
|
37
43
|
{
|
|
38
44
|
id: "section-platform-stats",
|
|
39
45
|
type: "stats",
|
|
@@ -42,16 +48,15 @@ export const homepageSectionsSeedData = [
|
|
|
42
48
|
config: {
|
|
43
49
|
title: "LetItRip by the Numbers",
|
|
44
50
|
stats: [
|
|
45
|
-
{ key: "products", label: "Listings", value: "
|
|
51
|
+
{ key: "products", label: "Listings", value: "200", source: "live", metric: "total_listings", suffix: "+" },
|
|
46
52
|
{ key: "sellers", label: "Verified Sellers", value: "8", source: "live", metric: "verified_sellers", suffix: "+" },
|
|
47
|
-
{ key: "
|
|
48
|
-
{ key: "
|
|
53
|
+
{ key: "reviews", label: "Collector Reviews", value: "35", source: "live", metric: "total_reviews", suffix: "+" },
|
|
54
|
+
{ key: "orders", label: "Orders Completed", value: "50", source: "live", metric: "total_orders", suffix: "+" },
|
|
49
55
|
],
|
|
50
56
|
},
|
|
51
57
|
createdAt: daysAgo(90),
|
|
52
58
|
updatedAt: daysAgo(15),
|
|
53
59
|
},
|
|
54
|
-
// ── 4. trust-indicators ──────────────────────────────────────────────────
|
|
55
60
|
{
|
|
56
61
|
id: "section-trust-indicators",
|
|
57
62
|
type: "trust-indicators",
|
|
@@ -60,36 +65,15 @@ export const homepageSectionsSeedData = [
|
|
|
60
65
|
config: {
|
|
61
66
|
title: "Why Collectors Trust LetItRip",
|
|
62
67
|
indicators: [
|
|
63
|
-
{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
description: "Every seller is manually verified. Listings reviewed for authenticity before going live.",
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
id: "trust-escrow",
|
|
71
|
-
icon: "lock",
|
|
72
|
-
title: "Escrow Payment",
|
|
73
|
-
description: "Payment held in escrow and released only after you confirm delivery.",
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
id: "trust-returns",
|
|
77
|
-
icon: "arrow-path",
|
|
78
|
-
title: "Easy Returns",
|
|
79
|
-
description: "Seller return policies cover all product types. Platform mediates disputes.",
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
id: "trust-authentic",
|
|
83
|
-
icon: "badge-check",
|
|
84
|
-
title: "Authenticity Guarantee",
|
|
85
|
-
description: "Counterfeit items: full refund + seller suspension. Zero tolerance policy.",
|
|
86
|
-
},
|
|
68
|
+
{ id: "trust-verified", icon: "shield-check", title: "Verified Sellers", description: "Every seller is manually verified. Listings reviewed for authenticity." },
|
|
69
|
+
{ id: "trust-escrow", icon: "lock", title: "Escrow Payment", description: "Payment held in escrow until you confirm delivery. Zero risk." },
|
|
70
|
+
{ id: "trust-returns", icon: "arrow-path", title: "Easy Returns", description: "Seller return policies cover all product types. Platform mediates disputes." },
|
|
71
|
+
{ id: "trust-authentic", icon: "badge-check", title: "Authenticity Guarantee", description: "Counterfeit items: full refund + seller suspension. Zero tolerance." },
|
|
87
72
|
],
|
|
88
73
|
},
|
|
89
74
|
createdAt: daysAgo(90),
|
|
90
75
|
updatedAt: daysAgo(12),
|
|
91
76
|
},
|
|
92
|
-
// ── 5. categories ────────────────────────────────────────────────────────
|
|
93
77
|
{
|
|
94
78
|
id: "section-collectibles-categories",
|
|
95
79
|
type: "categories",
|
|
@@ -102,9 +86,8 @@ export const homepageSectionsSeedData = [
|
|
|
102
86
|
scrollInterval: 4000,
|
|
103
87
|
},
|
|
104
88
|
createdAt: daysAgo(90),
|
|
105
|
-
updatedAt: daysAgo(
|
|
89
|
+
updatedAt: daysAgo(2),
|
|
106
90
|
},
|
|
107
|
-
// ── 6. brands ────────────────────────────────────────────────────────────
|
|
108
91
|
{
|
|
109
92
|
id: "section-top-brands",
|
|
110
93
|
type: "brands",
|
|
@@ -112,15 +95,14 @@ export const homepageSectionsSeedData = [
|
|
|
112
95
|
enabled: true,
|
|
113
96
|
config: {
|
|
114
97
|
title: "Top Collectibles Brands",
|
|
115
|
-
subtitle: "
|
|
98
|
+
subtitle: "Bandai, Hasbro, Takara-Tomy, Mattel, Konami, Funko, Good Smile, and more",
|
|
116
99
|
maxBrands: 13,
|
|
117
100
|
autoScroll: true,
|
|
118
101
|
scrollInterval: 3000,
|
|
119
102
|
},
|
|
120
103
|
createdAt: daysAgo(90),
|
|
121
|
-
updatedAt: daysAgo(
|
|
104
|
+
updatedAt: daysAgo(2),
|
|
122
105
|
},
|
|
123
|
-
// ── 7. products — featured ───────────────────────────────────────────────
|
|
124
106
|
{
|
|
125
107
|
id: "section-featured-products",
|
|
126
108
|
type: "products",
|
|
@@ -128,18 +110,17 @@ export const homepageSectionsSeedData = [
|
|
|
128
110
|
enabled: true,
|
|
129
111
|
config: {
|
|
130
112
|
title: "Featured Collectibles",
|
|
131
|
-
subtitle: "Hand-picked by our team —
|
|
113
|
+
subtitle: "Hand-picked by our team — rare cards, exclusive figures, vintage finds",
|
|
132
114
|
maxProducts: 18,
|
|
133
115
|
rows: 2,
|
|
134
|
-
itemsPerRow:
|
|
135
|
-
mobileItemsPerRow:
|
|
116
|
+
itemsPerRow: 4,
|
|
117
|
+
mobileItemsPerRow: 2,
|
|
136
118
|
autoScroll: true,
|
|
137
119
|
scrollInterval: 5000,
|
|
138
120
|
},
|
|
139
121
|
createdAt: daysAgo(90),
|
|
140
|
-
updatedAt: daysAgo(
|
|
122
|
+
updatedAt: daysAgo(2),
|
|
141
123
|
},
|
|
142
|
-
// ── 8. auctions ──────────────────────────────────────────────────────────
|
|
143
124
|
{
|
|
144
125
|
id: "section-live-auctions",
|
|
145
126
|
type: "auctions",
|
|
@@ -156,9 +137,8 @@ export const homepageSectionsSeedData = [
|
|
|
156
137
|
scrollInterval: 5000,
|
|
157
138
|
},
|
|
158
139
|
createdAt: daysAgo(90),
|
|
159
|
-
updatedAt: daysAgo(
|
|
140
|
+
updatedAt: daysAgo(2),
|
|
160
141
|
},
|
|
161
|
-
// ── 9. pre-orders ────────────────────────────────────────────────────────
|
|
162
142
|
{
|
|
163
143
|
id: "section-pre-orders",
|
|
164
144
|
type: "pre-orders",
|
|
@@ -166,41 +146,39 @@ export const homepageSectionsSeedData = [
|
|
|
166
146
|
enabled: true,
|
|
167
147
|
config: {
|
|
168
148
|
title: "Reserve Before It Ships",
|
|
169
|
-
subtitle: "Secure upcoming
|
|
149
|
+
subtitle: "Secure upcoming releases with a deposit — cards, figures, kits, and more",
|
|
170
150
|
maxItems: 18,
|
|
171
151
|
rows: 2,
|
|
172
|
-
itemsPerRow:
|
|
173
|
-
mobileItemsPerRow:
|
|
152
|
+
itemsPerRow: 4,
|
|
153
|
+
mobileItemsPerRow: 2,
|
|
174
154
|
autoScroll: true,
|
|
175
155
|
scrollInterval: 5000,
|
|
176
156
|
},
|
|
177
157
|
createdAt: daysAgo(90),
|
|
178
|
-
updatedAt: daysAgo(
|
|
158
|
+
updatedAt: daysAgo(2),
|
|
179
159
|
},
|
|
180
|
-
// ── 10. banner — Beyblade X promo ────────────────────────────────────────
|
|
181
160
|
{
|
|
182
|
-
id: "section-
|
|
161
|
+
id: "section-exodia-banner",
|
|
183
162
|
type: "banner",
|
|
184
163
|
order: 10,
|
|
185
164
|
enabled: true,
|
|
186
165
|
config: {
|
|
187
166
|
height: "md",
|
|
188
|
-
backgroundImage: "https://images.
|
|
167
|
+
backgroundImage: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
189
168
|
content: {
|
|
190
|
-
title: "
|
|
191
|
-
subtitle: "
|
|
192
|
-
description: "
|
|
169
|
+
title: "Complete Your Exodia Set",
|
|
170
|
+
subtitle: "All 5 pieces available — LOB 1st Edition to modern reprints",
|
|
171
|
+
description: "The ultimate Yu-Gi-Oh! flex. Find every Exodia printing on LetItRip.",
|
|
193
172
|
},
|
|
194
173
|
buttons: [
|
|
195
|
-
{ text: "Shop
|
|
196
|
-
{ text: "
|
|
174
|
+
{ text: "Shop Exodia", link: "/products?q=exodia", variant: "primary" },
|
|
175
|
+
{ text: "Exodia Guide", link: "/blog/complete-exodia-guide", variant: "outline" },
|
|
197
176
|
],
|
|
198
177
|
clickable: false,
|
|
199
178
|
},
|
|
200
179
|
createdAt: daysAgo(45),
|
|
201
180
|
updatedAt: daysAgo(3),
|
|
202
181
|
},
|
|
203
|
-
// ── 11. features ─────────────────────────────────────────────────────────
|
|
204
182
|
{
|
|
205
183
|
id: "section-platform-features",
|
|
206
184
|
type: "features",
|
|
@@ -213,7 +191,7 @@ export const homepageSectionsSeedData = [
|
|
|
213
191
|
"Escrow payment protection — money held until you confirm delivery",
|
|
214
192
|
"Graded slab support — PSA, BGS, CGC with certificate verification",
|
|
215
193
|
"Live auctions with auto-extend — no last-second sniping",
|
|
216
|
-
"Pre-orders with deposit — secure releases with 20
|
|
194
|
+
"Pre-orders with deposit — secure releases with 20–30% down",
|
|
217
195
|
"Make-an-offer on any listing — negotiate your price",
|
|
218
196
|
"5-star store review system on every seller",
|
|
219
197
|
"Fast India-wide delivery — 3–7 business days standard",
|
|
@@ -222,7 +200,6 @@ export const homepageSectionsSeedData = [
|
|
|
222
200
|
createdAt: daysAgo(90),
|
|
223
201
|
updatedAt: daysAgo(20),
|
|
224
202
|
},
|
|
225
|
-
// ── 12. reviews ──────────────────────────────────────────────────────────
|
|
226
203
|
{
|
|
227
204
|
id: "section-collector-reviews",
|
|
228
205
|
type: "reviews",
|
|
@@ -234,28 +211,26 @@ export const homepageSectionsSeedData = [
|
|
|
234
211
|
itemsPerView: 3,
|
|
235
212
|
mobileItemsPerView: 1,
|
|
236
213
|
autoScroll: true,
|
|
237
|
-
scrollInterval:
|
|
214
|
+
scrollInterval: 4000,
|
|
238
215
|
},
|
|
239
216
|
createdAt: daysAgo(90),
|
|
240
|
-
updatedAt: daysAgo(
|
|
217
|
+
updatedAt: daysAgo(2),
|
|
241
218
|
},
|
|
242
|
-
// ── 13. stores ───────────────────────────────────────────────────────────
|
|
243
219
|
{
|
|
244
220
|
id: "section-featured-stores",
|
|
245
221
|
type: "stores",
|
|
246
222
|
order: 13,
|
|
247
223
|
enabled: true,
|
|
248
224
|
config: {
|
|
249
|
-
title: "
|
|
250
|
-
subtitle: "Browse our verified seller stores
|
|
251
|
-
maxStores:
|
|
225
|
+
title: "Verified Stores",
|
|
226
|
+
subtitle: "Browse our verified seller stores across all collectible categories",
|
|
227
|
+
maxStores: 8,
|
|
252
228
|
autoScroll: true,
|
|
253
|
-
scrollInterval:
|
|
229
|
+
scrollInterval: 4000,
|
|
254
230
|
},
|
|
255
231
|
createdAt: daysAgo(90),
|
|
256
|
-
updatedAt: daysAgo(
|
|
232
|
+
updatedAt: daysAgo(2),
|
|
257
233
|
},
|
|
258
|
-
// ── 14. events ───────────────────────────────────────────────────────────
|
|
259
234
|
{
|
|
260
235
|
id: "section-upcoming-events",
|
|
261
236
|
type: "events",
|
|
@@ -263,15 +238,14 @@ export const homepageSectionsSeedData = [
|
|
|
263
238
|
enabled: true,
|
|
264
239
|
config: {
|
|
265
240
|
title: "Tournaments & Community Events",
|
|
266
|
-
subtitle: "
|
|
241
|
+
subtitle: "Polls, raffles, sales, and spin wheels — join the fun",
|
|
267
242
|
maxEvents: 6,
|
|
268
243
|
autoScroll: true,
|
|
269
244
|
scrollInterval: 6000,
|
|
270
245
|
},
|
|
271
246
|
createdAt: daysAgo(60),
|
|
272
|
-
updatedAt: daysAgo(
|
|
247
|
+
updatedAt: daysAgo(2),
|
|
273
248
|
},
|
|
274
|
-
// ── 15. blog-articles ────────────────────────────────────────────────────
|
|
275
249
|
{
|
|
276
250
|
id: "section-collector-blog",
|
|
277
251
|
type: "blog-articles",
|
|
@@ -285,9 +259,8 @@ export const homepageSectionsSeedData = [
|
|
|
285
259
|
showThumbnails: true,
|
|
286
260
|
},
|
|
287
261
|
createdAt: daysAgo(90),
|
|
288
|
-
updatedAt: daysAgo(
|
|
262
|
+
updatedAt: daysAgo(2),
|
|
289
263
|
},
|
|
290
|
-
// ── 16. whatsapp-community ───────────────────────────────────────────────
|
|
291
264
|
{
|
|
292
265
|
id: "section-whatsapp-community",
|
|
293
266
|
type: "whatsapp-community",
|
|
@@ -295,22 +268,21 @@ export const homepageSectionsSeedData = [
|
|
|
295
268
|
enabled: true,
|
|
296
269
|
config: {
|
|
297
270
|
title: "Join the LetItRip Collectors Community",
|
|
298
|
-
description: "Connect with
|
|
271
|
+
description: "Connect with Indian collectors on WhatsApp. Share pulls, get authentication help, and be first to know about new drops.",
|
|
299
272
|
groupLink: "https://chat.whatsapp.com/letitrip-collectors",
|
|
300
|
-
memberCount:
|
|
273
|
+
memberCount: 1200,
|
|
301
274
|
benefits: [
|
|
302
275
|
"First look at rare listings before they go live",
|
|
303
276
|
"Authentication help from experienced collectors",
|
|
304
|
-
"Live auction alerts for
|
|
277
|
+
"Live auction alerts for trending collectibles",
|
|
305
278
|
"Free giveaways and community events",
|
|
306
279
|
],
|
|
307
280
|
buttonText: "Join WhatsApp Community",
|
|
308
|
-
testimonial: '"The LetItRip
|
|
281
|
+
testimonial: '"The LetItRip group helped me authenticate a PSA slab within 10 minutes." — Ravi K., Mumbai',
|
|
309
282
|
},
|
|
310
283
|
createdAt: daysAgo(90),
|
|
311
284
|
updatedAt: daysAgo(8),
|
|
312
285
|
},
|
|
313
|
-
// ── 17. faq ──────────────────────────────────────────────────────────────
|
|
314
286
|
{
|
|
315
287
|
id: "section-homepage-faq",
|
|
316
288
|
type: "faq",
|
|
@@ -320,22 +292,17 @@ export const homepageSectionsSeedData = [
|
|
|
320
292
|
title: "Frequently Asked Questions",
|
|
321
293
|
subtitle: "Quick answers about buying, selling, and collecting on LetItRip",
|
|
322
294
|
showOnHomepage: true,
|
|
323
|
-
displayCount:
|
|
295
|
+
displayCount: 10,
|
|
324
296
|
linkToFullPage: true,
|
|
325
|
-
/** Show a category tab bar so visitors can filter by topic */
|
|
326
297
|
showCategoryTabs: true,
|
|
327
|
-
|
|
328
|
-
visibleTabs: ["general", "orders_payment", "shipping_delivery", "returns_refunds"],
|
|
329
|
-
/** Allow multiple accordion panels open at once */
|
|
298
|
+
visibleTabs: ["general", "shipping_delivery", "returns_refunds", "orders_payment", "product_information", "account_security"],
|
|
330
299
|
allowMultipleOpen: true,
|
|
331
|
-
/** Number of items expanded on first render (0 = all closed) */
|
|
332
300
|
defaultOpenCount: 100,
|
|
333
|
-
categories: ["general", "
|
|
301
|
+
categories: ["general", "shipping_delivery", "returns_refunds", "orders_payment", "product_information", "account_security", "technical_support"],
|
|
334
302
|
},
|
|
335
303
|
createdAt: daysAgo(90),
|
|
336
|
-
updatedAt: daysAgo(
|
|
304
|
+
updatedAt: daysAgo(2),
|
|
337
305
|
},
|
|
338
|
-
// ── 18. newsletter ───────────────────────────────────────────────────────
|
|
339
306
|
{
|
|
340
307
|
id: "section-newsletter",
|
|
341
308
|
type: "newsletter",
|
|
@@ -343,7 +310,7 @@ export const homepageSectionsSeedData = [
|
|
|
343
310
|
enabled: true,
|
|
344
311
|
config: {
|
|
345
312
|
title: "Get New Drop Alerts",
|
|
346
|
-
description: "Be first to know about rare
|
|
313
|
+
description: "Be first to know about rare listings, auction events, and upcoming releases on LetItRip.",
|
|
347
314
|
placeholder: "Enter your email address",
|
|
348
315
|
buttonText: "Subscribe",
|
|
349
316
|
privacyText: "We respect your privacy. Unsubscribe anytime.",
|
|
@@ -352,65 +319,15 @@ export const homepageSectionsSeedData = [
|
|
|
352
319
|
createdAt: daysAgo(90),
|
|
353
320
|
updatedAt: daysAgo(12),
|
|
354
321
|
},
|
|
355
|
-
// ── 19. social-feed (disabled — credentials not yet configured) ───────────
|
|
356
322
|
{
|
|
357
323
|
id: "section-social-feed-instagram",
|
|
358
324
|
type: "social-feed",
|
|
359
325
|
order: 19,
|
|
360
326
|
enabled: false,
|
|
361
|
-
config: {
|
|
362
|
-
title: "LetItRip on Instagram",
|
|
363
|
-
subtitle: "Follow @letitrip for daily collection showcases and new drop alerts",
|
|
364
|
-
platform: "instagram",
|
|
365
|
-
handle: "letitrip",
|
|
366
|
-
postType: "all",
|
|
367
|
-
count: 9,
|
|
368
|
-
layout: "grid",
|
|
369
|
-
showCaption: true,
|
|
370
|
-
showStats: false,
|
|
371
|
-
},
|
|
327
|
+
config: { title: "LetItRip on Instagram", subtitle: "Follow @letitrip for daily showcases", platform: "instagram", handle: "letitrip", postType: "all", count: 9, layout: "grid", showCaption: true, showStats: false },
|
|
372
328
|
createdAt: daysAgo(30),
|
|
373
329
|
updatedAt: daysAgo(30),
|
|
374
330
|
},
|
|
375
|
-
// ── 20. social-feed YouTube (static posts — no API token needed) ──────────
|
|
376
|
-
{
|
|
377
|
-
id: "section-social-feed-youtube",
|
|
378
|
-
type: "social-feed",
|
|
379
|
-
order: 20,
|
|
380
|
-
enabled: false,
|
|
381
|
-
config: {
|
|
382
|
-
title: "LetItRip on YouTube",
|
|
383
|
-
subtitle: "Watch unboxings, collection reviews, and auction replays",
|
|
384
|
-
platform: "youtube",
|
|
385
|
-
handle: "letitrip",
|
|
386
|
-
postType: "all",
|
|
387
|
-
count: 6,
|
|
388
|
-
layout: "grid",
|
|
389
|
-
showCaption: true,
|
|
390
|
-
showStats: false,
|
|
391
|
-
posts: [
|
|
392
|
-
{
|
|
393
|
-
id: "yt-post-001",
|
|
394
|
-
platform: "youtube",
|
|
395
|
-
videoId: "dQw4w9WgXcQ",
|
|
396
|
-
channelName: "LetItRip",
|
|
397
|
-
caption: "Unboxing the rarest Pokémon cards of 2026 — Charizard PSA 10 reveal!",
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
id: "yt-post-002",
|
|
401
|
-
platform: "youtube",
|
|
402
|
-
videoId: "ScMzIvxBSi4",
|
|
403
|
-
channelName: "LetItRip",
|
|
404
|
-
caption: "Hot Wheels Super Treasure Hunt hunting at flea markets across Mumbai",
|
|
405
|
-
},
|
|
406
|
-
],
|
|
407
|
-
},
|
|
408
|
-
createdAt: daysAgo(15),
|
|
409
|
-
updatedAt: daysAgo(15),
|
|
410
|
-
},
|
|
411
|
-
// ── 20. featured-bundles (SB11) ──────────────────────────────────────────
|
|
412
|
-
// Enabled — bundles collection live since S4 (SB3 closeout). 3 bundles
|
|
413
|
-
// seeded in bundles-seed-data.ts; section renders them on the homepage.
|
|
414
331
|
{
|
|
415
332
|
id: "section-featured-bundles",
|
|
416
333
|
type: "featured-bundles",
|
|
@@ -418,7 +335,7 @@ export const homepageSectionsSeedData = [
|
|
|
418
335
|
enabled: true,
|
|
419
336
|
config: {
|
|
420
337
|
title: "Curated Bundles",
|
|
421
|
-
subtitle: "
|
|
338
|
+
subtitle: "Save big on card bundles, figure sets, and sealed collections",
|
|
422
339
|
maxItems: 8,
|
|
423
340
|
sortBy: "savings-desc",
|
|
424
341
|
showSavingsBadge: true,
|
|
@@ -426,9 +343,6 @@ export const homepageSectionsSeedData = [
|
|
|
426
343
|
createdAt: daysAgo(2),
|
|
427
344
|
updatedAt: daysAgo(2),
|
|
428
345
|
},
|
|
429
|
-
// ── 21. prize-draws (SB11) ───────────────────────────────────────────────
|
|
430
|
-
// Enabled — listingType="prize-draw" schema + prizeRevealStatus fields are
|
|
431
|
-
// live (SB1-B). Seed prize-draw product docs ship in S7-PrizeDraws.
|
|
432
346
|
{
|
|
433
347
|
id: "section-prize-draws",
|
|
434
348
|
type: "prize-draws",
|
|
@@ -445,60 +359,54 @@ export const homepageSectionsSeedData = [
|
|
|
445
359
|
createdAt: daysAgo(2),
|
|
446
360
|
updatedAt: daysAgo(2),
|
|
447
361
|
},
|
|
448
|
-
// ── 22a. brand-filtered products: Hot Wheels (SB5-D) ─────────────────────
|
|
449
|
-
// Uses the standard `products` section type with a brand filter — no
|
|
450
|
-
// separate "brand-products" type needed (filterByBrand is on the config).
|
|
451
362
|
{
|
|
452
|
-
id: "section-brand-
|
|
363
|
+
id: "section-brand-konami",
|
|
453
364
|
type: "products",
|
|
454
365
|
order: 22,
|
|
455
366
|
enabled: true,
|
|
456
367
|
config: {
|
|
457
|
-
title: "
|
|
458
|
-
subtitle: "
|
|
368
|
+
title: "Konami Official Products",
|
|
369
|
+
subtitle: "Official Yu-Gi-Oh! TCG products from Konami",
|
|
459
370
|
maxProducts: 12,
|
|
460
371
|
rows: 2,
|
|
461
|
-
itemsPerRow:
|
|
462
|
-
mobileItemsPerRow:
|
|
463
|
-
autoScroll:
|
|
464
|
-
scrollInterval:
|
|
465
|
-
filterByBrand: "brand-
|
|
372
|
+
itemsPerRow: 4,
|
|
373
|
+
mobileItemsPerRow: 2,
|
|
374
|
+
autoScroll: true,
|
|
375
|
+
scrollInterval: 5000,
|
|
376
|
+
filterByBrand: "brand-konami",
|
|
466
377
|
sortBy: "featured",
|
|
467
378
|
},
|
|
468
379
|
createdAt: daysAgo(2),
|
|
469
380
|
updatedAt: daysAgo(2),
|
|
470
381
|
},
|
|
471
|
-
// ── 22b. brand-filtered products: Pokémon Company (SB5-D) ────────────────
|
|
472
382
|
{
|
|
473
|
-
id: "section-brand-
|
|
383
|
+
id: "section-brand-upper-deck",
|
|
474
384
|
type: "products",
|
|
475
385
|
order: 23,
|
|
476
386
|
enabled: true,
|
|
477
387
|
config: {
|
|
478
|
-
title: "
|
|
479
|
-
subtitle: "
|
|
388
|
+
title: "Upper Deck Entertainment",
|
|
389
|
+
subtitle: "Classic YGO TCG releases from Upper Deck",
|
|
480
390
|
maxProducts: 12,
|
|
481
391
|
rows: 2,
|
|
482
|
-
itemsPerRow:
|
|
483
|
-
mobileItemsPerRow:
|
|
484
|
-
autoScroll:
|
|
485
|
-
scrollInterval:
|
|
486
|
-
filterByBrand: "brand-
|
|
392
|
+
itemsPerRow: 4,
|
|
393
|
+
mobileItemsPerRow: 2,
|
|
394
|
+
autoScroll: true,
|
|
395
|
+
scrollInterval: 5000,
|
|
396
|
+
filterByBrand: "brand-upper-deck",
|
|
487
397
|
sortBy: "featured",
|
|
488
398
|
},
|
|
489
399
|
createdAt: daysAgo(2),
|
|
490
400
|
updatedAt: daysAgo(2),
|
|
491
401
|
},
|
|
492
|
-
// ── 24. event-raffles (SB11) ─────────────────────────────────────────────
|
|
493
|
-
// Disabled until events gain hasRaffle flag (S19+).
|
|
494
402
|
{
|
|
495
403
|
id: "section-event-raffles",
|
|
496
404
|
type: "event-raffles",
|
|
497
405
|
order: 24,
|
|
498
|
-
enabled:
|
|
406
|
+
enabled: true,
|
|
499
407
|
config: {
|
|
500
408
|
title: "Live Raffles & Spin Wheels",
|
|
501
|
-
subtitle: "Participate in community events and win
|
|
409
|
+
subtitle: "Participate in community events and win rare collectibles",
|
|
502
410
|
maxItems: 4,
|
|
503
411
|
raffleType: "all",
|
|
504
412
|
showEntryCount: true,
|
package/dist/seed/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export { storeAddressesSeedData } from "./store-addresses-seed-data";
|
|
|
47
47
|
export { categoriesSeedData } from "./categories-seed-data";
|
|
48
48
|
export { productsStandardSeedData } from "./products-standard-seed-data";
|
|
49
49
|
export { productsAuctionsSeedData } from "./products-auctions-seed-data";
|
|
50
|
-
export {
|
|
50
|
+
export { productsPreordersSeedData } from "./products-preorders-seed-data";
|
|
51
51
|
export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
|
|
52
52
|
export { ordersSeedData } from "./orders-seed-data";
|
|
53
53
|
export { reviewsSeedData } from "./reviews-seed-data";
|
package/dist/seed/index.js
CHANGED
|
@@ -35,7 +35,7 @@ export { storeAddressesSeedData } from "./store-addresses-seed-data";
|
|
|
35
35
|
export { categoriesSeedData } from "./categories-seed-data";
|
|
36
36
|
export { productsStandardSeedData } from "./products-standard-seed-data";
|
|
37
37
|
export { productsAuctionsSeedData } from "./products-auctions-seed-data";
|
|
38
|
-
export {
|
|
38
|
+
export { productsPreordersSeedData } from "./products-preorders-seed-data";
|
|
39
39
|
export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
|
|
40
40
|
export { ordersSeedData } from "./orders-seed-data";
|
|
41
41
|
export { reviewsSeedData } from "./reviews-seed-data";
|
package/dist/seed/manifest.js
CHANGED
|
@@ -12,7 +12,7 @@ import { usersSeedData } from "./users-seed-data";
|
|
|
12
12
|
import { storesSeedData } from "./stores-seed-data";
|
|
13
13
|
import { productsStandardSeedData } from "./products-standard-seed-data";
|
|
14
14
|
import { productsAuctionsSeedData } from "./products-auctions-seed-data";
|
|
15
|
-
import {
|
|
15
|
+
import { productsPreordersSeedData } from "./products-preorders-seed-data";
|
|
16
16
|
import { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
|
|
17
17
|
import { ordersSeedData } from "./orders-seed-data";
|
|
18
18
|
import { reviewsSeedData } from "./reviews-seed-data";
|
|
@@ -66,7 +66,7 @@ export const SEED_MANIFEST = {
|
|
|
66
66
|
products: pick([
|
|
67
67
|
...asArr(productsStandardSeedData),
|
|
68
68
|
...asArr(productsAuctionsSeedData),
|
|
69
|
-
...asArr(
|
|
69
|
+
...asArr(productsPreordersSeedData),
|
|
70
70
|
...asArr(productsPrizeDrawsSeedData),
|
|
71
71
|
].map((p) => ({
|
|
72
72
|
...p,
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notifications Seed Data — LetItRip Collectibles Platform
|
|
3
|
-
* 10 notifications covering all types. Mixed read/unread.
|
|
4
|
-
* Distributed across buyer and seller users from P15.
|
|
5
|
-
* notif- prefix (system IDs).
|
|
6
|
-
*/
|
|
7
1
|
import type { NotificationDocument } from "../features/admin/schemas";
|
|
8
2
|
export declare const notificationsSeedData: Partial<NotificationDocument>[];
|