@mohasinac/appkit 4.33.1 → 4.34.1
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/server/features/checkout/actions.js +9 -1
- package/dist/_internal/server/features/checkout/expand-order-items.js +9 -0
- package/dist/_internal/server/features/media/contextGuards.d.ts +3 -3
- package/dist/_internal/server/features/media/contextGuards.js +19 -5
- package/dist/_internal/server/features/orders/actions.d.ts +9 -0
- package/dist/_internal/server/features/orders/actions.js +47 -4
- package/dist/_internal/server/features/orders/adapters.js +10 -0
- package/dist/_internal/server/features/refunds/actions.d.ts +9 -1
- package/dist/_internal/server/features/refunds/actions.js +36 -3
- package/dist/_internal/server/features/seo/sitemap.js +2 -2
- package/dist/_internal/server/features/site-settings/adapters.js +1 -1
- package/dist/_internal/server/functions/scheduled.d.ts +1 -2
- package/dist/_internal/server/functions/scheduled.js +8 -9
- package/dist/_internal/server/jobs/core/testerSandboxCleanup.d.ts +15 -0
- package/dist/_internal/server/jobs/core/testerSandboxCleanup.js +15 -6
- package/dist/_internal/server/jobs/handlers/index.d.ts +0 -1
- package/dist/_internal/server/jobs/handlers/index.js +0 -1
- package/dist/_internal/shared/features/orders/refund-copy.d.ts +12 -0
- package/dist/_internal/shared/features/orders/refund-copy.js +12 -0
- package/dist/_internal/shared/features/orders/return-reasons.d.ts +59 -0
- package/dist/_internal/shared/features/orders/return-reasons.js +96 -0
- package/dist/_internal/shared/features/orders/schema.d.ts +30 -0
- package/dist/_internal/shared/features/orders/schema.js +20 -0
- package/dist/_internal/shared/features/products/schema.d.ts +12 -0
- package/dist/_internal/shared/features/products/schema.js +4 -1
- package/dist/_internal/shared/media/limits.d.ts +14 -0
- package/dist/_internal/shared/media/limits.js +29 -0
- package/dist/client.d.ts +9 -1
- package/dist/client.js +19 -1
- package/dist/features/admin/components/AdminProductEditorView.js +6 -1
- package/dist/features/admin/components/AdminSiteSettingsView.js +2 -6
- package/dist/features/admin/components/index.d.ts +0 -2
- package/dist/features/admin/components/index.js +0 -1
- package/dist/features/admin/schemas/admin-editor-forms.js +1 -1
- package/dist/features/admin/schemas/firestore.d.ts +0 -2
- package/dist/features/auctions/components/AuctionDetailPageView.js +4 -3
- package/dist/features/auth/schemas/firestore.d.ts +1 -0
- package/dist/features/contact/components/ContactForm.js +46 -31
- package/dist/features/media/upload/MediaUploadList.d.ts +16 -1
- package/dist/features/media/upload/MediaUploadList.js +58 -8
- package/dist/features/orders/components/RefundRequestView.d.ts +26 -10
- package/dist/features/orders/components/RefundRequestView.js +108 -24
- package/dist/features/orders/schemas/firestore.d.ts +42 -0
- package/dist/features/orders/types/index.d.ts +24 -0
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +5 -3
- package/dist/features/products/components/ProductDetailPageView.js +14 -2
- package/dist/features/products/components/ProductFeatureBadges.d.ts +9 -1
- package/dist/features/products/components/ProductFeatureBadges.js +17 -1
- package/dist/features/products/components/ProductForm.js +46 -10
- package/dist/features/products/components/ProductGrid.js +10 -1
- package/dist/features/products/constants/final-sale.d.ts +40 -0
- package/dist/features/products/constants/final-sale.js +40 -0
- package/dist/features/products/index.d.ts +1 -0
- package/dist/features/products/index.js +1 -0
- package/dist/features/products/schemas/firestore.d.ts +19 -2
- package/dist/features/products/schemas/firestore.js +4 -0
- package/dist/features/products/types/index.d.ts +2 -0
- package/dist/features/seller/components/SellerProductShell.d.ts +7 -0
- package/dist/features/seller/components/SellerProductShell.js +82 -11
- package/dist/features/seller/index.d.ts +1 -0
- package/dist/features/seller/index.js +1 -0
- package/dist/features/seller/schemas/product-form.d.ts +304 -0
- package/dist/features/seller/schemas/product-form.js +132 -0
- package/dist/features/seller/utils/product-draft-mapping.d.ts +117 -0
- package/dist/features/seller/utils/product-draft-mapping.js +147 -0
- package/dist/features/shell/SectionForm.js +62 -7
- package/dist/features/shell/form-sections.js +4 -0
- package/dist/features/tester/repository/tester-checklist-item.repository.d.ts +16 -1
- package/dist/features/tester/repository/tester-checklist-item.repository.js +32 -6
- package/dist/features/tester/seed-data/events-tester-seed-data.js +77 -5
- package/dist/features/tester/seed-data/offers-tester-seed-data.js +23 -9
- package/dist/features/tester/seed-data/products-tester-seed-data.js +65 -49
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +182 -0
- package/dist/features/tester/seed-data/tester-window.d.ts +25 -0
- package/dist/features/tester/seed-data/tester-window.js +66 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.js +12 -3
- package/dist/next/routing/route-map.d.ts +2 -0
- package/dist/next/routing/route-map.js +1 -0
- package/dist/schemas/registry.d.ts +271 -0
- package/dist/schemas/registry.js +9 -0
- package/dist/seed/_helpers/final-sale-fixtures.d.ts +35 -0
- package/dist/seed/_helpers/final-sale-fixtures.js +61 -0
- package/dist/seed/products-art-seed-data.js +9 -1
- package/dist/seed/products-auctions-seed-data.js +2 -1
- package/dist/seed/products-classifieds-seed-data.js +2 -1
- package/dist/seed/products-digital-codes-seed-data.js +2 -1
- package/dist/seed/products-live-items-seed-data.js +2 -1
- package/dist/seed/products-preorders-seed-data.d.ts +2 -138
- package/dist/seed/products-preorders-seed-data.js +2 -1
- package/dist/seed/products-prize-draws-seed-data.js +2 -1
- package/dist/seed/products-standard-seed-data.js +2 -1
- package/dist/seed/products-stickers-seed-data.js +9 -1
- package/dist/seed/users-seed-data.js +107 -4
- package/dist/server.d.ts +6 -2
- package/dist/server.js +15 -2
- package/dist/styles.css +1 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/tokens/motion.d.ts +12 -0
- package/dist/tokens/motion.js +12 -0
- package/dist/ui/components/CollapsibleSection.d.ts +18 -1
- package/dist/ui/components/CollapsibleSection.js +20 -3
- package/dist/ui/components/Motion.js +17 -1
- package/package.json +1 -1
|
@@ -4119,6 +4119,277 @@ export declare const SCHEMAS: {
|
|
|
4119
4119
|
readonly "GET /api/search/suggestions": import("./types").ApiRouteSchema<import("zod").ZodTypeAny, import("zod").ZodTypeAny, import("zod").ZodTypeAny, import("zod").ZodTypeAny>;
|
|
4120
4120
|
};
|
|
4121
4121
|
readonly forms: {
|
|
4122
|
+
readonly product: import("zod").ZodObject<{
|
|
4123
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4124
|
+
slug: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4125
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4126
|
+
category: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4127
|
+
brand: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4128
|
+
condition: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4129
|
+
tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4130
|
+
mainImage: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4131
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4132
|
+
video: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
4133
|
+
url: import("zod").ZodString;
|
|
4134
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4135
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4136
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4137
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4138
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4139
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
4140
|
+
url: import("zod").ZodString;
|
|
4141
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4142
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4143
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4144
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4145
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4146
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
4147
|
+
url: import("zod").ZodString;
|
|
4148
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4149
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4150
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4151
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4152
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4153
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4154
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4155
|
+
externalVideoUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4156
|
+
price: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4157
|
+
compareAtPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4158
|
+
stockQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4159
|
+
featured: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4160
|
+
isPromoted: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4161
|
+
isNew: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4162
|
+
isOnSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4163
|
+
allowOffers: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4164
|
+
minOfferPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4165
|
+
shippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["buyer", "seller"]>>;
|
|
4166
|
+
pickupAddressId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4167
|
+
insurance: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4168
|
+
insuranceCost: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4169
|
+
gstRate: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<0>, import("zod").ZodLiteral<5>, import("zod").ZodLiteral<12>, import("zod").ZodLiteral<18>, import("zod").ZodLiteral<28>]>>;
|
|
4170
|
+
hsnCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4171
|
+
finalSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4172
|
+
returnPolicy: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4173
|
+
status: import("zod").ZodOptional<import("zod").ZodEnum<["draft", "published"]>>;
|
|
4174
|
+
seoTitle: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4175
|
+
seoDescription: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4176
|
+
barcodeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4177
|
+
startingBid: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4178
|
+
reservePrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4179
|
+
buyNowPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4180
|
+
minBidIncrement: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4181
|
+
auctionEndDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4182
|
+
auctionShippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["winner", "seller"]>>;
|
|
4183
|
+
autoExtendable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4184
|
+
auctionExtensionMinutes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4185
|
+
preOrderDeliveryDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4186
|
+
preOrderDepositPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4187
|
+
preOrderMaxQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4188
|
+
preOrderProductionStatus: import("zod").ZodOptional<import("zod").ZodEnum<["upcoming", "in_production", "ready_to_ship"]>>;
|
|
4189
|
+
preOrderCancellable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4190
|
+
classifiedCity: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4191
|
+
classifiedLocality: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4192
|
+
classifiedPincode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4193
|
+
classifiedContactMethod: import("zod").ZodOptional<import("zod").ZodEnum<["chat", "phone", "both"]>>;
|
|
4194
|
+
classifiedAcceptsShipping: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4195
|
+
classifiedNegotiable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4196
|
+
digitalCodeDelivery: import("zod").ZodOptional<import("zod").ZodEnum<["auto-claim", "manual-email"]>>;
|
|
4197
|
+
digitalCodePoolSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4198
|
+
digitalCodeRedemptionInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4199
|
+
digitalCodeExpiresAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4200
|
+
liveSpecies: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4201
|
+
liveAgeMonths: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4202
|
+
liveSex: import("zod").ZodOptional<import("zod").ZodEnum<["male", "female", "unknown", "n/a"]>>;
|
|
4203
|
+
liveCareInfo: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4204
|
+
liveTransportMethod: import("zod").ZodOptional<import("zod").ZodEnum<["courier", "in-person", "specialist"]>>;
|
|
4205
|
+
liveHandlingFee: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4206
|
+
liveJurisdictions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4207
|
+
liveCites: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4208
|
+
printSize: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4209
|
+
printMaterial: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4210
|
+
printFinish: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4211
|
+
printEditionSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4212
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
4213
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4214
|
+
slug: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4215
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4216
|
+
category: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4217
|
+
brand: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4218
|
+
condition: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4219
|
+
tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4220
|
+
mainImage: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4221
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4222
|
+
video: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
4223
|
+
url: import("zod").ZodString;
|
|
4224
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4225
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4226
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4227
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4228
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4229
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
4230
|
+
url: import("zod").ZodString;
|
|
4231
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4232
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4233
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4234
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4235
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4236
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
4237
|
+
url: import("zod").ZodString;
|
|
4238
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4239
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4240
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4241
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4242
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4243
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4244
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4245
|
+
externalVideoUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4246
|
+
price: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4247
|
+
compareAtPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4248
|
+
stockQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4249
|
+
featured: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4250
|
+
isPromoted: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4251
|
+
isNew: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4252
|
+
isOnSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4253
|
+
allowOffers: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4254
|
+
minOfferPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4255
|
+
shippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["buyer", "seller"]>>;
|
|
4256
|
+
pickupAddressId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4257
|
+
insurance: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4258
|
+
insuranceCost: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4259
|
+
gstRate: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<0>, import("zod").ZodLiteral<5>, import("zod").ZodLiteral<12>, import("zod").ZodLiteral<18>, import("zod").ZodLiteral<28>]>>;
|
|
4260
|
+
hsnCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4261
|
+
finalSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4262
|
+
returnPolicy: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4263
|
+
status: import("zod").ZodOptional<import("zod").ZodEnum<["draft", "published"]>>;
|
|
4264
|
+
seoTitle: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4265
|
+
seoDescription: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4266
|
+
barcodeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4267
|
+
startingBid: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4268
|
+
reservePrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4269
|
+
buyNowPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4270
|
+
minBidIncrement: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4271
|
+
auctionEndDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4272
|
+
auctionShippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["winner", "seller"]>>;
|
|
4273
|
+
autoExtendable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4274
|
+
auctionExtensionMinutes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4275
|
+
preOrderDeliveryDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4276
|
+
preOrderDepositPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4277
|
+
preOrderMaxQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4278
|
+
preOrderProductionStatus: import("zod").ZodOptional<import("zod").ZodEnum<["upcoming", "in_production", "ready_to_ship"]>>;
|
|
4279
|
+
preOrderCancellable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4280
|
+
classifiedCity: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4281
|
+
classifiedLocality: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4282
|
+
classifiedPincode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4283
|
+
classifiedContactMethod: import("zod").ZodOptional<import("zod").ZodEnum<["chat", "phone", "both"]>>;
|
|
4284
|
+
classifiedAcceptsShipping: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4285
|
+
classifiedNegotiable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4286
|
+
digitalCodeDelivery: import("zod").ZodOptional<import("zod").ZodEnum<["auto-claim", "manual-email"]>>;
|
|
4287
|
+
digitalCodePoolSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4288
|
+
digitalCodeRedemptionInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4289
|
+
digitalCodeExpiresAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4290
|
+
liveSpecies: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4291
|
+
liveAgeMonths: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4292
|
+
liveSex: import("zod").ZodOptional<import("zod").ZodEnum<["male", "female", "unknown", "n/a"]>>;
|
|
4293
|
+
liveCareInfo: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4294
|
+
liveTransportMethod: import("zod").ZodOptional<import("zod").ZodEnum<["courier", "in-person", "specialist"]>>;
|
|
4295
|
+
liveHandlingFee: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4296
|
+
liveJurisdictions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4297
|
+
liveCites: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4298
|
+
printSize: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4299
|
+
printMaterial: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4300
|
+
printFinish: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4301
|
+
printEditionSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4302
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
4303
|
+
title: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4304
|
+
slug: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4305
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4306
|
+
category: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4307
|
+
brand: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4308
|
+
condition: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4309
|
+
tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4310
|
+
mainImage: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4311
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4312
|
+
video: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
4313
|
+
url: import("zod").ZodString;
|
|
4314
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4315
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4316
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4317
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4318
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4319
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
4320
|
+
url: import("zod").ZodString;
|
|
4321
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4322
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4323
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4324
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4325
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4326
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
4327
|
+
url: import("zod").ZodString;
|
|
4328
|
+
type: import("zod").ZodOptional<import("zod").ZodLiteral<"video">>;
|
|
4329
|
+
thumbnailUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4330
|
+
source: import("zod").ZodOptional<import("zod").ZodEnum<["upload", "youtube", "external"]>>;
|
|
4331
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4332
|
+
duration: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4333
|
+
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
4334
|
+
youtubeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4335
|
+
externalVideoUrl: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4336
|
+
price: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4337
|
+
compareAtPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4338
|
+
stockQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4339
|
+
featured: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4340
|
+
isPromoted: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4341
|
+
isNew: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4342
|
+
isOnSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4343
|
+
allowOffers: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4344
|
+
minOfferPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4345
|
+
shippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["buyer", "seller"]>>;
|
|
4346
|
+
pickupAddressId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4347
|
+
insurance: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4348
|
+
insuranceCost: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4349
|
+
gstRate: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<0>, import("zod").ZodLiteral<5>, import("zod").ZodLiteral<12>, import("zod").ZodLiteral<18>, import("zod").ZodLiteral<28>]>>;
|
|
4350
|
+
hsnCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4351
|
+
finalSale: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4352
|
+
returnPolicy: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4353
|
+
status: import("zod").ZodOptional<import("zod").ZodEnum<["draft", "published"]>>;
|
|
4354
|
+
seoTitle: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4355
|
+
seoDescription: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4356
|
+
barcodeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4357
|
+
startingBid: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4358
|
+
reservePrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4359
|
+
buyNowPrice: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4360
|
+
minBidIncrement: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4361
|
+
auctionEndDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4362
|
+
auctionShippingPaidBy: import("zod").ZodOptional<import("zod").ZodEnum<["winner", "seller"]>>;
|
|
4363
|
+
autoExtendable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4364
|
+
auctionExtensionMinutes: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4365
|
+
preOrderDeliveryDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4366
|
+
preOrderDepositPercent: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4367
|
+
preOrderMaxQuantity: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4368
|
+
preOrderProductionStatus: import("zod").ZodOptional<import("zod").ZodEnum<["upcoming", "in_production", "ready_to_ship"]>>;
|
|
4369
|
+
preOrderCancellable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4370
|
+
classifiedCity: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4371
|
+
classifiedLocality: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4372
|
+
classifiedPincode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4373
|
+
classifiedContactMethod: import("zod").ZodOptional<import("zod").ZodEnum<["chat", "phone", "both"]>>;
|
|
4374
|
+
classifiedAcceptsShipping: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4375
|
+
classifiedNegotiable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4376
|
+
digitalCodeDelivery: import("zod").ZodOptional<import("zod").ZodEnum<["auto-claim", "manual-email"]>>;
|
|
4377
|
+
digitalCodePoolSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4378
|
+
digitalCodeRedemptionInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4379
|
+
digitalCodeExpiresAt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4380
|
+
liveSpecies: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4381
|
+
liveAgeMonths: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4382
|
+
liveSex: import("zod").ZodOptional<import("zod").ZodEnum<["male", "female", "unknown", "n/a"]>>;
|
|
4383
|
+
liveCareInfo: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4384
|
+
liveTransportMethod: import("zod").ZodOptional<import("zod").ZodEnum<["courier", "in-person", "specialist"]>>;
|
|
4385
|
+
liveHandlingFee: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4386
|
+
liveJurisdictions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
4387
|
+
liveCites: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
4388
|
+
printSize: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4389
|
+
printMaterial: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4390
|
+
printFinish: import("zod").ZodOptional<import("zod").ZodString>;
|
|
4391
|
+
printEditionSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
4392
|
+
}, import("zod").ZodTypeAny, "passthrough">>;
|
|
4122
4393
|
readonly blog: import("zod").ZodObject<{
|
|
4123
4394
|
title: import("zod").ZodString;
|
|
4124
4395
|
slug: import("zod").ZodString;
|
package/dist/schemas/registry.js
CHANGED
|
@@ -115,6 +115,7 @@ import { payoutMethodFormSchema } from "../features/store-extensions/schemas/pay
|
|
|
115
115
|
import { shippingConfigFormSchema } from "../features/store-extensions/schemas/shipping-config-form";
|
|
116
116
|
import { groupedListingFormSchema } from "../features/grouped/schemas/grouped-listing-form";
|
|
117
117
|
import { sellerCouponFormSchema } from "../features/seller/schemas/coupon-form";
|
|
118
|
+
import { productDraftSchema } from "../features/seller/schemas/product-form";
|
|
118
119
|
import { customRoleFormSchema } from "../features/store-extensions/schemas/custom-role-form";
|
|
119
120
|
import { moderationReviewFormSchema } from "../features/store-extensions/schemas/moderation-review-form";
|
|
120
121
|
import { reportReviewFormSchema } from "../features/store-extensions/schemas/report-review-form";
|
|
@@ -134,6 +135,14 @@ import { storeGoogleConfigUpdateSchema } from "../features/store-extensions/sche
|
|
|
134
135
|
import { adminNotificationCreateSchema } from "../features/store-extensions/schemas/admin-notification-form";
|
|
135
136
|
import { homepageSectionCreateSchema } from "../features/homepage/schemas/index";
|
|
136
137
|
const forms = {
|
|
138
|
+
/*
|
|
139
|
+
* `product` was ABSENT from this map until 2026-09-04, and that absence is
|
|
140
|
+
* why the flat-vs-nested field loss in the seller listing form went
|
|
141
|
+
* unnoticed for as long as it did: `roundtrip-diff` reads this map, and an
|
|
142
|
+
* entity it cannot see is an entity it cannot protect — exactly as the
|
|
143
|
+
* comment above warns.
|
|
144
|
+
*/
|
|
145
|
+
product: productDraftSchema,
|
|
137
146
|
blog: blogDraftSchema,
|
|
138
147
|
event: eventDraftSchema,
|
|
139
148
|
productFeature: productFeatureFormSchema,
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ProductDocument } from "../../features/products/schemas";
|
|
2
|
+
/**
|
|
3
|
+
* Seeded listings that explicitly ACCEPT change-of-mind returns.
|
|
4
|
+
*
|
|
5
|
+
* `finalSale` is absent on every other fixture, and absent means final sale —
|
|
6
|
+
* so the default path is exercised by the bulk of the catalogue exactly as it
|
|
7
|
+
* will be in production, where the field did not exist until now and no
|
|
8
|
+
* pre-existing document carries it.
|
|
9
|
+
*
|
|
10
|
+
* One per listing type, deliberately. The "Final Sale" badge and the refund
|
|
11
|
+
* gate both branch on this, and a badge that renders identically on every row
|
|
12
|
+
* proves nothing: without at least one opted-out fixture per type there is no
|
|
13
|
+
* way to tell "the predicate works" from "the predicate returns a constant".
|
|
14
|
+
* That is the same reason the availability work seeded one unavailable row per
|
|
15
|
+
* type rather than trusting the shared checks.
|
|
16
|
+
*
|
|
17
|
+
* Ids are listed rather than a `finalSale: false` written inline at each
|
|
18
|
+
* record because the records live in nine files with five different export
|
|
19
|
+
* wrappers, and a per-record edit is invisible to review — this set can be
|
|
20
|
+
* read in one glance and cross-checked against the badge.
|
|
21
|
+
*/
|
|
22
|
+
export declare const RETURNABLE_FIXTURE_IDS: ReadonlySet<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Set `finalSale: false` on the opted-out fixtures and leave it ABSENT on
|
|
25
|
+
* every other record.
|
|
26
|
+
*
|
|
27
|
+
* Absent rather than `finalSale: true`, on purpose: writing the default
|
|
28
|
+
* explicitly would mean the seed never produces the shape that production data
|
|
29
|
+
* actually has, so `isFinalSale`'s handling of `undefined` — the only part of
|
|
30
|
+
* it that can be got wrong — would go untested by the entire fixture set.
|
|
31
|
+
*
|
|
32
|
+
* Pure and deterministic, so it does not reintroduce the `appkit-seed`
|
|
33
|
+
* idempotency problem of Root Cause #25.
|
|
34
|
+
*/
|
|
35
|
+
export declare function withFinalSale(p: Partial<ProductDocument>): Partial<ProductDocument>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeded listings that explicitly ACCEPT change-of-mind returns.
|
|
3
|
+
*
|
|
4
|
+
* `finalSale` is absent on every other fixture, and absent means final sale —
|
|
5
|
+
* so the default path is exercised by the bulk of the catalogue exactly as it
|
|
6
|
+
* will be in production, where the field did not exist until now and no
|
|
7
|
+
* pre-existing document carries it.
|
|
8
|
+
*
|
|
9
|
+
* One per listing type, deliberately. The "Final Sale" badge and the refund
|
|
10
|
+
* gate both branch on this, and a badge that renders identically on every row
|
|
11
|
+
* proves nothing: without at least one opted-out fixture per type there is no
|
|
12
|
+
* way to tell "the predicate works" from "the predicate returns a constant".
|
|
13
|
+
* That is the same reason the availability work seeded one unavailable row per
|
|
14
|
+
* type rather than trusting the shared checks.
|
|
15
|
+
*
|
|
16
|
+
* Ids are listed rather than a `finalSale: false` written inline at each
|
|
17
|
+
* record because the records live in nine files with five different export
|
|
18
|
+
* wrappers, and a per-record edit is invisible to review — this set can be
|
|
19
|
+
* read in one glance and cross-checked against the badge.
|
|
20
|
+
*/
|
|
21
|
+
export const RETURNABLE_FIXTURE_IDS = new Set([
|
|
22
|
+
// standard
|
|
23
|
+
"product-beyblade-burst-valkyrie",
|
|
24
|
+
// auction
|
|
25
|
+
"auction-beyblade-x-shark-edge",
|
|
26
|
+
// pre-order
|
|
27
|
+
"preorder-beyblade-x-bx-09-glide-ring",
|
|
28
|
+
// prize-draw
|
|
29
|
+
"prizedraw-beyblade-scheduled-demo",
|
|
30
|
+
// classified
|
|
31
|
+
"classified-beyblade-x-starter-pune",
|
|
32
|
+
// digital-code
|
|
33
|
+
"digitalcode-beyblade-x-app-legendary-pack",
|
|
34
|
+
// live
|
|
35
|
+
"live-bonsai-juniper-10yr",
|
|
36
|
+
// art
|
|
37
|
+
"art-valkyrie-holographic-print",
|
|
38
|
+
// stickers
|
|
39
|
+
"stickers-beyblade-x-holographic-pack",
|
|
40
|
+
]);
|
|
41
|
+
/**
|
|
42
|
+
* Set `finalSale: false` on the opted-out fixtures and leave it ABSENT on
|
|
43
|
+
* every other record.
|
|
44
|
+
*
|
|
45
|
+
* Absent rather than `finalSale: true`, on purpose: writing the default
|
|
46
|
+
* explicitly would mean the seed never produces the shape that production data
|
|
47
|
+
* actually has, so `isFinalSale`'s handling of `undefined` — the only part of
|
|
48
|
+
* it that can be got wrong — would go untested by the entire fixture set.
|
|
49
|
+
*
|
|
50
|
+
* Pure and deterministic, so it does not reintroduce the `appkit-seed`
|
|
51
|
+
* idempotency problem of Root Cause #25.
|
|
52
|
+
*/
|
|
53
|
+
export function withFinalSale(p) {
|
|
54
|
+
// Spread FIRST so a record that sets `finalSale` itself keeps its own value;
|
|
55
|
+
// this helper only fills in the opt-outs it owns.
|
|
56
|
+
const next = { ...p };
|
|
57
|
+
if (typeof next.finalSale === "undefined" && next.id && RETURNABLE_FIXTURE_IDS.has(next.id)) {
|
|
58
|
+
next.finalSale = false;
|
|
59
|
+
}
|
|
60
|
+
return next;
|
|
61
|
+
}
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
21
21
|
import { buildSearchTxt } from "../utils/search-txt";
|
|
22
22
|
import { seedPhoto } from "./_helpers/media";
|
|
23
|
-
|
|
23
|
+
import { withFinalSale } from "./_helpers/final-sale-fixtures";
|
|
24
|
+
const _rawProductsArtSeedData = [
|
|
24
25
|
{
|
|
25
26
|
id: "art-dranzer-phoenix-poster",
|
|
26
27
|
slug: "art-dranzer-phoenix-poster",
|
|
@@ -277,3 +278,10 @@ export const productsArtSeedData = [
|
|
|
277
278
|
]),
|
|
278
279
|
},
|
|
279
280
|
];
|
|
281
|
+
/*
|
|
282
|
+
* This file had no export wrapper at all — every other product seed file maps
|
|
283
|
+
* its raw array through one, and these two were the exception. Adding it here
|
|
284
|
+
* so the final-sale opt-outs are applied the same way everywhere rather than
|
|
285
|
+
* being hand-written into two records that reviewers would have to find.
|
|
286
|
+
*/
|
|
287
|
+
export const productsArtSeedData = _rawProductsArtSeedData.map(withFinalSale);
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
26
26
|
import { buildSearchTxt } from "../utils/search-txt";
|
|
27
27
|
import { seedPhoto } from "./_helpers/media";
|
|
28
|
+
import { withFinalSale } from "./_helpers/final-sale-fixtures";
|
|
28
29
|
function withTokens(p) {
|
|
29
30
|
return {
|
|
30
31
|
tags: [],
|
|
@@ -442,4 +443,4 @@ export const productsAuctionsSeedData = [
|
|
|
442
443
|
createdAt: new Date("2026-08-10"),
|
|
443
444
|
updatedAt: new Date("2026-08-24"),
|
|
444
445
|
},
|
|
445
|
-
].map(withTokens);
|
|
446
|
+
].map(withTokens).map(withFinalSale);
|
|
@@ -28,6 +28,7 @@ import { withProductSearchTxt } from "./_helpers/product-search-txt";
|
|
|
28
28
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
29
29
|
import { buildSearchTxt } from "../utils/search-txt";
|
|
30
30
|
import { seedPhoto } from "./_helpers/media";
|
|
31
|
+
import { withFinalSale } from "./_helpers/final-sale-fixtures";
|
|
31
32
|
const _rawproductsClassifiedsSeedData = [
|
|
32
33
|
{
|
|
33
34
|
id: "classified-beyblade-stadium-set",
|
|
@@ -421,4 +422,4 @@ const _rawproductsClassifiedsSeedData = [
|
|
|
421
422
|
* the bottom of the array cannot ship without it — which is exactly how the
|
|
422
423
|
* sold/depleted fixture in this file ended up unsearchable.
|
|
423
424
|
*/
|
|
424
|
-
export const productsClassifiedsSeedData = _rawproductsClassifiedsSeedData.map(withProductSearchTxt);
|
|
425
|
+
export const productsClassifiedsSeedData = _rawproductsClassifiedsSeedData.map(withProductSearchTxt).map(withFinalSale);
|
|
@@ -21,6 +21,7 @@ import { withProductSearchTxt } from "./_helpers/product-search-txt";
|
|
|
21
21
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
22
22
|
import { buildSearchTxt } from "../utils/search-txt";
|
|
23
23
|
import { seedPhoto } from "./_helpers/media";
|
|
24
|
+
import { withFinalSale } from "./_helpers/final-sale-fixtures";
|
|
24
25
|
const _rawproductsDigitalCodesSeedData = [
|
|
25
26
|
{
|
|
26
27
|
id: "digitalcode-beyblade-x-app-starter-pack",
|
|
@@ -399,4 +400,4 @@ const _rawproductsDigitalCodesSeedData = [
|
|
|
399
400
|
* the bottom of the array cannot ship without it — which is exactly how the
|
|
400
401
|
* sold/depleted fixture in this file ended up unsearchable.
|
|
401
402
|
*/
|
|
402
|
-
export const productsDigitalCodesSeedData = _rawproductsDigitalCodesSeedData.map(withProductSearchTxt);
|
|
403
|
+
export const productsDigitalCodesSeedData = _rawproductsDigitalCodesSeedData.map(withProductSearchTxt).map(withFinalSale);
|
|
@@ -34,6 +34,7 @@ import { withProductSearchTxt } from "./_helpers/product-search-txt";
|
|
|
34
34
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
35
35
|
import { buildSearchTxt } from "../utils/search-txt";
|
|
36
36
|
import { seedPhoto } from "./_helpers/media";
|
|
37
|
+
import { withFinalSale } from "./_helpers/final-sale-fixtures";
|
|
37
38
|
const _rawproductsLiveItemsSeedData = [
|
|
38
39
|
{
|
|
39
40
|
id: "live-golden-retriever-puppy",
|
|
@@ -230,4 +231,4 @@ const _rawproductsLiveItemsSeedData = [
|
|
|
230
231
|
* the bottom of the array cannot ship without it — which is exactly how the
|
|
231
232
|
* sold/depleted fixture in this file ended up unsearchable.
|
|
232
233
|
*/
|
|
233
|
-
export const productsLiveItemsSeedData = _rawproductsLiveItemsSeedData.map(withProductSearchTxt);
|
|
234
|
+
export const productsLiveItemsSeedData = _rawproductsLiveItemsSeedData.map(withProductSearchTxt).map(withFinalSale);
|
|
@@ -1,138 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
searchTxt: string[];
|
|
4
|
-
title?: string | undefined;
|
|
5
|
-
description?: string | undefined;
|
|
6
|
-
slug?: string | undefined;
|
|
7
|
-
isTestData?: boolean | undefined;
|
|
8
|
-
testDataExpiresAt?: Date | undefined;
|
|
9
|
-
seoTitle?: string | undefined;
|
|
10
|
-
seoDescription?: string | undefined;
|
|
11
|
-
seoKeywords?: string[] | undefined;
|
|
12
|
-
categorySlugs?: string[] | undefined;
|
|
13
|
-
categoryNames?: string[] | undefined;
|
|
14
|
-
category?: string | undefined;
|
|
15
|
-
categoryName?: string | undefined;
|
|
16
|
-
subcategory?: string | undefined;
|
|
17
|
-
brand?: string | undefined;
|
|
18
|
-
brandSlug?: string | undefined;
|
|
19
|
-
price?: number | undefined;
|
|
20
|
-
currency?: string | undefined;
|
|
21
|
-
stockQuantity: number;
|
|
22
|
-
availableQuantity?: number | undefined;
|
|
23
|
-
mainImage: string;
|
|
24
|
-
images?: string[] | undefined;
|
|
25
|
-
video?: import("..").ProductVideoField | undefined;
|
|
26
|
-
status?: import("..").ProductStatus | undefined;
|
|
27
|
-
storeId?: string | undefined;
|
|
28
|
-
storeName?: string | undefined;
|
|
29
|
-
storeSlug?: string | undefined;
|
|
30
|
-
storeRating?: number | undefined;
|
|
31
|
-
storeReviewCount?: number | undefined;
|
|
32
|
-
featured?: boolean | undefined;
|
|
33
|
-
tags: string[];
|
|
34
|
-
specifications?: import("..").ProductSpecification[] | undefined;
|
|
35
|
-
features?: string[] | undefined;
|
|
36
|
-
shippingInfo?: string | undefined;
|
|
37
|
-
returnPolicy?: string | undefined;
|
|
38
|
-
condition?: "new" | "like_new" | "good" | "fair" | "poor" | "used" | "refurbished" | "broken" | "graded" | undefined;
|
|
39
|
-
insurance?: boolean | undefined;
|
|
40
|
-
insuranceCost?: number | undefined;
|
|
41
|
-
shippingPaidBy?: "seller" | "buyer" | undefined;
|
|
42
|
-
auctionEndDate?: Date | undefined;
|
|
43
|
-
startingBid?: number | undefined;
|
|
44
|
-
currentBid?: number | undefined;
|
|
45
|
-
bidCount?: number | undefined;
|
|
46
|
-
leadingBidderId?: string | undefined;
|
|
47
|
-
reservePrice?: number | undefined;
|
|
48
|
-
buyNowPrice?: number | undefined;
|
|
49
|
-
minBidIncrement?: number | undefined;
|
|
50
|
-
autoExtendable?: boolean | undefined;
|
|
51
|
-
auctionExtensionMinutes?: number | undefined;
|
|
52
|
-
auctionOriginalEndDate?: Date | undefined;
|
|
53
|
-
auctionShippingPaidBy?: "seller" | "winner" | undefined;
|
|
54
|
-
bidsHaveStarted?: boolean | undefined;
|
|
55
|
-
grading?: import("../features/products").ProductGrading | undefined;
|
|
56
|
-
card?: import("../features/products").ProductCardMetadata | undefined;
|
|
57
|
-
classified?: import("../features/products").ProductClassifiedMeta | undefined;
|
|
58
|
-
digitalCode?: import("../features/products").ProductDigitalCodeMeta | undefined;
|
|
59
|
-
liveItem?: import("../features/products").ProductLiveItemMeta | undefined;
|
|
60
|
-
catalogProductId?: string | undefined;
|
|
61
|
-
preOrderDeliveryDate?: Date | undefined;
|
|
62
|
-
preOrderDepositPercent?: number | undefined;
|
|
63
|
-
preOrderDepositAmount?: number | undefined;
|
|
64
|
-
preOrderMaxQuantity?: number | undefined;
|
|
65
|
-
preOrderCurrentCount?: number | undefined;
|
|
66
|
-
preOrderProductionStatus?: "upcoming" | "in_production" | "ready_to_ship" | undefined;
|
|
67
|
-
preOrderCancellable?: boolean | undefined;
|
|
68
|
-
preOrderClosed?: boolean | undefined;
|
|
69
|
-
isPromoted?: boolean | undefined;
|
|
70
|
-
isOnSale?: boolean | undefined;
|
|
71
|
-
isSold?: boolean | undefined;
|
|
72
|
-
allowShipBeforeEmiComplete?: boolean | undefined;
|
|
73
|
-
gstRate?: 0 | 5 | 12 | 18 | 28 | undefined;
|
|
74
|
-
hsnCode?: string | undefined;
|
|
75
|
-
printMeta?: import("../features/products").ProductPrintMeta | undefined;
|
|
76
|
-
promotionEndDate?: Date | undefined;
|
|
77
|
-
pickupAddressId?: string | undefined;
|
|
78
|
-
viewCount?: number | undefined;
|
|
79
|
-
avgRating?: number | undefined;
|
|
80
|
-
reviewCount?: number | undefined;
|
|
81
|
-
bulkDiscounts?: {
|
|
82
|
-
quantity: number;
|
|
83
|
-
discountPercent: number;
|
|
84
|
-
}[] | undefined;
|
|
85
|
-
ingredients?: string[] | undefined;
|
|
86
|
-
howToUse?: string[] | undefined;
|
|
87
|
-
allowOffers?: boolean | undefined;
|
|
88
|
-
minOfferPercent?: number | undefined;
|
|
89
|
-
customFields?: import("../features/products").CustomField[] | undefined;
|
|
90
|
-
customSections?: import("../features/products").CustomSection[] | undefined;
|
|
91
|
-
sublistingCategoryId?: string | undefined;
|
|
92
|
-
groupId?: string | undefined;
|
|
93
|
-
isGroupParent?: boolean | undefined;
|
|
94
|
-
groupParentSlug?: string | undefined;
|
|
95
|
-
groupChildSlugs?: string[] | undefined;
|
|
96
|
-
groupTitle?: string | undefined;
|
|
97
|
-
groupIcon?: string | undefined;
|
|
98
|
-
sublistingIcon?: string | undefined;
|
|
99
|
-
maxPerUser?: number | undefined;
|
|
100
|
-
partOfBundleIds?: string[] | undefined;
|
|
101
|
-
partOfBundleTitles?: string[] | undefined;
|
|
102
|
-
isPartOfBundle?: boolean | undefined;
|
|
103
|
-
sourceShipmentId?: string | undefined;
|
|
104
|
-
sourceShipmentLotId?: string | undefined;
|
|
105
|
-
sourceShipmentItemId?: string | undefined;
|
|
106
|
-
sourceCatalogueItemId?: string | undefined;
|
|
107
|
-
sourceCatalogueOwnerId?: string | undefined;
|
|
108
|
-
prizeDrawItems?: import("../features/products").PrizeDrawItem[] | undefined;
|
|
109
|
-
pricePerEntry?: number | undefined;
|
|
110
|
-
prizeMaxEntries?: number | undefined;
|
|
111
|
-
prizeCurrentEntries?: number | undefined;
|
|
112
|
-
prizeRevealWindowStart?: Date | undefined;
|
|
113
|
-
prizeRevealWindowEnd?: Date | undefined;
|
|
114
|
-
prizeRevealStatus?: "pending" | "open" | "closed" | undefined;
|
|
115
|
-
prizeDrawDurationDays?: number | undefined;
|
|
116
|
-
prizeGithubFileUrl?: string | undefined;
|
|
117
|
-
prizeDrawMode?: "reveal" | "lottery" | undefined;
|
|
118
|
-
prizeRevealMode?: "instant" | "scheduled" | undefined;
|
|
119
|
-
lotteryConfig?: import("..").LotteryConfig | undefined;
|
|
120
|
-
shipping?: {
|
|
121
|
-
allowedProviderIds?: string[];
|
|
122
|
-
overrides?: Array<{
|
|
123
|
-
providerId: string;
|
|
124
|
-
fee?: number;
|
|
125
|
-
etaDaysMin?: number;
|
|
126
|
-
etaDaysMax?: number;
|
|
127
|
-
}>;
|
|
128
|
-
} | undefined;
|
|
129
|
-
physicalLocation?: {
|
|
130
|
-
zone: string;
|
|
131
|
-
shelf: string;
|
|
132
|
-
bin: string;
|
|
133
|
-
} | undefined;
|
|
134
|
-
barcodeId?: string | undefined;
|
|
135
|
-
id?: string | undefined;
|
|
136
|
-
createdAt?: Date | undefined;
|
|
137
|
-
updatedAt?: Date | undefined;
|
|
138
|
-
}[];
|
|
1
|
+
import { ProductDocument } from "../features/products/schemas/firestore";
|
|
2
|
+
export declare const productsPreordersSeedData: Partial<ProductDocument>[];
|