@fiado/type-kit 3.606.0 → 3.607.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/_test_/unit/retailPromotions/discountCodeAndWizardRequests.test.ts +7 -0
- package/bin/retailPromotions/dtos/DiscountCode.d.ts +4 -0
- package/bin/retailPromotions/dtos/requests/CreateDiscountCodeRequest.d.ts +4 -1
- package/bin/retailPromotions/dtos/requests/CreateDiscountCodeRequest.js +8 -0
- package/bin/retailPromotions/dtos/responses/SalePromotionPaymentCheckResponses.d.ts +2 -0
- package/package.json +1 -1
- package/src/retailPromotions/dtos/DiscountCode.ts +4 -0
- package/src/retailPromotions/dtos/requests/CreateDiscountCodeRequest.ts +9 -1
- package/src/retailPromotions/dtos/responses/SalePromotionPaymentCheckResponses.ts +2 -0
|
@@ -45,6 +45,13 @@ describe('CreateDiscountCodeRequest', () => {
|
|
|
45
45
|
});
|
|
46
46
|
expect(paths).toEqual(expect.arrayContaining(['discount.percentBps', 'maxUses', 'appliesTo']));
|
|
47
47
|
});
|
|
48
|
+
|
|
49
|
+
it('acepta paymentOptions como lista del catálogo o null, y rechaza otra cosa', async () => {
|
|
50
|
+
expect(await errorPaths(CreateDiscountCodeRequest, { ...base, paymentOptions: ['CASH', 'CARD'] })).toHaveLength(0);
|
|
51
|
+
expect(await errorPaths(CreateDiscountCodeRequest, { ...base, paymentOptions: null })).toHaveLength(0);
|
|
52
|
+
expect(await errorPaths(CreateDiscountCodeRequest, { ...base, paymentOptions: ['BITCOIN'] })).toEqual(['paymentOptions']);
|
|
53
|
+
expect(await errorPaths(CreateDiscountCodeRequest, { ...base, paymentOptions: 'CASH' })).toEqual(['paymentOptions']);
|
|
54
|
+
});
|
|
48
55
|
});
|
|
49
56
|
|
|
50
57
|
describe('ChangeDiscountCodeStatusRequest', () => {
|
|
@@ -3,6 +3,7 @@ import { CouponStatusEnum } from '../enums/CouponStatusEnum';
|
|
|
3
3
|
import { DiscountCodeOriginEnum } from '../enums/DiscountCodeOriginEnum';
|
|
4
4
|
import { DiscountCodeStatusEnum } from '../enums/DiscountCodeStatusEnum';
|
|
5
5
|
import { PromotionAppliesToEnum } from '../enums/PromotionAppliesToEnum';
|
|
6
|
+
import { PromotionPaymentOptionEnum } from '../enums/PromotionPaymentOptionEnum';
|
|
6
7
|
import { DiscountValue } from './DiscountValue';
|
|
7
8
|
/**
|
|
8
9
|
* Código de descuento de Admin VL o cupón emitido por una venta (según `origin`).
|
|
@@ -22,7 +23,10 @@ export interface DiscountCode {
|
|
|
22
23
|
skus: string[] | null;
|
|
23
24
|
storeIds: string[] | null;
|
|
24
25
|
announceInStore: boolean;
|
|
26
|
+
/** @deprecated Usa `paymentOptions`. */
|
|
25
27
|
appliesTo: PromotionAppliesToEnum;
|
|
28
|
+
/** Formas de pago con las que se canjea; `null` = cualquiera. El cupón hereda las de su promo. */
|
|
29
|
+
paymentOptions: PromotionPaymentOptionEnum[] | null;
|
|
26
30
|
ownerCustomerId: string | null;
|
|
27
31
|
issuedBySaleId: string | null;
|
|
28
32
|
issuingStoreId: string | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PromotionAppliesToEnum } from '../../enums/PromotionAppliesToEnum';
|
|
2
|
+
import { PromotionPaymentOptionEnum } from '../../enums/PromotionPaymentOptionEnum';
|
|
2
3
|
import { DiscountValueInput } from './DiscountValueInput';
|
|
3
4
|
/** Body de publicCreateDiscountCode. Que el texto sea único entre los vigentes es `CODE_TEXT_TAKEN`. */
|
|
4
5
|
export declare class CreateDiscountCodeRequest {
|
|
@@ -12,6 +13,8 @@ export declare class CreateDiscountCodeRequest {
|
|
|
12
13
|
skus?: string[] | null;
|
|
13
14
|
storeIds?: string[] | null;
|
|
14
15
|
announceInStore?: boolean;
|
|
15
|
-
/** Ausente = `SUREKEEP_ONLY`. */
|
|
16
|
+
/** @deprecated Usa `paymentOptions`; solo se lee si `paymentOptions` no viene. Ausente = `SUREKEEP_ONLY`. */
|
|
16
17
|
appliesTo?: PromotionAppliesToEnum;
|
|
18
|
+
/** Formas de pago con las que se canjea; `null` = cualquiera. Ausente = la que diga `appliesTo`. */
|
|
19
|
+
paymentOptions?: PromotionPaymentOptionEnum[] | null;
|
|
17
20
|
}
|
|
@@ -13,6 +13,7 @@ exports.CreateDiscountCodeRequest = void 0;
|
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const PromotionAppliesToEnum_1 = require("../../enums/PromotionAppliesToEnum");
|
|
16
|
+
const PromotionPaymentOptionEnum_1 = require("../../enums/PromotionPaymentOptionEnum");
|
|
16
17
|
const DiscountValueInput_1 = require("./DiscountValueInput");
|
|
17
18
|
/** Body de publicCreateDiscountCode. Que el texto sea único entre los vigentes es `CODE_TEXT_TAKEN`. */
|
|
18
19
|
class CreateDiscountCodeRequest {
|
|
@@ -76,3 +77,10 @@ __decorate([
|
|
|
76
77
|
(0, class_validator_1.IsEnum)(PromotionAppliesToEnum_1.PromotionAppliesToEnum),
|
|
77
78
|
__metadata("design:type", String)
|
|
78
79
|
], CreateDiscountCodeRequest.prototype, "appliesTo", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, class_transformer_1.Expose)(),
|
|
82
|
+
(0, class_validator_1.IsOptional)(),
|
|
83
|
+
(0, class_validator_1.IsArray)(),
|
|
84
|
+
(0, class_validator_1.IsEnum)(PromotionPaymentOptionEnum_1.PromotionPaymentOptionEnum, { each: true }),
|
|
85
|
+
__metadata("design:type", Array)
|
|
86
|
+
], CreateDiscountCodeRequest.prototype, "paymentOptions", void 0);
|
|
@@ -13,4 +13,6 @@ export interface PromotionPaymentNotEligibleDetails {
|
|
|
13
13
|
promotionName: string;
|
|
14
14
|
/** `PromotionPaymentOptionEnum` que acepta esa promo. */
|
|
15
15
|
acceptedOptions: string;
|
|
16
|
+
/** Código apartado que no admite el medio; si solo falla el código, promotionName es su texto. */
|
|
17
|
+
discountCode?: string;
|
|
16
18
|
}
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import { CouponStatusEnum } from '../enums/CouponStatusEnum';
|
|
|
3
3
|
import { DiscountCodeOriginEnum } from '../enums/DiscountCodeOriginEnum';
|
|
4
4
|
import { DiscountCodeStatusEnum } from '../enums/DiscountCodeStatusEnum';
|
|
5
5
|
import { PromotionAppliesToEnum } from '../enums/PromotionAppliesToEnum';
|
|
6
|
+
import { PromotionPaymentOptionEnum } from '../enums/PromotionPaymentOptionEnum';
|
|
6
7
|
import { DiscountValue } from './DiscountValue';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -23,7 +24,10 @@ export interface DiscountCode {
|
|
|
23
24
|
skus: string[] | null;
|
|
24
25
|
storeIds: string[] | null;
|
|
25
26
|
announceInStore: boolean;
|
|
27
|
+
/** @deprecated Usa `paymentOptions`. */
|
|
26
28
|
appliesTo: PromotionAppliesToEnum;
|
|
29
|
+
/** Formas de pago con las que se canjea; `null` = cualquiera. El cupón hereda las de su promo. */
|
|
30
|
+
paymentOptions: PromotionPaymentOptionEnum[] | null;
|
|
27
31
|
ownerCustomerId: string | null;
|
|
28
32
|
issuedBySaleId: string | null;
|
|
29
33
|
issuingStoreId: string | null;
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
ValidateNested,
|
|
14
14
|
} from 'class-validator';
|
|
15
15
|
import { PromotionAppliesToEnum } from '../../enums/PromotionAppliesToEnum';
|
|
16
|
+
import { PromotionPaymentOptionEnum } from '../../enums/PromotionPaymentOptionEnum';
|
|
16
17
|
import { DiscountValueInput } from './DiscountValueInput';
|
|
17
18
|
|
|
18
19
|
/** Body de publicCreateDiscountCode. Que el texto sea único entre los vigentes es `CODE_TEXT_TAKEN`. */
|
|
@@ -63,9 +64,16 @@ export class CreateDiscountCodeRequest {
|
|
|
63
64
|
@IsBoolean()
|
|
64
65
|
announceInStore?: boolean;
|
|
65
66
|
|
|
66
|
-
/** Ausente = `SUREKEEP_ONLY`. */
|
|
67
|
+
/** @deprecated Usa `paymentOptions`; solo se lee si `paymentOptions` no viene. Ausente = `SUREKEEP_ONLY`. */
|
|
67
68
|
@Expose()
|
|
68
69
|
@IsOptional()
|
|
69
70
|
@IsEnum(PromotionAppliesToEnum)
|
|
70
71
|
appliesTo?: PromotionAppliesToEnum;
|
|
72
|
+
|
|
73
|
+
/** Formas de pago con las que se canjea; `null` = cualquiera. Ausente = la que diga `appliesTo`. */
|
|
74
|
+
@Expose()
|
|
75
|
+
@IsOptional()
|
|
76
|
+
@IsArray()
|
|
77
|
+
@IsEnum(PromotionPaymentOptionEnum, { each: true })
|
|
78
|
+
paymentOptions?: PromotionPaymentOptionEnum[] | null;
|
|
71
79
|
}
|
|
@@ -14,4 +14,6 @@ export interface PromotionPaymentNotEligibleDetails {
|
|
|
14
14
|
promotionName: string;
|
|
15
15
|
/** `PromotionPaymentOptionEnum` que acepta esa promo. */
|
|
16
16
|
acceptedOptions: string;
|
|
17
|
+
/** Código apartado que no admite el medio; si solo falla el código, promotionName es su texto. */
|
|
18
|
+
discountCode?: string;
|
|
17
19
|
}
|