@fiado/type-kit 3.305.0 → 3.307.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/bin/onboarding/dtos/responses/OnboardingStepsResponse.d.ts +17 -0
- package/bin/onboarding/enums/OnboardingAccountMessageKeyEnum.d.ts +35 -0
- package/bin/onboarding/enums/OnboardingAccountMessageKeyEnum.js +39 -0
- package/bin/onboarding/index.d.ts +1 -0
- package/bin/onboarding/index.js +1 -0
- package/bin/retailWizard/dtos/requests/ProfileQuestionsRequest.d.ts +6 -0
- package/bin/retailWizard/dtos/requests/ProfileQuestionsRequest.js +7 -0
- package/package.json +1 -1
- package/src/onboarding/dtos/responses/OnboardingStepsResponse.ts +17 -0
- package/src/onboarding/enums/OnboardingAccountMessageKeyEnum.ts +35 -0
- package/src/onboarding/index.ts +1 -0
- package/src/retailWizard/dtos/requests/ProfileQuestionsRequest.ts +11 -1
|
@@ -3,6 +3,7 @@ import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
|
3
3
|
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
4
|
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
5
|
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
import { OnboardingAccountMessageKeyEnum } from '../../enums/OnboardingAccountMessageKeyEnum';
|
|
6
7
|
/**
|
|
7
8
|
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
8
9
|
* onboarding-business).
|
|
@@ -23,6 +24,22 @@ export declare class OnboardingAccountDto {
|
|
|
23
24
|
status: OnboardingAccountStatusEnum;
|
|
24
25
|
/** `null` cuando no hay nada que explicar. */
|
|
25
26
|
reason: OnboardingAccountReasonEnum | null;
|
|
27
|
+
/**
|
|
28
|
+
* Clave del mensaje de Fido para ESTA cuenta. El consumidor la usa TAL CUAL para buscar el copy en
|
|
29
|
+
* Firebase Remote Config, sin componerla ni interpretar `status`/`reason`.
|
|
30
|
+
*
|
|
31
|
+
* NO es `status` y `reason` concatenados: es el nombre del mensaje del catálogo que ya existe en
|
|
32
|
+
* Remote Config, para que esa configuración no haya que reescribirla. Varias combinaciones caen a
|
|
33
|
+
* propósito en la misma clave — `REJECTED:BLACKLIST` y `REJECTED:DUPLICATE_USER` son las dos
|
|
34
|
+
* `CANNOT_OPEN`, porque a las dos personas se les dice lo mismo.
|
|
35
|
+
*
|
|
36
|
+
* Va **por cuenta** y no como valor global porque el estado es por cuenta: un usuario con las dos
|
|
37
|
+
* cuentas puede tener una rechazada y la otra en curso, y cada una necesita su propio mensaje.
|
|
38
|
+
*
|
|
39
|
+
* OJO con el catálogo viejo: tenía un segundo nivel indexado por país. Ese nivel ya no aplica — el
|
|
40
|
+
* mensaje depende del estado de la cuenta, no del país, y cada cuenta trae su clave.
|
|
41
|
+
*/
|
|
42
|
+
key: OnboardingAccountMessageKeyEnum;
|
|
26
43
|
}
|
|
27
44
|
/**
|
|
28
45
|
* Respuesta de `GET /onboarding-business/steps`.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clave del mensaje de Fido que el consumidor busca en Firebase Remote Config.
|
|
3
|
+
*
|
|
4
|
+
* NO es `status`/`reason` concatenados: es el nombre del mensaje del catálogo que YA existe en Remote
|
|
5
|
+
* Config, para que el backend pueda mandar la clave sin que haya que reescribir esa configuración.
|
|
6
|
+
* Varias combinaciones de estado caen en el mismo mensaje a propósito — a la persona rechazada por
|
|
7
|
+
* lista negra y a la rechazada por duplicado se les dice lo mismo.
|
|
8
|
+
*
|
|
9
|
+
* El catálogo viejo estaba indexado por `MESSAGE.FIDO` del motor legacy y, en un segundo nivel, por
|
|
10
|
+
* país. El segundo nivel deja de usarse: el mensaje ya no depende del país sino del estado de la
|
|
11
|
+
* cuenta, y cada cuenta trae su propia clave.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum OnboardingAccountMessageKeyEnum {
|
|
14
|
+
/** La cuenta ya está abierta. Es el CTA que dispara la firma de contratos. */
|
|
15
|
+
ACCOUNT_CREATED = "ACCOUNT_CREATED",
|
|
16
|
+
/** No se puede abrir la cuenta: lista negra, duplicado o rechazo del proveedor. */
|
|
17
|
+
CANNOT_OPEN = "CANNOT_OPEN",
|
|
18
|
+
/** El documento no sirvió y la persona puede volver a subirlo. */
|
|
19
|
+
UPLOAD_IDENTIFICATION_AGAIN = "UPLOAD_IDENTIFICATION_AGAIN",
|
|
20
|
+
/** Verificación del documento en curso: no hay nada que la persona pueda hacer. */
|
|
21
|
+
INFO_VERIFICATION_IN_PROCESS = "INFO_VERIFICATION_IN_PROCESS",
|
|
22
|
+
/** El proveedor está revisando. Tampoco hay acción del usuario. */
|
|
23
|
+
KEEP_CALM = "KEEP_CALM",
|
|
24
|
+
/**
|
|
25
|
+
* El proveedor espera que la persona conteste las preguntas de validación (OOW).
|
|
26
|
+
*
|
|
27
|
+
* CLAVE NUEVA: el catálogo viejo no tenía un mensaje para este caso. No se reusó `KEEP_CALM`
|
|
28
|
+
* porque diría lo contrario de lo que corresponde — ahí la pelota está del lado del usuario, no
|
|
29
|
+
* del nuestro. **Hay que darle de alta el copy en Remote Config**; hasta entonces el consumidor
|
|
30
|
+
* cae a su texto por defecto.
|
|
31
|
+
*/
|
|
32
|
+
ANSWER_VERIFICATION_QUESTIONS = "ANSWER_VERIFICATION_QUESTIONS",
|
|
33
|
+
/** Trámite en curso, esperando que la persona complete sus pasos. */
|
|
34
|
+
COMPLETE_YOUR_INFORMATION = "COMPLETE_YOUR_INFORMATION"
|
|
35
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingAccountMessageKeyEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Clave del mensaje de Fido que el consumidor busca en Firebase Remote Config.
|
|
6
|
+
*
|
|
7
|
+
* NO es `status`/`reason` concatenados: es el nombre del mensaje del catálogo que YA existe en Remote
|
|
8
|
+
* Config, para que el backend pueda mandar la clave sin que haya que reescribir esa configuración.
|
|
9
|
+
* Varias combinaciones de estado caen en el mismo mensaje a propósito — a la persona rechazada por
|
|
10
|
+
* lista negra y a la rechazada por duplicado se les dice lo mismo.
|
|
11
|
+
*
|
|
12
|
+
* El catálogo viejo estaba indexado por `MESSAGE.FIDO` del motor legacy y, en un segundo nivel, por
|
|
13
|
+
* país. El segundo nivel deja de usarse: el mensaje ya no depende del país sino del estado de la
|
|
14
|
+
* cuenta, y cada cuenta trae su propia clave.
|
|
15
|
+
*/
|
|
16
|
+
var OnboardingAccountMessageKeyEnum;
|
|
17
|
+
(function (OnboardingAccountMessageKeyEnum) {
|
|
18
|
+
/** La cuenta ya está abierta. Es el CTA que dispara la firma de contratos. */
|
|
19
|
+
OnboardingAccountMessageKeyEnum["ACCOUNT_CREATED"] = "ACCOUNT_CREATED";
|
|
20
|
+
/** No se puede abrir la cuenta: lista negra, duplicado o rechazo del proveedor. */
|
|
21
|
+
OnboardingAccountMessageKeyEnum["CANNOT_OPEN"] = "CANNOT_OPEN";
|
|
22
|
+
/** El documento no sirvió y la persona puede volver a subirlo. */
|
|
23
|
+
OnboardingAccountMessageKeyEnum["UPLOAD_IDENTIFICATION_AGAIN"] = "UPLOAD_IDENTIFICATION_AGAIN";
|
|
24
|
+
/** Verificación del documento en curso: no hay nada que la persona pueda hacer. */
|
|
25
|
+
OnboardingAccountMessageKeyEnum["INFO_VERIFICATION_IN_PROCESS"] = "INFO_VERIFICATION_IN_PROCESS";
|
|
26
|
+
/** El proveedor está revisando. Tampoco hay acción del usuario. */
|
|
27
|
+
OnboardingAccountMessageKeyEnum["KEEP_CALM"] = "KEEP_CALM";
|
|
28
|
+
/**
|
|
29
|
+
* El proveedor espera que la persona conteste las preguntas de validación (OOW).
|
|
30
|
+
*
|
|
31
|
+
* CLAVE NUEVA: el catálogo viejo no tenía un mensaje para este caso. No se reusó `KEEP_CALM`
|
|
32
|
+
* porque diría lo contrario de lo que corresponde — ahí la pelota está del lado del usuario, no
|
|
33
|
+
* del nuestro. **Hay que darle de alta el copy en Remote Config**; hasta entonces el consumidor
|
|
34
|
+
* cae a su texto por defecto.
|
|
35
|
+
*/
|
|
36
|
+
OnboardingAccountMessageKeyEnum["ANSWER_VERIFICATION_QUESTIONS"] = "ANSWER_VERIFICATION_QUESTIONS";
|
|
37
|
+
/** Trámite en curso, esperando que la persona complete sus pasos. */
|
|
38
|
+
OnboardingAccountMessageKeyEnum["COMPLETE_YOUR_INFORMATION"] = "COMPLETE_YOUR_INFORMATION";
|
|
39
|
+
})(OnboardingAccountMessageKeyEnum || (exports.OnboardingAccountMessageKeyEnum = OnboardingAccountMessageKeyEnum = {}));
|
|
@@ -2,4 +2,5 @@ export * from './enums/OnboardingStepIdEnum';
|
|
|
2
2
|
export * from './enums/OnboardingStepStatusEnum';
|
|
3
3
|
export * from './enums/OnboardingAccountStatusEnum';
|
|
4
4
|
export * from './enums/OnboardingAccountReasonEnum';
|
|
5
|
+
export * from './enums/OnboardingAccountMessageKeyEnum';
|
|
5
6
|
export * from './dtos/responses/OnboardingStepsResponse';
|
package/bin/onboarding/index.js
CHANGED
|
@@ -19,5 +19,6 @@ __exportStar(require("./enums/OnboardingStepIdEnum"), exports);
|
|
|
19
19
|
__exportStar(require("./enums/OnboardingStepStatusEnum"), exports);
|
|
20
20
|
__exportStar(require("./enums/OnboardingAccountStatusEnum"), exports);
|
|
21
21
|
__exportStar(require("./enums/OnboardingAccountReasonEnum"), exports);
|
|
22
|
+
__exportStar(require("./enums/OnboardingAccountMessageKeyEnum"), exports);
|
|
22
23
|
// Response DTOs
|
|
23
24
|
__exportStar(require("./dtos/responses/OnboardingStepsResponse"), exports);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OccupationEnum } from '../../enums/OccupationEnum';
|
|
1
2
|
/**
|
|
2
3
|
* POST /wizard/sessions/:id/profile-questions — el perfil transaccional del cliente (paso 10).
|
|
3
4
|
*
|
|
@@ -46,4 +47,9 @@ export declare class ProfileQuestionsRequest {
|
|
|
46
47
|
usageMonthly: string;
|
|
47
48
|
maximumTx: string;
|
|
48
49
|
beneficialOwner: string;
|
|
50
|
+
/**
|
|
51
|
+
* Ocupación del cliente, opcional porque el paso 02 ya la captura en la ruta de KYC completo.
|
|
52
|
+
* Viaja en el paso 10 para el comprador que se saltó ese paso y no la tiene en el expediente.
|
|
53
|
+
*/
|
|
54
|
+
occupation?: OccupationEnum;
|
|
49
55
|
}
|
|
@@ -13,6 +13,7 @@ exports.ProfileQuestionsRequest = exports.BENEFICIAL_OWNER_VALUES = exports.MAXI
|
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const monthlyIncome_1 = require("../../catalog/monthlyIncome");
|
|
16
|
+
const OccupationEnum_1 = require("../../enums/OccupationEnum");
|
|
16
17
|
/**
|
|
17
18
|
* POST /wizard/sessions/:id/profile-questions — el perfil transaccional del cliente (paso 10).
|
|
18
19
|
*
|
|
@@ -88,3 +89,9 @@ __decorate([
|
|
|
88
89
|
(0, class_validator_1.IsIn)(exports.BENEFICIAL_OWNER_VALUES),
|
|
89
90
|
__metadata("design:type", String)
|
|
90
91
|
], ProfileQuestionsRequest.prototype, "beneficialOwner", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
(0, class_transformer_1.Expose)(),
|
|
94
|
+
(0, class_validator_1.IsOptional)(),
|
|
95
|
+
(0, class_validator_1.IsEnum)(OccupationEnum_1.OccupationEnum),
|
|
96
|
+
__metadata("design:type", String)
|
|
97
|
+
], ProfileQuestionsRequest.prototype, "occupation", void 0);
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
|
3
3
|
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
4
|
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
5
|
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
import { OnboardingAccountMessageKeyEnum } from '../../enums/OnboardingAccountMessageKeyEnum';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
@@ -25,6 +26,22 @@ export class OnboardingAccountDto {
|
|
|
25
26
|
status!: OnboardingAccountStatusEnum;
|
|
26
27
|
/** `null` cuando no hay nada que explicar. */
|
|
27
28
|
reason!: OnboardingAccountReasonEnum | null;
|
|
29
|
+
/**
|
|
30
|
+
* Clave del mensaje de Fido para ESTA cuenta. El consumidor la usa TAL CUAL para buscar el copy en
|
|
31
|
+
* Firebase Remote Config, sin componerla ni interpretar `status`/`reason`.
|
|
32
|
+
*
|
|
33
|
+
* NO es `status` y `reason` concatenados: es el nombre del mensaje del catálogo que ya existe en
|
|
34
|
+
* Remote Config, para que esa configuración no haya que reescribirla. Varias combinaciones caen a
|
|
35
|
+
* propósito en la misma clave — `REJECTED:BLACKLIST` y `REJECTED:DUPLICATE_USER` son las dos
|
|
36
|
+
* `CANNOT_OPEN`, porque a las dos personas se les dice lo mismo.
|
|
37
|
+
*
|
|
38
|
+
* Va **por cuenta** y no como valor global porque el estado es por cuenta: un usuario con las dos
|
|
39
|
+
* cuentas puede tener una rechazada y la otra en curso, y cada una necesita su propio mensaje.
|
|
40
|
+
*
|
|
41
|
+
* OJO con el catálogo viejo: tenía un segundo nivel indexado por país. Ese nivel ya no aplica — el
|
|
42
|
+
* mensaje depende del estado de la cuenta, no del país, y cada cuenta trae su clave.
|
|
43
|
+
*/
|
|
44
|
+
key!: OnboardingAccountMessageKeyEnum;
|
|
28
45
|
}
|
|
29
46
|
|
|
30
47
|
/**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clave del mensaje de Fido que el consumidor busca en Firebase Remote Config.
|
|
3
|
+
*
|
|
4
|
+
* NO es `status`/`reason` concatenados: es el nombre del mensaje del catálogo que YA existe en Remote
|
|
5
|
+
* Config, para que el backend pueda mandar la clave sin que haya que reescribir esa configuración.
|
|
6
|
+
* Varias combinaciones de estado caen en el mismo mensaje a propósito — a la persona rechazada por
|
|
7
|
+
* lista negra y a la rechazada por duplicado se les dice lo mismo.
|
|
8
|
+
*
|
|
9
|
+
* El catálogo viejo estaba indexado por `MESSAGE.FIDO` del motor legacy y, en un segundo nivel, por
|
|
10
|
+
* país. El segundo nivel deja de usarse: el mensaje ya no depende del país sino del estado de la
|
|
11
|
+
* cuenta, y cada cuenta trae su propia clave.
|
|
12
|
+
*/
|
|
13
|
+
export enum OnboardingAccountMessageKeyEnum {
|
|
14
|
+
/** La cuenta ya está abierta. Es el CTA que dispara la firma de contratos. */
|
|
15
|
+
ACCOUNT_CREATED = 'ACCOUNT_CREATED',
|
|
16
|
+
/** No se puede abrir la cuenta: lista negra, duplicado o rechazo del proveedor. */
|
|
17
|
+
CANNOT_OPEN = 'CANNOT_OPEN',
|
|
18
|
+
/** El documento no sirvió y la persona puede volver a subirlo. */
|
|
19
|
+
UPLOAD_IDENTIFICATION_AGAIN = 'UPLOAD_IDENTIFICATION_AGAIN',
|
|
20
|
+
/** Verificación del documento en curso: no hay nada que la persona pueda hacer. */
|
|
21
|
+
INFO_VERIFICATION_IN_PROCESS = 'INFO_VERIFICATION_IN_PROCESS',
|
|
22
|
+
/** El proveedor está revisando. Tampoco hay acción del usuario. */
|
|
23
|
+
KEEP_CALM = 'KEEP_CALM',
|
|
24
|
+
/**
|
|
25
|
+
* El proveedor espera que la persona conteste las preguntas de validación (OOW).
|
|
26
|
+
*
|
|
27
|
+
* CLAVE NUEVA: el catálogo viejo no tenía un mensaje para este caso. No se reusó `KEEP_CALM`
|
|
28
|
+
* porque diría lo contrario de lo que corresponde — ahí la pelota está del lado del usuario, no
|
|
29
|
+
* del nuestro. **Hay que darle de alta el copy en Remote Config**; hasta entonces el consumidor
|
|
30
|
+
* cae a su texto por defecto.
|
|
31
|
+
*/
|
|
32
|
+
ANSWER_VERIFICATION_QUESTIONS = 'ANSWER_VERIFICATION_QUESTIONS',
|
|
33
|
+
/** Trámite en curso, esperando que la persona complete sus pasos. */
|
|
34
|
+
COMPLETE_YOUR_INFORMATION = 'COMPLETE_YOUR_INFORMATION'
|
|
35
|
+
}
|
package/src/onboarding/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './enums/OnboardingStepIdEnum';
|
|
|
3
3
|
export * from './enums/OnboardingStepStatusEnum';
|
|
4
4
|
export * from './enums/OnboardingAccountStatusEnum';
|
|
5
5
|
export * from './enums/OnboardingAccountReasonEnum';
|
|
6
|
+
export * from './enums/OnboardingAccountMessageKeyEnum';
|
|
6
7
|
|
|
7
8
|
// Response DTOs
|
|
8
9
|
export * from './dtos/responses/OnboardingStepsResponse';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Expose } from 'class-transformer';
|
|
2
|
-
import { IsIn, IsString } from 'class-validator';
|
|
2
|
+
import { IsEnum, IsIn, IsOptional, IsString } from 'class-validator';
|
|
3
3
|
import { MONTHLY_INCOME_VALUES } from '../../catalog/monthlyIncome';
|
|
4
|
+
import { OccupationEnum } from '../../enums/OccupationEnum';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* POST /wizard/sessions/:id/profile-questions — el perfil transaccional del cliente (paso 10).
|
|
@@ -74,4 +75,13 @@ export class ProfileQuestionsRequest {
|
|
|
74
75
|
@IsString()
|
|
75
76
|
@IsIn(BENEFICIAL_OWNER_VALUES as unknown as string[])
|
|
76
77
|
beneficialOwner!: string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Ocupación del cliente, opcional porque el paso 02 ya la captura en la ruta de KYC completo.
|
|
81
|
+
* Viaja en el paso 10 para el comprador que se saltó ese paso y no la tiene en el expediente.
|
|
82
|
+
*/
|
|
83
|
+
@Expose()
|
|
84
|
+
@IsOptional()
|
|
85
|
+
@IsEnum(OccupationEnum)
|
|
86
|
+
occupation?: OccupationEnum;
|
|
77
87
|
}
|