@fiado/type-kit 3.634.0 → 3.636.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/retailWizard/salePayments.test.ts +29 -0
- package/bin/helpdesk/dtos/HelpdeskCreateTicketRequest.d.ts +6 -0
- package/bin/helpdesk/dtos/HelpdeskCreateTicketRequest.js +7 -0
- package/bin/helpdesk/dtos/ZendeskInternalAlertRequest.d.ts +6 -0
- package/bin/helpdesk/dtos/ZendeskInternalAlertRequest.js +7 -0
- package/bin/helpdesk/enums/ZendeskCaseTagEnum.d.ts +21 -0
- package/bin/helpdesk/enums/ZendeskCaseTagEnum.js +25 -0
- package/bin/helpdesk/index.d.ts +1 -0
- package/bin/helpdesk/index.js +1 -0
- package/bin/retailWizard/dtos/WizardPayment.d.ts +4 -4
- package/bin/retailWizard/dtos/WizardPayment.js +1 -0
- package/bin/retailWizard/dtos/requests/DownPaymentRequest.d.ts +1 -1
- package/bin/retailWizard/dtos/requests/DownPaymentRequest.js +1 -1
- package/bin/retailWizard/dtos/requests/RegisterPaymentRequest.d.ts +1 -1
- package/bin/retailWizard/dtos/requests/RegisterPaymentRequest.js +1 -1
- package/package.json +1 -1
- package/src/helpdesk/dtos/HelpdeskCreateTicketRequest.ts +10 -0
- package/src/helpdesk/dtos/ZendeskInternalAlertRequest.ts +10 -0
- package/src/helpdesk/enums/ZendeskCaseTagEnum.ts +21 -0
- package/src/helpdesk/index.ts +1 -0
- package/src/retailWizard/dtos/WizardPayment.ts +6 -5
- package/src/retailWizard/dtos/requests/DownPaymentRequest.ts +2 -2
- package/src/retailWizard/dtos/requests/RegisterPaymentRequest.ts +2 -2
|
@@ -105,6 +105,35 @@ describe('payments en RegisterPaymentRequest', () => {
|
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
107
|
|
|
108
|
+
describe('cobro de $0', () => {
|
|
109
|
+
it.each([
|
|
110
|
+
['RegisterPaymentRequest', RegisterPaymentRequest],
|
|
111
|
+
['DownPaymentRequest', DownPaymentRequest],
|
|
112
|
+
])('%s de $0 no exige method ni payments', (_name, cls) => {
|
|
113
|
+
expect(errorsOf(cls as new () => object, { amountCents: 0 })).toEqual([]);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it.each([
|
|
117
|
+
['RegisterPaymentRequest', RegisterPaymentRequest],
|
|
118
|
+
['DownPaymentRequest', DownPaymentRequest],
|
|
119
|
+
])('%s de $0 con method lo sigue validando', (_name, cls) => {
|
|
120
|
+
expect(errorsOf(cls as new () => object, { amountCents: 0, method: CASH })).toEqual([]);
|
|
121
|
+
expect(errorsOf(cls as new () => object, { amountCents: 0, method: 'CHEQUE' })).toEqual(['method']);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it.each([
|
|
125
|
+
['RegisterPaymentRequest', RegisterPaymentRequest],
|
|
126
|
+
['DownPaymentRequest', DownPaymentRequest],
|
|
127
|
+
])('%s con monto mayor a cero sin payments sigue exigiendo method', (_name, cls) => {
|
|
128
|
+
expect(errorsOf(cls as new () => object, { amountCents: 100 })).toEqual(['method']);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
it('WizardPayment de $0 guarda method y payments en null', () => {
|
|
132
|
+
expect(errorsOf(WizardPayment, { method: null, amountCents: 0, payments: null, paidAt: '2026-11-03T10:00:00.000Z' })).toEqual([]);
|
|
133
|
+
expect(errorsOf(WizardPayment, { method: 'CHEQUE', amountCents: 0, paidAt: '2026-11-03T10:00:00.000Z' })).toEqual(['method']);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
|
|
108
137
|
describe('payments en los demás contratos', () => {
|
|
109
138
|
it('DownPaymentRequest acepta solo payments y valida la suma', () => {
|
|
110
139
|
expect(errorsOf(DownPaymentRequest, { amountCents: 15000, payments: [cash, wire] })).toEqual([]);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AlertClassification } from "../enums/AlertClassificationEnum";
|
|
2
|
+
import { ZendeskCaseTag } from "../enums/ZendeskCaseTagEnum";
|
|
2
3
|
export declare class HelpdeskCreateTicketRequest {
|
|
3
4
|
subject: string;
|
|
4
5
|
note: string;
|
|
@@ -15,4 +16,9 @@ export declare class HelpdeskCreateTicketRequest {
|
|
|
15
16
|
groupId?: number;
|
|
16
17
|
/** Clasificación explícita del usuario para el asunto; si no va, zendesk-business la calcula. */
|
|
17
18
|
classification?: AlertClassification;
|
|
19
|
+
/**
|
|
20
|
+
* Tags de caso del alertamiento interno. A diferencia de `tags`, NO se usan para buscar el
|
|
21
|
+
* hilo: sólo se agregan al ticket, al crearlo y al anexarle una nota.
|
|
22
|
+
*/
|
|
23
|
+
caseTags?: ZendeskCaseTag[];
|
|
18
24
|
}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.HelpdeskCreateTicketRequest = void 0;
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const AlertClassificationEnum_1 = require("../enums/AlertClassificationEnum");
|
|
15
|
+
const ZendeskCaseTagEnum_1 = require("../enums/ZendeskCaseTagEnum");
|
|
15
16
|
class HelpdeskCreateTicketRequest {
|
|
16
17
|
}
|
|
17
18
|
exports.HelpdeskCreateTicketRequest = HelpdeskCreateTicketRequest;
|
|
@@ -68,3 +69,9 @@ __decorate([
|
|
|
68
69
|
(0, class_validator_1.IsOptional)(),
|
|
69
70
|
__metadata("design:type", String)
|
|
70
71
|
], HelpdeskCreateTicketRequest.prototype, "classification", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_validator_1.IsArray)(),
|
|
74
|
+
(0, class_validator_1.IsEnum)(ZendeskCaseTagEnum_1.ZendeskCaseTag, { each: true }),
|
|
75
|
+
(0, class_validator_1.IsOptional)(),
|
|
76
|
+
__metadata("design:type", Array)
|
|
77
|
+
], HelpdeskCreateTicketRequest.prototype, "caseTags", void 0);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AlertClassification } from "../enums/AlertClassificationEnum";
|
|
2
2
|
import { InternalAlertChannel } from "../enums/InternalAlertChannelEnum";
|
|
3
|
+
import { ZendeskCaseTag } from "../enums/ZendeskCaseTagEnum";
|
|
3
4
|
/**
|
|
4
5
|
* Alerta interna sobre un usuario. Se publica en la cola de alertamiento y zendesk-business
|
|
5
6
|
* la convierte en una nota interna de Zendesk: solo la ven los agentes, el usuario nunca.
|
|
@@ -27,4 +28,9 @@ export declare class ZendeskInternalAlertRequest {
|
|
|
27
28
|
* si no, la calcula a partir del scope del directorio.
|
|
28
29
|
*/
|
|
29
30
|
classification?: AlertClassification;
|
|
31
|
+
/**
|
|
32
|
+
* Tags de caso que se agregan al ticket (ver `ZendeskCaseTag`). Se acumulan: al anexar a un
|
|
33
|
+
* ticket existente se suman a los que ya tiene. No cambian a qué hilo va la nota.
|
|
34
|
+
*/
|
|
35
|
+
caseTags?: ZendeskCaseTag[];
|
|
30
36
|
}
|
|
@@ -13,6 +13,7 @@ exports.ZendeskInternalAlertRequest = void 0;
|
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const AlertClassificationEnum_1 = require("../enums/AlertClassificationEnum");
|
|
15
15
|
const InternalAlertChannelEnum_1 = require("../enums/InternalAlertChannelEnum");
|
|
16
|
+
const ZendeskCaseTagEnum_1 = require("../enums/ZendeskCaseTagEnum");
|
|
16
17
|
/**
|
|
17
18
|
* Alerta interna sobre un usuario. Se publica en la cola de alertamiento y zendesk-business
|
|
18
19
|
* la convierte en una nota interna de Zendesk: solo la ven los agentes, el usuario nunca.
|
|
@@ -49,3 +50,9 @@ __decorate([
|
|
|
49
50
|
(0, class_validator_1.IsOptional)(),
|
|
50
51
|
__metadata("design:type", String)
|
|
51
52
|
], ZendeskInternalAlertRequest.prototype, "classification", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_validator_1.IsArray)(),
|
|
55
|
+
(0, class_validator_1.IsEnum)(ZendeskCaseTagEnum_1.ZendeskCaseTag, { each: true }),
|
|
56
|
+
(0, class_validator_1.IsOptional)(),
|
|
57
|
+
__metadata("design:type", Array)
|
|
58
|
+
], ZendeskInternalAlertRequest.prototype, "caseTags", void 0);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag de caso en el ticket interno de Zendesk: qué tipo de problema tiene el cliente, para que
|
|
3
|
+
* CS lo vea en su vista. Lo pone el Lambda que manda la alerta.
|
|
4
|
+
*
|
|
5
|
+
* Distinto de `InternalAlertChannel`: el canal decide a qué hilo va la nota; el tag de caso sólo
|
|
6
|
+
* se agrega al ticket y se ACUMULA (un cliente puede pasar por varios casos). No participa en la
|
|
7
|
+
* búsqueda del hilo.
|
|
8
|
+
*
|
|
9
|
+
* En minúsculas: es como Zendesk guarda los tags y como se configuran las vistas.
|
|
10
|
+
* Fuente: accountsresolver-validacion-corregido.csv, columna "NUEVO TAG zendesk".
|
|
11
|
+
*/
|
|
12
|
+
export declare enum ZendeskCaseTag {
|
|
13
|
+
IT_PROBLEM = "it_problem",
|
|
14
|
+
COMPLIANCE_PROBLEM = "compliance_problem",
|
|
15
|
+
CUSTOMER_CARE_OOW = "customer_care_oow",
|
|
16
|
+
CUSTOMER_CARE_FIX_PHOTO = "customer_care_fix_photo",
|
|
17
|
+
CUSTOMER_CARE_PREVENTIVE = "customer_care_preventive",
|
|
18
|
+
CUSTOMER_CARE_FIX_DOB = "customer_care_fix_dob",
|
|
19
|
+
CUSTOMER_CARE_FIX_ADDRESS_USA = "customer_care_fix_address_usa",
|
|
20
|
+
CUSTOMER_CARE_FIX_ADDRESS_MX = "customer_care_fix_address_mx"
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZendeskCaseTag = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tag de caso en el ticket interno de Zendesk: qué tipo de problema tiene el cliente, para que
|
|
6
|
+
* CS lo vea en su vista. Lo pone el Lambda que manda la alerta.
|
|
7
|
+
*
|
|
8
|
+
* Distinto de `InternalAlertChannel`: el canal decide a qué hilo va la nota; el tag de caso sólo
|
|
9
|
+
* se agrega al ticket y se ACUMULA (un cliente puede pasar por varios casos). No participa en la
|
|
10
|
+
* búsqueda del hilo.
|
|
11
|
+
*
|
|
12
|
+
* En minúsculas: es como Zendesk guarda los tags y como se configuran las vistas.
|
|
13
|
+
* Fuente: accountsresolver-validacion-corregido.csv, columna "NUEVO TAG zendesk".
|
|
14
|
+
*/
|
|
15
|
+
var ZendeskCaseTag;
|
|
16
|
+
(function (ZendeskCaseTag) {
|
|
17
|
+
ZendeskCaseTag["IT_PROBLEM"] = "it_problem";
|
|
18
|
+
ZendeskCaseTag["COMPLIANCE_PROBLEM"] = "compliance_problem";
|
|
19
|
+
ZendeskCaseTag["CUSTOMER_CARE_OOW"] = "customer_care_oow";
|
|
20
|
+
ZendeskCaseTag["CUSTOMER_CARE_FIX_PHOTO"] = "customer_care_fix_photo";
|
|
21
|
+
ZendeskCaseTag["CUSTOMER_CARE_PREVENTIVE"] = "customer_care_preventive";
|
|
22
|
+
ZendeskCaseTag["CUSTOMER_CARE_FIX_DOB"] = "customer_care_fix_dob";
|
|
23
|
+
ZendeskCaseTag["CUSTOMER_CARE_FIX_ADDRESS_USA"] = "customer_care_fix_address_usa";
|
|
24
|
+
ZendeskCaseTag["CUSTOMER_CARE_FIX_ADDRESS_MX"] = "customer_care_fix_address_mx";
|
|
25
|
+
})(ZendeskCaseTag || (exports.ZendeskCaseTag = ZendeskCaseTag = {}));
|
package/bin/helpdesk/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './dtos/HelpdeskCreateUserRequest';
|
|
|
2
2
|
export * from './dtos/HelpdeskCreateTicketRequest';
|
|
3
3
|
export * from './dtos/ZendeskInternalAlertRequest';
|
|
4
4
|
export * from './enums/InternalAlertChannelEnum';
|
|
5
|
+
export * from './enums/ZendeskCaseTagEnum';
|
|
5
6
|
export * from './enums/AlertClassificationEnum';
|
|
6
7
|
export * from './enums/ZendeskAlertKindEnum';
|
|
7
8
|
export * from './interfaces/IZendeskAlertMessage';
|
package/bin/helpdesk/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./dtos/HelpdeskCreateTicketRequest"), exports);
|
|
|
19
19
|
// Alertamiento interno (cola de Zendesk)
|
|
20
20
|
__exportStar(require("./dtos/ZendeskInternalAlertRequest"), exports);
|
|
21
21
|
__exportStar(require("./enums/InternalAlertChannelEnum"), exports);
|
|
22
|
+
__exportStar(require("./enums/ZendeskCaseTagEnum"), exports);
|
|
22
23
|
__exportStar(require("./enums/AlertClassificationEnum"), exports);
|
|
23
24
|
__exportStar(require("./enums/ZendeskAlertKindEnum"), exports);
|
|
24
25
|
__exportStar(require("./interfaces/IZendeskAlertMessage"), exports);
|
|
@@ -2,12 +2,12 @@ import { SalePaymentMethodEnum } from '../enums/SalePaymentMethodEnum';
|
|
|
2
2
|
import { SalePayment } from './SalePayment';
|
|
3
3
|
/** Registro del pago de contado dentro de la sesión (`WizardSession.payment`). SureKeep Fase 2 — pista Retail. */
|
|
4
4
|
export declare class WizardPayment {
|
|
5
|
-
/** @deprecated Usa `payments`; con varios pagos lleva el método del primero. */
|
|
6
|
-
method: SalePaymentMethodEnum;
|
|
5
|
+
/** @deprecated Usa `payments`; con varios pagos lleva el método del primero. `null` en un cobro de $0. */
|
|
6
|
+
method: SalePaymentMethodEnum | null;
|
|
7
7
|
amountCents: number;
|
|
8
8
|
/** @deprecated Usa `payments`; es el comprobante como texto JSON. */
|
|
9
9
|
detail?: string;
|
|
10
|
-
/** Pagos del cobro (1 a 3); ausente en sesiones anteriores al campo. */
|
|
11
|
-
payments?: SalePayment[];
|
|
10
|
+
/** Pagos del cobro (1 a 3); `null` en un cobro de $0, ausente en sesiones anteriores al campo. */
|
|
11
|
+
payments?: SalePayment[] | null;
|
|
12
12
|
paidAt: string;
|
|
13
13
|
}
|
|
@@ -21,6 +21,7 @@ class WizardPayment {
|
|
|
21
21
|
exports.WizardPayment = WizardPayment;
|
|
22
22
|
__decorate([
|
|
23
23
|
(0, class_transformer_1.Expose)(),
|
|
24
|
+
(0, class_validator_1.ValidateIf)((o) => o.method != null),
|
|
24
25
|
(0, class_validator_1.IsEnum)(SalePaymentMethodEnum_1.SalePaymentMethodEnum),
|
|
25
26
|
__metadata("design:type", String)
|
|
26
27
|
], WizardPayment.prototype, "method", void 0);
|
|
@@ -11,7 +11,7 @@ import { SalePayment } from '../SalePayment';
|
|
|
11
11
|
* SureKeep Fase 2 — pista SOFOM.
|
|
12
12
|
*/
|
|
13
13
|
export declare class DownPaymentRequest {
|
|
14
|
-
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene. */
|
|
14
|
+
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene y el monto es mayor a cero. */
|
|
15
15
|
method?: SalePaymentMethodEnum;
|
|
16
16
|
amountCents: number;
|
|
17
17
|
/** @deprecated Usa el comprobante de cada elemento de `payments`. */
|
|
@@ -29,7 +29,7 @@ class DownPaymentRequest {
|
|
|
29
29
|
exports.DownPaymentRequest = DownPaymentRequest;
|
|
30
30
|
__decorate([
|
|
31
31
|
(0, class_transformer_1.Expose)(),
|
|
32
|
-
(0, class_validator_1.ValidateIf)((o) => o.payments == null
|
|
32
|
+
(0, class_validator_1.ValidateIf)((o) => o.method !== undefined || (o.payments == null && o.amountCents !== 0)),
|
|
33
33
|
(0, class_validator_1.IsEnum)(SalePaymentMethodEnum_1.SalePaymentMethodEnum),
|
|
34
34
|
__metadata("design:type", String)
|
|
35
35
|
], DownPaymentRequest.prototype, "method", void 0);
|
|
@@ -7,7 +7,7 @@ import { SalePayment } from '../SalePayment';
|
|
|
7
7
|
* (D11) ANTES del registro; el folio no viaja en el body (lo posee el server). SureKeep Fase 2 — pista Retail.
|
|
8
8
|
*/
|
|
9
9
|
export declare class RegisterPaymentRequest {
|
|
10
|
-
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene. */
|
|
10
|
+
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene y el monto es mayor a cero. */
|
|
11
11
|
method?: SalePaymentMethodEnum;
|
|
12
12
|
amountCents: number;
|
|
13
13
|
/** @deprecated Usa el comprobante de cada elemento de `payments`. */
|
|
@@ -25,7 +25,7 @@ class RegisterPaymentRequest {
|
|
|
25
25
|
exports.RegisterPaymentRequest = RegisterPaymentRequest;
|
|
26
26
|
__decorate([
|
|
27
27
|
(0, class_transformer_1.Expose)(),
|
|
28
|
-
(0, class_validator_1.ValidateIf)((o) => o.payments == null
|
|
28
|
+
(0, class_validator_1.ValidateIf)((o) => o.method !== undefined || (o.payments == null && o.amountCents !== 0)),
|
|
29
29
|
(0, class_validator_1.IsEnum)(SalePaymentMethodEnum_1.SalePaymentMethodEnum),
|
|
30
30
|
__metadata("design:type", String)
|
|
31
31
|
], RegisterPaymentRequest.prototype, "method", void 0);
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { IsArray, IsBoolean, IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString } from "class-validator";
|
|
2
2
|
import { AlertClassification } from "../enums/AlertClassificationEnum";
|
|
3
|
+
import { ZendeskCaseTag } from "../enums/ZendeskCaseTagEnum";
|
|
3
4
|
|
|
4
5
|
export class HelpdeskCreateTicketRequest {
|
|
5
6
|
|
|
@@ -49,4 +50,13 @@ export class HelpdeskCreateTicketRequest {
|
|
|
49
50
|
@IsOptional()
|
|
50
51
|
classification?: AlertClassification;
|
|
51
52
|
|
|
53
|
+
/**
|
|
54
|
+
* Tags de caso del alertamiento interno. A diferencia de `tags`, NO se usan para buscar el
|
|
55
|
+
* hilo: sólo se agregan al ticket, al crearlo y al anexarle una nota.
|
|
56
|
+
*/
|
|
57
|
+
@IsArray()
|
|
58
|
+
@IsEnum(ZendeskCaseTag, { each: true })
|
|
59
|
+
@IsOptional()
|
|
60
|
+
caseTags?: ZendeskCaseTag[];
|
|
61
|
+
|
|
52
62
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ArrayNotEmpty, IsArray, IsEnum, IsNotEmpty, IsOptional, IsString } from "class-validator";
|
|
2
2
|
import { AlertClassification } from "../enums/AlertClassificationEnum";
|
|
3
3
|
import { InternalAlertChannel } from "../enums/InternalAlertChannelEnum";
|
|
4
|
+
import { ZendeskCaseTag } from "../enums/ZendeskCaseTagEnum";
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Alerta interna sobre un usuario. Se publica en la cola de alertamiento y zendesk-business
|
|
@@ -45,4 +46,13 @@ export class ZendeskInternalAlertRequest {
|
|
|
45
46
|
@IsEnum(AlertClassification)
|
|
46
47
|
@IsOptional()
|
|
47
48
|
classification?: AlertClassification;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Tags de caso que se agregan al ticket (ver `ZendeskCaseTag`). Se acumulan: al anexar a un
|
|
52
|
+
* ticket existente se suman a los que ya tiene. No cambian a qué hilo va la nota.
|
|
53
|
+
*/
|
|
54
|
+
@IsArray()
|
|
55
|
+
@IsEnum(ZendeskCaseTag, { each: true })
|
|
56
|
+
@IsOptional()
|
|
57
|
+
caseTags?: ZendeskCaseTag[];
|
|
48
58
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag de caso en el ticket interno de Zendesk: qué tipo de problema tiene el cliente, para que
|
|
3
|
+
* CS lo vea en su vista. Lo pone el Lambda que manda la alerta.
|
|
4
|
+
*
|
|
5
|
+
* Distinto de `InternalAlertChannel`: el canal decide a qué hilo va la nota; el tag de caso sólo
|
|
6
|
+
* se agrega al ticket y se ACUMULA (un cliente puede pasar por varios casos). No participa en la
|
|
7
|
+
* búsqueda del hilo.
|
|
8
|
+
*
|
|
9
|
+
* En minúsculas: es como Zendesk guarda los tags y como se configuran las vistas.
|
|
10
|
+
* Fuente: accountsresolver-validacion-corregido.csv, columna "NUEVO TAG zendesk".
|
|
11
|
+
*/
|
|
12
|
+
export enum ZendeskCaseTag {
|
|
13
|
+
IT_PROBLEM = 'it_problem',
|
|
14
|
+
COMPLIANCE_PROBLEM = 'compliance_problem',
|
|
15
|
+
CUSTOMER_CARE_OOW = 'customer_care_oow',
|
|
16
|
+
CUSTOMER_CARE_FIX_PHOTO = 'customer_care_fix_photo',
|
|
17
|
+
CUSTOMER_CARE_PREVENTIVE = 'customer_care_preventive',
|
|
18
|
+
CUSTOMER_CARE_FIX_DOB = 'customer_care_fix_dob',
|
|
19
|
+
CUSTOMER_CARE_FIX_ADDRESS_USA = 'customer_care_fix_address_usa',
|
|
20
|
+
CUSTOMER_CARE_FIX_ADDRESS_MX = 'customer_care_fix_address_mx'
|
|
21
|
+
}
|
package/src/helpdesk/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './dtos/HelpdeskCreateTicketRequest';
|
|
|
4
4
|
// Alertamiento interno (cola de Zendesk)
|
|
5
5
|
export * from './dtos/ZendeskInternalAlertRequest';
|
|
6
6
|
export * from './enums/InternalAlertChannelEnum';
|
|
7
|
+
export * from './enums/ZendeskCaseTagEnum';
|
|
7
8
|
export * from './enums/AlertClassificationEnum';
|
|
8
9
|
export * from './enums/ZendeskAlertKindEnum';
|
|
9
10
|
export * from './interfaces/IZendeskAlertMessage';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expose } from 'class-transformer';
|
|
2
|
-
import { IsEnum, IsInt, IsOptional, IsString, Matches, Min } from 'class-validator';
|
|
2
|
+
import { IsEnum, IsInt, IsOptional, IsString, Matches, Min, ValidateIf } from 'class-validator';
|
|
3
3
|
import { regexIso8601 } from '../../helpers/constans/regex';
|
|
4
4
|
import { SalePaymentMethodEnum } from '../enums/SalePaymentMethodEnum';
|
|
5
5
|
import { IsSalePaymentList } from '../validators/IsSalePaymentList';
|
|
@@ -7,10 +7,11 @@ import { SalePayment } from './SalePayment';
|
|
|
7
7
|
|
|
8
8
|
/** Registro del pago de contado dentro de la sesión (`WizardSession.payment`). SureKeep Fase 2 — pista Retail. */
|
|
9
9
|
export class WizardPayment {
|
|
10
|
-
/** @deprecated Usa `payments`; con varios pagos lleva el método del primero. */
|
|
10
|
+
/** @deprecated Usa `payments`; con varios pagos lleva el método del primero. `null` en un cobro de $0. */
|
|
11
11
|
@Expose()
|
|
12
|
+
@ValidateIf((o: { method?: unknown }) => o.method != null)
|
|
12
13
|
@IsEnum(SalePaymentMethodEnum)
|
|
13
|
-
method!: SalePaymentMethodEnum;
|
|
14
|
+
method!: SalePaymentMethodEnum | null;
|
|
14
15
|
|
|
15
16
|
@Expose()
|
|
16
17
|
@IsInt()
|
|
@@ -23,11 +24,11 @@ export class WizardPayment {
|
|
|
23
24
|
@IsString()
|
|
24
25
|
detail?: string;
|
|
25
26
|
|
|
26
|
-
/** Pagos del cobro (1 a 3); ausente en sesiones anteriores al campo. */
|
|
27
|
+
/** Pagos del cobro (1 a 3); `null` en un cobro de $0, ausente en sesiones anteriores al campo. */
|
|
27
28
|
@Expose()
|
|
28
29
|
@IsOptional()
|
|
29
30
|
@IsSalePaymentList()
|
|
30
|
-
payments?: SalePayment[];
|
|
31
|
+
payments?: SalePayment[] | null;
|
|
31
32
|
|
|
32
33
|
@Expose()
|
|
33
34
|
@IsString()
|
|
@@ -15,9 +15,9 @@ import { IsSalePaymentList } from '../../validators/IsSalePaymentList';
|
|
|
15
15
|
* SureKeep Fase 2 — pista SOFOM.
|
|
16
16
|
*/
|
|
17
17
|
export class DownPaymentRequest {
|
|
18
|
-
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene. */
|
|
18
|
+
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene y el monto es mayor a cero. */
|
|
19
19
|
@Expose()
|
|
20
|
-
@ValidateIf((o: { payments?: unknown; method?: unknown }) => o.payments == null
|
|
20
|
+
@ValidateIf((o: { payments?: unknown; method?: unknown; amountCents?: unknown }) => o.method !== undefined || (o.payments == null && o.amountCents !== 0))
|
|
21
21
|
@IsEnum(SalePaymentMethodEnum)
|
|
22
22
|
method?: SalePaymentMethodEnum;
|
|
23
23
|
|
|
@@ -11,9 +11,9 @@ import { IsSalePaymentList } from '../../validators/IsSalePaymentList';
|
|
|
11
11
|
* (D11) ANTES del registro; el folio no viaja en el body (lo posee el server). SureKeep Fase 2 — pista Retail.
|
|
12
12
|
*/
|
|
13
13
|
export class RegisterPaymentRequest {
|
|
14
|
-
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene. */
|
|
14
|
+
/** @deprecated Usa `payments`; obligatorio solo si `payments` no viene y el monto es mayor a cero. */
|
|
15
15
|
@Expose()
|
|
16
|
-
@ValidateIf((o: { payments?: unknown; method?: unknown }) => o.payments == null
|
|
16
|
+
@ValidateIf((o: { payments?: unknown; method?: unknown; amountCents?: unknown }) => o.method !== undefined || (o.payments == null && o.amountCents !== 0))
|
|
17
17
|
@IsEnum(SalePaymentMethodEnum)
|
|
18
18
|
method?: SalePaymentMethodEnum;
|
|
19
19
|
|