@fiado/type-kit 3.317.1 → 3.319.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/retailCustomer/welcomeBonusRequests.test.ts +71 -0
- package/_test_/unit/retailWizard/wizardBlocked.test.ts +33 -0
- package/bin/common/decorators/Trim.d.ts +5 -0
- package/bin/common/decorators/Trim.js +10 -0
- package/bin/common/index.d.ts +1 -0
- package/bin/common/index.js +2 -0
- package/bin/retailCustomer/dtos/requests/WelcomeAccreditationRequest.d.ts +1 -3
- package/bin/retailCustomer/dtos/requests/WelcomeAccreditationRequest.js +11 -14
- package/bin/retailCustomer/dtos/requests/WelcomeAccreditationResultRequest.d.ts +8 -0
- package/bin/retailCustomer/dtos/requests/WelcomeAccreditationResultRequest.js +29 -6
- package/bin/retailCustomer/dtos/responses/WelcomeBonusResponse.d.ts +4 -0
- package/bin/retailWizard/dtos/WizardBlocked.d.ts +32 -0
- package/bin/retailWizard/dtos/WizardSession.d.ts +8 -0
- package/bin/retailWizard/dtos/responses/ActiveSessionByPhoneResponse.d.ts +6 -0
- package/bin/retailWizard/enums/BlockedCategoryEnum.d.ts +15 -0
- package/bin/retailWizard/enums/BlockedCategoryEnum.js +19 -0
- package/bin/retailWizard/enums/BlockedReasonEnum.d.ts +10 -0
- package/bin/retailWizard/enums/BlockedReasonEnum.js +14 -0
- package/bin/retailWizard/enums/ResumeReasonEnum.d.ts +3 -1
- package/bin/retailWizard/enums/ResumeReasonEnum.js +2 -0
- package/bin/retailWizard/index.d.ts +3 -0
- package/bin/retailWizard/index.js +3 -0
- package/package.json +1 -1
- package/src/common/decorators/Trim.ts +8 -0
- package/src/common/index.ts +3 -0
- package/src/retailCustomer/dtos/requests/WelcomeAccreditationRequest.ts +12 -17
- package/src/retailCustomer/dtos/requests/WelcomeAccreditationResultRequest.ts +32 -9
- package/src/retailCustomer/dtos/responses/WelcomeBonusResponse.ts +4 -0
- package/src/retailWizard/dtos/WizardBlocked.ts +34 -0
- package/src/retailWizard/dtos/WizardSession.ts +8 -0
- package/src/retailWizard/dtos/responses/ActiveSessionByPhoneResponse.ts +6 -0
- package/src/retailWizard/enums/BlockedCategoryEnum.ts +15 -0
- package/src/retailWizard/enums/BlockedReasonEnum.ts +10 -0
- package/src/retailWizard/enums/ResumeReasonEnum.ts +2 -0
- package/src/retailWizard/index.ts +3 -0
- package/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +0 -11
- package/bin/benefitCenter/enums/BenefitFlowEnum.js +0 -15
- package/bin/identity/enums/SelfieSourceEnum.d.ts +0 -10
- package/bin/identity/enums/SelfieSourceEnum.js +0 -14
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.d.ts +0 -11
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.js +0 -46
- package/bin/loanCredit/enums/ClientLevelEnum.d.ts +0 -11
- package/bin/loanCredit/enums/ClientLevelEnum.js +0 -15
- package/bin/retailCards/dtos/requests/AssignCardRequest.d.ts +0 -6
- package/bin/retailCards/dtos/requests/AssignCardRequest.js +0 -30
- package/bin/retailCards/dtos/requests/CancelCardRequest.d.ts +0 -5
- package/bin/retailCards/dtos/requests/CancelCardRequest.js +0 -22
- package/bin/retailCards/dtos/responses/RetailCardResponse.d.ts +0 -12
- package/bin/retailCards/enums/CardBatchStatusEnum.d.ts +0 -17
- package/bin/retailCards/enums/CardBatchStatusEnum.js +0 -21
- package/bin/retailCards/enums/CardCancelReasonEnum.d.ts +0 -13
- package/bin/retailCards/enums/CardCancelReasonEnum.js +0 -17
- package/bin/retailCards/enums/RetailCardStatusEnum.d.ts +0 -13
- package/bin/retailCards/enums/RetailCardStatusEnum.js +0 -17
- package/bin/retailCards/events/RetailCardAssignedV1.d.ts +0 -10
- package/bin/retailCards/events/RetailCardAssignedV1.js +0 -2
- package/bin/retailCards/events/RetailCardCancelledV1.d.ts +0 -9
- package/bin/retailCards/events/RetailCardCancelledV1.js +0 -2
- package/bin/retailCards/events/RetailCardReleasedV1.d.ts +0 -7
- package/bin/retailCards/events/RetailCardReleasedV1.js +0 -2
- package/bin/retailWizard/dtos/requests/CompleteSaleRequest.d.ts +0 -9
- package/bin/retailWizard/dtos/requests/CompleteSaleRequest.js +0 -29
- package/bin/retailWizard/dtos/requests/MarkPcfCardDeliveredRequest.d.ts +0 -4
- package/bin/retailWizard/dtos/requests/MarkPcfCardDeliveredRequest.js +0 -23
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +0 -6
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +0 -31
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +0 -7
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +0 -6
- package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +0 -11
- package/bin/walletFunding/dtos/CancelFundingRequest.js +0 -33
- package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +0 -14
- package/bin/walletFunding/dtos/CancelFundingResponse.js +0 -12
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +0 -3
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +0 -21
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +0 -7
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +0 -6
- /package/bin/{retailCards/dtos/responses/RetailCardResponse.js → retailWizard/dtos/WizardBlocked.js} +0 -0
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
import { Expose
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
2
|
import { IsEnum, IsInt, IsNotEmpty, IsOptional, IsPositive, IsString } from 'class-validator';
|
|
3
|
+
import { Trim } from '../../../common/decorators/Trim';
|
|
3
4
|
import { WelcomeBonusAmountSourceEnum } from '../../enums/WelcomeBonusAmountSourceEnum';
|
|
4
5
|
|
|
5
|
-
/** Recorta los strings del borde: un valor con espacios ensucia claves y cortes de conciliación. */
|
|
6
|
-
const trim = (): PropertyDecorator =>
|
|
7
|
-
Transform(({ value }) => (typeof value === 'string' ? value.trim() : value));
|
|
8
|
-
|
|
9
6
|
/**
|
|
10
7
|
* Datos de la venta que acompañan la reserva del bono de bienvenida (D33):
|
|
11
8
|
* `POST /private/customers/:id/welcome-accreditation`. SureKeep Fase 2 — pista Retail.
|
|
12
9
|
*
|
|
13
|
-
*
|
|
14
|
-
* durante la ventana el wizard viejo sigue llamando sin body: el asiento nace incompleto y se acredita
|
|
15
|
-
* igual. Exigirlos convertiría esa ventana en un 400 que deja al cliente sin bono.
|
|
10
|
+
* Todos los campos son opcionales: un caller que no los manda abre el asiento igual, incompleto.
|
|
16
11
|
*/
|
|
17
12
|
export class WelcomeAccreditationRequest {
|
|
18
13
|
/** Tienda donde se dio el bono — es la partición del asiento. */
|
|
19
14
|
@Expose()
|
|
20
15
|
@IsOptional()
|
|
21
|
-
@
|
|
16
|
+
@Trim()
|
|
22
17
|
@IsString()
|
|
23
18
|
@IsNotEmpty()
|
|
24
19
|
storeId?: string;
|
|
25
20
|
|
|
26
21
|
@Expose()
|
|
27
22
|
@IsOptional()
|
|
28
|
-
@
|
|
23
|
+
@Trim()
|
|
29
24
|
@IsString()
|
|
30
25
|
@IsNotEmpty()
|
|
31
26
|
retailerId?: string;
|
|
@@ -33,14 +28,14 @@ export class WelcomeAccreditationRequest {
|
|
|
33
28
|
/** Vendedor que cerró la venta. */
|
|
34
29
|
@Expose()
|
|
35
30
|
@IsOptional()
|
|
36
|
-
@
|
|
31
|
+
@Trim()
|
|
37
32
|
@IsString()
|
|
38
33
|
@IsNotEmpty()
|
|
39
34
|
sellerRetailUserId?: string;
|
|
40
35
|
|
|
41
36
|
@Expose()
|
|
42
37
|
@IsOptional()
|
|
43
|
-
@
|
|
38
|
+
@Trim()
|
|
44
39
|
@IsString()
|
|
45
40
|
@IsNotEmpty()
|
|
46
41
|
saleId?: string;
|
|
@@ -48,14 +43,14 @@ export class WelcomeAccreditationRequest {
|
|
|
48
43
|
/** Folio de la venta, tal como lo ve el vendedor en el ticket. */
|
|
49
44
|
@Expose()
|
|
50
45
|
@IsOptional()
|
|
51
|
-
@
|
|
46
|
+
@Trim()
|
|
52
47
|
@IsString()
|
|
53
48
|
@IsNotEmpty()
|
|
54
49
|
folio?: string;
|
|
55
50
|
|
|
56
51
|
@Expose()
|
|
57
52
|
@IsOptional()
|
|
58
|
-
@
|
|
53
|
+
@Trim()
|
|
59
54
|
@IsString()
|
|
60
55
|
@IsNotEmpty()
|
|
61
56
|
wizardSessionId?: string;
|
|
@@ -69,7 +64,7 @@ export class WelcomeAccreditationRequest {
|
|
|
69
64
|
/** ISO-4217. Ausente ⇒ el server asienta `MXN`. */
|
|
70
65
|
@Expose()
|
|
71
66
|
@IsOptional()
|
|
72
|
-
@
|
|
67
|
+
@Trim()
|
|
73
68
|
@IsString()
|
|
74
69
|
@IsNotEmpty()
|
|
75
70
|
currency?: string;
|
|
@@ -82,14 +77,14 @@ export class WelcomeAccreditationRequest {
|
|
|
82
77
|
/** Clave con la que el caller acredita en el processor — ata el asiento al movimiento de plata. */
|
|
83
78
|
@Expose()
|
|
84
79
|
@IsOptional()
|
|
85
|
-
@
|
|
80
|
+
@Trim()
|
|
86
81
|
@IsString()
|
|
87
82
|
@IsNotEmpty()
|
|
88
83
|
idempotencyKey?: string;
|
|
89
84
|
|
|
90
85
|
@Expose()
|
|
91
86
|
@IsOptional()
|
|
92
|
-
@
|
|
87
|
+
@Trim()
|
|
93
88
|
@IsString()
|
|
94
89
|
@IsNotEmpty()
|
|
95
90
|
providerName?: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Expose
|
|
2
|
-
import { IsIn, IsNotEmpty, IsOptional, IsString, ValidateIf } from 'class-validator';
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsIn, IsNotEmpty, IsOptional, IsString, MaxLength, ValidateIf } from 'class-validator';
|
|
3
|
+
import { Trim } from '../../../common/decorators/Trim';
|
|
3
4
|
import { WelcomeBonusStatusEnum } from '../../enums/WelcomeBonusStatusEnum';
|
|
4
5
|
|
|
5
|
-
/**
|
|
6
|
-
const
|
|
7
|
-
Transform(({ value }) => (typeof value === 'string' ? value.trim() : value));
|
|
6
|
+
/** Tope de los textos libres que el caller escribe en el asiento. */
|
|
7
|
+
const FREE_TEXT_MAX_LENGTH = 256;
|
|
8
8
|
|
|
9
9
|
/** Resultados que el caller puede asentar. `PENDING` lo escribe el server al reservar, no el caller. */
|
|
10
10
|
const RESULT_STATUSES = [
|
|
@@ -26,11 +26,14 @@ const STATUSES_REQUIRING_REASON: WelcomeBonusStatusEnum[] = [
|
|
|
26
26
|
* `FAILED` libera el candado `welcomeAccredited` para que la venta se reintente. `UNVERIFIED` lo deja
|
|
27
27
|
* tomado: el `walletFundingCredit` del processor no deduplica, así que liberar tras un timeout podría
|
|
28
28
|
* acreditar plata real dos veces.
|
|
29
|
+
*
|
|
30
|
+
* Un asiento `UNVERIFIED` se cierra después con `ACCREDITED` o `FAILED` mandando además `reconciledBy`
|
|
31
|
+
* y `reconciliationReason` — ese par es lo que marca el cierre como reconciliación.
|
|
29
32
|
*/
|
|
30
33
|
export class WelcomeAccreditationResultRequest {
|
|
31
34
|
/** Referencia opaca del asiento, tal como la devolvió la reserva. */
|
|
32
35
|
@Expose()
|
|
33
|
-
@
|
|
36
|
+
@Trim()
|
|
34
37
|
@IsString()
|
|
35
38
|
@IsNotEmpty()
|
|
36
39
|
bonusKey!: string;
|
|
@@ -41,22 +44,42 @@ export class WelcomeAccreditationResultRequest {
|
|
|
41
44
|
|
|
42
45
|
@Expose()
|
|
43
46
|
@ValidateIf((o: WelcomeAccreditationResultRequest) => o.status === WelcomeBonusStatusEnum.ACCREDITED)
|
|
44
|
-
@
|
|
47
|
+
@Trim()
|
|
45
48
|
@IsString()
|
|
46
49
|
@IsNotEmpty({ message: 'processorTransactionId es obligatorio cuando status es ACCREDITED' })
|
|
47
50
|
processorTransactionId?: string;
|
|
48
51
|
|
|
52
|
+
/** Motivo legible del fallo — un resumen, NO el payload crudo del processor (el libro va sin PII). */
|
|
49
53
|
@Expose()
|
|
50
54
|
@ValidateIf((o: WelcomeAccreditationResultRequest) => STATUSES_REQUIRING_REASON.includes(o.status))
|
|
51
|
-
@
|
|
55
|
+
@Trim()
|
|
52
56
|
@IsString()
|
|
53
57
|
@IsNotEmpty({ message: 'failReason es obligatorio cuando status es FAILED o UNVERIFIED' })
|
|
58
|
+
@MaxLength(FREE_TEXT_MAX_LENGTH)
|
|
54
59
|
failReason?: string;
|
|
55
60
|
|
|
56
61
|
@Expose()
|
|
57
62
|
@IsOptional()
|
|
58
|
-
@
|
|
63
|
+
@Trim()
|
|
59
64
|
@IsString()
|
|
60
65
|
@IsNotEmpty()
|
|
61
66
|
providerName?: string;
|
|
67
|
+
|
|
68
|
+
/** Quién cierra a mano un asiento `UNVERIFIED`. Va junto con `reconciliationReason`. */
|
|
69
|
+
@Expose()
|
|
70
|
+
@ValidateIf((o: WelcomeAccreditationResultRequest) => o.reconciliationReason !== undefined)
|
|
71
|
+
@Trim()
|
|
72
|
+
@IsString()
|
|
73
|
+
@IsNotEmpty({ message: 'reconciledBy es obligatorio en un cierre de reconciliación' })
|
|
74
|
+
@MaxLength(FREE_TEXT_MAX_LENGTH)
|
|
75
|
+
reconciledBy?: string;
|
|
76
|
+
|
|
77
|
+
/** Por qué se cerró a mano — un resumen, NO el payload crudo del processor. */
|
|
78
|
+
@Expose()
|
|
79
|
+
@ValidateIf((o: WelcomeAccreditationResultRequest) => o.reconciledBy !== undefined)
|
|
80
|
+
@Trim()
|
|
81
|
+
@IsString()
|
|
82
|
+
@IsNotEmpty({ message: 'reconciliationReason es obligatorio en un cierre de reconciliación' })
|
|
83
|
+
@MaxLength(FREE_TEXT_MAX_LENGTH)
|
|
84
|
+
reconciliationReason?: string;
|
|
62
85
|
}
|
|
@@ -32,6 +32,10 @@ export interface WelcomeBonusResponse {
|
|
|
32
32
|
failReason: string | null;
|
|
33
33
|
requestedAt: string;
|
|
34
34
|
resolvedAt: string | null;
|
|
35
|
+
/** Instante del cierre de reconciliación. No nulo = el asiento se cerró a mano, no por el flujo. */
|
|
36
|
+
reconciledAt: string | null;
|
|
37
|
+
reconciledBy: string | null;
|
|
38
|
+
reconciliationReason: string | null;
|
|
35
39
|
processorTransactionId: string | null;
|
|
36
40
|
idempotencyKey: string | null;
|
|
37
41
|
providerName: string | null;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BlockedCategoryEnum } from '../enums/BlockedCategoryEnum';
|
|
2
|
+
import type { BlockedReasonEnum } from '../enums/BlockedReasonEnum';
|
|
3
|
+
import type { WizardStepEnum } from '../enums/WizardStepEnum';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* La venta detenida porque la cuenta PagoConFiado del comprador no está lista
|
|
7
|
+
* (`WizardSession.blocked`). Ausente o `null` = la venta va bien. SureKeep Fase 2 — pista Retail.
|
|
8
|
+
*/
|
|
9
|
+
export interface WizardBlocked {
|
|
10
|
+
reason: BlockedReasonEnum;
|
|
11
|
+
/** Quién resuelve. `null` durante la espera normal: todavía no hay bloqueo que categorizar. */
|
|
12
|
+
category: BlockedCategoryEnum | null;
|
|
13
|
+
/** Código del motivo que trae el diario del emisor. `null` mientras ese diario no se lee. */
|
|
14
|
+
code: string | null;
|
|
15
|
+
/** Motivo crudo escrito por el emisor, para soporte y admin. Nunca se le muestra al vendedor. */
|
|
16
|
+
detail: string | null;
|
|
17
|
+
/** Paso donde se trabó la venta. Hoy siempre `S02`, el único punto de corte por cuenta. */
|
|
18
|
+
atStep: WizardStepEnum;
|
|
19
|
+
/**
|
|
20
|
+
* Desde cuándo lleva trabada, ISO 8601. Es el «hace N días» de Prospectos, y es un campo propio
|
|
21
|
+
* porque el reintento va a mover `updatedAt` en cada vuelta.
|
|
22
|
+
*/
|
|
23
|
+
since: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Lo mínimo del bloqueo que necesita la ficha de Prospectos: la etiqueta y el «hace N días». Deja
|
|
28
|
+
* fuera `code` y `detail`, que son de soporte y admin.
|
|
29
|
+
*/
|
|
30
|
+
export interface WizardBlockedSummary {
|
|
31
|
+
category: BlockedCategoryEnum | null;
|
|
32
|
+
/** ISO 8601, copiado tal cual de `WizardBlocked.since`. */
|
|
33
|
+
since: string;
|
|
34
|
+
}
|
|
@@ -4,6 +4,7 @@ import type { FiadoPhoneStatusEnum } from '../enums/FiadoPhoneStatusEnum';
|
|
|
4
4
|
import type { PaymentMethodEnum } from '../enums/PaymentMethodEnum';
|
|
5
5
|
import type { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
|
|
6
6
|
import type { OccupationEnum } from '../enums/OccupationEnum';
|
|
7
|
+
import type { WizardBlocked } from './WizardBlocked';
|
|
7
8
|
import type { WizardConsents } from './WizardConsents';
|
|
8
9
|
import type { WizardLoan } from './WizardLoan';
|
|
9
10
|
import type { WizardPayment } from './WizardPayment';
|
|
@@ -96,6 +97,13 @@ export interface WizardSession {
|
|
|
96
97
|
pcfProvisioned: boolean;
|
|
97
98
|
accountOpened: boolean;
|
|
98
99
|
accountStatus: AccountStatus | null;
|
|
100
|
+
/**
|
|
101
|
+
* La venta está detenida esperando la cuenta. Es un campo y no un estado: `state` sigue `ACTIVE`,
|
|
102
|
+
* así el retorno, las mutaciones del paso 10 y los barridos de mantenimiento siguen corriendo.
|
|
103
|
+
*
|
|
104
|
+
* Opcional por lo mismo que `resumeOtpRequired`. Ausente o `null` = la venta va bien.
|
|
105
|
+
*/
|
|
106
|
+
blocked?: WizardBlocked | null;
|
|
99
107
|
reservedSku: string | null;
|
|
100
108
|
reservedImei: string | null;
|
|
101
109
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WizardStateEnum } from '../../enums/WizardStateEnum';
|
|
2
2
|
import type { WizardStepEnum } from '../../enums/WizardStepEnum';
|
|
3
|
+
import type { WizardBlockedSummary } from '../WizardBlocked';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* GET /wizard/sessions?phone=... — la venta en curso de un telefono, para la pestana «Wizard» de la
|
|
@@ -19,4 +20,9 @@ export interface ActiveSessionByPhoneResponse {
|
|
|
19
20
|
currentStep: WizardStepEnum | null;
|
|
20
21
|
/** Hoy siempre `ACTIVE`: la busqueda filtra por ese estado. `null` cuando `found` es `false`. */
|
|
21
22
|
state: WizardStateEnum | null;
|
|
23
|
+
/**
|
|
24
|
+
* El bloqueo de la venta, para pintar la etiqueta y el «hace N dias». `null` cuando la venta va
|
|
25
|
+
* bien o cuando `found` es `false`.
|
|
26
|
+
*/
|
|
27
|
+
blocked?: WizardBlockedSummary | null;
|
|
22
28
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quién resuelve el bloqueo de la venta, sin decir por qué. Es lo único del motivo que se muestra en
|
|
3
|
+
* la ficha de Prospectos. SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*/
|
|
5
|
+
export enum BlockedCategoryEnum {
|
|
6
|
+
/** Falta corregir información del expediente; lo resuelve un agente de Fiado en su backoffice. */
|
|
7
|
+
CUSTOMER_RECORD = 'CUSTOMER_RECORD',
|
|
8
|
+
/**
|
|
9
|
+
* El caso lo está mirando alguien. No es exclusiva de listas de cumplimiento: verla NO afirma que
|
|
10
|
+
* hubo coincidencia, y avisar de una coincidencia es delito.
|
|
11
|
+
*/
|
|
12
|
+
UNDER_REVIEW = 'UNDER_REVIEW',
|
|
13
|
+
/** Falla pasajera del proveedor o de la lectura; cede sola cuando el servicio vuelve. */
|
|
14
|
+
TEMPORARY = 'TEMPORARY',
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Por qué la venta está detenida esperando la cuenta PagoConFiado del comprador.
|
|
3
|
+
* SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*/
|
|
5
|
+
export enum BlockedReasonEnum {
|
|
6
|
+
/** La cuenta se está abriendo: espera normal, mediana de 13 segundos. */
|
|
7
|
+
ACCOUNT_OPENING = 'ACCOUNT_OPENING',
|
|
8
|
+
/** La cuenta no se pudo abrir: la venta se detiene hasta que se resuelva fuera del wizard. */
|
|
9
|
+
ACCOUNT_BLOCKED = 'ACCOUNT_BLOCKED',
|
|
10
|
+
}
|
|
@@ -14,4 +14,6 @@ export enum ResumeReasonEnum {
|
|
|
14
14
|
PROFILE_PENDING = 'PROFILE_PENDING',
|
|
15
15
|
/** El expediente está completo y la cuenta todavía no abre. */
|
|
16
16
|
ACCOUNT_PENDING = 'ACCOUNT_PENDING',
|
|
17
|
+
/** La apertura no prosperó: la venta está detenida hasta que alguien más la resuelva. */
|
|
18
|
+
ACCOUNT_BLOCKED = 'ACCOUNT_BLOCKED',
|
|
17
19
|
}
|
|
@@ -22,6 +22,8 @@ export * from './enums/AccountStepStatusEnum';
|
|
|
22
22
|
export * from './enums/ResumeReasonEnum';
|
|
23
23
|
export * from './enums/AppOnboardingStepEnum';
|
|
24
24
|
export * from './enums/AppOnboardingStepStatusEnum';
|
|
25
|
+
export * from './enums/BlockedReasonEnum';
|
|
26
|
+
export * from './enums/BlockedCategoryEnum';
|
|
25
27
|
|
|
26
28
|
// DTOs anidados
|
|
27
29
|
export * from './dtos/WizardConsents';
|
|
@@ -36,6 +38,7 @@ export * from './dtos/WizardCreditSummary';
|
|
|
36
38
|
export * from './dtos/AccountStep';
|
|
37
39
|
export * from './dtos/AppOnboardingStep';
|
|
38
40
|
export * from './dtos/WizardResumeTarget';
|
|
41
|
+
export * from './dtos/WizardBlocked';
|
|
39
42
|
|
|
40
43
|
// Entidades principales (shapes de estado/persistencia — planas)
|
|
41
44
|
export * from './dtos/WizardSession';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare enum BenefitFlowEnum {
|
|
2
|
-
TOPUPS = "TOPUPS",
|
|
3
|
-
BILL_PAYMENT = "BILL_PAYMENT",
|
|
4
|
-
CREDIT = "CREDIT",
|
|
5
|
-
INSURANCE = "INSURANCE",
|
|
6
|
-
DONATION = "DONATION",
|
|
7
|
-
PHARMACY = "PHARMACY",
|
|
8
|
-
REMITTANCE = "REMITTANCE",
|
|
9
|
-
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
10
|
-
WALLET_FUNDING = "WALLET_FUNDING"
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BenefitFlowEnum = void 0;
|
|
4
|
-
var BenefitFlowEnum;
|
|
5
|
-
(function (BenefitFlowEnum) {
|
|
6
|
-
BenefitFlowEnum["TOPUPS"] = "TOPUPS";
|
|
7
|
-
BenefitFlowEnum["BILL_PAYMENT"] = "BILL_PAYMENT";
|
|
8
|
-
BenefitFlowEnum["CREDIT"] = "CREDIT";
|
|
9
|
-
BenefitFlowEnum["INSURANCE"] = "INSURANCE";
|
|
10
|
-
BenefitFlowEnum["DONATION"] = "DONATION";
|
|
11
|
-
BenefitFlowEnum["PHARMACY"] = "PHARMACY";
|
|
12
|
-
BenefitFlowEnum["REMITTANCE"] = "REMITTANCE";
|
|
13
|
-
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
14
|
-
BenefitFlowEnum["WALLET_FUNDING"] = "WALLET_FUNDING";
|
|
15
|
-
})(BenefitFlowEnum || (exports.BenefitFlowEnum = BenefitFlowEnum = {}));
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
|
|
3
|
-
* Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
|
|
4
|
-
*/
|
|
5
|
-
export declare enum SelfieSourceEnum {
|
|
6
|
-
/** Matcheó el verificationId de la verificación vigente en People. */
|
|
7
|
-
VERIFICATION = "VERIFICATION",
|
|
8
|
-
/** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
|
|
9
|
-
LATEST = "LATEST"
|
|
10
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SelfieSourceEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
|
|
6
|
-
* Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
|
|
7
|
-
*/
|
|
8
|
-
var SelfieSourceEnum;
|
|
9
|
-
(function (SelfieSourceEnum) {
|
|
10
|
-
/** Matcheó el verificationId de la verificación vigente en People. */
|
|
11
|
-
SelfieSourceEnum["VERIFICATION"] = "VERIFICATION";
|
|
12
|
-
/** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
|
|
13
|
-
SelfieSourceEnum["LATEST"] = "LATEST";
|
|
14
|
-
})(SelfieSourceEnum || (exports.SelfieSourceEnum = SelfieSourceEnum = {}));
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
|
|
3
|
-
* cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
|
|
4
|
-
* (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
|
|
5
|
-
*/
|
|
6
|
-
export declare class UpdateActivationChecklistRequest {
|
|
7
|
-
downPayment?: boolean;
|
|
8
|
-
contractSigned?: boolean;
|
|
9
|
-
imeiEnrolled?: boolean;
|
|
10
|
-
lockVerified?: boolean;
|
|
11
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.UpdateActivationChecklistRequest = void 0;
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
14
|
-
const class_validator_1 = require("class-validator");
|
|
15
|
-
/**
|
|
16
|
-
* Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
|
|
17
|
-
* cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
|
|
18
|
-
* (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
|
|
19
|
-
*/
|
|
20
|
-
class UpdateActivationChecklistRequest {
|
|
21
|
-
}
|
|
22
|
-
exports.UpdateActivationChecklistRequest = UpdateActivationChecklistRequest;
|
|
23
|
-
__decorate([
|
|
24
|
-
(0, class_transformer_1.Expose)(),
|
|
25
|
-
(0, class_validator_1.IsOptional)(),
|
|
26
|
-
(0, class_validator_1.IsBoolean)(),
|
|
27
|
-
__metadata("design:type", Boolean)
|
|
28
|
-
], UpdateActivationChecklistRequest.prototype, "downPayment", void 0);
|
|
29
|
-
__decorate([
|
|
30
|
-
(0, class_transformer_1.Expose)(),
|
|
31
|
-
(0, class_validator_1.IsOptional)(),
|
|
32
|
-
(0, class_validator_1.IsBoolean)(),
|
|
33
|
-
__metadata("design:type", Boolean)
|
|
34
|
-
], UpdateActivationChecklistRequest.prototype, "contractSigned", void 0);
|
|
35
|
-
__decorate([
|
|
36
|
-
(0, class_transformer_1.Expose)(),
|
|
37
|
-
(0, class_validator_1.IsOptional)(),
|
|
38
|
-
(0, class_validator_1.IsBoolean)(),
|
|
39
|
-
__metadata("design:type", Boolean)
|
|
40
|
-
], UpdateActivationChecklistRequest.prototype, "imeiEnrolled", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, class_transformer_1.Expose)(),
|
|
43
|
-
(0, class_validator_1.IsOptional)(),
|
|
44
|
-
(0, class_validator_1.IsBoolean)(),
|
|
45
|
-
__metadata("design:type", Boolean)
|
|
46
|
-
], UpdateActivationChecklistRequest.prototype, "lockVerified", void 0);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
|
|
3
|
-
* Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
|
|
4
|
-
* un CLIENTE nunca es `ALL`.
|
|
5
|
-
* @enum {string}
|
|
6
|
-
*/
|
|
7
|
-
export declare enum ClientLevelEnum {
|
|
8
|
-
BRONZE = "BRONZE",
|
|
9
|
-
SILVER = "SILVER",
|
|
10
|
-
GOLD = "GOLD"
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClientLevelEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
|
|
6
|
-
* Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
|
|
7
|
-
* un CLIENTE nunca es `ALL`.
|
|
8
|
-
* @enum {string}
|
|
9
|
-
*/
|
|
10
|
-
var ClientLevelEnum;
|
|
11
|
-
(function (ClientLevelEnum) {
|
|
12
|
-
ClientLevelEnum["BRONZE"] = "BRONZE";
|
|
13
|
-
ClientLevelEnum["SILVER"] = "SILVER";
|
|
14
|
-
ClientLevelEnum["GOLD"] = "GOLD";
|
|
15
|
-
})(ClientLevelEnum || (exports.ClientLevelEnum = ClientLevelEnum = {}));
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.AssignCardRequest = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
/** Body de la asignación de una tarjeta física a un cliente. */
|
|
15
|
-
class AssignCardRequest {
|
|
16
|
-
}
|
|
17
|
-
exports.AssignCardRequest = AssignCardRequest;
|
|
18
|
-
__decorate([
|
|
19
|
-
(0, class_validator_1.IsString)(),
|
|
20
|
-
__metadata("design:type", String)
|
|
21
|
-
], AssignCardRequest.prototype, "assignedToCustomerId", void 0);
|
|
22
|
-
__decorate([
|
|
23
|
-
(0, class_validator_1.IsString)(),
|
|
24
|
-
__metadata("design:type", String)
|
|
25
|
-
], AssignCardRequest.prototype, "assignedByUserId", void 0);
|
|
26
|
-
__decorate([
|
|
27
|
-
(0, class_validator_1.IsOptional)(),
|
|
28
|
-
(0, class_validator_1.IsString)(),
|
|
29
|
-
__metadata("design:type", String)
|
|
30
|
-
], AssignCardRequest.prototype, "creditId", void 0);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CancelCardRequest = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
const CardCancelReasonEnum_1 = require("../../enums/CardCancelReasonEnum");
|
|
15
|
-
/** Body de la cancelación (anulación) de una tarjeta física. */
|
|
16
|
-
class CancelCardRequest {
|
|
17
|
-
}
|
|
18
|
-
exports.CancelCardRequest = CancelCardRequest;
|
|
19
|
-
__decorate([
|
|
20
|
-
(0, class_validator_1.IsEnum)(CardCancelReasonEnum_1.CardCancelReasonEnum),
|
|
21
|
-
__metadata("design:type", String)
|
|
22
|
-
], CancelCardRequest.prototype, "reason", void 0);
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { RetailCardStatusEnum } from '../../enums/RetailCardStatusEnum';
|
|
2
|
-
/** Representación de una tarjeta física hacia el cliente. */
|
|
3
|
-
export interface RetailCardResponse {
|
|
4
|
-
cardNumber: string;
|
|
5
|
-
retailerId: string;
|
|
6
|
-
batchId: string;
|
|
7
|
-
storeId: string;
|
|
8
|
-
status: RetailCardStatusEnum;
|
|
9
|
-
assignedToCustomerId: string | null;
|
|
10
|
-
assignedAt: string | null;
|
|
11
|
-
assignedByUserId: string | null;
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Estado de un lote de tarjetas.
|
|
3
|
-
* @enum {string}
|
|
4
|
-
*
|
|
5
|
-
* @property {string} RECEIVING - Transitorio, carga en curso (DEC-004/DEC-008).
|
|
6
|
-
* @property {string} RECEIVED - Carga completada, lote atado a una tienda (happy-path F1).
|
|
7
|
-
* @property {string} FAILED - Terminal, la carga del lote falló (DEC-004/DEC-008).
|
|
8
|
-
* @property {string} DISTRIBUTED - Reservado F1 — lote centralizado repartido a varias tiendas (TD-008).
|
|
9
|
-
* @property {string} CLOSED - Reservado F1 — cierre manual del lote (TD-008).
|
|
10
|
-
*/
|
|
11
|
-
export declare enum CardBatchStatusEnum {
|
|
12
|
-
RECEIVING = "RECEIVING",
|
|
13
|
-
RECEIVED = "RECEIVED",
|
|
14
|
-
FAILED = "FAILED",
|
|
15
|
-
DISTRIBUTED = "DISTRIBUTED",
|
|
16
|
-
CLOSED = "CLOSED"
|
|
17
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CardBatchStatusEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Estado de un lote de tarjetas.
|
|
6
|
-
* @enum {string}
|
|
7
|
-
*
|
|
8
|
-
* @property {string} RECEIVING - Transitorio, carga en curso (DEC-004/DEC-008).
|
|
9
|
-
* @property {string} RECEIVED - Carga completada, lote atado a una tienda (happy-path F1).
|
|
10
|
-
* @property {string} FAILED - Terminal, la carga del lote falló (DEC-004/DEC-008).
|
|
11
|
-
* @property {string} DISTRIBUTED - Reservado F1 — lote centralizado repartido a varias tiendas (TD-008).
|
|
12
|
-
* @property {string} CLOSED - Reservado F1 — cierre manual del lote (TD-008).
|
|
13
|
-
*/
|
|
14
|
-
var CardBatchStatusEnum;
|
|
15
|
-
(function (CardBatchStatusEnum) {
|
|
16
|
-
CardBatchStatusEnum["RECEIVING"] = "RECEIVING";
|
|
17
|
-
CardBatchStatusEnum["RECEIVED"] = "RECEIVED";
|
|
18
|
-
CardBatchStatusEnum["FAILED"] = "FAILED";
|
|
19
|
-
CardBatchStatusEnum["DISTRIBUTED"] = "DISTRIBUTED";
|
|
20
|
-
CardBatchStatusEnum["CLOSED"] = "CLOSED";
|
|
21
|
-
})(CardBatchStatusEnum || (exports.CardBatchStatusEnum = CardBatchStatusEnum = {}));
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Motivo de cancelación de una tarjeta física.
|
|
3
|
-
* @enum {string}
|
|
4
|
-
*
|
|
5
|
-
* @property {string} PLASTIC_DAMAGED - Plástico dañado.
|
|
6
|
-
* @property {string} LOST - Tarjeta perdida.
|
|
7
|
-
* @property {string} THEFT_REPORTED - Robo reportado.
|
|
8
|
-
*/
|
|
9
|
-
export declare enum CardCancelReasonEnum {
|
|
10
|
-
PLASTIC_DAMAGED = "PLASTIC_DAMAGED",
|
|
11
|
-
LOST = "LOST",
|
|
12
|
-
THEFT_REPORTED = "THEFT_REPORTED"
|
|
13
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CardCancelReasonEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Motivo de cancelación de una tarjeta física.
|
|
6
|
-
* @enum {string}
|
|
7
|
-
*
|
|
8
|
-
* @property {string} PLASTIC_DAMAGED - Plástico dañado.
|
|
9
|
-
* @property {string} LOST - Tarjeta perdida.
|
|
10
|
-
* @property {string} THEFT_REPORTED - Robo reportado.
|
|
11
|
-
*/
|
|
12
|
-
var CardCancelReasonEnum;
|
|
13
|
-
(function (CardCancelReasonEnum) {
|
|
14
|
-
CardCancelReasonEnum["PLASTIC_DAMAGED"] = "PLASTIC_DAMAGED";
|
|
15
|
-
CardCancelReasonEnum["LOST"] = "LOST";
|
|
16
|
-
CardCancelReasonEnum["THEFT_REPORTED"] = "THEFT_REPORTED";
|
|
17
|
-
})(CardCancelReasonEnum || (exports.CardCancelReasonEnum = CardCancelReasonEnum = {}));
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Estado de una tarjeta física individual.
|
|
3
|
-
* @enum {string}
|
|
4
|
-
*
|
|
5
|
-
* @property {string} AVAILABLE - Cargada en stock, disponible para asignar.
|
|
6
|
-
* @property {string} ASSIGNED - Asignada a un cliente.
|
|
7
|
-
* @property {string} CANCELLED - Anulada (plástico dañado, pérdida o robo). Estado terminal.
|
|
8
|
-
*/
|
|
9
|
-
export declare enum RetailCardStatusEnum {
|
|
10
|
-
AVAILABLE = "AVAILABLE",
|
|
11
|
-
ASSIGNED = "ASSIGNED",
|
|
12
|
-
CANCELLED = "CANCELLED"
|
|
13
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RetailCardStatusEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Estado de una tarjeta física individual.
|
|
6
|
-
* @enum {string}
|
|
7
|
-
*
|
|
8
|
-
* @property {string} AVAILABLE - Cargada en stock, disponible para asignar.
|
|
9
|
-
* @property {string} ASSIGNED - Asignada a un cliente.
|
|
10
|
-
* @property {string} CANCELLED - Anulada (plástico dañado, pérdida o robo). Estado terminal.
|
|
11
|
-
*/
|
|
12
|
-
var RetailCardStatusEnum;
|
|
13
|
-
(function (RetailCardStatusEnum) {
|
|
14
|
-
RetailCardStatusEnum["AVAILABLE"] = "AVAILABLE";
|
|
15
|
-
RetailCardStatusEnum["ASSIGNED"] = "ASSIGNED";
|
|
16
|
-
RetailCardStatusEnum["CANCELLED"] = "CANCELLED";
|
|
17
|
-
})(RetailCardStatusEnum || (exports.RetailCardStatusEnum = RetailCardStatusEnum = {}));
|