@devx-commerce/plugin-discounts-svaraa 0.0.2-beta.8 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/api/admin/discounts/freebie-rules/[id]/route.js +2 -2
- package/.medusa/server/src/api/admin/discounts/freebie-rules/route.js +2 -2
- package/.medusa/server/src/api/admin/discounts/price-rules/[id]/route.js +2 -2
- package/.medusa/server/src/api/admin/discounts/price-rules/route.js +2 -2
- package/.medusa/server/src/api/admin/discounts/validators.js +5 -2
- package/.medusa/server/src/api/middlewares.js +4 -1
- package/.medusa/server/src/api/pos/discounts/apply/route.js +159 -0
- package/.medusa/server/src/api/pos/discounts/apply-freebie/route.js +20 -0
- package/.medusa/server/src/api/pos/discounts/auto-apply/route.js +207 -0
- package/.medusa/server/src/api/pos/discounts/cart-eligible-coupons/[cart_id]/route.js +39 -0
- package/.medusa/server/src/api/pos/discounts/coupons/[id]/route.js +25 -0
- package/.medusa/server/src/api/pos/discounts/middlewares.js +91 -0
- package/.medusa/server/src/api/pos/discounts/offers-on-product/[variant_id]/route.js +19 -0
- package/.medusa/server/src/api/pos/discounts/price-rules/route.js +68 -0
- package/.medusa/server/src/api/pos/discounts/price-rules-list/route.js +46 -0
- package/.medusa/server/src/api/pos/discounts/remove/route.js +42 -0
- package/.medusa/server/src/api/pos/discounts/remove-store-discount/route.js +58 -0
- package/.medusa/server/src/api/pos/discounts/validators.js +356 -0
- package/.medusa/server/src/api/pos/discounts/verify-store-discount/route.js +262 -0
- package/.medusa/server/src/api/store/discounts/apply/route.js +105 -4
- package/.medusa/server/src/api/store/discounts/auto-apply/route.js +30 -11
- package/.medusa/server/src/api/store/discounts/coupons/[id]/route.js +1 -1
- package/.medusa/server/src/api/store/discounts/middlewares.js +6 -4
- package/.medusa/server/src/api/store/discounts/price-rules/route.js +6 -5
- package/.medusa/server/src/api/store/discounts/remove/route.js +16 -1
- package/.medusa/server/src/lib/constant.js +138 -2
- package/.medusa/server/src/lib/helper.js +17 -10
- package/.medusa/server/src/lib/send-otp-helper.js +37 -0
- package/.medusa/server/src/lib/utils.js +1 -1
- package/.medusa/server/src/links/mtm-freebie-rule-with-customers.js +1 -1
- package/.medusa/server/src/links/mtm-price-rule-with-customers.js +1 -1
- package/.medusa/server/src/modules/discounts/migrations/Migration20250708062404.js +1 -1
- package/.medusa/server/src/modules/discounts/migrations/Migration20250822052209.js +1 -1
- package/.medusa/server/src/modules/discounts/migrations/Migration20250825073038.js +1 -1
- package/.medusa/server/src/modules/discounts/migrations/Migration20250901083847.js +1 -1
- package/.medusa/server/src/modules/discounts/migrations/Migration20250918095658.js +14 -0
- package/.medusa/server/src/modules/discounts/models/price-rule.js +5 -2
- package/.medusa/server/src/modules/discounts/service.js +11 -5
- package/.medusa/server/src/subscribers/promocode-subscriber.js +32 -9
- package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +1 -1
- package/.medusa/server/src/workflows/discount/apply-coupon/index.js +2 -2
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step-backup.js +1 -1
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +4 -6
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +4 -2
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +10 -6
- package/.medusa/server/src/workflows/discount/apply-freebie/steps/add-freebie-items-to-cart.js +7 -5
- package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +11 -6
- package/.medusa/server/src/workflows/discount/calculate-coupon-discount/step/fetch-price-rule-by-code.js +1 -1
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/index.js +2 -2
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/validate-customer-exists.js +2 -2
- package/.medusa/server/src/workflows/discount/create-subscriber-to-discount-price-rule.js +1 -1
- package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +3 -2
- package/.medusa/server/src/workflows/discount/get-product-offers/step/calculate-product-offers.js +1 -2
- package/.medusa/server/src/workflows/discount/index.js +2 -1
- package/.medusa/server/src/workflows/discount/remove-coupon/index.js +10 -2
- package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +1 -1
- package/.medusa/server/src/workflows/discount/steps/validate-cart-exists.js +1 -1
- package/.medusa/server/src/workflows/discount/update-coupon-code-stats/step/update-coupon-code-stats.js +1 -1
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +1 -1
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/update-discount-price-rule-step.js +7 -3
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/validate-discount-price-rule-update-step.js +1 -1
- package/.medusa/server/src/workflows/locking/acquire-lock.js +1 -1
- package/.medusa/server/src/workflows/locking/index.js +1 -1
- package/.medusa/server/src/workflows/locking/release-lock.js +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PosVerifyStoreDiscountInputValidator = exports.PosRemoveStoreDiscountInputValidator = exports.PosApplyStoreDiscountInputValidator = exports.PosApplyFreebieInputValidator = exports.PosAutoApplyDiscountInputValidator = exports.PosRemoveDiscountInputValidator = exports.PosApplyDiscountInputValidator = exports.PosGetDiscountPriceRulesParams = exports.PosListDiscountPriceRulesParams = exports.PosListDiscountPriceRulesParamsFields = exports.PosListDiscountPriceRulesDirectFields = exports.posDefaultDiscountPriceRuleFields = exports.PosCreateDiscountDetailsInputValidator = void 0;
|
|
4
|
+
const common_1 = require("@medusajs/medusa/api/utils/common-validators/common");
|
|
5
|
+
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
// Import shared enums from admin validators
|
|
8
|
+
const validators_2 = require("../../admin/discounts/validators");
|
|
9
|
+
// ##################### POS DISCOUNT VALIDATORS #####################
|
|
10
|
+
// Extract the base object schema for reuse
|
|
11
|
+
const PosCreateDiscountDetailsBaseSchema = zod_1.z.object({
|
|
12
|
+
title: zod_1.z.string().optional(),
|
|
13
|
+
description: zod_1.z.string().optional(),
|
|
14
|
+
type: validators_2.DiscountType,
|
|
15
|
+
starts_at: zod_1.z.string().datetime(),
|
|
16
|
+
ends_at: zod_1.z.string().datetime().optional(),
|
|
17
|
+
applies_on: validators_2.DiscountAppliesOn.optional().default(validators_2.DiscountAppliesOn.Values.PRICE),
|
|
18
|
+
applies_on_components: zod_1.z.array(validators_2.DiscountAppliesOnComponents).optional(),
|
|
19
|
+
min_order_value: zod_1.z.number().optional(),
|
|
20
|
+
promocode_type_id: zod_1.z.number().optional(),
|
|
21
|
+
is_all_branch: zod_1.z.boolean().default(false),
|
|
22
|
+
code_count: zod_1.z.number().default(0).optional(),
|
|
23
|
+
is_category: zod_1.z.boolean().default(false),
|
|
24
|
+
is_make_type: zod_1.z.boolean().default(false),
|
|
25
|
+
is_style: zod_1.z.boolean().default(false),
|
|
26
|
+
is_stock_type: zod_1.z.boolean().default(false),
|
|
27
|
+
is_birthday: zod_1.z.boolean().default(false),
|
|
28
|
+
is_anniversary: zod_1.z.boolean().default(false),
|
|
29
|
+
assign_branch_nos: zod_1.z.string().optional(),
|
|
30
|
+
min_order_qty: zod_1.z.number().optional(),
|
|
31
|
+
max_discount: zod_1.z.number().optional(),
|
|
32
|
+
usage_limit_per_customer_type: validators_2.DiscountUsageLimitPerCustomerType.optional().default(validators_2.DiscountUsageLimitPerCustomerType.Values.UNLIMITED),
|
|
33
|
+
usage_limit_per_customer_specific: zod_1.z.number().optional(),
|
|
34
|
+
usage_limit: validators_2.DiscountUsageLimitType.optional().default(validators_2.DiscountUsageLimitType.Values.UNLIMITED),
|
|
35
|
+
usage_limit_specific: zod_1.z.number().optional(),
|
|
36
|
+
usage_limit_per_cart_type: validators_2.DiscountUsageLimitPerCartType.optional().default(validators_2.DiscountUsageLimitPerCartType.Values.ONLY_ONCE),
|
|
37
|
+
usage_limit_per_cart_specific: zod_1.z.number().optional(),
|
|
38
|
+
get_percent: zod_1.z.number().optional(),
|
|
39
|
+
get_flat_discount: zod_1.z.number().optional(),
|
|
40
|
+
visibility: zod_1.z.boolean().default(false),
|
|
41
|
+
only_for_new_customer: zod_1.z.boolean().default(false),
|
|
42
|
+
auto_apply: zod_1.z.boolean().default(false),
|
|
43
|
+
applicable_on_bundle: zod_1.z.boolean().default(false),
|
|
44
|
+
buy_x: zod_1.z.number().optional(),
|
|
45
|
+
get_y: zod_1.z.number().optional(),
|
|
46
|
+
at_y: zod_1.z.number().optional(),
|
|
47
|
+
applicable_product_variant_ids: zod_1.z.array(zod_1.z.string()).optional(),
|
|
48
|
+
applicable_category_ids: zod_1.z.array(zod_1.z.string()).optional(),
|
|
49
|
+
applicable_make_types: zod_1.z.array(zod_1.z.string()).optional(),
|
|
50
|
+
applicable_styles: zod_1.z.array(zod_1.z.string()).optional(),
|
|
51
|
+
applicable_stock_types: zod_1.z.array(zod_1.z.string()).optional(),
|
|
52
|
+
applicable_customer_ids: zod_1.z.array(zod_1.z.string()).optional(),
|
|
53
|
+
code: zod_1.z.string(),
|
|
54
|
+
});
|
|
55
|
+
const posCreatePriceRuleSuperRefine = (data, ctx) => {
|
|
56
|
+
if (data.usage_limit_per_customer_type ===
|
|
57
|
+
validators_2.DiscountUsageLimitPerCustomerType.Values.SPECIFIC &&
|
|
58
|
+
(data.usage_limit_per_customer_specific == null ||
|
|
59
|
+
data.usage_limit_per_customer_specific == undefined)) {
|
|
60
|
+
ctx.addIssue({
|
|
61
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
62
|
+
message: "usage_limit_per_customer_specific is required when usage_limit_per_customer_type is SPECIFIC",
|
|
63
|
+
path: ["usage_limit_per_customer_specific"],
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (data.usage_limit === validators_2.DiscountUsageLimitType.Values.SPECIFIC &&
|
|
67
|
+
(data.usage_limit_specific == null ||
|
|
68
|
+
data.usage_limit_specific == undefined)) {
|
|
69
|
+
ctx.addIssue({
|
|
70
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
71
|
+
message: "usage_limit_specific is required when usage_limit is SPECIFIC",
|
|
72
|
+
path: ["usage_limit_specific"],
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (data.usage_limit_per_cart_type ===
|
|
76
|
+
validators_2.DiscountUsageLimitPerCartType.Values.SPECIFIC &&
|
|
77
|
+
(data.usage_limit_per_cart_specific == null ||
|
|
78
|
+
data.usage_limit_per_cart_specific == undefined)) {
|
|
79
|
+
ctx.addIssue({
|
|
80
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
81
|
+
message: "usage_limit_per_cart_specific is required when usage_limit_per_cart_type is SPECIFIC",
|
|
82
|
+
path: ["usage_limit_per_cart_specific"],
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (data.type === validators_2.DiscountType.Values.FIXED &&
|
|
86
|
+
(data.get_flat_discount == null || data.get_flat_discount == undefined)) {
|
|
87
|
+
ctx.addIssue({
|
|
88
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
89
|
+
message: "get_flat_discount is required for FIXED discount type",
|
|
90
|
+
path: ["get_flat_discount"],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (data.type === validators_2.DiscountType.Values.PERCENTAGE) {
|
|
94
|
+
if (data.get_percent == null ||
|
|
95
|
+
data.get_percent > 100 ||
|
|
96
|
+
data.get_percent < 0) {
|
|
97
|
+
ctx.addIssue({
|
|
98
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
99
|
+
message: "get_percent is required for PERCENTAGE discount type and must be between 0-100",
|
|
100
|
+
path: ["get_percent"],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (data.ends_at &&
|
|
105
|
+
data.starts_at &&
|
|
106
|
+
new Date(data.ends_at) <= new Date(data.starts_at)) {
|
|
107
|
+
ctx.addIssue({
|
|
108
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
109
|
+
message: "ends_at must be later than starts_at",
|
|
110
|
+
path: ["ends_at"],
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (data.usage_limit_per_cart_type) {
|
|
114
|
+
if ([
|
|
115
|
+
validators_2.DiscountType.Values.FIXED,
|
|
116
|
+
validators_2.DiscountType.Values.BXGY,
|
|
117
|
+
validators_2.DiscountType.Values.BXAY,
|
|
118
|
+
].includes(data.type)) {
|
|
119
|
+
// For FIXED, BXGY, BXAY: all usage_limit_per_cart_type values allowed
|
|
120
|
+
}
|
|
121
|
+
else if (data.type === validators_2.DiscountType.Values.PERCENTAGE) {
|
|
122
|
+
if (data.usage_limit_per_cart_type !== "ONLY_ONCE") {
|
|
123
|
+
ctx.addIssue({
|
|
124
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
125
|
+
message: "usage_limit_per_cart_type can only be 'ONLY_ONCE' when discount type is PERCENTAGE",
|
|
126
|
+
path: ["usage_limit_per_cart_type"],
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
ctx.addIssue({
|
|
132
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
133
|
+
message: `usage_limit_per_cart_type is not valid for discount type '${data.type}'`,
|
|
134
|
+
path: ["usage_limit_per_cart_type"],
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (data.type === validators_2.DiscountType.Values.BXGY) {
|
|
139
|
+
if (data.buy_x == null || data.get_y == null) {
|
|
140
|
+
ctx.addIssue({
|
|
141
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
142
|
+
message: "buy_x and get_y are required for BXGY discounts",
|
|
143
|
+
path: ["buy_x"],
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (data.type === validators_2.DiscountType.Values.BXAY) {
|
|
148
|
+
if (data.buy_x == null || data.at_y == null) {
|
|
149
|
+
ctx.addIssue({
|
|
150
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
151
|
+
message: "buy_x and at_y are required for BXAY discounts",
|
|
152
|
+
path: ["buy_x"],
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (data.applicable_product_variant_ids?.length &&
|
|
157
|
+
data.applicable_category_ids?.length) {
|
|
158
|
+
ctx.addIssue({
|
|
159
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
160
|
+
message: "You should provide either applicable_product_variant_ids or applicable_category_ids",
|
|
161
|
+
path: ["applicable_product_variant_ids"],
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (data.min_order_value != null && data.min_order_value < 0) {
|
|
165
|
+
ctx.addIssue({
|
|
166
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
167
|
+
message: "min_order_value cannot be negative",
|
|
168
|
+
path: ["min_order_value"],
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (data.min_order_qty != null && data.min_order_qty < 0) {
|
|
172
|
+
ctx.addIssue({
|
|
173
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
174
|
+
message: "min_order_qty cannot be negative",
|
|
175
|
+
path: ["min_order_qty"],
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (data.max_discount != null && data.max_discount < 0) {
|
|
179
|
+
ctx.addIssue({
|
|
180
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
181
|
+
message: "max_discount cannot be negative",
|
|
182
|
+
path: ["max_discount"],
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (data.type === validators_2.DiscountType.Values.FIXED) {
|
|
186
|
+
["get_percent", "buy_x", "get_y", "at_y"].forEach((fld) => {
|
|
187
|
+
if (data[fld] != null) {
|
|
188
|
+
ctx.addIssue({
|
|
189
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
190
|
+
message: `${fld} must be null when discount type is FIXED`,
|
|
191
|
+
path: [fld],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (data.type === validators_2.DiscountType.Values.PERCENTAGE) {
|
|
197
|
+
["get_flat_discount", "buy_x", "get_y", "at_y"].forEach((fld) => {
|
|
198
|
+
if (data[fld] != null) {
|
|
199
|
+
ctx.addIssue({
|
|
200
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
201
|
+
message: `${fld} must be null when discount type is PERCENTAGE`,
|
|
202
|
+
path: [fld],
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
if (data.type === validators_2.DiscountType.Values.BXGY) {
|
|
208
|
+
["get_percent", "get_flat_discount", "at_y"].forEach((fld) => {
|
|
209
|
+
if (data[fld] != null) {
|
|
210
|
+
ctx.addIssue({
|
|
211
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
212
|
+
message: `${fld} must be null when discount type is BXGY`,
|
|
213
|
+
path: [fld],
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
if (data.type === validators_2.DiscountType.Values.BXAY) {
|
|
219
|
+
["get_percent", "get_flat_discount", "get_y"].forEach((fld) => {
|
|
220
|
+
if (data[fld] != null) {
|
|
221
|
+
ctx.addIssue({
|
|
222
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
223
|
+
message: `${fld} must be null when discount type is BXAY`,
|
|
224
|
+
path: [fld],
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
return data;
|
|
230
|
+
};
|
|
231
|
+
const posCreatePriceRulePreprocessor = (input) => {
|
|
232
|
+
if (typeof input === "object" && input !== null && "type" in input) {
|
|
233
|
+
if (!("usage_limit_per_cart_type" in input) ||
|
|
234
|
+
input.usage_limit_per_cart_type === undefined) {
|
|
235
|
+
if (["FIXED", "BXGY", "BXAY"].includes(input.type)) {
|
|
236
|
+
return { ...input, usage_limit_per_cart_type: "UNLIMITED" };
|
|
237
|
+
}
|
|
238
|
+
if (input.type === "PERCENTAGE") {
|
|
239
|
+
return { ...input, usage_limit_per_cart_type: "ONLY_ONCE" };
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return input;
|
|
244
|
+
};
|
|
245
|
+
exports.PosCreateDiscountDetailsInputValidator = zod_1.z.preprocess(posCreatePriceRulePreprocessor, PosCreateDiscountDetailsBaseSchema.superRefine(posCreatePriceRuleSuperRefine));
|
|
246
|
+
exports.posDefaultDiscountPriceRuleFields = [
|
|
247
|
+
"id",
|
|
248
|
+
"title",
|
|
249
|
+
"description",
|
|
250
|
+
"type",
|
|
251
|
+
"starts_at",
|
|
252
|
+
"ends_at",
|
|
253
|
+
"status",
|
|
254
|
+
"applies_on",
|
|
255
|
+
"min_order_value",
|
|
256
|
+
"min_order_qty",
|
|
257
|
+
"max_discount",
|
|
258
|
+
"usage_limit_per_customer_type",
|
|
259
|
+
"usage_limit_per_customer_specific",
|
|
260
|
+
"usage_limit",
|
|
261
|
+
"usage_limit_specific",
|
|
262
|
+
"usage_limit_per_cart_type",
|
|
263
|
+
"usage_limit_per_cart_specific",
|
|
264
|
+
"get_percent",
|
|
265
|
+
"get_flat_discount",
|
|
266
|
+
"visibility",
|
|
267
|
+
"only_for_new_customer",
|
|
268
|
+
"auto_apply",
|
|
269
|
+
"applicable_on_bundle",
|
|
270
|
+
"buy_x",
|
|
271
|
+
"get_y",
|
|
272
|
+
"at_y",
|
|
273
|
+
"created_at",
|
|
274
|
+
"updated_at",
|
|
275
|
+
"code_count",
|
|
276
|
+
"prefix",
|
|
277
|
+
"discount_code",
|
|
278
|
+
];
|
|
279
|
+
exports.PosListDiscountPriceRulesDirectFields = (0, common_1.applyAndAndOrOperators)(zod_1.z.object({
|
|
280
|
+
id: (0, validators_1.createOperatorMap)().optional(),
|
|
281
|
+
title: (0, validators_1.createOperatorMap)().optional(),
|
|
282
|
+
description: (0, validators_1.createOperatorMap)().optional(),
|
|
283
|
+
type: (0, validators_1.createOperatorMap)().optional(),
|
|
284
|
+
starts_at: (0, validators_1.createOperatorMap)().optional(),
|
|
285
|
+
ends_at: (0, validators_1.createOperatorMap)().optional(),
|
|
286
|
+
status: (0, validators_1.createOperatorMap)().optional(),
|
|
287
|
+
applies_on: (0, validators_1.createOperatorMap)().optional(),
|
|
288
|
+
min_order_value: (0, validators_1.createOperatorMap)().optional(),
|
|
289
|
+
min_order_qty: (0, validators_1.createOperatorMap)().optional(),
|
|
290
|
+
max_discount: (0, validators_1.createOperatorMap)().optional(),
|
|
291
|
+
usage_limit_per_customer_type: (0, validators_1.createOperatorMap)().optional(),
|
|
292
|
+
usage_limit_per_customer_specific: (0, validators_1.createOperatorMap)().optional(),
|
|
293
|
+
usage_limit: (0, validators_1.createOperatorMap)().optional(),
|
|
294
|
+
usage_limit_specific: (0, validators_1.createOperatorMap)().optional(),
|
|
295
|
+
usage_limit_per_cart_type: (0, validators_1.createOperatorMap)().optional(),
|
|
296
|
+
usage_limit_per_cart_specific: (0, validators_1.createOperatorMap)().optional(),
|
|
297
|
+
get_percent: (0, validators_1.createOperatorMap)().optional(),
|
|
298
|
+
get_flat_discount: (0, validators_1.createOperatorMap)().optional(),
|
|
299
|
+
visibility: (0, validators_1.createOperatorMap)().optional(),
|
|
300
|
+
only_for_new_customer: (0, validators_1.createOperatorMap)().optional(),
|
|
301
|
+
auto_apply: (0, validators_1.createOperatorMap)().optional(),
|
|
302
|
+
applicable_on_bundle: (0, validators_1.createOperatorMap)().optional(),
|
|
303
|
+
buy_x: (0, validators_1.createOperatorMap)().optional(),
|
|
304
|
+
get_y: (0, validators_1.createOperatorMap)().optional(),
|
|
305
|
+
at_y: (0, validators_1.createOperatorMap)().optional(),
|
|
306
|
+
prefix: (0, validators_1.createOperatorMap)().optional(),
|
|
307
|
+
code_count: (0, validators_1.createOperatorMap)().optional(),
|
|
308
|
+
created_at: (0, validators_1.createOperatorMap)().optional(),
|
|
309
|
+
updated_at: (0, validators_1.createOperatorMap)().optional(),
|
|
310
|
+
}));
|
|
311
|
+
exports.PosListDiscountPriceRulesParamsFields = zod_1.z.object({
|
|
312
|
+
q: zod_1.z.string().optional(),
|
|
313
|
+
title: zod_1.z.string().optional(),
|
|
314
|
+
id: zod_1.z.string().optional(),
|
|
315
|
+
});
|
|
316
|
+
exports.PosListDiscountPriceRulesParams = (0, validators_1.createFindParams)({
|
|
317
|
+
limit: 10,
|
|
318
|
+
offset: 0,
|
|
319
|
+
order: "-created_at",
|
|
320
|
+
})
|
|
321
|
+
.merge(exports.PosListDiscountPriceRulesDirectFields)
|
|
322
|
+
.merge(exports.PosListDiscountPriceRulesParamsFields);
|
|
323
|
+
exports.PosGetDiscountPriceRulesParams = (0, validators_1.createFindParams)({
|
|
324
|
+
offset: 0,
|
|
325
|
+
limit: 50,
|
|
326
|
+
});
|
|
327
|
+
exports.PosApplyDiscountInputValidator = zod_1.z.object({
|
|
328
|
+
code: zod_1.z.string(),
|
|
329
|
+
cart_id: zod_1.z.string(),
|
|
330
|
+
customerId: zod_1.z.string().optional(),
|
|
331
|
+
});
|
|
332
|
+
exports.PosRemoveDiscountInputValidator = zod_1.z.object({
|
|
333
|
+
cart_id: zod_1.z.string(),
|
|
334
|
+
code: zod_1.z.string().optional(),
|
|
335
|
+
});
|
|
336
|
+
exports.PosAutoApplyDiscountInputValidator = zod_1.z.object({
|
|
337
|
+
cart_id: zod_1.z.string(),
|
|
338
|
+
});
|
|
339
|
+
exports.PosApplyFreebieInputValidator = zod_1.z.object({
|
|
340
|
+
cart_id: zod_1.z.string(),
|
|
341
|
+
});
|
|
342
|
+
// Store discount (manual staff discount) for POS
|
|
343
|
+
exports.PosApplyStoreDiscountInputValidator = zod_1.z.object({
|
|
344
|
+
cart_id: zod_1.z.string(),
|
|
345
|
+
amount: zod_1.z.number().positive(),
|
|
346
|
+
});
|
|
347
|
+
exports.PosRemoveStoreDiscountInputValidator = zod_1.z.object({
|
|
348
|
+
cart_id: zod_1.z.string(),
|
|
349
|
+
});
|
|
350
|
+
// Verify store discount (OTP-based approval) for POS
|
|
351
|
+
exports.PosVerifyStoreDiscountInputValidator = zod_1.z.object({
|
|
352
|
+
cart_id: zod_1.z.string(),
|
|
353
|
+
amount: zod_1.z.number().positive(),
|
|
354
|
+
otp: zod_1.z.string().optional(),
|
|
355
|
+
});
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvcG9zL2Rpc2NvdW50cy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdGQUE2RjtBQUM3RixzRUFHK0M7QUFDL0MsNkJBQXdCO0FBRXhCLDRDQUE0QztBQUM1QyxpRUFPMEM7QUFFMUMsc0VBQXNFO0FBRXRFLDJDQUEyQztBQUMzQyxNQUFNLGtDQUFrQyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsSUFBSSxFQUFFLHlCQUFZO0lBQ2xCLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRXpDLFVBQVUsRUFBRSw4QkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQzlDLDhCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQy9CO0lBQ0QscUJBQXFCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyx3Q0FBMkIsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RSxlQUFlLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxpQkFBaUIsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hDLGFBQWEsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN6QyxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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
|