@fiado/type-kit 3.297.0 → 3.299.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/auth/SignUpProspectRequest.test.ts +8 -0
- package/bin/auth/dtos/SignUpProspectRequest.d.ts +3 -2
- package/bin/auth/dtos/SignUpProspectRequest.js +2 -1
- package/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +11 -0
- package/bin/benefitCenter/enums/BenefitFlowEnum.js +15 -0
- package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +11 -0
- package/bin/loanConfig/enums/ModifiableByRoleEnum.js +15 -0
- package/bin/places/dtos/CashInFeeDto.d.ts +17 -0
- package/bin/places/dtos/CashInFeeDto.js +12 -0
- package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +22 -0
- package/bin/platformRbac/dtos/ResendOtpRequest.js +36 -0
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +11 -0
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +36 -0
- package/bin/retailWizard/dtos/AccountStation.d.ts +14 -0
- package/bin/retailWizard/dtos/AccountStation.js +2 -0
- package/bin/retailWizard/dtos/requests/ConsentsRequest.d.ts +1 -3
- package/bin/retailWizard/dtos/requests/ConsentsRequest.js +1 -7
- package/bin/retailWizard/dtos/responses/AccountStatusResponse.d.ts +18 -0
- package/bin/retailWizard/dtos/responses/AccountStatusResponse.js +2 -0
- package/bin/retailWizard/enums/AccountIssuanceStatusEnum.d.ts +12 -0
- package/bin/retailWizard/enums/AccountIssuanceStatusEnum.js +16 -0
- package/bin/retailWizard/enums/AccountStationStatusEnum.d.ts +9 -0
- package/bin/retailWizard/enums/AccountStationStatusEnum.js +13 -0
- package/bin/retailWizard/index.d.ts +4 -0
- package/bin/retailWizard/index.js +4 -0
- package/package.json +1 -1
- package/src/auth/dtos/SignUpProspectRequest.ts +5 -4
- package/src/retailWizard/dtos/AccountStation.ts +15 -0
- package/src/retailWizard/dtos/requests/ConsentsRequest.ts +2 -8
- package/src/retailWizard/dtos/responses/AccountStatusResponse.ts +19 -0
- package/src/retailWizard/enums/AccountIssuanceStatusEnum.ts +12 -0
- package/src/retailWizard/enums/AccountStationStatusEnum.ts +9 -0
- package/src/retailWizard/index.ts +4 -0
- 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
|
@@ -12,6 +12,14 @@ describe('SignUpProspectRequest', () => {
|
|
|
12
12
|
expect(await validate(dto as object)).toHaveLength(0);
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
+
it('acepta un alta sin nombre — la persona queda sin preferredName', async () => {
|
|
16
|
+
const dto = plainToInstance(SignUpProspectRequest,
|
|
17
|
+
{ phoneNumber: '5512345678', tenantId: 'surekeep' },
|
|
18
|
+
{ excludeExtraneousValues: true });
|
|
19
|
+
|
|
20
|
+
expect(await validate(dto as object)).toHaveLength(0);
|
|
21
|
+
});
|
|
22
|
+
|
|
15
23
|
it('rechaza si falta el tenantId (el hardcode FIADO_BETA es justo lo que se elimina)', async () => {
|
|
16
24
|
const dto = plainToInstance(SignUpProspectRequest,
|
|
17
25
|
{ name: 'Paulina Garcia', phoneNumber: '5512345678' },
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* `tenantId` es OBLIGATORIO y explícito: la variante de agente lo tiene hardcodeado a
|
|
6
6
|
* `FIADO_BETA`, y eliminar ese hardcode es parte del contrato de este endpoint privado.
|
|
7
7
|
*
|
|
8
|
-
* ⚠️ PII:
|
|
8
|
+
* ⚠️ PII: teléfono — nunca loguear el request completo.
|
|
9
9
|
*/
|
|
10
10
|
export declare class SignUpProspectRequest {
|
|
11
|
-
|
|
11
|
+
/** Opcional: sin nombre la persona se crea sin `preferredName`; el real lo escribe el KYC después. */
|
|
12
|
+
name?: string;
|
|
12
13
|
phoneNumber: string;
|
|
13
14
|
/** Decidido: sin `@Matches(/^[a-z0-9-]+$/)` — `FIADO_BETA` es un tenant real y ese regex lo rechazaría. */
|
|
14
15
|
tenantId: string;
|
|
@@ -19,13 +19,14 @@ const class_validator_1 = require("class-validator");
|
|
|
19
19
|
* `tenantId` es OBLIGATORIO y explícito: la variante de agente lo tiene hardcodeado a
|
|
20
20
|
* `FIADO_BETA`, y eliminar ese hardcode es parte del contrato de este endpoint privado.
|
|
21
21
|
*
|
|
22
|
-
* ⚠️ PII:
|
|
22
|
+
* ⚠️ PII: teléfono — nunca loguear el request completo.
|
|
23
23
|
*/
|
|
24
24
|
class SignUpProspectRequest {
|
|
25
25
|
}
|
|
26
26
|
exports.SignUpProspectRequest = SignUpProspectRequest;
|
|
27
27
|
__decorate([
|
|
28
28
|
(0, class_transformer_1.Expose)(),
|
|
29
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
30
|
(0, class_validator_1.IsString)(),
|
|
30
31
|
(0, class_validator_1.IsNotEmpty)(),
|
|
31
32
|
__metadata("design:type", String)
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
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 = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
3
|
+
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
4
|
+
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
5
|
+
* @enum {string}
|
|
6
|
+
*/
|
|
7
|
+
export declare enum ModifiableByRoleEnum {
|
|
8
|
+
SUPER_ADMIN = "super_admin",
|
|
9
|
+
SOFOM_ADMIN = "sofom_admin",
|
|
10
|
+
RETAILER_ADMIN = "retailer_admin"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModifiableByRoleEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
6
|
+
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
7
|
+
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
8
|
+
* @enum {string}
|
|
9
|
+
*/
|
|
10
|
+
var ModifiableByRoleEnum;
|
|
11
|
+
(function (ModifiableByRoleEnum) {
|
|
12
|
+
ModifiableByRoleEnum["SUPER_ADMIN"] = "super_admin";
|
|
13
|
+
ModifiableByRoleEnum["SOFOM_ADMIN"] = "sofom_admin";
|
|
14
|
+
ModifiableByRoleEnum["RETAILER_ADMIN"] = "retailer_admin";
|
|
15
|
+
})(ModifiableByRoleEnum || (exports.ModifiableByRoleEnum = ModifiableByRoleEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CurrencyId } from '../../currency/enums/CurrencyId';
|
|
2
|
+
/**
|
|
3
|
+
* Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
|
|
4
|
+
* - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
|
|
5
|
+
* - Passport (MX): por red → `fixed` + `percentage`.
|
|
6
|
+
* Response DTO — sin decoradores de validación.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CashInFeeDto {
|
|
9
|
+
/** Comisión fija, en la moneda del país. */
|
|
10
|
+
fixed?: number;
|
|
11
|
+
/** Porcentaje del monto depositado (0–100). */
|
|
12
|
+
percentage?: number;
|
|
13
|
+
/** Tope máximo de comisión (GreenDot: el asociado cobra hasta este cap). */
|
|
14
|
+
cap?: number;
|
|
15
|
+
/** Moneda del fee: USD (GreenDot) | MXN (Passport). */
|
|
16
|
+
currency: CurrencyId;
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CashInFeeDto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
|
|
6
|
+
* - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
|
|
7
|
+
* - Passport (MX): por red → `fixed` + `percentage`.
|
|
8
|
+
* Response DTO — sin decoradores de validación.
|
|
9
|
+
*/
|
|
10
|
+
class CashInFeeDto {
|
|
11
|
+
}
|
|
12
|
+
exports.CashInFeeDto = CashInFeeDto;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MfaMethodEnum } from '../enums/MfaMethodEnum';
|
|
2
|
+
/**
|
|
3
|
+
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
4
|
+
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
5
|
+
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
6
|
+
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
7
|
+
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
8
|
+
*/
|
|
9
|
+
export declare class ResendOtpRequest {
|
|
10
|
+
email: string;
|
|
11
|
+
tenantId: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Respuesta del resend-otp. `session`/`mfaMethod` frescos del nuevo challenge CUSTOM_AUTH.
|
|
15
|
+
* Plain sin validators (no validamos lo que mandamos al cliente — fiado-validation-and-dtos § 7).
|
|
16
|
+
* Ambos opcionales: en los caminos de rechazo silencioso (anti-enumeración) o ramas sin CUSTOM_AUTH
|
|
17
|
+
* el server responde 200 genérico sin session ni método.
|
|
18
|
+
*/
|
|
19
|
+
export interface ResendOtpResponse {
|
|
20
|
+
session?: string;
|
|
21
|
+
mfaMethod?: MfaMethodEnum;
|
|
22
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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.ResendOtpRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
17
|
+
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
18
|
+
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
19
|
+
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
20
|
+
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
21
|
+
*/
|
|
22
|
+
class ResendOtpRequest {
|
|
23
|
+
}
|
|
24
|
+
exports.ResendOtpRequest = ResendOtpRequest;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
(0, class_validator_1.IsEmail)(),
|
|
28
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], ResendOtpRequest.prototype, "email", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], ResendOtpRequest.prototype, "tenantId", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
3
|
+
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
4
|
+
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
5
|
+
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
6
|
+
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
7
|
+
*/
|
|
8
|
+
export declare class ResendSelfRegisterOtpRequest {
|
|
9
|
+
tenantId: string;
|
|
10
|
+
email: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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.ResendSelfRegisterOtpRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
17
|
+
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
18
|
+
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
19
|
+
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
20
|
+
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
21
|
+
*/
|
|
22
|
+
class ResendSelfRegisterOtpRequest {
|
|
23
|
+
}
|
|
24
|
+
exports.ResendSelfRegisterOtpRequest = ResendSelfRegisterOtpRequest;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_transformer_1.Expose)(),
|
|
27
|
+
(0, class_validator_1.IsString)(),
|
|
28
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], ResendSelfRegisterOtpRequest.prototype, "tenantId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
(0, class_validator_1.IsEmail)(),
|
|
34
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], ResendSelfRegisterOtpRequest.prototype, "email", void 0);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AccountStationStatusEnum } from '../enums/AccountStationStatusEnum';
|
|
2
|
+
/**
|
|
3
|
+
* Una estacion del camino de apertura de la cuenta PCF, para que el wizard muestre en que va y,
|
|
4
|
+
* si algo se cayo, por que. SureKeep Fase 2 — pista Retail.
|
|
5
|
+
*/
|
|
6
|
+
export interface AccountStation {
|
|
7
|
+
/** `ACCOUNT_CREATION`, `CURP_VALIDATION`, ... El catalogo lo define card-business y crece alla. */
|
|
8
|
+
step: string;
|
|
9
|
+
status: AccountStationStatusEnum;
|
|
10
|
+
/** Texto legible en espanol, tal como lo escribio card-business. Se muestra al vendedor. */
|
|
11
|
+
message: string;
|
|
12
|
+
/** ISO 8601. Cuando se registro la estacion. */
|
|
13
|
+
timestamp: string;
|
|
14
|
+
}
|
|
@@ -2,10 +2,8 @@ import { WizardConsents } from '../WizardConsents';
|
|
|
2
2
|
/**
|
|
3
3
|
* POST /wizard/sessions/:id/consents — registra los consentimientos VL + contrato PCF. Dispara la
|
|
4
4
|
* tríada Fiado idempotente (D26): lookup directory por phone → reusa o crea onboarding+people+directory.
|
|
5
|
-
*
|
|
5
|
+
* SureKeep Fase 2 — pista Retail.
|
|
6
6
|
*/
|
|
7
7
|
export declare class ConsentsRequest {
|
|
8
8
|
consents: WizardConsents;
|
|
9
|
-
/** Nombre del cliente (para la creación de identidad Fiado si aún no existe). */
|
|
10
|
-
customerName?: string;
|
|
11
9
|
}
|
|
@@ -16,7 +16,7 @@ const WizardConsents_1 = require("../WizardConsents");
|
|
|
16
16
|
/**
|
|
17
17
|
* POST /wizard/sessions/:id/consents — registra los consentimientos VL + contrato PCF. Dispara la
|
|
18
18
|
* tríada Fiado idempotente (D26): lookup directory por phone → reusa o crea onboarding+people+directory.
|
|
19
|
-
*
|
|
19
|
+
* SureKeep Fase 2 — pista Retail.
|
|
20
20
|
*/
|
|
21
21
|
class ConsentsRequest {
|
|
22
22
|
}
|
|
@@ -27,9 +27,3 @@ __decorate([
|
|
|
27
27
|
(0, class_validator_1.ValidateNested)(),
|
|
28
28
|
__metadata("design:type", WizardConsents_1.WizardConsents)
|
|
29
29
|
], ConsentsRequest.prototype, "consents", void 0);
|
|
30
|
-
__decorate([
|
|
31
|
-
(0, class_transformer_1.Expose)(),
|
|
32
|
-
(0, class_validator_1.IsOptional)(),
|
|
33
|
-
(0, class_validator_1.IsString)(),
|
|
34
|
-
__metadata("design:type", String)
|
|
35
|
-
], ConsentsRequest.prototype, "customerName", void 0);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AccountIssuanceStatusEnum } from '../../enums/AccountIssuanceStatusEnum';
|
|
2
|
+
import { AccountStation } from '../AccountStation';
|
|
3
|
+
/**
|
|
4
|
+
* GET /wizard/sessions/:id/account-status — estado de la cuenta PagoConFiado del comprador.
|
|
5
|
+
*
|
|
6
|
+
* Lo pollea el front para trabar el paso hasta que la cuenta exista. SureKeep Fase 2 — pista Retail.
|
|
7
|
+
*/
|
|
8
|
+
export interface AccountStatusResponse {
|
|
9
|
+
/** El comprador ya tiene cuenta PCF ACTIVE. Es el unico campo con el que el front destraba. */
|
|
10
|
+
accountReady: boolean;
|
|
11
|
+
/** CLABE de la cuenta. `null` mientras no haya cuenta. */
|
|
12
|
+
clabe: string | null;
|
|
13
|
+
issuanceStatus: AccountIssuanceStatusEnum;
|
|
14
|
+
/** Camino de la apertura, en orden cronologico. Vacio si la emision no arranco. */
|
|
15
|
+
stations: AccountStation[];
|
|
16
|
+
/** Motivo legible del ultimo fallo. `null` si no hay ninguno. */
|
|
17
|
+
failReason: string | null;
|
|
18
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avance de la apertura de la cuenta PagoConFiado (PCF) del comprador, visto por el wizard.
|
|
3
|
+
*
|
|
4
|
+
* Espeja `Card.CardIssuanceStatus` y suma `NOT_STARTED`, que ese dominio no tiene: sin registro de
|
|
5
|
+
* emision card-business responde una lista vacia. SureKeep Fase 2 — pista Retail.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum AccountIssuanceStatusEnum {
|
|
8
|
+
NOT_STARTED = "NOT_STARTED",
|
|
9
|
+
IN_PROCESS = "IN_PROCESS",
|
|
10
|
+
COMPLETED = "COMPLETED",
|
|
11
|
+
FAILED = "FAILED"
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountIssuanceStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Avance de la apertura de la cuenta PagoConFiado (PCF) del comprador, visto por el wizard.
|
|
6
|
+
*
|
|
7
|
+
* Espeja `Card.CardIssuanceStatus` y suma `NOT_STARTED`, que ese dominio no tiene: sin registro de
|
|
8
|
+
* emision card-business responde una lista vacia. SureKeep Fase 2 — pista Retail.
|
|
9
|
+
*/
|
|
10
|
+
var AccountIssuanceStatusEnum;
|
|
11
|
+
(function (AccountIssuanceStatusEnum) {
|
|
12
|
+
AccountIssuanceStatusEnum["NOT_STARTED"] = "NOT_STARTED";
|
|
13
|
+
AccountIssuanceStatusEnum["IN_PROCESS"] = "IN_PROCESS";
|
|
14
|
+
AccountIssuanceStatusEnum["COMPLETED"] = "COMPLETED";
|
|
15
|
+
AccountIssuanceStatusEnum["FAILED"] = "FAILED";
|
|
16
|
+
})(AccountIssuanceStatusEnum || (exports.AccountIssuanceStatusEnum = AccountIssuanceStatusEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountStationStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Resultado de una estacion del camino de apertura de la cuenta PCF.
|
|
6
|
+
* SureKeep Fase 2 — pista Retail.
|
|
7
|
+
*/
|
|
8
|
+
var AccountStationStatusEnum;
|
|
9
|
+
(function (AccountStationStatusEnum) {
|
|
10
|
+
AccountStationStatusEnum["PASSED"] = "PASSED";
|
|
11
|
+
AccountStationStatusEnum["FAILED"] = "FAILED";
|
|
12
|
+
AccountStationStatusEnum["PENDING"] = "PENDING";
|
|
13
|
+
})(AccountStationStatusEnum || (exports.AccountStationStatusEnum = AccountStationStatusEnum = {}));
|
|
@@ -12,6 +12,8 @@ export * from './enums/ProspectStatusEnum';
|
|
|
12
12
|
export * from './enums/PendingReasonEnum';
|
|
13
13
|
export * from './enums/OccupationEnum';
|
|
14
14
|
export * from './enums/BeneficiaryRelationEnum';
|
|
15
|
+
export * from './enums/AccountIssuanceStatusEnum';
|
|
16
|
+
export * from './enums/AccountStationStatusEnum';
|
|
15
17
|
export * from './dtos/WizardConsents';
|
|
16
18
|
export * from './dtos/WizardPayment';
|
|
17
19
|
export * from './dtos/WizardProduct';
|
|
@@ -21,6 +23,7 @@ export * from './dtos/ProspectNewCustomer';
|
|
|
21
23
|
export * from './dtos/WizardBeneficiary';
|
|
22
24
|
export * from './dtos/WizardLoan';
|
|
23
25
|
export * from './dtos/WizardCreditSummary';
|
|
26
|
+
export * from './dtos/AccountStation';
|
|
24
27
|
export * from './dtos/WizardSession';
|
|
25
28
|
export * from './dtos/OtpVerification';
|
|
26
29
|
export * from './dtos/Sale';
|
|
@@ -67,6 +70,7 @@ export * from './dtos/responses/ContractPreviewResponse';
|
|
|
67
70
|
export * from './dtos/responses/SignatureSendOtpResponse';
|
|
68
71
|
export * from './dtos/responses/SignatureSignResponse';
|
|
69
72
|
export * from './dtos/responses/RegisterDeviceResponse';
|
|
73
|
+
export * from './dtos/responses/AccountStatusResponse';
|
|
70
74
|
export * from './enums/SaleFinancierEnum';
|
|
71
75
|
export * from './enums/SaleExceptionTypeEnum';
|
|
72
76
|
export * from './enums/SaleExceptionStatusEnum';
|
|
@@ -29,6 +29,8 @@ __exportStar(require("./enums/ProspectStatusEnum"), exports);
|
|
|
29
29
|
__exportStar(require("./enums/PendingReasonEnum"), exports);
|
|
30
30
|
__exportStar(require("./enums/OccupationEnum"), exports);
|
|
31
31
|
__exportStar(require("./enums/BeneficiaryRelationEnum"), exports);
|
|
32
|
+
__exportStar(require("./enums/AccountIssuanceStatusEnum"), exports);
|
|
33
|
+
__exportStar(require("./enums/AccountStationStatusEnum"), exports);
|
|
32
34
|
// DTOs anidados
|
|
33
35
|
__exportStar(require("./dtos/WizardConsents"), exports);
|
|
34
36
|
__exportStar(require("./dtos/WizardPayment"), exports);
|
|
@@ -39,6 +41,7 @@ __exportStar(require("./dtos/ProspectNewCustomer"), exports);
|
|
|
39
41
|
__exportStar(require("./dtos/WizardBeneficiary"), exports);
|
|
40
42
|
__exportStar(require("./dtos/WizardLoan"), exports);
|
|
41
43
|
__exportStar(require("./dtos/WizardCreditSummary"), exports);
|
|
44
|
+
__exportStar(require("./dtos/AccountStation"), exports);
|
|
42
45
|
// Entidades principales (shapes de estado/persistencia — planas)
|
|
43
46
|
__exportStar(require("./dtos/WizardSession"), exports);
|
|
44
47
|
__exportStar(require("./dtos/OtpVerification"), exports);
|
|
@@ -89,6 +92,7 @@ __exportStar(require("./dtos/responses/ContractPreviewResponse"), exports);
|
|
|
89
92
|
__exportStar(require("./dtos/responses/SignatureSendOtpResponse"), exports);
|
|
90
93
|
__exportStar(require("./dtos/responses/SignatureSignResponse"), exports);
|
|
91
94
|
__exportStar(require("./dtos/responses/RegisterDeviceResponse"), exports);
|
|
95
|
+
__exportStar(require("./dtos/responses/AccountStatusResponse"), exports);
|
|
92
96
|
// ── F3 · Backoffice VentasLuga ────────────────────────────────────────────────
|
|
93
97
|
// Enums
|
|
94
98
|
__exportStar(require("./enums/SaleFinancierEnum"), exports);
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expose } from 'class-transformer';
|
|
2
|
-
import { IsNotEmpty, IsString } from 'class-validator';
|
|
2
|
+
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Alta de prospecto M2M en `auth-business` (crea onboarding + People + DirectoryUser).
|
|
@@ -8,11 +8,12 @@ import { IsNotEmpty, IsString } from 'class-validator';
|
|
|
8
8
|
* `tenantId` es OBLIGATORIO y explícito: la variante de agente lo tiene hardcodeado a
|
|
9
9
|
* `FIADO_BETA`, y eliminar ese hardcode es parte del contrato de este endpoint privado.
|
|
10
10
|
*
|
|
11
|
-
* ⚠️ PII:
|
|
11
|
+
* ⚠️ PII: teléfono — nunca loguear el request completo.
|
|
12
12
|
*/
|
|
13
13
|
export class SignUpProspectRequest {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/** Opcional: sin nombre la persona se crea sin `preferredName`; el real lo escribe el KYC después. */
|
|
15
|
+
@Expose() @IsOptional() @IsString() @IsNotEmpty()
|
|
16
|
+
name?: string;
|
|
16
17
|
|
|
17
18
|
@Expose() @IsString() @IsNotEmpty()
|
|
18
19
|
phoneNumber!: string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AccountStationStatusEnum } from '../enums/AccountStationStatusEnum';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Una estacion del camino de apertura de la cuenta PCF, para que el wizard muestre en que va y,
|
|
5
|
+
* si algo se cayo, por que. SureKeep Fase 2 — pista Retail.
|
|
6
|
+
*/
|
|
7
|
+
export interface AccountStation {
|
|
8
|
+
/** `ACCOUNT_CREATION`, `CURP_VALIDATION`, ... El catalogo lo define card-business y crece alla. */
|
|
9
|
+
step: string;
|
|
10
|
+
status: AccountStationStatusEnum;
|
|
11
|
+
/** Texto legible en espanol, tal como lo escribio card-business. Se muestra al vendedor. */
|
|
12
|
+
message: string;
|
|
13
|
+
/** ISO 8601. Cuando se registro la estacion. */
|
|
14
|
+
timestamp: string;
|
|
15
|
+
}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { Expose, Type } from 'class-transformer';
|
|
2
|
-
import {
|
|
2
|
+
import { ValidateNested } from 'class-validator';
|
|
3
3
|
import { WizardConsents } from '../WizardConsents';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* POST /wizard/sessions/:id/consents — registra los consentimientos VL + contrato PCF. Dispara la
|
|
7
7
|
* tríada Fiado idempotente (D26): lookup directory por phone → reusa o crea onboarding+people+directory.
|
|
8
|
-
*
|
|
8
|
+
* SureKeep Fase 2 — pista Retail.
|
|
9
9
|
*/
|
|
10
10
|
export class ConsentsRequest {
|
|
11
11
|
@Expose()
|
|
12
12
|
@Type(() => WizardConsents)
|
|
13
13
|
@ValidateNested()
|
|
14
14
|
consents!: WizardConsents;
|
|
15
|
-
|
|
16
|
-
/** Nombre del cliente (para la creación de identidad Fiado si aún no existe). */
|
|
17
|
-
@Expose()
|
|
18
|
-
@IsOptional()
|
|
19
|
-
@IsString()
|
|
20
|
-
customerName?: string;
|
|
21
15
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AccountIssuanceStatusEnum } from '../../enums/AccountIssuanceStatusEnum';
|
|
2
|
+
import { AccountStation } from '../AccountStation';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* GET /wizard/sessions/:id/account-status — estado de la cuenta PagoConFiado del comprador.
|
|
6
|
+
*
|
|
7
|
+
* Lo pollea el front para trabar el paso hasta que la cuenta exista. SureKeep Fase 2 — pista Retail.
|
|
8
|
+
*/
|
|
9
|
+
export interface AccountStatusResponse {
|
|
10
|
+
/** El comprador ya tiene cuenta PCF ACTIVE. Es el unico campo con el que el front destraba. */
|
|
11
|
+
accountReady: boolean;
|
|
12
|
+
/** CLABE de la cuenta. `null` mientras no haya cuenta. */
|
|
13
|
+
clabe: string | null;
|
|
14
|
+
issuanceStatus: AccountIssuanceStatusEnum;
|
|
15
|
+
/** Camino de la apertura, en orden cronologico. Vacio si la emision no arranco. */
|
|
16
|
+
stations: AccountStation[];
|
|
17
|
+
/** Motivo legible del ultimo fallo. `null` si no hay ninguno. */
|
|
18
|
+
failReason: string | null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avance de la apertura de la cuenta PagoConFiado (PCF) del comprador, visto por el wizard.
|
|
3
|
+
*
|
|
4
|
+
* Espeja `Card.CardIssuanceStatus` y suma `NOT_STARTED`, que ese dominio no tiene: sin registro de
|
|
5
|
+
* emision card-business responde una lista vacia. SureKeep Fase 2 — pista Retail.
|
|
6
|
+
*/
|
|
7
|
+
export enum AccountIssuanceStatusEnum {
|
|
8
|
+
NOT_STARTED = 'NOT_STARTED',
|
|
9
|
+
IN_PROCESS = 'IN_PROCESS',
|
|
10
|
+
COMPLETED = 'COMPLETED',
|
|
11
|
+
FAILED = 'FAILED',
|
|
12
|
+
}
|
|
@@ -13,6 +13,8 @@ export * from './enums/ProspectStatusEnum';
|
|
|
13
13
|
export * from './enums/PendingReasonEnum';
|
|
14
14
|
export * from './enums/OccupationEnum';
|
|
15
15
|
export * from './enums/BeneficiaryRelationEnum';
|
|
16
|
+
export * from './enums/AccountIssuanceStatusEnum';
|
|
17
|
+
export * from './enums/AccountStationStatusEnum';
|
|
16
18
|
|
|
17
19
|
// DTOs anidados
|
|
18
20
|
export * from './dtos/WizardConsents';
|
|
@@ -24,6 +26,7 @@ export * from './dtos/ProspectNewCustomer';
|
|
|
24
26
|
export * from './dtos/WizardBeneficiary';
|
|
25
27
|
export * from './dtos/WizardLoan';
|
|
26
28
|
export * from './dtos/WizardCreditSummary';
|
|
29
|
+
export * from './dtos/AccountStation';
|
|
27
30
|
|
|
28
31
|
// Entidades principales (shapes de estado/persistencia — planas)
|
|
29
32
|
export * from './dtos/WizardSession';
|
|
@@ -78,6 +81,7 @@ export * from './dtos/responses/ContractPreviewResponse';
|
|
|
78
81
|
export * from './dtos/responses/SignatureSendOtpResponse';
|
|
79
82
|
export * from './dtos/responses/SignatureSignResponse';
|
|
80
83
|
export * from './dtos/responses/RegisterDeviceResponse';
|
|
84
|
+
export * from './dtos/responses/AccountStatusResponse';
|
|
81
85
|
|
|
82
86
|
// ── F3 · Backoffice VentasLuga ────────────────────────────────────────────────
|
|
83
87
|
// Enums
|
|
@@ -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 = {}));
|