@mohasinac/appkit 2.6.1 → 2.6.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.
- package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +38 -0
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +75 -0
- package/dist/_internal/client/features/layout/RoleGuard.d.ts +15 -0
- package/dist/_internal/client/features/layout/RoleGuard.js +25 -0
- package/dist/_internal/client/features/layout/index.d.ts +5 -0
- package/dist/_internal/client/features/layout/index.js +4 -0
- package/dist/_internal/server/features/brands/actions.d.ts +3 -3
- package/dist/_internal/server/features/brands/actions.js +72 -5
- package/dist/_internal/server/features/brands/data.d.ts +8 -8
- package/dist/_internal/server/features/brands/data.js +10 -11
- package/dist/_internal/server/features/brands/service.d.ts +2 -2
- package/dist/_internal/server/features/brands/service.js +5 -5
- package/dist/_internal/server/features/categories/og.d.ts +33 -0
- package/dist/_internal/server/features/categories/og.js +75 -0
- package/dist/_internal/server/features/checkout/actions.d.ts +24 -0
- package/dist/_internal/server/features/checkout/actions.js +442 -13
- package/dist/_internal/server/features/checkout/index.d.ts +1 -1
- package/dist/_internal/server/features/checkout/index.js +1 -1
- package/dist/_internal/server/features/checkout/prize-bundle-gates.d.ts +59 -0
- package/dist/_internal/server/features/checkout/prize-bundle-gates.js +99 -0
- package/dist/_internal/server/features/grouped/data.js +12 -5
- package/dist/_internal/server/features/homepage/data.d.ts +1 -1
- package/dist/_internal/server/features/homepage/data.js +2 -2
- package/dist/_internal/server/features/media/contextGuards.d.ts +52 -0
- package/dist/_internal/server/features/media/contextGuards.js +198 -0
- package/dist/_internal/server/features/orders/adapters.js +12 -0
- package/dist/_internal/server/features/products/data.d.ts +1 -1
- package/dist/_internal/server/features/sublisting-categories/data.d.ts +1 -1
- package/dist/_internal/server/features/sublisting-categories/data.js +2 -2
- package/dist/_internal/server/jobs/handlers/assignSpinPrize.d.ts +24 -0
- package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +86 -0
- package/dist/_internal/server/jobs/handlers/bundleStockSync.d.ts +18 -0
- package/dist/_internal/server/jobs/handlers/bundleStockSync.js +80 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/index.js +13 -0
- package/dist/_internal/server/jobs/handlers/listingProcessor.js +13 -3
- package/dist/_internal/server/jobs/handlers/onProductStockChange.d.ts +17 -0
- package/dist/_internal/server/jobs/handlers/onProductStockChange.js +136 -0
- package/dist/_internal/server/jobs/handlers/onProductWrite.js +17 -1
- package/dist/_internal/server/jobs/handlers/prizeRevealClose.d.ts +9 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealClose.js +29 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealExpiry.d.ts +10 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealExpiry.js +58 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealOpen.d.ts +10 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealOpen.js +65 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealReminder.d.ts +9 -0
- package/dist/_internal/server/jobs/handlers/prizeRevealReminder.js +45 -0
- package/dist/_internal/server/jobs/handlers/triggerEventRaffle.d.ts +30 -0
- package/dist/_internal/server/jobs/handlers/triggerEventRaffle.js +94 -0
- package/dist/_internal/shared/features/brands/schema.d.ts +3 -3
- package/dist/_internal/shared/features/cart/schema.d.ts +8 -8
- package/dist/_internal/shared/features/cart/schema.js +1 -1
- package/dist/_internal/shared/features/categories/bundle-config.d.ts +17 -0
- package/dist/_internal/shared/features/categories/bundle-config.js +17 -0
- package/dist/_internal/shared/features/layout/config.d.ts +35 -0
- package/dist/_internal/shared/features/layout/config.js +58 -0
- package/dist/_internal/shared/features/layout/index.d.ts +3 -0
- package/dist/_internal/shared/features/layout/index.js +2 -0
- package/dist/_internal/shared/features/layout/types.d.ts +137 -0
- package/dist/_internal/shared/features/layout/types.js +13 -0
- package/dist/_internal/shared/features/products/types.d.ts +1 -1
- package/dist/_internal/shared/listing-types/_registry.d.ts +57 -0
- package/dist/_internal/shared/listing-types/_registry.js +28 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +7 -0
- package/dist/_internal/shared/listing-types/auction/config.js +8 -0
- package/dist/_internal/shared/listing-types/auction/ctas.d.ts +1 -0
- package/dist/_internal/shared/listing-types/auction/ctas.js +2 -0
- package/dist/_internal/shared/listing-types/auction/og.d.ts +1 -0
- package/dist/_internal/shared/listing-types/auction/og.js +1 -0
- package/dist/_internal/shared/listing-types/auction/schema.d.ts +1 -0
- package/dist/_internal/shared/listing-types/auction/schema.js +1 -0
- package/dist/_internal/shared/listing-types/auction/seed-factory.d.ts +1 -0
- package/dist/_internal/shared/listing-types/auction/seed-factory.js +1 -0
- package/dist/_internal/shared/listing-types/capabilities.d.ts +41 -0
- package/dist/_internal/shared/listing-types/capabilities.js +75 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +7 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +8 -0
- package/dist/_internal/shared/listing-types/pre-order/ctas.d.ts +1 -0
- package/dist/_internal/shared/listing-types/pre-order/ctas.js +2 -0
- package/dist/_internal/shared/listing-types/pre-order/og.d.ts +1 -0
- package/dist/_internal/shared/listing-types/pre-order/og.js +1 -0
- package/dist/_internal/shared/listing-types/pre-order/schema.d.ts +1 -0
- package/dist/_internal/shared/listing-types/pre-order/schema.js +1 -0
- package/dist/_internal/shared/listing-types/pre-order/seed-factory.d.ts +1 -0
- package/dist/_internal/shared/listing-types/pre-order/seed-factory.js +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +7 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +8 -0
- package/dist/_internal/shared/listing-types/prize-draw/ctas.d.ts +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/ctas.js +2 -0
- package/dist/_internal/shared/listing-types/prize-draw/og.d.ts +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/og.js +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/schema.d.ts +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/schema.js +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/seed-factory.d.ts +1 -0
- package/dist/_internal/shared/listing-types/prize-draw/seed-factory.js +1 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +7 -0
- package/dist/_internal/shared/listing-types/standard/config.js +8 -0
- package/dist/_internal/shared/listing-types/standard/ctas.d.ts +1 -0
- package/dist/_internal/shared/listing-types/standard/ctas.js +3 -0
- package/dist/_internal/shared/listing-types/standard/og.d.ts +1 -0
- package/dist/_internal/shared/listing-types/standard/og.js +1 -0
- package/dist/_internal/shared/listing-types/standard/schema.d.ts +1 -0
- package/dist/_internal/shared/listing-types/standard/schema.js +1 -0
- package/dist/_internal/shared/listing-types/standard/seed-factory.d.ts +1 -0
- package/dist/_internal/shared/listing-types/standard/seed-factory.js +1 -0
- package/dist/_internal/shared/media/limits.d.ts +33 -0
- package/dist/_internal/shared/media/limits.js +97 -0
- package/dist/_internal/shared/schema-versions.d.ts +76 -0
- package/dist/_internal/shared/schema-versions.js +82 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.js +7 -0
- package/dist/constants/api-endpoints.d.ts +6 -3
- package/dist/constants/api-endpoints.js +2 -1
- package/dist/errors/messages.d.ts +1 -1
- package/dist/errors/messages.js +1 -1
- package/dist/features/account/migrations.d.ts +2 -0
- package/dist/features/account/migrations.js +10 -0
- package/dist/features/admin/components/AdminMediaView.js +1 -1
- package/dist/features/admin/components/AdminProductsView.js +7 -3
- package/dist/features/admin/migrations.d.ts +2 -0
- package/dist/features/admin/migrations.js +10 -0
- package/dist/features/admin/types/product.types.d.ts +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +1 -1
- package/dist/features/auctions/migrations.d.ts +2 -0
- package/dist/features/auctions/migrations.js +10 -0
- package/dist/features/auctions/schemas/index.d.ts +3 -3
- package/dist/features/auctions/schemas/index.js +1 -1
- package/dist/features/auth/migrations.d.ts +2 -0
- package/dist/features/auth/migrations.js +10 -0
- package/dist/features/blog/migrations.d.ts +2 -0
- package/dist/features/blog/migrations.js +10 -0
- package/dist/features/brands/migrations.d.ts +2 -0
- package/dist/features/brands/migrations.js +10 -0
- package/dist/features/bundles/components/BundlesByCategoryListing.d.ts +6 -0
- package/dist/features/bundles/components/BundlesByCategoryListing.js +50 -0
- package/dist/features/bundles/components/index.d.ts +2 -0
- package/dist/features/bundles/components/index.js +1 -0
- package/dist/features/bundles/migrations.d.ts +2 -0
- package/dist/features/bundles/migrations.js +10 -0
- package/dist/features/bundles/schemas/index.d.ts +1 -0
- package/dist/features/bundles/schemas/index.js +1 -0
- package/dist/features/bundles/schemas/zod.d.ts +377 -0
- package/dist/features/bundles/schemas/zod.js +71 -0
- package/dist/features/cart/migrations.d.ts +2 -0
- package/dist/features/cart/migrations.js +10 -0
- package/dist/features/cart/schemas/firestore.d.ts +2 -2
- package/dist/features/categories/components/BrandDetailPageView.js +35 -4
- package/dist/features/categories/components/BrandDetailTabs.d.ts +5 -1
- package/dist/features/categories/components/BrandDetailTabs.js +22 -8
- package/dist/features/categories/components/CategoryBundlesListing.d.ts +6 -0
- package/dist/features/categories/components/CategoryBundlesListing.js +74 -0
- package/dist/features/categories/components/CategoryDetailPageView.js +29 -4
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +5 -1
- package/dist/features/categories/components/CategoryDetailTabs.js +22 -8
- package/dist/features/categories/migrations.d.ts +2 -0
- package/dist/features/categories/migrations.js +10 -0
- package/dist/features/categories/repository/categories.repository.d.ts +29 -0
- package/dist/features/categories/repository/categories.repository.js +83 -0
- package/dist/features/categories/schemas/firestore.d.ts +59 -2
- package/dist/features/categories/schemas/firestore.js +6 -0
- package/dist/features/categories/types/index.d.ts +11 -3
- package/dist/features/events/migrations.d.ts +2 -0
- package/dist/features/events/migrations.js +10 -0
- package/dist/features/faq/migrations.d.ts +2 -0
- package/dist/features/faq/migrations.js +10 -0
- package/dist/features/grouped/migrations.d.ts +2 -0
- package/dist/features/grouped/migrations.js +10 -0
- package/dist/features/grouped/schemas/firestore.d.ts +29 -10
- package/dist/features/grouped/schemas/firestore.js +10 -5
- package/dist/features/history/migrations.d.ts +2 -0
- package/dist/features/history/migrations.js +10 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +2 -2
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +2 -2
- package/dist/features/homepage/lib/section-renderer.js +5 -3
- package/dist/features/media/AvatarUpload.js +6 -28
- package/dist/features/media/hooks/useMedia.d.ts +31 -15
- package/dist/features/media/hooks/useMedia.js +48 -13
- package/dist/features/media/upload/ImageUpload.js +1 -1
- package/dist/features/media/upload/MediaUploadField.js +1 -1
- package/dist/features/messages/migrations.d.ts +2 -0
- package/dist/features/messages/migrations.js +10 -0
- package/dist/features/orders/components/OrdersList.js +10 -1
- package/dist/features/orders/migrations.d.ts +2 -0
- package/dist/features/orders/migrations.js +10 -0
- package/dist/features/orders/repository/orders.repository.d.ts +16 -0
- package/dist/features/orders/repository/orders.repository.js +49 -0
- package/dist/features/orders/schemas/firestore.d.ts +8 -0
- package/dist/features/orders/types/index.d.ts +12 -0
- package/dist/features/orders/utils/order-splitter.d.ts +2 -2
- package/dist/features/orders/utils/order-splitter.js +5 -0
- package/dist/features/payments/migrations.d.ts +2 -0
- package/dist/features/payments/migrations.js +10 -0
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -1
- package/dist/features/products/actions/product-actions.d.ts +1 -1
- package/dist/features/products/api/[id]/route.js +34 -0
- package/dist/features/products/api/route.js +1 -19
- package/dist/features/products/components/CompareOverlay.d.ts +1 -1
- package/dist/features/products/components/MarketplacePrizeDrawCard.d.ts +24 -0
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +102 -0
- package/dist/features/products/components/PrizeDrawCollage.d.ts +32 -0
- package/dist/features/products/components/PrizeDrawCollage.js +22 -0
- package/dist/features/products/components/PrizeDrawDetailPageView.d.ts +27 -0
- package/dist/features/products/components/PrizeDrawDetailPageView.js +118 -0
- package/dist/features/products/components/PrizeDrawEntryActions.d.ts +19 -0
- package/dist/features/products/components/PrizeDrawEntryActions.js +48 -0
- package/dist/features/products/components/PrizeDrawItemsEditor.d.ts +13 -0
- package/dist/features/products/components/PrizeDrawItemsEditor.js +97 -0
- package/dist/features/products/components/PrizeDrawsIndexListing.d.ts +8 -0
- package/dist/features/products/components/PrizeDrawsIndexListing.js +128 -0
- package/dist/features/products/components/PrizeDrawsListingView.d.ts +15 -0
- package/dist/features/products/components/PrizeDrawsListingView.js +49 -0
- package/dist/features/products/components/PrizeRevealModal.d.ts +34 -0
- package/dist/features/products/components/PrizeRevealModal.js +124 -0
- package/dist/features/products/components/ProductDetailPageView.js +13 -1
- package/dist/features/products/components/ProductForm.js +35 -2
- package/dist/features/products/components/ProductGrid.js +3 -1
- package/dist/features/products/components/index.d.ts +16 -0
- package/dist/features/products/components/index.js +8 -0
- package/dist/features/products/constants/listing-tabs.d.ts +113 -0
- package/dist/features/products/constants/listing-tabs.js +43 -0
- package/dist/features/products/index.d.ts +1 -0
- package/dist/features/products/index.js +1 -0
- package/dist/features/products/migrations.d.ts +2 -0
- package/dist/features/products/migrations.js +10 -0
- package/dist/features/products/repository/products.repository.d.ts +11 -7
- package/dist/features/products/repository/products.repository.js +49 -24
- package/dist/features/products/schemas/firestore.d.ts +3 -3
- package/dist/features/products/schemas/firestore.js +2 -2
- package/dist/features/products/schemas/index.d.ts +5 -5
- package/dist/features/products/schemas/index.js +3 -1
- package/dist/features/products/schemas/product-features.validators.d.ts +6 -6
- package/dist/features/products/types/index.d.ts +17 -1
- package/dist/features/products/utils/listing-type.d.ts +7 -4
- package/dist/features/products/utils/listing-type.js +8 -4
- package/dist/features/promotions/actions/coupon-actions.d.ts +1 -1
- package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
- package/dist/features/promotions/migrations.d.ts +2 -0
- package/dist/features/promotions/migrations.js +10 -0
- package/dist/features/promotions/repository/coupons.repository.d.ts +1 -1
- package/dist/features/promotions/schemas/index.d.ts +2 -2
- package/dist/features/reviews/migrations.d.ts +2 -0
- package/dist/features/reviews/migrations.js +10 -0
- package/dist/features/scams/migrations.d.ts +2 -0
- package/dist/features/scams/migrations.js +10 -0
- package/dist/features/search/api/route.d.ts +1 -1
- package/dist/features/search/api/route.js +3 -3
- package/dist/features/search/components/Search.d.ts +1 -1
- package/dist/features/search/schemas/index.d.ts +3 -3
- package/dist/features/search/schemas/index.js +3 -1
- package/dist/features/search/types/index.d.ts +2 -2
- package/dist/features/seller/components/SellerProductShell.d.ts +1 -1
- package/dist/features/seller/components/SellerProductsView.js +20 -6
- package/dist/features/seller/migrations.d.ts +2 -0
- package/dist/features/seller/migrations.js +10 -0
- package/dist/features/seller/schemas/index.d.ts +2 -2
- package/dist/features/stores/components/StoreBundlesPageView.d.ts +12 -0
- package/dist/features/stores/components/StoreBundlesPageView.js +24 -0
- package/dist/features/stores/components/StoreDetailLayoutView.js +15 -3
- package/dist/features/stores/components/StorePrizeDrawsPageView.d.ts +11 -0
- package/dist/features/stores/components/StorePrizeDrawsPageView.js +27 -0
- package/dist/features/stores/components/index.d.ts +2 -0
- package/dist/features/stores/migrations.d.ts +2 -0
- package/dist/features/stores/migrations.js +10 -0
- package/dist/features/stores/schemas/index.d.ts +2 -2
- package/dist/features/stores/types/index.d.ts +1 -1
- package/dist/features/sublisting/migrations.d.ts +2 -0
- package/dist/features/sublisting/migrations.js +10 -0
- package/dist/features/sublisting/schemas/firestore.d.ts +2 -0
- package/dist/features/support/migrations.d.ts +2 -0
- package/dist/features/support/migrations.js +10 -0
- package/dist/features/wishlist/migrations.d.ts +2 -0
- package/dist/features/wishlist/migrations.js +10 -0
- package/dist/features/wishlist/types/index.d.ts +1 -1
- package/dist/index.d.ts +26 -18
- package/dist/index.js +41 -24
- package/dist/jobs.d.ts +1 -1
- package/dist/jobs.js +4 -0
- package/dist/next/routing/route-map.d.ts +4 -0
- package/dist/next/routing/route-map.js +2 -0
- package/dist/providers/db-firebase/filter-aliases.d.ts +2 -2
- package/dist/repositories/index.d.ts +0 -5
- package/dist/repositories/index.js +5 -4
- package/dist/seed/actions/demo-seed-actions.d.ts +1 -1
- package/dist/seed/categories-seed-data.js +1105 -6
- package/dist/seed/faq-seed-data.js +160 -0
- package/dist/seed/grouped-listings-seed-data.js +32 -32
- package/dist/seed/homepage-sections-seed-data.js +52 -6
- package/dist/seed/index.d.ts +1 -3
- package/dist/seed/index.js +4 -3
- package/dist/seed/manifest.js +8 -13
- package/dist/seed/products-prize-draws-seed-data.d.ts +17 -0
- package/dist/seed/products-prize-draws-seed-data.js +313 -0
- package/dist/seo/json-ld.d.ts +1 -1
- package/dist/server-entry.d.ts +2 -2
- package/dist/server-entry.js +5 -3
- package/dist/server.d.ts +9 -2
- package/dist/server.js +11 -5
- package/dist/tailwind-utilities.css +1 -1
- package/dist/validation/schemas.d.ts +8 -8
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +2 -4
|
@@ -1187,4 +1187,164 @@ export const faqSeedData = [
|
|
|
1187
1187
|
createdAt: daysAgo(74),
|
|
1188
1188
|
updatedAt: daysAgo(4),
|
|
1189
1189
|
},
|
|
1190
|
+
// ══════════════════════════════════════════════════════════════════════════
|
|
1191
|
+
// BUNDLES + PRIZE DRAWS (SB5-B — 6 FAQs)
|
|
1192
|
+
// ══════════════════════════════════════════════════════════════════════════
|
|
1193
|
+
// Filed under `product_information` because the schema enum doesn't carry
|
|
1194
|
+
// a dedicated "listings" bucket. Tags identify the surface — clients can
|
|
1195
|
+
// filter on tag instead.
|
|
1196
|
+
{
|
|
1197
|
+
id: "faq-what-is-bundle",
|
|
1198
|
+
question: "What is a bundle on LetItRip?",
|
|
1199
|
+
answer: html(`<p>A <strong>bundle</strong> is a curated multi-product listing — 3 to 16 individual items grouped under one fixed price. Sellers use bundles to ship combos that work together: starter packs, themed sets, multi-card lots, or "buy the whole collection" deals. Each item in a bundle must be in the seller's catalogue first; bundles never invent new SKUs.</p><p>Bundles are always one of two listing kinds: <strong>standard bundles</strong> (every item ships immediately) or <strong>pre-order bundles</strong> (every item is upcoming). Auctions and prize draws cannot be bundled — the price-discovery mechanics don't compose.</p><p>When any item inside a bundle sells through another channel, the bundle automatically flips to <em>out of stock</em> — you'll never end up with a half-fulfilled bundle.</p>`),
|
|
1200
|
+
category: "product_information",
|
|
1201
|
+
showOnHomepage: false,
|
|
1202
|
+
showInFooter: false,
|
|
1203
|
+
isPinned: false,
|
|
1204
|
+
order: 30,
|
|
1205
|
+
priority: 6,
|
|
1206
|
+
tags: ["bundle", "listings", "multi-item"],
|
|
1207
|
+
relatedFAQs: ["faq-how-create-bundle", "faq-what-is-prize-draw"],
|
|
1208
|
+
useSiteSettings: true,
|
|
1209
|
+
variables: {},
|
|
1210
|
+
stats: makeStats(0, 0),
|
|
1211
|
+
seo: {
|
|
1212
|
+
slug: "faq-what-is-bundle",
|
|
1213
|
+
metaTitle: "What is a bundle? — LetItRip",
|
|
1214
|
+
metaDescription: "Bundles group 3–16 items into one fixed-price listing. Standard or pre-order, never auctions or prize draws.",
|
|
1215
|
+
},
|
|
1216
|
+
isActive: true,
|
|
1217
|
+
createdBy: "user-admin-letitrip",
|
|
1218
|
+
createdAt: daysAgo(2),
|
|
1219
|
+
updatedAt: daysAgo(2),
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
id: "faq-how-create-bundle",
|
|
1223
|
+
question: "How do I create a bundle?",
|
|
1224
|
+
answer: html(`<p>From your store dashboard, open <strong>Listings → Bundles → New bundle</strong>. Steps:</p><ol><li>Title + description for the bundle.</li><li>Pick 3–16 items from your catalogue using the inline picker. All items must share the same listing type (all standard, or all pre-order).</li><li>Set the bundle price — usually lower than the sum of the individual prices.</li><li>(Optional) Set a per-customer limit if you want to cap repeat purchases.</li><li>Save as <em>Draft</em> to keep iterating, or <em>Published</em> to make it live.</li></ol><p>Once published the bundle appears at <code>/bundles/{your-slug}</code> and in the public bundle list. Every product inside the bundle automatically picks up a "In bundle: …" badge linking back to the bundle.</p>`),
|
|
1225
|
+
category: "product_information",
|
|
1226
|
+
showOnHomepage: false,
|
|
1227
|
+
showInFooter: false,
|
|
1228
|
+
isPinned: false,
|
|
1229
|
+
order: 31,
|
|
1230
|
+
priority: 5,
|
|
1231
|
+
tags: ["bundle", "seller", "create-listing"],
|
|
1232
|
+
relatedFAQs: ["faq-what-is-bundle"],
|
|
1233
|
+
useSiteSettings: true,
|
|
1234
|
+
variables: {},
|
|
1235
|
+
stats: makeStats(0, 0),
|
|
1236
|
+
seo: {
|
|
1237
|
+
slug: "faq-how-create-bundle",
|
|
1238
|
+
metaTitle: "How to create a bundle — LetItRip seller guide",
|
|
1239
|
+
metaDescription: "Step-by-step: pick 3–16 items, set the bundle price, publish. Standard or pre-order only.",
|
|
1240
|
+
},
|
|
1241
|
+
isActive: true,
|
|
1242
|
+
createdBy: "user-admin-letitrip",
|
|
1243
|
+
createdAt: daysAgo(2),
|
|
1244
|
+
updatedAt: daysAgo(2),
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
id: "faq-what-is-prize-draw",
|
|
1248
|
+
question: "What is a prize draw?",
|
|
1249
|
+
answer: html(`<p>A <strong>prize draw</strong> is a single listing with a fixed pool of distinct items (called a <em>collage</em>) where each paid entry wins exactly one item from the pool at random. The seller sets the price per entry, the maximum number of entries, and a fixed reveal window during which winners discover which item they won.</p><p>Prize draws differ from raffles in that <strong>every paid entry wins</strong> — the only randomness is which item from the pool you get. The pool is finite: once an item is won, it's removed for everyone else. If the pool is exhausted before all entries reveal, the remaining entries are auto-refunded.</p><p>Prize draw payments are <strong>non-refundable</strong> once the reveal window opens (subject to the pool-exhaustion fallback). You'll see an explicit consent prompt at checkout.</p>`),
|
|
1250
|
+
category: "product_information",
|
|
1251
|
+
showOnHomepage: false,
|
|
1252
|
+
showInFooter: false,
|
|
1253
|
+
isPinned: false,
|
|
1254
|
+
order: 32,
|
|
1255
|
+
priority: 7,
|
|
1256
|
+
tags: ["prize-draw", "listings", "non-refundable"],
|
|
1257
|
+
relatedFAQs: [
|
|
1258
|
+
"faq-prize-draw-fairness",
|
|
1259
|
+
"faq-prize-draw-refund",
|
|
1260
|
+
"faq-prize-draw-reveal",
|
|
1261
|
+
],
|
|
1262
|
+
useSiteSettings: true,
|
|
1263
|
+
variables: {},
|
|
1264
|
+
stats: makeStats(0, 0),
|
|
1265
|
+
seo: {
|
|
1266
|
+
slug: "faq-what-is-prize-draw",
|
|
1267
|
+
metaTitle: "What is a prize draw? — LetItRip",
|
|
1268
|
+
metaDescription: "Each paid entry wins one item from the seller's pool at random. Finite pool, fixed reveal window, non-refundable.",
|
|
1269
|
+
},
|
|
1270
|
+
isActive: true,
|
|
1271
|
+
createdBy: "user-admin-letitrip",
|
|
1272
|
+
createdAt: daysAgo(2),
|
|
1273
|
+
updatedAt: daysAgo(2),
|
|
1274
|
+
},
|
|
1275
|
+
{
|
|
1276
|
+
id: "faq-prize-draw-fairness",
|
|
1277
|
+
question: "How does LetItRip make prize draws fair?",
|
|
1278
|
+
answer: html(`<p>Two guarantees underpin every prize draw:</p><ol><li><strong>Cryptographic randomness.</strong> The winning item is selected by <code>crypto.randomInt()</code> over the current pool of unwon items at the exact moment you click <em>Reveal My Prize</em>. The seller cannot influence which item you receive.</li><li><strong>Open source RNG code.</strong> Every prize draw links to the exact Git commit of the reveal API that ran on your entry. Click <em>View RNG Source Code</em> on the prize draw detail page to inspect the code yourself.</li></ol><p>The pool is finite — once an item is won, it's removed for everyone else. If the pool is exhausted before all entries reveal (rare; usually means the seller mispriced entries vs pool size), the remaining entries are auto-refunded and notified.</p>`),
|
|
1279
|
+
category: "product_information",
|
|
1280
|
+
showOnHomepage: false,
|
|
1281
|
+
showInFooter: false,
|
|
1282
|
+
isPinned: false,
|
|
1283
|
+
order: 33,
|
|
1284
|
+
priority: 7,
|
|
1285
|
+
tags: ["prize-draw", "fairness", "randomness", "rng", "open-source"],
|
|
1286
|
+
relatedFAQs: ["faq-what-is-prize-draw", "faq-prize-draw-refund"],
|
|
1287
|
+
useSiteSettings: true,
|
|
1288
|
+
variables: {},
|
|
1289
|
+
stats: makeStats(0, 0),
|
|
1290
|
+
seo: {
|
|
1291
|
+
slug: "faq-prize-draw-fairness",
|
|
1292
|
+
metaTitle: "Are prize draws fair? — LetItRip RNG explained",
|
|
1293
|
+
metaDescription: "crypto.randomInt over the live pool, source-code linked per draw. Pool exhaustion auto-refunds.",
|
|
1294
|
+
},
|
|
1295
|
+
isActive: true,
|
|
1296
|
+
createdBy: "user-admin-letitrip",
|
|
1297
|
+
createdAt: daysAgo(2),
|
|
1298
|
+
updatedAt: daysAgo(2),
|
|
1299
|
+
},
|
|
1300
|
+
{
|
|
1301
|
+
id: "faq-prize-draw-refund",
|
|
1302
|
+
question: "Can I get a refund on a prize draw entry?",
|
|
1303
|
+
answer: html(`<p>Prize draw entries are <strong>non-refundable once the reveal window opens</strong>. You'll see an explicit consent dialog at checkout — your "Enter Draw" click is the binding action.</p><p>The exceptions, all automatic:</p><ul><li><strong>Pool exhausted before you reveal.</strong> If every item in the pool is won before you click <em>Reveal My Prize</em>, your entry is auto-refunded in full and you're notified.</li><li><strong>Reveal deadline missed.</strong> If you don't reveal within the deadline (default 3 days after the reveal window opens), the system auto-refunds and the item returns to the pool.</li><li><strong>Draw cancelled by the seller.</strong> Sellers may cancel a draw before the reveal window opens — every paid entry is auto-refunded.</li></ul><p>Refunds reverse via Razorpay to your original payment method within 5–7 business days (UPI: 1–2 business days).</p>`),
|
|
1304
|
+
category: "product_information",
|
|
1305
|
+
showOnHomepage: false,
|
|
1306
|
+
showInFooter: false,
|
|
1307
|
+
isPinned: false,
|
|
1308
|
+
order: 34,
|
|
1309
|
+
priority: 7,
|
|
1310
|
+
tags: ["prize-draw", "refund", "non-refundable", "policy"],
|
|
1311
|
+
relatedFAQs: ["faq-what-is-prize-draw", "faq-prize-draw-reveal"],
|
|
1312
|
+
useSiteSettings: true,
|
|
1313
|
+
variables: {},
|
|
1314
|
+
stats: makeStats(0, 0),
|
|
1315
|
+
seo: {
|
|
1316
|
+
slug: "faq-prize-draw-refund",
|
|
1317
|
+
metaTitle: "Prize draw refund policy — LetItRip",
|
|
1318
|
+
metaDescription: "Non-refundable once reveal opens. Pool exhaustion, missed deadlines, and cancellations auto-refund.",
|
|
1319
|
+
},
|
|
1320
|
+
isActive: true,
|
|
1321
|
+
createdBy: "user-admin-letitrip",
|
|
1322
|
+
createdAt: daysAgo(2),
|
|
1323
|
+
updatedAt: daysAgo(2),
|
|
1324
|
+
},
|
|
1325
|
+
{
|
|
1326
|
+
id: "faq-prize-draw-reveal",
|
|
1327
|
+
question: "How does prize draw reveal work?",
|
|
1328
|
+
answer: html(`<p>After you pay for a prize draw entry, the system places your order. You then wait for the reveal to do anything:</p><ol><li><strong>Reveal window opens.</strong> The seller publishes a fixed window (e.g. "Reveal opens June 15, closes June 22"). You get an in-app + email notification when it opens.</li><li><strong>Click "Reveal My Prize".</strong> On your order detail page, click <em>Reveal My Prize</em>. The system picks one of the still-available items at random, marks it as won, and shows you the result with a card-flip animation.</li><li><strong>Reveal deadline.</strong> You have until the deadline (default 3 days after window open, capped at window close) to reveal. Miss the deadline → auto-refund + item goes back into the pool.</li><li><strong>Seller ships.</strong> The seller dispatches your revealed item within their stated timeline. Tracking appears on the order detail page as usual.</li></ol><p>You can re-open the order detail page to see your won item any time — the reveal is permanent.</p>`),
|
|
1329
|
+
category: "product_information",
|
|
1330
|
+
showOnHomepage: false,
|
|
1331
|
+
showInFooter: false,
|
|
1332
|
+
isPinned: false,
|
|
1333
|
+
order: 35,
|
|
1334
|
+
priority: 6,
|
|
1335
|
+
tags: ["prize-draw", "reveal", "deadline", "shipping"],
|
|
1336
|
+
relatedFAQs: ["faq-what-is-prize-draw", "faq-prize-draw-refund"],
|
|
1337
|
+
useSiteSettings: true,
|
|
1338
|
+
variables: {},
|
|
1339
|
+
stats: makeStats(0, 0),
|
|
1340
|
+
seo: {
|
|
1341
|
+
slug: "faq-prize-draw-reveal",
|
|
1342
|
+
metaTitle: "How to reveal a prize draw entry — LetItRip",
|
|
1343
|
+
metaDescription: "Reveal window opens, click 'Reveal My Prize', seller ships. Miss the deadline → auto-refund.",
|
|
1344
|
+
},
|
|
1345
|
+
isActive: true,
|
|
1346
|
+
createdBy: "user-admin-letitrip",
|
|
1347
|
+
createdAt: daysAgo(2),
|
|
1348
|
+
updatedAt: daysAgo(2),
|
|
1349
|
+
},
|
|
1190
1350
|
];
|
|
@@ -17,11 +17,11 @@ export const groupedListingsSeedData = [
|
|
|
17
17
|
"product-pokemon-sv-etb",
|
|
18
18
|
"product-pokemon-pikachu-plush-8",
|
|
19
19
|
],
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
groupTheme: "related",
|
|
21
|
+
minActiveMembers: 2,
|
|
22
|
+
activeMemberCount: 2,
|
|
23
|
+
visibilityStatus: "visible",
|
|
23
24
|
coverImage: "https://images.unsplash.com/photo-1613771404784-3a5686aa2be3?w=800&h=600&fit=crop",
|
|
24
|
-
currency: "INR",
|
|
25
25
|
isActive: true,
|
|
26
26
|
isFeatured: true,
|
|
27
27
|
storeId: "store-pokemon-palace",
|
|
@@ -42,11 +42,11 @@ export const groupedListingsSeedData = [
|
|
|
42
42
|
"product-hot-wheels-redline-1969-camaro",
|
|
43
43
|
"product-tomica-limited-datsun",
|
|
44
44
|
],
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
groupTheme: "related",
|
|
46
|
+
minActiveMembers: 2,
|
|
47
|
+
activeMemberCount: 2,
|
|
48
|
+
visibilityStatus: "visible",
|
|
48
49
|
coverImage: "https://images.unsplash.com/photo-1581235720704-06d3acfcb36f?w=800&h=600&fit=crop",
|
|
49
|
-
currency: "INR",
|
|
50
50
|
isActive: true,
|
|
51
51
|
isFeatured: true,
|
|
52
52
|
storeId: "store-diecast-depot",
|
|
@@ -66,11 +66,11 @@ export const groupedListingsSeedData = [
|
|
|
66
66
|
"product-beyblade-x-bx01-dran-sword",
|
|
67
67
|
"product-beyblade-burst-b200-valkyrie",
|
|
68
68
|
],
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
groupTheme: "related",
|
|
70
|
+
minActiveMembers: 2,
|
|
71
|
+
activeMemberCount: 2,
|
|
72
|
+
visibilityStatus: "visible",
|
|
72
73
|
coverImage: "https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=800&h=600&fit=crop",
|
|
73
|
-
currency: "INR",
|
|
74
74
|
isActive: true,
|
|
75
75
|
isFeatured: true,
|
|
76
76
|
storeId: "store-beyblade-arena",
|
|
@@ -90,11 +90,11 @@ export const groupedListingsSeedData = [
|
|
|
90
90
|
"product-nendoroid-rem-rezero",
|
|
91
91
|
"product-shf-goku-ultra-instinct",
|
|
92
92
|
],
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
groupTheme: "related",
|
|
94
|
+
minActiveMembers: 2,
|
|
95
|
+
activeMemberCount: 2,
|
|
96
|
+
visibilityStatus: "visible",
|
|
96
97
|
coverImage: "https://images.unsplash.com/photo-1536896407451-6e3dd976edd6?w=800&h=600&fit=crop",
|
|
97
|
-
currency: "INR",
|
|
98
98
|
isActive: true,
|
|
99
99
|
isFeatured: false,
|
|
100
100
|
storeId: "store-tokyo-toys-india",
|
|
@@ -113,11 +113,11 @@ export const groupedListingsSeedData = [
|
|
|
113
113
|
"product-gundam-rx78-mg",
|
|
114
114
|
"product-gundam-wing-zero-rg",
|
|
115
115
|
],
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
groupTheme: "related",
|
|
117
|
+
minActiveMembers: 2,
|
|
118
|
+
activeMemberCount: 2,
|
|
119
|
+
visibilityStatus: "visible",
|
|
119
120
|
coverImage: "https://images.unsplash.com/photo-1536896407451-6e3dd976edd6?w=800&h=600&fit=crop",
|
|
120
|
-
currency: "INR",
|
|
121
121
|
isActive: true,
|
|
122
122
|
isFeatured: false,
|
|
123
123
|
storeId: "store-tokyo-toys-india",
|
|
@@ -137,11 +137,11 @@ export const groupedListingsSeedData = [
|
|
|
137
137
|
"product-pokemon-pikachu-plush-8",
|
|
138
138
|
"product-pokemon-gengar-sitting-cuties",
|
|
139
139
|
],
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
groupTheme: "related",
|
|
141
|
+
minActiveMembers: 2,
|
|
142
|
+
activeMemberCount: 2,
|
|
143
|
+
visibilityStatus: "visible",
|
|
143
144
|
coverImage: "https://images.unsplash.com/photo-1613771404784-3a5686aa2be3?w=800&h=600&fit=crop",
|
|
144
|
-
currency: "INR",
|
|
145
145
|
isActive: true,
|
|
146
146
|
isFeatured: false,
|
|
147
147
|
storeId: "store-pokemon-palace",
|
|
@@ -161,11 +161,11 @@ export const groupedListingsSeedData = [
|
|
|
161
161
|
"product-yugioh-25th-tin",
|
|
162
162
|
"product-yugioh-structure-albaz",
|
|
163
163
|
],
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
groupTheme: "related",
|
|
165
|
+
minActiveMembers: 2,
|
|
166
|
+
activeMemberCount: 2,
|
|
167
|
+
visibilityStatus: "visible",
|
|
167
168
|
coverImage: "https://images.unsplash.com/photo-1612036782180-6f0b6cd846fe?w=800&h=600&fit=crop",
|
|
168
|
-
currency: "INR",
|
|
169
169
|
isActive: true,
|
|
170
170
|
isFeatured: false,
|
|
171
171
|
storeId: "store-cardgame-hub",
|
|
@@ -185,11 +185,11 @@ export const groupedListingsSeedData = [
|
|
|
185
185
|
"product-funko-pop-naruto-sage",
|
|
186
186
|
"product-mcfarlane-batman-dark-knight",
|
|
187
187
|
],
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
groupTheme: "related",
|
|
189
|
+
minActiveMembers: 2,
|
|
190
|
+
activeMemberCount: 2,
|
|
191
|
+
visibilityStatus: "visible",
|
|
191
192
|
coverImage: "https://images.unsplash.com/photo-1536896407451-6e3dd976edd6?w=800&h=600&fit=crop",
|
|
192
|
-
currency: "INR",
|
|
193
193
|
isActive: true,
|
|
194
194
|
isFeatured: false,
|
|
195
195
|
storeId: "store-tokyo-toys-india",
|
|
@@ -409,12 +409,13 @@ export const homepageSectionsSeedData = [
|
|
|
409
409
|
updatedAt: daysAgo(15),
|
|
410
410
|
},
|
|
411
411
|
// ── 20. featured-bundles (SB11) ──────────────────────────────────────────
|
|
412
|
-
//
|
|
412
|
+
// Enabled — bundles collection live since S4 (SB3 closeout). 3 bundles
|
|
413
|
+
// seeded in bundles-seed-data.ts; section renders them on the homepage.
|
|
413
414
|
{
|
|
414
415
|
id: "section-featured-bundles",
|
|
415
416
|
type: "featured-bundles",
|
|
416
417
|
order: 20,
|
|
417
|
-
enabled:
|
|
418
|
+
enabled: true,
|
|
418
419
|
config: {
|
|
419
420
|
title: "Curated Bundles",
|
|
420
421
|
subtitle: "Everything you need in one deal",
|
|
@@ -426,12 +427,13 @@ export const homepageSectionsSeedData = [
|
|
|
426
427
|
updatedAt: daysAgo(2),
|
|
427
428
|
},
|
|
428
429
|
// ── 21. prize-draws (SB11) ───────────────────────────────────────────────
|
|
429
|
-
//
|
|
430
|
+
// Enabled — listingType="prize-draw" schema + prizeRevealStatus fields are
|
|
431
|
+
// live (SB1-B). Seed prize-draw product docs ship in S7-PrizeDraws.
|
|
430
432
|
{
|
|
431
433
|
id: "section-prize-draws",
|
|
432
434
|
type: "prize-draws",
|
|
433
435
|
order: 21,
|
|
434
|
-
enabled:
|
|
436
|
+
enabled: true,
|
|
435
437
|
config: {
|
|
436
438
|
title: "Prize Draws",
|
|
437
439
|
subtitle: "Enter for a chance to win rare collectibles",
|
|
@@ -443,12 +445,56 @@ export const homepageSectionsSeedData = [
|
|
|
443
445
|
createdAt: daysAgo(2),
|
|
444
446
|
updatedAt: daysAgo(2),
|
|
445
447
|
},
|
|
446
|
-
// ──
|
|
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
|
+
{
|
|
452
|
+
id: "section-brand-hot-wheels",
|
|
453
|
+
type: "products",
|
|
454
|
+
order: 22,
|
|
455
|
+
enabled: true,
|
|
456
|
+
config: {
|
|
457
|
+
title: "Hot Wheels Spotlight",
|
|
458
|
+
subtitle: "Vintage Redlines, Super TH hunts, and current mainline",
|
|
459
|
+
maxProducts: 12,
|
|
460
|
+
rows: 2,
|
|
461
|
+
itemsPerRow: 3,
|
|
462
|
+
mobileItemsPerRow: 1,
|
|
463
|
+
autoScroll: false,
|
|
464
|
+
scrollInterval: 0,
|
|
465
|
+
filterByBrand: "brand-hot-wheels",
|
|
466
|
+
sortBy: "featured",
|
|
467
|
+
},
|
|
468
|
+
createdAt: daysAgo(2),
|
|
469
|
+
updatedAt: daysAgo(2),
|
|
470
|
+
},
|
|
471
|
+
// ── 22b. brand-filtered products: Pokémon Company (SB5-D) ────────────────
|
|
472
|
+
{
|
|
473
|
+
id: "section-brand-pokemon",
|
|
474
|
+
type: "products",
|
|
475
|
+
order: 23,
|
|
476
|
+
enabled: true,
|
|
477
|
+
config: {
|
|
478
|
+
title: "Pokémon TCG Hub",
|
|
479
|
+
subtitle: "Latest sets, vintage holos, and PSA-graded slabs",
|
|
480
|
+
maxProducts: 12,
|
|
481
|
+
rows: 2,
|
|
482
|
+
itemsPerRow: 3,
|
|
483
|
+
mobileItemsPerRow: 1,
|
|
484
|
+
autoScroll: false,
|
|
485
|
+
scrollInterval: 0,
|
|
486
|
+
filterByBrand: "brand-pokemon-company",
|
|
487
|
+
sortBy: "featured",
|
|
488
|
+
},
|
|
489
|
+
createdAt: daysAgo(2),
|
|
490
|
+
updatedAt: daysAgo(2),
|
|
491
|
+
},
|
|
492
|
+
// ── 24. event-raffles (SB11) ─────────────────────────────────────────────
|
|
447
493
|
// Disabled until events gain hasRaffle flag (S19+).
|
|
448
494
|
{
|
|
449
495
|
id: "section-event-raffles",
|
|
450
496
|
type: "event-raffles",
|
|
451
|
-
order:
|
|
497
|
+
order: 24,
|
|
452
498
|
enabled: false,
|
|
453
499
|
config: {
|
|
454
500
|
title: "Live Raffles & Spin Wheels",
|
package/dist/seed/index.d.ts
CHANGED
|
@@ -39,7 +39,6 @@ export { makePayout, makeFullPayout, PAYOUT_FIXTURES, } from "./factories/payout
|
|
|
39
39
|
export { DEFAULT_CATEGORIES } from "./defaults/categories";
|
|
40
40
|
export { DEFAULT_FAQS } from "./defaults/faqs";
|
|
41
41
|
export { DEFAULT_HOMEPAGE_SECTIONS } from "./defaults/homepage-sections";
|
|
42
|
-
export { brandsSeedData } from "./brands-seed-data";
|
|
43
42
|
export { usersSeedData } from "./users-seed-data";
|
|
44
43
|
export { sessionsSeedData, SESSION_COLLECTION } from "./sessions-seed-data";
|
|
45
44
|
export { addressesSeedData } from "./addresses-seed-data";
|
|
@@ -49,6 +48,7 @@ export { categoriesSeedData } from "./categories-seed-data";
|
|
|
49
48
|
export { productsStandardSeedData } from "./products-standard-seed-data";
|
|
50
49
|
export { productsAuctionsSeedData } from "./products-auctions-seed-data";
|
|
51
50
|
export { productsPreOrdersSeedData } from "./products-preorders-seed-data";
|
|
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";
|
|
54
54
|
export { cartsSeedData } from "./cart-seed-data";
|
|
@@ -68,9 +68,7 @@ export { carouselsSeedData } from "./carousels-seed-data";
|
|
|
68
68
|
export { wishlistsSeedData } from "./wishlists-seed-data";
|
|
69
69
|
export { historySeedData } from "./history-seed-data";
|
|
70
70
|
export { conversationsSeedData } from "./conversations-seed-data";
|
|
71
|
-
export { sublistingCategoriesSeedData } from "./sublisting-categories-seed-data";
|
|
72
71
|
export { groupedListingsSeedData } from "./grouped-listings-seed-data";
|
|
73
|
-
export { bundlesSeedData } from "./bundles-seed-data";
|
|
74
72
|
export { scammersSeedData } from "./scammers-seed-data";
|
|
75
73
|
export { productFeaturesSeedData } from "./product-features-seed-data";
|
|
76
74
|
export type { SeedManifest, SeedManifestEntry } from "./manifest";
|
package/dist/seed/index.js
CHANGED
|
@@ -26,7 +26,7 @@ export { DEFAULT_CATEGORIES } from "./defaults/categories";
|
|
|
26
26
|
export { DEFAULT_FAQS } from "./defaults/faqs";
|
|
27
27
|
export { DEFAULT_HOMEPAGE_SECTIONS } from "./defaults/homepage-sections";
|
|
28
28
|
// Migrated seed datasets from consumer repositories
|
|
29
|
-
|
|
29
|
+
// SB-UNI-C — brandsSeedData merged into categoriesSeedData with categoryType:"brand".
|
|
30
30
|
export { usersSeedData } from "./users-seed-data";
|
|
31
31
|
export { sessionsSeedData, SESSION_COLLECTION } from "./sessions-seed-data";
|
|
32
32
|
export { addressesSeedData } from "./addresses-seed-data";
|
|
@@ -36,6 +36,7 @@ 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
38
|
export { productsPreOrdersSeedData } from "./products-preorders-seed-data";
|
|
39
|
+
export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
|
|
39
40
|
export { ordersSeedData } from "./orders-seed-data";
|
|
40
41
|
export { reviewsSeedData } from "./reviews-seed-data";
|
|
41
42
|
export { cartsSeedData } from "./cart-seed-data";
|
|
@@ -54,9 +55,9 @@ export { carouselsSeedData } from "./carousels-seed-data";
|
|
|
54
55
|
export { wishlistsSeedData } from "./wishlists-seed-data";
|
|
55
56
|
export { historySeedData } from "./history-seed-data";
|
|
56
57
|
export { conversationsSeedData } from "./conversations-seed-data";
|
|
57
|
-
|
|
58
|
+
// SB-UNI-B — sublistingCategoriesSeedData merged into categoriesSeedData with categoryType:"sublisting".
|
|
58
59
|
export { groupedListingsSeedData } from "./grouped-listings-seed-data";
|
|
59
|
-
|
|
60
|
+
// SB-UNI-V — bundlesSeedData merged into categoriesSeedData with categoryType:"bundle".
|
|
60
61
|
export { scammersSeedData } from "./scammers-seed-data";
|
|
61
62
|
export { productFeaturesSeedData } from "./product-features-seed-data";
|
|
62
63
|
export { SEED_MANIFEST } from "./manifest";
|
package/dist/seed/manifest.js
CHANGED
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* Imported by SeedPanel to render previews without loading full seed data.
|
|
6
6
|
* Auto-derived from the live seed data files — stays in sync automatically.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
// SB-UNI-C — brandsSeedData merged into categoriesSeedData.
|
|
9
9
|
import { categoriesSeedData } from "./categories-seed-data";
|
|
10
10
|
import { usersSeedData } from "./users-seed-data";
|
|
11
11
|
import { storesSeedData } from "./stores-seed-data";
|
|
12
12
|
import { productsStandardSeedData } from "./products-standard-seed-data";
|
|
13
13
|
import { productsAuctionsSeedData } from "./products-auctions-seed-data";
|
|
14
14
|
import { productsPreOrdersSeedData } from "./products-preorders-seed-data";
|
|
15
|
+
import { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
|
|
15
16
|
import { ordersSeedData } from "./orders-seed-data";
|
|
16
17
|
import { reviewsSeedData } from "./reviews-seed-data";
|
|
17
18
|
import { bidsSeedData } from "./bids-seed-data";
|
|
@@ -32,9 +33,9 @@ import { cartsSeedData } from "./cart-seed-data";
|
|
|
32
33
|
import { wishlistsSeedData } from "./wishlists-seed-data";
|
|
33
34
|
import { historySeedData } from "./history-seed-data";
|
|
34
35
|
import { conversationsSeedData } from "./conversations-seed-data";
|
|
35
|
-
|
|
36
|
+
// SB-UNI-B — sublistingCategoriesSeedData absorbed into categoriesSeedData.
|
|
36
37
|
import { groupedListingsSeedData } from "./grouped-listings-seed-data";
|
|
37
|
-
|
|
38
|
+
// SB-UNI-V — bundlesSeedData absorbed into categoriesSeedData.
|
|
38
39
|
import { scammersSeedData } from "./scammers-seed-data";
|
|
39
40
|
import { productFeaturesSeedData } from "./product-features-seed-data";
|
|
40
41
|
function asArr(items) {
|
|
@@ -50,7 +51,6 @@ function pick(items, nameKey = "name") {
|
|
|
50
51
|
}));
|
|
51
52
|
}
|
|
52
53
|
export const SEED_MANIFEST = {
|
|
53
|
-
brands: pick(asArr(brandsSeedData)),
|
|
54
54
|
categories: pick(asArr(categoriesSeedData)),
|
|
55
55
|
users: pick(asArr(usersSeedData).map((u) => ({
|
|
56
56
|
...u,
|
|
@@ -64,6 +64,7 @@ export const SEED_MANIFEST = {
|
|
|
64
64
|
...asArr(productsStandardSeedData),
|
|
65
65
|
...asArr(productsAuctionsSeedData),
|
|
66
66
|
...asArr(productsPreOrdersSeedData),
|
|
67
|
+
...asArr(productsPrizeDrawsSeedData),
|
|
67
68
|
].map((p) => ({
|
|
68
69
|
...p,
|
|
69
70
|
// SB1-G Phase 4 — canonical listingType drives the manifest "type" tag.
|
|
@@ -71,7 +72,9 @@ export const SEED_MANIFEST = {
|
|
|
71
72
|
? "auction"
|
|
72
73
|
: p.listingType === "pre-order"
|
|
73
74
|
? "preorder"
|
|
74
|
-
: "
|
|
75
|
+
: p.listingType === "prize-draw"
|
|
76
|
+
? "prize-draw"
|
|
77
|
+
: "standard",
|
|
75
78
|
})), "title"),
|
|
76
79
|
orders: pick(asArr(ordersSeedData)),
|
|
77
80
|
reviews: pick(asArr(reviewsSeedData), "title"),
|
|
@@ -139,18 +142,10 @@ export const SEED_MANIFEST = {
|
|
|
139
142
|
...c,
|
|
140
143
|
name: c.productTitle ?? c.id,
|
|
141
144
|
}))),
|
|
142
|
-
sublistingCategories: pick(asArr(sublistingCategoriesSeedData).map((s) => ({
|
|
143
|
-
...s,
|
|
144
|
-
name: s.title ?? s.id,
|
|
145
|
-
}))),
|
|
146
145
|
groupedListings: pick(asArr(groupedListingsSeedData).map((g) => ({
|
|
147
146
|
...g,
|
|
148
147
|
name: g.title ?? g.id,
|
|
149
148
|
}))),
|
|
150
|
-
bundles: pick(asArr(bundlesSeedData).map((b) => ({
|
|
151
|
-
...b,
|
|
152
|
-
name: b.title ?? b.id,
|
|
153
|
-
}))),
|
|
154
149
|
scammerProfiles: pick(asArr(scammersSeedData).map((s) => ({
|
|
155
150
|
...s,
|
|
156
151
|
name: s.displayNames?.[0] ?? s.id,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prize-Draw Products Seed Data — Collectibles Edition (SB5-E)
|
|
3
|
+
*
|
|
4
|
+
* Stored as ProductDocument with listingType: "prize-draw". Each draw lists
|
|
5
|
+
* 3–16 PrizeDrawItem entries; one is revealed per paid order via crypto.randomInt
|
|
6
|
+
* during the reveal window (see /api/prize-draws/[id]/reveal, SB4-H).
|
|
7
|
+
*
|
|
8
|
+
* Prices in INR paise (₹1 = 100 paise).
|
|
9
|
+
*/
|
|
10
|
+
import type { ProductDocument } from "../features/products/schemas";
|
|
11
|
+
/**
|
|
12
|
+
* SB1-G Phase 4 — every prize-draw is stamped with `listingType: "prize-draw"`.
|
|
13
|
+
* Mirrors the wrapper pattern used in
|
|
14
|
+
* `products-standard-seed-data.ts` / `products-auctions-seed-data.ts` /
|
|
15
|
+
* `products-preorders-seed-data.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const productsPrizeDrawsSeedData: Partial<ProductDocument>[];
|