@mohasinac/appkit 3.8.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/client/features/live/LiveItemDetailView.js +2 -2
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +4 -4
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +8 -8
- package/dist/_internal/client/features/lottery/LotteryAdminSlotView.d.ts +1 -1
- package/dist/_internal/client/features/lottery/LotteryAdminSlotView.js +2 -2
- package/dist/_internal/server/features/bundles/actions.js +2 -2
- package/dist/_internal/server/features/bundles/og.d.ts +1 -1
- package/dist/_internal/server/features/bundles/og.js +4 -5
- package/dist/_internal/server/features/checkout/actions.js +57 -21
- package/dist/_internal/server/features/checkout/stock-restore.d.ts +19 -0
- package/dist/_internal/server/features/checkout/stock-restore.js +80 -0
- package/dist/_internal/server/features/checkout/upi-resolution.d.ts +11 -0
- package/dist/_internal/server/features/checkout/upi-resolution.js +28 -0
- package/dist/_internal/server/features/classified/og.js +1 -1
- package/dist/_internal/server/features/digital-code/og.js +1 -1
- package/dist/_internal/server/features/item-requests/og.d.ts +2 -2
- package/dist/_internal/server/features/item-requests/og.js +4 -5
- package/dist/_internal/server/features/live/og.js +1 -1
- package/dist/_internal/server/features/lottery/adapters.d.ts +2 -2
- package/dist/_internal/server/features/lottery/adapters.js +1 -1
- package/dist/_internal/server/features/orders/actions.d.ts +28 -0
- package/dist/_internal/server/features/orders/actions.js +239 -4
- package/dist/_internal/server/features/orders/adapters.js +3 -0
- package/dist/_internal/server/features/payments/data.js +3 -2
- package/dist/_internal/server/features/payouts/actions.d.ts +2 -2
- package/dist/_internal/server/features/payouts/actions.js +4 -3
- package/dist/_internal/server/features/pre-orders/service.d.ts +1 -1
- package/dist/_internal/server/features/pre-orders/service.js +3 -2
- package/dist/_internal/server/features/prize-draws/og.js +5 -5
- package/dist/_internal/server/features/products/og.js +1 -1
- package/dist/_internal/server/features/promotions/service.js +3 -1
- package/dist/_internal/server/features/refunds/actions.d.ts +2 -2
- package/dist/_internal/server/features/refunds/actions.js +7 -6
- package/dist/_internal/server/functions/firestore.js +1 -1
- package/dist/_internal/server/functions/scheduled.d.ts +4 -1
- package/dist/_internal/server/functions/scheduled.js +26 -2
- package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +1 -1
- package/dist/_internal/server/jobs/core/hardBanCascade.d.ts +4 -0
- package/dist/_internal/server/jobs/core/hardBanCascade.js +15 -4
- package/dist/_internal/server/jobs/core/hardBanReinstatement.d.ts +16 -0
- package/dist/_internal/server/jobs/core/hardBanReinstatement.js +63 -0
- package/dist/_internal/server/jobs/core/jobRunners.js +3 -1
- package/dist/_internal/server/jobs/core/onScamReportCreate.js +1 -1
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +10 -0
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +60 -0
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.d.ts +15 -0
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +59 -0
- package/dist/_internal/server/jobs/core/pendingOrderTimeout.d.ts +7 -0
- package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +32 -6
- package/dist/_internal/server/jobs/handlers/hardBanReinstatement.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/hardBanReinstatement.js +2 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +3 -0
- package/dist/_internal/server/jobs/handlers/index.js +3 -0
- package/dist/_internal/server/jobs/handlers/messages.d.ts +4 -0
- package/dist/_internal/server/jobs/handlers/messages.js +4 -0
- package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.d.ts +3 -3
- package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +12 -12
- package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.d.ts +1 -1
- package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.js +5 -5
- package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.js +2 -0
- package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.js +2 -0
- package/dist/_internal/shared/actions/action-registry.js +27 -0
- package/dist/_internal/shared/checkout/order-math.js +3 -2
- package/dist/_internal/shared/checkout/rules/_defaults.js +1 -0
- package/dist/_internal/shared/checkout/rules/preorder.rule.js +7 -0
- package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +7 -0
- package/dist/_internal/shared/checkout/rules/types.d.ts +11 -0
- package/dist/_internal/shared/features/auctions/errors.js +1 -1
- package/dist/_internal/shared/features/categories/bundle-copy.d.ts +0 -1
- package/dist/_internal/shared/features/categories/bundle-copy.js +0 -1
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +6 -6
- package/dist/_internal/shared/features/categories/bundle-schemas.js +2 -2
- package/dist/_internal/shared/features/checkout/config.d.ts +3 -3
- package/dist/_internal/shared/features/checkout/config.js +3 -3
- package/dist/_internal/shared/features/emi/schedule.d.ts +6 -6
- package/dist/_internal/shared/features/emi/schedule.js +10 -9
- package/dist/_internal/shared/features/promotions/errors.js +1 -1
- package/dist/_internal/shared/fees/calculator.d.ts +5 -5
- package/dist/_internal/shared/fees/calculator.js +19 -19
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/constants/api-endpoints.d.ts +9 -0
- package/dist/constants/api-endpoints.js +3 -0
- package/dist/constants/field-names.d.ts +4 -0
- package/dist/constants/field-names.js +4 -0
- package/dist/features/admin/components/AdminArtView.js +2 -2
- package/dist/features/admin/components/AdminBidsView.js +2 -2
- package/dist/features/admin/components/AdminBundleEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminBundleEditorView.js +8 -8
- package/dist/features/admin/components/AdminBundlesView.js +6 -6
- package/dist/features/admin/components/AdminClassifiedView.js +2 -2
- package/dist/features/admin/components/AdminDigitalCodesView.js +2 -2
- package/dist/features/admin/components/AdminLiveView.js +2 -2
- package/dist/features/admin/components/AdminOrderEditorView.d.ts +6 -1
- package/dist/features/admin/components/AdminOrderEditorView.js +45 -5
- package/dist/features/admin/components/AdminOrdersView.js +8 -3
- package/dist/features/admin/components/AdminPayoutsView.js +2 -2
- package/dist/features/admin/components/AdminPrizeDrawsView.js +2 -2
- package/dist/features/admin/components/AdminReturnRequestsView.js +2 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +11 -11
- package/dist/features/admin/components/AdminStickersView.js +2 -2
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
- package/dist/features/admin/hooks/useAdminListingData.d.ts +1 -1
- package/dist/features/admin/hooks/useAdminListingData.js +3 -2
- package/dist/features/admin/schemas/firestore.d.ts +9 -7
- package/dist/features/admin/schemas/firestore.js +4 -3
- package/dist/features/auctions/components/AuctionBidsTable.js +3 -3
- package/dist/features/auth/checkout-value-otp.d.ts +46 -0
- package/dist/features/auth/checkout-value-otp.js +73 -0
- package/dist/features/auth/repository/user.repository.d.ts +6 -0
- package/dist/features/auth/repository/user.repository.js +19 -0
- package/dist/features/auth/schemas/firestore.d.ts +10 -0
- package/dist/features/auth/schemas/firestore.js +2 -0
- package/dist/features/cart/actions/cart-actions.d.ts +1 -1
- package/dist/features/cart/actions/cart-actions.js +4 -4
- package/dist/features/cart/components/CartView.d.ts +2 -2
- package/dist/features/cart/components/ShippingPicker.d.ts +4 -4
- package/dist/features/cart/components/ShippingPicker.js +11 -11
- package/dist/features/cart/repository/cart.repository.d.ts +1 -1
- package/dist/features/cart/repository/cart.repository.js +2 -2
- package/dist/features/cart/schemas/firestore.d.ts +2 -2
- package/dist/features/catalogue/components/CatalogueItemEditorView.js +3 -3
- package/dist/features/catalogue/components/PublicCatalogueView.js +2 -2
- package/dist/features/catalogue/schemas/validation.js +1 -1
- package/dist/features/categories/components/BundleCollage.js +2 -2
- package/dist/features/categories/components/BundleDetailView.js +2 -2
- package/dist/features/categories/components/BundleItemsPicker.d.ts +1 -1
- package/dist/features/categories/components/BundleItemsPicker.js +2 -2
- package/dist/features/categories/components/CategoryBundlesListing.js +2 -2
- package/dist/features/categories/schemas/firestore.d.ts +1 -1
- package/dist/features/categories/schemas/index.d.ts +3 -3
- package/dist/features/categories/schemas/index.js +2 -2
- package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +16 -0
- package/dist/features/checkout/actions/checkout-value-otp-actions.js +83 -0
- package/dist/features/checkout/actions/index.d.ts +1 -0
- package/dist/features/checkout/actions/index.js +1 -0
- package/dist/features/checkout/schemas/firestore.d.ts +1 -1
- package/dist/features/classified/components/index.d.ts +0 -4
- package/dist/features/classified/components/index.js +0 -2
- package/dist/features/digital-codes/components/index.d.ts +0 -4
- package/dist/features/digital-codes/components/index.js +0 -2
- package/dist/features/events/schemas/index.d.ts +1 -1
- package/dist/features/events/schemas/index.js +1 -1
- package/dist/features/homepage/components/FeaturedBundlesSection.js +2 -2
- package/dist/features/live/components/index.d.ts +0 -4
- package/dist/features/live/components/index.js +0 -2
- package/dist/features/lottery/types/index.d.ts +3 -3
- package/dist/features/lottery/types/index.js +5 -5
- package/dist/features/orders/components/OrderPaymentSummary.js +2 -2
- package/dist/features/orders/components/OrderSiblingPayments.js +1 -1
- package/dist/features/orders/components/RefundHistoryTable.js +1 -1
- package/dist/features/orders/components/RefundRequestView.js +1 -1
- package/dist/features/orders/constants/payment-window.d.ts +10 -0
- package/dist/features/orders/constants/payment-window.js +10 -0
- package/dist/features/orders/repository/orders.repository.d.ts +25 -0
- package/dist/features/orders/repository/orders.repository.js +50 -1
- package/dist/features/orders/schemas/firestore.d.ts +50 -2
- package/dist/features/orders/schemas/index.d.ts +24 -24
- package/dist/features/orders/schemas/index.js +20 -20
- package/dist/features/orders/types/index.d.ts +4 -0
- package/dist/features/orders/utils/bundle-grouping.d.ts +1 -1
- package/dist/features/orders/utils/bundle-grouping.js +1 -1
- package/dist/features/payments/schemas/index.d.ts +10 -10
- package/dist/features/payments/schemas/index.js +9 -9
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +2 -2
- package/dist/features/products/components/ArtStickersListView.d.ts +7 -0
- package/dist/features/products/components/ArtStickersListView.js +57 -0
- package/dist/features/products/components/GroupSettingsPanel.js +1 -1
- package/dist/features/products/components/MakeOfferButton.js +3 -3
- package/dist/features/products/components/MarketplaceBundleCard.d.ts +1 -1
- package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
- package/dist/features/products/components/PrizeDrawCollage.js +2 -2
- package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
- package/dist/features/products/components/PrizeRevealModal.js +1 -1
- package/dist/features/products/components/ProductDetailPageView.js +2 -9
- package/dist/features/products/components/ProductForm.js +2 -2
- package/dist/features/products/components/ProductGrid.js +2 -2
- package/dist/features/products/components/ProductsIndexListing.d.ts +13 -1
- package/dist/features/products/components/ProductsIndexListing.js +7 -5
- package/dist/features/products/components/ProductsIndexPageView.js +6 -1
- package/dist/features/products/constants/listing-tabs.d.ts +42 -17
- package/dist/features/products/constants/listing-tabs.js +25 -6
- package/dist/features/products/schemas/catalog-product.d.ts +5 -5
- package/dist/features/products/schemas/catalog-product.js +1 -1
- package/dist/features/products/schemas/firestore.d.ts +5 -5
- package/dist/features/products/schemas/firestore.js +2 -2
- package/dist/features/products/types/index.d.ts +5 -2
- package/dist/features/promotions/components/CouponCard.js +2 -2
- package/dist/features/promotions/schemas/firestore.d.ts +2 -0
- package/dist/features/promotions/schemas/firestore.js +1 -0
- package/dist/features/promotions/schemas/index.d.ts +14 -14
- package/dist/features/promotions/schemas/index.js +6 -6
- package/dist/features/scams/components/ScamProfileView.js +3 -7
- package/dist/features/scams/components/ScamRegistryView.js +2 -6
- package/dist/features/scams/schemas/firestore.d.ts +1 -1
- package/dist/features/search/components/Search.d.ts +1 -1
- package/dist/features/seller/actions/offer-actions.js +1 -1
- package/dist/features/seller/components/PrintCenterView.js +2 -2
- package/dist/features/seller/components/QuickProductForm.js +5 -5
- package/dist/features/seller/components/SellerArtView.js +2 -2
- package/dist/features/seller/components/SellerAuctionsView.js +2 -2
- package/dist/features/seller/components/SellerBidsView.js +2 -2
- package/dist/features/seller/components/SellerBundlesView.js +6 -6
- package/dist/features/seller/components/SellerClassifiedView.js +2 -2
- package/dist/features/seller/components/SellerDigitalCodesView.js +2 -2
- package/dist/features/seller/components/SellerLiveView.js +2 -2
- package/dist/features/seller/components/SellerOffersView.js +2 -2
- package/dist/features/seller/components/SellerOrdersView.js +3 -3
- package/dist/features/seller/components/SellerPayoutRequestView.js +2 -2
- package/dist/features/seller/components/SellerPayoutSettingsView.js +2 -2
- package/dist/features/seller/components/SellerPayoutsView.js +2 -2
- package/dist/features/seller/components/SellerPreOrdersView.js +2 -2
- package/dist/features/seller/components/SellerPrizeDrawsView.js +2 -2
- package/dist/features/seller/components/SellerProductShell.js +8 -8
- package/dist/features/seller/components/SellerProductsView.js +1 -1
- package/dist/features/seller/components/SellerShippingView.js +6 -6
- package/dist/features/seller/components/SellerStickersView.js +2 -2
- package/dist/features/seller/hooks/useSellerListingData.d.ts +1 -1
- package/dist/features/seller/hooks/useSellerListingData.js +3 -2
- package/dist/features/shipments/components/AdminShipmentEditorView.js +10 -10
- package/dist/features/shipments/components/AdminShipmentLotItemsView.js +4 -4
- package/dist/features/shipments/components/AdminShipmentProjectionsView.js +5 -5
- package/dist/features/shipments/components/AdminShipmentsView.js +4 -4
- package/dist/features/shipments/repository/shipment-lots.repository.d.ts +2 -2
- package/dist/features/shipments/repository/shipment-lots.repository.js +8 -8
- package/dist/features/shipments/schemas/firestore.d.ts +21 -21
- package/dist/features/shipments/schemas/firestore.js +9 -9
- package/dist/features/shipments/schemas/validation.d.ts +30 -30
- package/dist/features/shipments/schemas/validation.js +6 -6
- package/dist/features/shipments/utils/cost-allocation.d.ts +5 -5
- package/dist/features/shipments/utils/cost-allocation.js +39 -38
- package/dist/features/store-extensions/schemas/firestore.d.ts +5 -5
- package/dist/features/stores/components/StoreDetailLayoutView.js +9 -13
- package/dist/features/stores/schemas/firestore.d.ts +7 -7
- package/dist/features/stores/schemas/index.d.ts +84 -84
- package/dist/features/stores/schemas/index.js +5 -5
- package/dist/features/tester/seed-data/categories-tester-seed-data.js +1 -1
- package/dist/features/tester/seed-data/products-tester-seed-data.js +6 -6
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +9 -2
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +8 -1
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +13 -2
- package/dist/features/whatsapp-bot/types/index.d.ts +9 -1
- package/dist/index.d.ts +4 -7
- package/dist/index.js +9 -5
- package/dist/next/routing/route-map.d.ts +2 -0
- package/dist/next/routing/route-map.js +6 -0
- package/dist/schemas/firestore-helpers.d.ts +2 -2
- package/dist/schemas/firestore-helpers.js +2 -2
- package/dist/schemas/registry.d.ts +73 -73
- package/dist/security/index.d.ts +2 -1
- package/dist/security/index.js +5 -1
- package/dist/security/pii-encrypt.d.ts +2 -53
- package/dist/security/pii-encrypt.js +19 -100
- package/dist/security/pii-mask.d.ts +67 -0
- package/dist/security/pii-mask.js +100 -0
- package/dist/seed/bids-seed-data.js +6 -6
- package/dist/seed/blog-posts-seed-data.js +1 -0
- package/dist/seed/cart-seed-data.js +13 -13
- package/dist/seed/catalogue-seed-data.js +6 -6
- package/dist/seed/categories-seed-data.js +5 -5
- package/dist/seed/claimed-coupons-seed-data.js +3 -3
- package/dist/seed/coupons-seed-data.js +20 -20
- package/dist/seed/events-seed-data.js +27 -27
- package/dist/seed/factories/bid.factory.js +1 -1
- package/dist/seed/faq-seed-data.js +20 -1
- package/dist/seed/grouped-listings-seed-data.d.ts +2 -2
- package/dist/seed/grouped-listings-seed-data.js +3 -3
- package/dist/seed/offers-seed-data.js +19 -19
- package/dist/seed/orders-seed-data.js +29 -29
- package/dist/seed/payouts-seed-data.js +7 -7
- package/dist/seed/products-auctions-seed-data.js +6 -6
- package/dist/seed/products-preorders-seed-data.d.ts +2 -2
- package/dist/seed/products-preorders-seed-data.js +1 -1
- package/dist/seed/products-standard-seed-data.js +8 -8
- package/dist/seed/scammers-seed-data.js +2 -2
- package/dist/seed/shipments-seed-data.js +29 -29
- package/dist/seed/site-settings-seed-data.js +3 -2
- package/dist/seed/store-extensions-seed-data.js +8 -8
- package/dist/seed/stores-seed-data.js +37 -8
- package/dist/seed/users-seed-data.js +38 -1
- package/dist/server-entry.d.ts +1 -3
- package/dist/server-entry.js +1 -3
- package/dist/server.d.ts +2 -1
- package/dist/server.js +3 -1
- package/dist/ui/components/PriceDisplay.js +3 -12
- package/dist/utils/number.formatter.d.ts +2 -7
- package/dist/utils/number.formatter.js +3 -8
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +17 -3
- package/dist/_internal/client/scaffolds/DashboardScaffold.d.ts +0 -34
- package/dist/_internal/client/scaffolds/DashboardScaffold.js +0 -26
- package/dist/_internal/client/theme/__tests__/ThemeProvider.test.d.ts +0 -1
- package/dist/_internal/client/theme/__tests__/ThemeProvider.test.js +0 -109
- package/dist/_internal/server/features/auctions/__tests__/service.test.d.ts +0 -1
- package/dist/_internal/server/features/auctions/__tests__/service.test.js +0 -140
- package/dist/_internal/server/features/checkout/__tests__/actions.test.d.ts +0 -1
- package/dist/_internal/server/features/checkout/__tests__/actions.test.js +0 -600
- package/dist/_internal/server/features/refunds/__tests__/actions.test.d.ts +0 -1
- package/dist/_internal/server/features/refunds/__tests__/actions.test.js +0 -263
- package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.js +0 -249
- package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.js +0 -65
- package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.js +0 -163
- package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.js +0 -115
- package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.js +0 -201
- package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.js +0 -169
- package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.js +0 -148
- package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.js +0 -210
- package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.js +0 -190
- package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.js +0 -161
- package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.js +0 -302
- package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.js +0 -96
- package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.js +0 -252
- package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.d.ts +0 -1
- package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.js +0 -129
- package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.d.ts +0 -15
- package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.js +0 -38
- package/dist/_internal/server/providers/index.d.ts +0 -11
- package/dist/_internal/server/providers/index.js +0 -11
- package/dist/_internal/server/providers/payment/razorpay-mock.d.ts +0 -52
- package/dist/_internal/server/providers/payment/razorpay-mock.js +0 -118
- package/dist/_internal/server/providers/resolve.d.ts +0 -36
- package/dist/_internal/server/providers/resolve.js +0 -31
- package/dist/_internal/server/providers/shipping/shiprocket-mock.d.ts +0 -29
- package/dist/_internal/server/providers/shipping/shiprocket-mock.js +0 -152
- package/dist/_internal/shared/types/__tests__/action-result.test.d.ts +0 -1
- package/dist/_internal/shared/types/__tests__/action-result.test.js +0 -65
- package/dist/errors/__tests__/error-mapping.test.d.ts +0 -1
- package/dist/errors/__tests__/error-mapping.test.js +0 -122
- package/dist/errors/__tests__/safe-read.test.d.ts +0 -1
- package/dist/errors/__tests__/safe-read.test.js +0 -39
- package/dist/features/addresses/repository/__tests__/addresses.repository.test.d.ts +0 -1
- package/dist/features/addresses/repository/__tests__/addresses.repository.test.js +0 -386
- package/dist/features/admin/components/AdminListingScaffold.d.ts +0 -41
- package/dist/features/admin/components/AdminListingScaffold.js +0 -68
- package/dist/features/admin/components/QuickActionsPanel.d.ts +0 -15
- package/dist/features/admin/components/QuickActionsPanel.js +0 -5
- package/dist/features/admin/repository/__tests__/notification.repository.test.d.ts +0 -1
- package/dist/features/admin/repository/__tests__/notification.repository.test.js +0 -356
- package/dist/features/admin/repository/__tests__/site-settings.repository.test.d.ts +0 -1
- package/dist/features/admin/repository/__tests__/site-settings.repository.test.js +0 -298
- package/dist/features/auctions/repository/__tests__/bid.repository.test.d.ts +0 -1
- package/dist/features/auctions/repository/__tests__/bid.repository.test.js +0 -290
- package/dist/features/auctions/repository/auctions.repository.d.ts +0 -12
- package/dist/features/auctions/repository/auctions.repository.js +0 -42
- package/dist/features/auth/repository/__tests__/session.repository.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/session.repository.test.js +0 -310
- package/dist/features/auth/repository/__tests__/session.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/session.test.js +0 -146
- package/dist/features/auth/repository/__tests__/sms-counter.repository.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/sms-counter.repository.test.js +0 -171
- package/dist/features/auth/repository/__tests__/sms-counter.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/sms-counter.test.js +0 -88
- package/dist/features/auth/repository/__tests__/token.repository.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/token.repository.test.js +0 -260
- package/dist/features/auth/repository/__tests__/token.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/token.test.js +0 -140
- package/dist/features/auth/repository/__tests__/user.repository.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/user.repository.test.js +0 -352
- package/dist/features/auth/repository/__tests__/user.test.d.ts +0 -1
- package/dist/features/auth/repository/__tests__/user.test.js +0 -226
- package/dist/features/before-after/repository/before-after.repository.d.ts +0 -13
- package/dist/features/before-after/repository/before-after.repository.js +0 -36
- package/dist/features/before-after/server.d.ts +0 -6
- package/dist/features/before-after/server.js +0 -6
- package/dist/features/cart/repository/__tests__/cart.repository.test.d.ts +0 -1
- package/dist/features/cart/repository/__tests__/cart.repository.test.js +0 -371
- package/dist/features/categories/repository/__tests__/categories.repository.test.d.ts +0 -1
- package/dist/features/categories/repository/__tests__/categories.repository.test.js +0 -813
- package/dist/features/collections/repository/collections.repository.d.ts +0 -8
- package/dist/features/collections/repository/collections.repository.js +0 -16
- package/dist/features/collections/server.d.ts +0 -6
- package/dist/features/collections/server.js +0 -6
- package/dist/features/events/repository/__tests__/event.repository.test.d.ts +0 -1
- package/dist/features/events/repository/__tests__/event.repository.test.js +0 -299
- package/dist/features/faq/repository/__tests__/faqs.repository.test.d.ts +0 -1
- package/dist/features/faq/repository/__tests__/faqs.repository.test.js +0 -311
- package/dist/features/forms/Form.d.ts +0 -25
- package/dist/features/forms/Form.js +0 -37
- package/dist/features/history/repository/__tests__/user-history.repository.test.d.ts +0 -1
- package/dist/features/history/repository/__tests__/user-history.repository.test.js +0 -180
- package/dist/features/homepage/repository/__tests__/carousel.repository.test.d.ts +0 -1
- package/dist/features/homepage/repository/__tests__/carousel.repository.test.js +0 -182
- package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.d.ts +0 -1
- package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.js +0 -185
- package/dist/features/layout/ListingLayout.d.ts +0 -34
- package/dist/features/layout/ListingLayout.js +0 -103
- package/dist/features/messages/repository/__tests__/conversations.repository.test.d.ts +0 -1
- package/dist/features/messages/repository/__tests__/conversations.repository.test.js +0 -257
- package/dist/features/orders/repository/__tests__/orders.repository.test.d.ts +0 -1
- package/dist/features/orders/repository/__tests__/orders.repository.test.js +0 -211
- package/dist/features/payments/repository/__tests__/payout.repository.test.d.ts +0 -1
- package/dist/features/payments/repository/__tests__/payout.repository.test.js +0 -292
- package/dist/features/pre-orders/repository/preorders.repository.d.ts +0 -8
- package/dist/features/pre-orders/repository/preorders.repository.js +0 -25
- package/dist/features/products/repository/__tests__/product-features.repository.test.d.ts +0 -1
- package/dist/features/products/repository/__tests__/product-features.repository.test.js +0 -329
- package/dist/features/products/repository/__tests__/products.repository.test.d.ts +0 -1
- package/dist/features/products/repository/__tests__/products.repository.test.js +0 -607
- package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.d.ts +0 -1
- package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.js +0 -219
- package/dist/features/promotions/repository/__tests__/coupons.repository.test.d.ts +0 -1
- package/dist/features/promotions/repository/__tests__/coupons.repository.test.js +0 -480
- package/dist/features/promotions/repository/promotions.repository.d.ts +0 -14
- package/dist/features/promotions/repository/promotions.repository.js +0 -43
- package/dist/features/reviews/repository/__tests__/reviews.repository.test.d.ts +0 -1
- package/dist/features/reviews/repository/__tests__/reviews.repository.test.js +0 -327
- package/dist/features/scams/repository/__tests__/scammer.repository.test.d.ts +0 -1
- package/dist/features/scams/repository/__tests__/scammer.repository.test.js +0 -385
- package/dist/features/search/repository/__tests__/search.repository.test.d.ts +0 -1
- package/dist/features/search/repository/__tests__/search.repository.test.js +0 -369
- package/dist/features/seller/components/SellerStatCard.d.ts +0 -14
- package/dist/features/seller/components/SellerStatCard.js +0 -6
- package/dist/features/seller/components/seller-products-styles.d.ts +0 -7
- package/dist/features/seller/components/seller-products-styles.js +0 -14
- package/dist/features/seller/repository/__tests__/offer.repository.test.d.ts +0 -1
- package/dist/features/seller/repository/__tests__/offer.repository.test.js +0 -458
- package/dist/features/seller/repository/seller.repository.d.ts +0 -22
- package/dist/features/seller/repository/seller.repository.js +0 -72
- package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.d.ts +0 -1
- package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.js +0 -37
- package/dist/features/stores/repository/__tests__/store.repository.test.d.ts +0 -1
- package/dist/features/stores/repository/__tests__/store.repository.test.js +0 -261
- package/dist/features/stores/repository/stores.repository.d.ts +0 -11
- package/dist/features/stores/repository/stores.repository.js +0 -37
- package/dist/features/support/repository/__tests__/support.repository.test.d.ts +0 -1
- package/dist/features/support/repository/__tests__/support.repository.test.js +0 -312
- package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.d.ts +0 -1
- package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.js +0 -139
- package/dist/features/wishlist/repository/wishlist.repository.d.ts +0 -13
- package/dist/features/wishlist/repository/wishlist.repository.js +0 -31
- package/dist/providers/db-firebase/__tests__/filter-aliases.test.d.ts +0 -1
- package/dist/providers/db-firebase/__tests__/filter-aliases.test.js +0 -93
- package/dist/providers/shipping-shiprocket/index.d.ts +0 -297
- package/dist/providers/shipping-shiprocket/index.js +0 -194
- package/dist/providers/shipping-shiprocket/shiprocket-provider.d.ts +0 -45
- package/dist/providers/shipping-shiprocket/shiprocket-provider.js +0 -168
- package/dist/react/contexts/ThemeContext.d.ts +0 -13
- package/dist/react/contexts/ThemeContext.js +0 -64
- package/dist/schemas/webhooks/shiprocket.d.ts +0 -30
- package/dist/schemas/webhooks/shiprocket.js +0 -22
- package/dist/seed/actions/demo-seed-actions.d.ts +0 -42
- package/dist/seed/actions/demo-seed-actions.js +0 -36
- package/dist/seed/actions/index.d.ts +0 -1
- package/dist/seed/actions/index.js +0 -1
- package/dist/seed/sub-listings-seed-data.d.ts +0 -123
- package/dist/seed/sub-listings-seed-data.js +0 -447
- package/dist/seed/tester-checklist-seed-data.d.ts +0 -2
- package/dist/seed/tester-checklist-seed-data.js +0 -248
- package/dist/ui/components/DashboardStatsCard.d.ts +0 -15
- package/dist/ui/components/DashboardStatsCard.js +0 -27
- package/dist/ui/components/DashboardStatsCard.style.css +0 -68
- package/dist/ui/components/DynamicSelect.d.ts +0 -23
- package/dist/ui/components/DynamicSelect.js +0 -77
- package/dist/ui/components/DynamicSelect.style.css +0 -101
- package/dist/ui/components/InlineCreateSelect.d.ts +0 -48
- package/dist/ui/components/InlineCreateSelect.js +0 -75
- package/dist/ui/components/ListingViewShell.d.ts +0 -37
- package/dist/ui/components/ListingViewShell.js +0 -9
- package/dist/ui/components/PaginatedMultiSelect.d.ts +0 -28
- package/dist/ui/components/PaginatedMultiSelect.js +0 -141
- package/dist/ui/components/PaginatedMultiSelect.style.css +0 -272
- package/dist/ui/components/SectionTabs.d.ts +0 -19
- package/dist/ui/components/SectionTabs.js +0 -66
- package/dist/ui/components/SectionTabs.style.css +0 -164
- package/dist/ui/components/__tests__/BulkActionBar.test.d.ts +0 -1
- package/dist/ui/components/__tests__/BulkActionBar.test.js +0 -96
- package/dist/ui/components/__tests__/ListingToolbar.test.d.ts +0 -1
- package/dist/ui/components/__tests__/ListingToolbar.test.js +0 -125
- package/dist/ui/components/__tests__/new-primitives.test.d.ts +0 -1
- package/dist/ui/components/__tests__/new-primitives.test.js +0 -187
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PII display-masking helpers — pure string manipulation, zero runtime
|
|
3
|
+
* dependencies. Split out from pii-encrypt.ts so these can be exported
|
|
4
|
+
* from the universal client+server barrel (index.ts): pii-encrypt.ts has
|
|
5
|
+
* a top-level `import { createRequire } from "node:module"` (needed for
|
|
6
|
+
* the AES-256-GCM/HMAC functions to work under both Next.js's bundler and
|
|
7
|
+
* a pure-ESM standalone script context) that poisons the whole module for
|
|
8
|
+
* client bundling — Turbopack statically resolves every export in a file
|
|
9
|
+
* before tree-shaking, so re-exporting even one crypto-free symbol from
|
|
10
|
+
* pii-encrypt.ts still pulls `node:module` into the client graph and hard
|
|
11
|
+
* fails the browser build. This file has no such import and is safe
|
|
12
|
+
* anywhere `ReviewModal`/`ReviewDetailShell`/`ReviewsList` (client
|
|
13
|
+
* components displaying masked reviewer names) can reach it.
|
|
14
|
+
*/
|
|
15
|
+
export declare const ENC_PREFIX = "enc:v1:";
|
|
16
|
+
export declare const HMAC_PREFIX = "hmac-sha256:";
|
|
17
|
+
/** Check if a value is encrypted by our PII system. */
|
|
18
|
+
export declare function isPiiEncrypted(value: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Mask a person's name for public display.
|
|
21
|
+
* Each word is reduced to its first letter followed by "***".
|
|
22
|
+
*
|
|
23
|
+
* "John Doe" → "J*** D***"
|
|
24
|
+
* "Alice" → "A***"
|
|
25
|
+
*
|
|
26
|
+
* If the value is still an encrypted blob (e.g. PII_ENCRYPTION_KEY not set),
|
|
27
|
+
* returns "Anonymous" so encrypted ciphertext never leaks to the UI.
|
|
28
|
+
*/
|
|
29
|
+
export declare function maskName(name: string | null | undefined): string;
|
|
30
|
+
/**
|
|
31
|
+
* Mask an email address for public display.
|
|
32
|
+
* "john.doe@example.com" → "j***@***.com"
|
|
33
|
+
*/
|
|
34
|
+
export declare function maskEmail(email: string | null | undefined): string;
|
|
35
|
+
/**
|
|
36
|
+
* Return a copy of a review document with PII fields masked for public display.
|
|
37
|
+
* Admin/owner endpoints should NOT call this — use the raw document instead.
|
|
38
|
+
*/
|
|
39
|
+
export declare function maskPublicReview<T extends {
|
|
40
|
+
userName: string;
|
|
41
|
+
}>(review: T): T;
|
|
42
|
+
/**
|
|
43
|
+
* Return a copy of a bid document with PII masked for public display
|
|
44
|
+
* (auction product page).
|
|
45
|
+
*/
|
|
46
|
+
export declare function maskPublicBid<T extends {
|
|
47
|
+
userName: string;
|
|
48
|
+
}>(bid: T): T;
|
|
49
|
+
/**
|
|
50
|
+
* Return a copy of an event-entry document with PII masked for the leaderboard.
|
|
51
|
+
* ipAddress and userEmail are never sent to the client;
|
|
52
|
+
* only userDisplayName needs masking for a public leaderboard view.
|
|
53
|
+
*/
|
|
54
|
+
export declare function maskPublicEventEntry<T extends {
|
|
55
|
+
userDisplayName?: string;
|
|
56
|
+
userEmail?: string;
|
|
57
|
+
ipAddress?: string;
|
|
58
|
+
}>(entry: T): Omit<T, "userEmail" | "ipAddress">;
|
|
59
|
+
/**
|
|
60
|
+
* Return a copy of an offer document with buyer PII masked for the seller view.
|
|
61
|
+
* The seller needs to know an offer was made and its amount, but the buyer's
|
|
62
|
+
* full name and email should remain private until the order is confirmed.
|
|
63
|
+
*/
|
|
64
|
+
export declare function maskOfferForSeller<T extends {
|
|
65
|
+
buyerName: string;
|
|
66
|
+
buyerEmail: string;
|
|
67
|
+
}>(offer: T): T;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PII display-masking helpers — pure string manipulation, zero runtime
|
|
3
|
+
* dependencies. Split out from pii-encrypt.ts so these can be exported
|
|
4
|
+
* from the universal client+server barrel (index.ts): pii-encrypt.ts has
|
|
5
|
+
* a top-level `import { createRequire } from "node:module"` (needed for
|
|
6
|
+
* the AES-256-GCM/HMAC functions to work under both Next.js's bundler and
|
|
7
|
+
* a pure-ESM standalone script context) that poisons the whole module for
|
|
8
|
+
* client bundling — Turbopack statically resolves every export in a file
|
|
9
|
+
* before tree-shaking, so re-exporting even one crypto-free symbol from
|
|
10
|
+
* pii-encrypt.ts still pulls `node:module` into the client graph and hard
|
|
11
|
+
* fails the browser build. This file has no such import and is safe
|
|
12
|
+
* anywhere `ReviewModal`/`ReviewDetailShell`/`ReviewsList` (client
|
|
13
|
+
* components displaying masked reviewer names) can reach it.
|
|
14
|
+
*/
|
|
15
|
+
export const ENC_PREFIX = "enc:v1:";
|
|
16
|
+
export const HMAC_PREFIX = "hmac-sha256:";
|
|
17
|
+
/** Check if a value is encrypted by our PII system. */
|
|
18
|
+
export function isPiiEncrypted(value) {
|
|
19
|
+
return typeof value === "string" && value.startsWith(ENC_PREFIX);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Mask a person's name for public display.
|
|
23
|
+
* Each word is reduced to its first letter followed by "***".
|
|
24
|
+
*
|
|
25
|
+
* "John Doe" → "J*** D***"
|
|
26
|
+
* "Alice" → "A***"
|
|
27
|
+
*
|
|
28
|
+
* If the value is still an encrypted blob (e.g. PII_ENCRYPTION_KEY not set),
|
|
29
|
+
* returns "Anonymous" so encrypted ciphertext never leaks to the UI.
|
|
30
|
+
*/
|
|
31
|
+
export function maskName(name) {
|
|
32
|
+
if (!name || typeof name !== "string")
|
|
33
|
+
return "Anonymous";
|
|
34
|
+
if (isPiiEncrypted(name))
|
|
35
|
+
return "Anonymous";
|
|
36
|
+
return name
|
|
37
|
+
.trim()
|
|
38
|
+
.split(/\s+/)
|
|
39
|
+
.filter(Boolean)
|
|
40
|
+
.map((word) => word[0] + "***")
|
|
41
|
+
.join(" ");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Mask an email address for public display.
|
|
45
|
+
* "john.doe@example.com" → "j***@***.com"
|
|
46
|
+
*/
|
|
47
|
+
export function maskEmail(email) {
|
|
48
|
+
if (!email || typeof email !== "string")
|
|
49
|
+
return "***@***.***";
|
|
50
|
+
if (isPiiEncrypted(email))
|
|
51
|
+
return "***@***.***";
|
|
52
|
+
const atIdx = email.indexOf("@");
|
|
53
|
+
if (atIdx < 0)
|
|
54
|
+
return "***";
|
|
55
|
+
const local = email.slice(0, atIdx);
|
|
56
|
+
const domain = email.slice(atIdx + 1);
|
|
57
|
+
const dotIdx = domain.lastIndexOf(".");
|
|
58
|
+
const domainMasked = dotIdx > 0 ? "***" + domain.slice(dotIdx) : "***";
|
|
59
|
+
return (local[0] ?? "*") + "***@" + domainMasked;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Return a copy of a review document with PII fields masked for public display.
|
|
63
|
+
* Admin/owner endpoints should NOT call this — use the raw document instead.
|
|
64
|
+
*/
|
|
65
|
+
export function maskPublicReview(review) {
|
|
66
|
+
return { ...review, userName: maskName(review.userName) };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Return a copy of a bid document with PII masked for public display
|
|
70
|
+
* (auction product page).
|
|
71
|
+
*/
|
|
72
|
+
export function maskPublicBid(bid) {
|
|
73
|
+
return { ...bid };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Return a copy of an event-entry document with PII masked for the leaderboard.
|
|
77
|
+
* ipAddress and userEmail are never sent to the client;
|
|
78
|
+
* only userDisplayName needs masking for a public leaderboard view.
|
|
79
|
+
*/
|
|
80
|
+
export function maskPublicEventEntry(entry) {
|
|
81
|
+
const { userEmail: _e, ipAddress: _ip, ...rest } = entry;
|
|
82
|
+
return {
|
|
83
|
+
...rest,
|
|
84
|
+
...(rest.userDisplayName !== undefined
|
|
85
|
+
? { userDisplayName: maskName(rest.userDisplayName) }
|
|
86
|
+
: {}),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Return a copy of an offer document with buyer PII masked for the seller view.
|
|
91
|
+
* The seller needs to know an offer was made and its amount, but the buyer's
|
|
92
|
+
* full name and email should remain private until the order is confirmed.
|
|
93
|
+
*/
|
|
94
|
+
export function maskOfferForSeller(offer) {
|
|
95
|
+
return {
|
|
96
|
+
...offer,
|
|
97
|
+
buyerName: maskName(offer.buyerName),
|
|
98
|
+
buyerEmail: maskEmail(offer.buyerEmail),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
@@ -64,20 +64,20 @@ function buildLadder(params) {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
const _rawBidsSeedData = [
|
|
67
|
-
// auction-beyblade-original-dragoon-storm — bidCount: 3, currentBid:
|
|
67
|
+
// auction-beyblade-original-dragoon-storm — bidCount: 3, currentBid: 3499
|
|
68
68
|
...buildLadder({
|
|
69
69
|
productId: "auction-beyblade-original-dragoon-storm",
|
|
70
70
|
productTitle: "Beyblade Original — Dragoon Storm (Rare Sealed)",
|
|
71
|
-
startingBid:
|
|
72
|
-
currentBid:
|
|
71
|
+
startingBid: 2999,
|
|
72
|
+
currentBid: 3499,
|
|
73
73
|
bidderIds: ["user-rohit-collector", "user-ananya-collector", "user-meera-bey"],
|
|
74
74
|
}),
|
|
75
|
-
// auction-beyblade-metal-lightning-l-drago — bidCount: 5, currentBid:
|
|
75
|
+
// auction-beyblade-metal-lightning-l-drago — bidCount: 5, currentBid: 2299
|
|
76
76
|
...buildLadder({
|
|
77
77
|
productId: "auction-beyblade-metal-lightning-l-drago",
|
|
78
78
|
productTitle: "Metal Fight Beyblade BB-99 Lightning L-Drago",
|
|
79
|
-
startingBid:
|
|
80
|
-
currentBid:
|
|
79
|
+
startingBid: 1999,
|
|
80
|
+
currentBid: 2299,
|
|
81
81
|
bidderIds: [
|
|
82
82
|
"user-meera-bey",
|
|
83
83
|
"user-rohit-collector",
|
|
@@ -108,6 +108,7 @@ export const blogPostsSeedData = [
|
|
|
108
108
|
title: "Gundam Model Kit Grades Explained: HG vs RG vs MG vs PG",
|
|
109
109
|
slug: "gundam-model-kit-grades-explained",
|
|
110
110
|
excerpt: "Not sure which Gundam grade to start with? Here's a detailed breakdown of every Bandai grade — from the beginner-friendly HG to the massive Perfect Grade.",
|
|
111
|
+
// audit-money-units-ok: prose HTML content — "1/144 Scale"/"1/100 Scale" are model-kit scale ratios, not paise math
|
|
111
112
|
content: `<h2>High Grade (HG) — 1/144 Scale</h2><p>The entry point for most builders. ~100 parts, snap-fit (no glue needed), completes in 2–3 hours. ₹800–₹2,000. Great articulation for the price.</p><h2>Real Grade (RG) — 1/144 Scale</h2><p>Master Grade detail at HG size. ~200 parts, pre-colored inner frame. More fragile than HG due to small parts. ₹1,800–₹3,500. The RG Nu Gundam and RG Wing Zero are fan favorites.</p><h2>Master Grade (MG) — 1/100 Scale</h2><p>The collector's standard. ~400 parts, fully detailed inner frame, excellent poseability. ₹3,500–₹8,000. Build time: 6–12 hours. MG Barbatos and MG Freedom 2.0 are top sellers on LetItRip.</p><h2>Perfect Grade (PG) — 1/60 Scale</h2><p>The pinnacle. ~800+ parts, LED-compatible, museum-quality detail. ₹12,000–₹25,000+. Build time: 20–40 hours. A showpiece, not a toy.</p><h2>Other Grades</h2><p><strong>SD</strong> (Super Deformed) — chibi proportions, great for kids. <strong>EG</strong> (Entry Grade) — simplified build, no tools needed. <strong>MGEX</strong> — MG with extreme detail (Unicorn Gundam only). <strong>PG Unleashed</strong> — beyond PG, the ultimate kit.</p>`,
|
|
112
113
|
category: "guides",
|
|
113
114
|
tags: ["gundam", "bandai", "model-kits", "hg", "mg", "rg", "pg"],
|
|
@@ -28,7 +28,7 @@ export const cartsSeedData = [
|
|
|
28
28
|
productId: "product-dark-magician-lob-1st",
|
|
29
29
|
productTitle: "Dark Magician LOB 1st Edition",
|
|
30
30
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/46986414.jpg"),
|
|
31
|
-
price:
|
|
31
|
+
price: 4999,
|
|
32
32
|
currency: _CURRENCY,
|
|
33
33
|
quantity: 1,
|
|
34
34
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -42,7 +42,7 @@ export const cartsSeedData = [
|
|
|
42
42
|
productId: "product-lob-booster-pack",
|
|
43
43
|
productTitle: "Legend of Blue Eyes Booster Pack",
|
|
44
44
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89631139.jpg"),
|
|
45
|
-
price:
|
|
45
|
+
price: 1499,
|
|
46
46
|
currency: _CURRENCY,
|
|
47
47
|
quantity: 2,
|
|
48
48
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -56,7 +56,7 @@ export const cartsSeedData = [
|
|
|
56
56
|
productId: "product-kuriboh-mrd",
|
|
57
57
|
productTitle: "Kuriboh MRD",
|
|
58
58
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/40640057.jpg"),
|
|
59
|
-
price:
|
|
59
|
+
price: 299,
|
|
60
60
|
currency: _CURRENCY,
|
|
61
61
|
quantity: 1,
|
|
62
62
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -70,7 +70,7 @@ export const cartsSeedData = [
|
|
|
70
70
|
productId: "auction-blue-eyes-white-dragon-psa9",
|
|
71
71
|
productTitle: "Blue-Eyes White Dragon PSA 9 — Won Auction",
|
|
72
72
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89631139.jpg"),
|
|
73
|
-
price:
|
|
73
|
+
price: 14999,
|
|
74
74
|
currency: _CURRENCY,
|
|
75
75
|
quantity: 1,
|
|
76
76
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -85,7 +85,7 @@ export const cartsSeedData = [
|
|
|
85
85
|
productId: "product-red-eyes-black-dragon-mrd",
|
|
86
86
|
productTitle: "Red-Eyes Black Dragon MRD — Offer Accepted",
|
|
87
87
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/74677422.jpg"),
|
|
88
|
-
price:
|
|
88
|
+
price: 8999,
|
|
89
89
|
currency: _CURRENCY,
|
|
90
90
|
quantity: 1,
|
|
91
91
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -93,7 +93,7 @@ export const cartsSeedData = [
|
|
|
93
93
|
listingType: "standard",
|
|
94
94
|
isOffer: true,
|
|
95
95
|
offerId: "offer-yugi-red-eyes-001",
|
|
96
|
-
lockedPrice:
|
|
96
|
+
lockedPrice: 3500,
|
|
97
97
|
locked: true,
|
|
98
98
|
addedAt: daysAgo(1),
|
|
99
99
|
updatedAt: daysAgo(1),
|
|
@@ -112,7 +112,7 @@ export const cartsSeedData = [
|
|
|
112
112
|
productId: "product-duelist-kingdom-playmat",
|
|
113
113
|
productTitle: "Duelist Kingdom Playmat",
|
|
114
114
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/10000015.jpg"),
|
|
115
|
-
price:
|
|
115
|
+
price: 1299,
|
|
116
116
|
currency: _CURRENCY,
|
|
117
117
|
quantity: 1,
|
|
118
118
|
storeId: "store-letitrip-official",
|
|
@@ -126,7 +126,7 @@ export const cartsSeedData = [
|
|
|
126
126
|
productId: "product-exodia-art-print",
|
|
127
127
|
productTitle: "Exodia Art Print A3",
|
|
128
128
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/33396948.jpg"),
|
|
129
|
-
price:
|
|
129
|
+
price: 799,
|
|
130
130
|
currency: _CURRENCY,
|
|
131
131
|
quantity: 1,
|
|
132
132
|
storeId: "store-letitrip-official",
|
|
@@ -140,7 +140,7 @@ export const cartsSeedData = [
|
|
|
140
140
|
productId: "preorder-gate-guardian-reprint-2026",
|
|
141
141
|
productTitle: "Gate Guardian 2026 Reprint — Pre-Order",
|
|
142
142
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/25833572.jpg"),
|
|
143
|
-
price:
|
|
143
|
+
price: 3499,
|
|
144
144
|
currency: _CURRENCY,
|
|
145
145
|
quantity: 1,
|
|
146
146
|
storeId: "store-letitrip-official",
|
|
@@ -163,7 +163,7 @@ export const cartsSeedData = [
|
|
|
163
163
|
productId: "product-chaos-emperor-dragon",
|
|
164
164
|
productTitle: "Chaos Emperor Dragon — Envoy of the End",
|
|
165
165
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/82301904.jpg"),
|
|
166
|
-
price:
|
|
166
|
+
price: 12999,
|
|
167
167
|
currency: _CURRENCY,
|
|
168
168
|
quantity: 1,
|
|
169
169
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -177,7 +177,7 @@ export const cartsSeedData = [
|
|
|
177
177
|
productId: "product-potd-booster-box",
|
|
178
178
|
productTitle: "Power of the Duelist Booster Box 24pk",
|
|
179
179
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89943723.jpg"),
|
|
180
|
-
price:
|
|
180
|
+
price: 8999,
|
|
181
181
|
currency: _CURRENCY,
|
|
182
182
|
quantity: 1,
|
|
183
183
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -200,7 +200,7 @@ export const cartsSeedData = [
|
|
|
200
200
|
productId: "product-mirror-force-mrd",
|
|
201
201
|
productTitle: "Mirror Force MRD Ultra Rare",
|
|
202
202
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/44095762.jpg"),
|
|
203
|
-
price:
|
|
203
|
+
price: 9999,
|
|
204
204
|
currency: _CURRENCY,
|
|
205
205
|
quantity: 1,
|
|
206
206
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -214,7 +214,7 @@ export const cartsSeedData = [
|
|
|
214
214
|
productId: "product-yugi-starter-deck",
|
|
215
215
|
productTitle: "Starter Deck: Yugi",
|
|
216
216
|
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/46986414.jpg"),
|
|
217
|
-
price:
|
|
217
|
+
price: 1999,
|
|
218
218
|
currency: _CURRENCY,
|
|
219
219
|
quantity: 1,
|
|
220
220
|
storeId: "store-kaiba-corp-cards",
|
|
@@ -21,7 +21,7 @@ export const catalogueSeedData = [
|
|
|
21
21
|
images: [],
|
|
22
22
|
mainImage: undefined,
|
|
23
23
|
condition: "good",
|
|
24
|
-
price:
|
|
24
|
+
price: 4500,
|
|
25
25
|
quantity: 1,
|
|
26
26
|
visibility: "public",
|
|
27
27
|
listingStatus: "not_listed",
|
|
@@ -36,7 +36,7 @@ export const catalogueSeedData = [
|
|
|
36
36
|
title: "Charizard Holo 1st Edition (played)",
|
|
37
37
|
images: [],
|
|
38
38
|
condition: "fair",
|
|
39
|
-
price:
|
|
39
|
+
price: 12000,
|
|
40
40
|
quantity: 1,
|
|
41
41
|
visibility: "public",
|
|
42
42
|
listingStatus: "pending_admin_approval",
|
|
@@ -52,7 +52,7 @@ export const catalogueSeedData = [
|
|
|
52
52
|
title: "Gundam RX-78-2 Model Kit (built)",
|
|
53
53
|
images: [],
|
|
54
54
|
condition: "like_new",
|
|
55
|
-
price:
|
|
55
|
+
price: 2500,
|
|
56
56
|
quantity: 1,
|
|
57
57
|
visibility: "public",
|
|
58
58
|
listingStatus: "listed",
|
|
@@ -69,7 +69,7 @@ export const catalogueSeedData = [
|
|
|
69
69
|
title: "Beyblade Burst (missing launcher)",
|
|
70
70
|
images: [],
|
|
71
71
|
condition: "poor",
|
|
72
|
-
price:
|
|
72
|
+
price: 300,
|
|
73
73
|
quantity: 1,
|
|
74
74
|
visibility: "private",
|
|
75
75
|
listingStatus: "rejected",
|
|
@@ -86,7 +86,7 @@ export const catalogueSeedData = [
|
|
|
86
86
|
title: "Pokémon Binder — 180 cards, mixed sets",
|
|
87
87
|
images: [],
|
|
88
88
|
condition: "good",
|
|
89
|
-
price:
|
|
89
|
+
price: 8000,
|
|
90
90
|
quantity: 1,
|
|
91
91
|
visibility: "public",
|
|
92
92
|
listingStatus: "not_listed",
|
|
@@ -101,7 +101,7 @@ export const catalogueSeedData = [
|
|
|
101
101
|
title: "Funko Pop Batman (box wear only)",
|
|
102
102
|
images: [],
|
|
103
103
|
condition: "new",
|
|
104
|
-
price:
|
|
104
|
+
price: 1800,
|
|
105
105
|
quantity: 2,
|
|
106
106
|
visibility: "private",
|
|
107
107
|
listingStatus: "not_listed",
|
|
@@ -239,7 +239,7 @@ const bundleRows = [
|
|
|
239
239
|
description: "Both original-generation Beyblades — Dranzer S and Driger V — bundled at a discount.",
|
|
240
240
|
categoryType: "bundle",
|
|
241
241
|
bundleKind: "special",
|
|
242
|
-
|
|
242
|
+
bundlePrice: 2999,
|
|
243
243
|
bundleQueryRule: {
|
|
244
244
|
type: "static",
|
|
245
245
|
productIds: ["product-beyblade-original-dranzer-s", "product-beyblade-original-driger-v", "product-beyblade-metal-storm-pegasus"],
|
|
@@ -271,7 +271,7 @@ const bundleRows = [
|
|
|
271
271
|
description: "Storm Pegasus and Flame Sagittario — the classic Metal Fight rivalry, together.",
|
|
272
272
|
categoryType: "bundle",
|
|
273
273
|
bundleKind: "special",
|
|
274
|
-
|
|
274
|
+
bundlePrice: 3499,
|
|
275
275
|
bundleQueryRule: {
|
|
276
276
|
type: "static",
|
|
277
277
|
productIds: ["product-beyblade-metal-storm-pegasus", "product-beyblade-metal-flame-sagittario", "product-beyblade-original-dranzer-s"],
|
|
@@ -303,7 +303,7 @@ const bundleRows = [
|
|
|
303
303
|
description: "Valkyrie and Regalia Genesis — top-tier Burst-era attackers in one set.",
|
|
304
304
|
categoryType: "bundle",
|
|
305
305
|
bundleKind: "special",
|
|
306
|
-
|
|
306
|
+
bundlePrice: 3799,
|
|
307
307
|
bundleQueryRule: {
|
|
308
308
|
type: "static",
|
|
309
309
|
productIds: ["product-beyblade-burst-valkyrie", "product-beyblade-burst-regalia-genesis", "product-beyblade-metal-flame-sagittario"],
|
|
@@ -335,7 +335,7 @@ const bundleRows = [
|
|
|
335
335
|
description: "Wizard Arrow and Knife Shinobi — the newest X-series tops for new battlers.",
|
|
336
336
|
categoryType: "bundle",
|
|
337
337
|
bundleKind: "special",
|
|
338
|
-
|
|
338
|
+
bundlePrice: 2499,
|
|
339
339
|
bundleQueryRule: {
|
|
340
340
|
type: "static",
|
|
341
341
|
productIds: ["product-beyblade-x-wizard-arrow", "product-beyblade-x-knife-shinobi", "product-beyblade-burst-valkyrie"],
|
|
@@ -367,7 +367,7 @@ const bundleRows = [
|
|
|
367
367
|
description: "One top from every Beyblade generation — Original, Metal Fight, Burst, and X — the ultimate collector's starter pack.",
|
|
368
368
|
categoryType: "bundle",
|
|
369
369
|
bundleKind: "special",
|
|
370
|
-
|
|
370
|
+
bundlePrice: 5999,
|
|
371
371
|
bundleQueryRule: {
|
|
372
372
|
type: "static",
|
|
373
373
|
productIds: [
|
|
@@ -29,7 +29,7 @@ export const claimedCouponsSeedData = [
|
|
|
29
29
|
description: "10% off your first order on LetItRip.",
|
|
30
30
|
type: "percentage",
|
|
31
31
|
scope: "admin",
|
|
32
|
-
discount: { value: 10, maxDiscount:
|
|
32
|
+
discount: { value: 10, maxDiscount: 500, minPurchase: 999 },
|
|
33
33
|
restrictions: { firstTimeUserOnly: true, combineWithSellerCoupons: false },
|
|
34
34
|
},
|
|
35
35
|
status: "active",
|
|
@@ -50,7 +50,7 @@ export const claimedCouponsSeedData = [
|
|
|
50
50
|
description: "₹500 flat discount on orders above ₹5,000.",
|
|
51
51
|
type: "fixed",
|
|
52
52
|
scope: "admin",
|
|
53
|
-
discount: { value:
|
|
53
|
+
discount: { value: 500, minPurchase: 5000 },
|
|
54
54
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: true },
|
|
55
55
|
},
|
|
56
56
|
status: "expired",
|
|
@@ -71,7 +71,7 @@ export const claimedCouponsSeedData = [
|
|
|
71
71
|
description: "Free shipping on orders above ₹499.",
|
|
72
72
|
type: "free_shipping",
|
|
73
73
|
scope: "admin",
|
|
74
|
-
discount: { value: 0, minPurchase:
|
|
74
|
+
discount: { value: 0, minPurchase: 499 },
|
|
75
75
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: true },
|
|
76
76
|
},
|
|
77
77
|
status: "used",
|
|
@@ -25,14 +25,14 @@ export const couponsSeedData = [
|
|
|
25
25
|
description: "10% off your first order on LetItRip. Maximum discount ₹200. First-time buyers only.",
|
|
26
26
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
27
27
|
scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
|
|
28
|
-
discount: { value: 10, maxDiscount:
|
|
28
|
+
discount: { value: 10, maxDiscount: 200, minPurchase: 500 },
|
|
29
29
|
usage: { totalLimit: undefined, perUserLimit: 1, currentUsage: 312 },
|
|
30
30
|
validity: { startDate: daysAgo(90), endDate: daysAhead(180), isActive: true },
|
|
31
31
|
restrictions: { firstTimeUserOnly: true, combineWithSellerCoupons: true },
|
|
32
32
|
createdBy: "user-admin-letitrip",
|
|
33
33
|
createdAt: daysAgo(90),
|
|
34
34
|
updatedAt: daysAgo(5),
|
|
35
|
-
stats: { totalUses: 312, totalRevenue:
|
|
35
|
+
stats: { totalUses: 312, totalRevenue: 1560000, totalDiscount: 31200 },
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
id: "coupon-exodia50",
|
|
@@ -41,14 +41,14 @@ export const couponsSeedData = [
|
|
|
41
41
|
description: "₹500 off on orders above ₹2,000. All categories. Limited to 500 total uses.",
|
|
42
42
|
type: COUPON_FIELDS.TYPE_VALUES.FIXED,
|
|
43
43
|
scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
|
|
44
|
-
discount: { value:
|
|
44
|
+
discount: { value: 500, maxDiscount: 500, minPurchase: 2000 },
|
|
45
45
|
usage: { totalLimit: 500, perUserLimit: 2, currentUsage: 187 },
|
|
46
46
|
validity: { startDate: daysAgo(30), endDate: daysAhead(60), isActive: true },
|
|
47
47
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: true },
|
|
48
48
|
createdBy: "user-admin-letitrip",
|
|
49
49
|
createdAt: daysAgo(30),
|
|
50
50
|
updatedAt: daysAgo(3),
|
|
51
|
-
stats: { totalUses: 187, totalRevenue:
|
|
51
|
+
stats: { totalUses: 187, totalRevenue: 935000, totalDiscount: 93500 },
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
id: "coupon-freeship499",
|
|
@@ -57,14 +57,14 @@ export const couponsSeedData = [
|
|
|
57
57
|
description: "Free shipping on all orders above ₹499. No category restrictions.",
|
|
58
58
|
type: COUPON_FIELDS.TYPE_VALUES.FREE_SHIPPING,
|
|
59
59
|
scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
|
|
60
|
-
discount: { value: 0, maxDiscount: 0, minPurchase:
|
|
60
|
+
discount: { value: 0, maxDiscount: 0, minPurchase: 499 },
|
|
61
61
|
usage: { totalLimit: undefined, perUserLimit: 5, currentUsage: 1024 },
|
|
62
62
|
validity: { startDate: daysAgo(60), endDate: daysAhead(120), isActive: true },
|
|
63
63
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: true },
|
|
64
64
|
createdBy: "user-admin-letitrip",
|
|
65
65
|
createdAt: daysAgo(60),
|
|
66
66
|
updatedAt: daysAgo(1),
|
|
67
|
-
stats: { totalUses: 1024, totalRevenue:
|
|
67
|
+
stats: { totalUses: 1024, totalRevenue: 5120000, totalDiscount: 153600 },
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
id: "coupon-newduelist",
|
|
@@ -73,14 +73,14 @@ export const couponsSeedData = [
|
|
|
73
73
|
description: "20% off your first order. Maximum discount ₹400. First-time buyers only.",
|
|
74
74
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
75
75
|
scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
|
|
76
|
-
discount: { value: 20, maxDiscount:
|
|
76
|
+
discount: { value: 20, maxDiscount: 400, minPurchase: 1000 },
|
|
77
77
|
usage: { totalLimit: undefined, perUserLimit: 1, currentUsage: 89 },
|
|
78
78
|
validity: { startDate: daysAgo(14), endDate: daysAhead(90), isActive: true },
|
|
79
79
|
restrictions: { firstTimeUserOnly: true, combineWithSellerCoupons: false },
|
|
80
80
|
createdBy: "user-admin-letitrip",
|
|
81
81
|
createdAt: daysAgo(14),
|
|
82
82
|
updatedAt: daysAgo(2),
|
|
83
|
-
stats: { totalUses: 89, totalRevenue:
|
|
83
|
+
stats: { totalUses: 89, totalRevenue: 445000, totalDiscount: 35600 },
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
id: "coupon-tournament2026",
|
|
@@ -89,14 +89,14 @@ export const couponsSeedData = [
|
|
|
89
89
|
description: "₹200 off on any purchase ₹1,000+. Valid during 2026 tournament season.",
|
|
90
90
|
type: COUPON_FIELDS.TYPE_VALUES.FIXED,
|
|
91
91
|
scope: COUPON_FIELDS.SCOPE_VALUES.ADMIN,
|
|
92
|
-
discount: { value:
|
|
92
|
+
discount: { value: 200, maxDiscount: 200, minPurchase: 1000 },
|
|
93
93
|
usage: { totalLimit: 1000, perUserLimit: 3, currentUsage: 456 },
|
|
94
94
|
validity: { startDate: daysAgo(45), endDate: daysAhead(45), isActive: true },
|
|
95
95
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: true },
|
|
96
96
|
createdBy: "user-admin-letitrip",
|
|
97
97
|
createdAt: daysAgo(45),
|
|
98
98
|
updatedAt: daysAgo(1),
|
|
99
|
-
stats: { totalUses: 456, totalRevenue:
|
|
99
|
+
stats: { totalUses: 456, totalRevenue: 2280000, totalDiscount: 91200 },
|
|
100
100
|
},
|
|
101
101
|
// ── Seller coupons (Kaiba Corp) ────────────────────────────────────────────
|
|
102
102
|
{
|
|
@@ -107,14 +107,14 @@ export const couponsSeedData = [
|
|
|
107
107
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
108
108
|
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
109
109
|
storeId: "store-kaiba-corp-cards",
|
|
110
|
-
discount: { value: 25, maxDiscount:
|
|
110
|
+
discount: { value: 25, maxDiscount: 500, minPurchase: 1000 },
|
|
111
111
|
usage: { totalLimit: 200, perUserLimit: 2, currentUsage: 67 },
|
|
112
112
|
validity: { startDate: daysAgo(20), endDate: daysAhead(40), isActive: true },
|
|
113
113
|
restrictions: { firstTimeUserOnly: false, combineWithSellerCoupons: false },
|
|
114
114
|
createdBy: "user-seto-kaiba",
|
|
115
115
|
createdAt: daysAgo(20),
|
|
116
116
|
updatedAt: daysAgo(4),
|
|
117
|
-
stats: { totalUses: 67, totalRevenue:
|
|
117
|
+
stats: { totalUses: 67, totalRevenue: 335000, totalDiscount: 33500 },
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
id: "coupon-blueeyesvip",
|
|
@@ -124,7 +124,7 @@ export const couponsSeedData = [
|
|
|
124
124
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
125
125
|
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
126
126
|
storeId: "store-kaiba-corp-cards",
|
|
127
|
-
discount: { value: 15, maxDiscount:
|
|
127
|
+
discount: { value: 15, maxDiscount: 750, minPurchase: 2000 },
|
|
128
128
|
usage: { totalLimit: 50, perUserLimit: 1, currentUsage: 12 },
|
|
129
129
|
validity: { startDate: daysAgo(10), endDate: daysAhead(60), isActive: true },
|
|
130
130
|
restrictions: {
|
|
@@ -135,7 +135,7 @@ export const couponsSeedData = [
|
|
|
135
135
|
createdBy: "user-seto-kaiba",
|
|
136
136
|
createdAt: daysAgo(10),
|
|
137
137
|
updatedAt: daysAgo(3),
|
|
138
|
-
stats: { totalUses: 12, totalRevenue:
|
|
138
|
+
stats: { totalUses: 12, totalRevenue: 60000, totalDiscount: 9000 },
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
id: "coupon-buynow10",
|
|
@@ -145,7 +145,7 @@ export const couponsSeedData = [
|
|
|
145
145
|
type: COUPON_FIELDS.TYPE_VALUES.BUY_X_GET_Y,
|
|
146
146
|
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
147
147
|
storeId: "store-kaiba-corp-cards",
|
|
148
|
-
discount: { value: 10, maxDiscount:
|
|
148
|
+
discount: { value: 10, maxDiscount: 300, minPurchase: 0 },
|
|
149
149
|
bxgy: {
|
|
150
150
|
buyQuantity: 3,
|
|
151
151
|
getQuantity: 0,
|
|
@@ -157,7 +157,7 @@ export const couponsSeedData = [
|
|
|
157
157
|
createdBy: "user-seto-kaiba",
|
|
158
158
|
createdAt: daysAgo(15),
|
|
159
159
|
updatedAt: daysAgo(2),
|
|
160
|
-
stats: { totalUses: 34, totalRevenue:
|
|
160
|
+
stats: { totalUses: 34, totalRevenue: 170000, totalDiscount: 17000 },
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
id: "coupon-sealed20",
|
|
@@ -167,7 +167,7 @@ export const couponsSeedData = [
|
|
|
167
167
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
168
168
|
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
169
169
|
storeId: "store-kaiba-corp-cards",
|
|
170
|
-
discount: { value: 20, maxDiscount:
|
|
170
|
+
discount: { value: 20, maxDiscount: 1000, minPurchase: 1000 },
|
|
171
171
|
usage: { totalLimit: 75, perUserLimit: 2, currentUsage: 28 },
|
|
172
172
|
validity: { startDate: daysAgo(7), endDate: daysAhead(30), isActive: true },
|
|
173
173
|
restrictions: {
|
|
@@ -178,7 +178,7 @@ export const couponsSeedData = [
|
|
|
178
178
|
createdBy: "user-seto-kaiba",
|
|
179
179
|
createdAt: daysAgo(7),
|
|
180
180
|
updatedAt: daysAgo(1),
|
|
181
|
-
stats: { totalUses: 28, totalRevenue:
|
|
181
|
+
stats: { totalUses: 28, totalRevenue: 140000, totalDiscount: 28000 },
|
|
182
182
|
},
|
|
183
183
|
{
|
|
184
184
|
id: "coupon-gradedset",
|
|
@@ -188,7 +188,7 @@ export const couponsSeedData = [
|
|
|
188
188
|
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
189
189
|
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
190
190
|
storeId: "store-kaiba-corp-cards",
|
|
191
|
-
discount: { value: 12, maxDiscount:
|
|
191
|
+
discount: { value: 12, maxDiscount: 600, minPurchase: 1500 },
|
|
192
192
|
usage: { totalLimit: 100, perUserLimit: 2, currentUsage: 19 },
|
|
193
193
|
validity: { startDate: daysAgo(5), endDate: daysAhead(55), isActive: true },
|
|
194
194
|
restrictions: {
|
|
@@ -199,6 +199,6 @@ export const couponsSeedData = [
|
|
|
199
199
|
createdBy: "user-seto-kaiba",
|
|
200
200
|
createdAt: daysAgo(5),
|
|
201
201
|
updatedAt: daysAgo(1),
|
|
202
|
-
stats: { totalUses: 19, totalRevenue:
|
|
202
|
+
stats: { totalUses: 19, totalRevenue: 95000, totalDiscount: 11400 },
|
|
203
203
|
},
|
|
204
204
|
];
|