@fiado/type-kit 3.244.0 → 3.247.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/benefitCenter/dtos/BenefitCreateRequest.d.ts +1 -0
- package/bin/benefitCenter/dtos/BenefitCreateRequest.js +5 -0
- package/bin/benefitCenter/dtos/BenefitItem.d.ts +1 -0
- package/bin/benefitCenter/dtos/BenefitSummary.d.ts +1 -0
- package/bin/benefitCenter/dtos/BenefitUpdateRequest.d.ts +1 -0
- package/bin/benefitCenter/dtos/BenefitUpdateRequest.js +5 -0
- package/bin/index.d.ts +1 -0
- package/bin/index.js +5 -1
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.d.ts +11 -0
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.js +46 -0
- package/bin/loanCredit/enums/ClientLevelEnum.d.ts +11 -0
- package/bin/loanCredit/enums/ClientLevelEnum.js +15 -0
- package/bin/onboarding/dtos/responses/OnboardingStepsResponse.d.ts +57 -0
- package/bin/onboarding/dtos/responses/OnboardingStepsResponse.js +31 -0
- package/bin/onboarding/enums/OnboardingAccountReasonEnum.d.ts +26 -0
- package/bin/onboarding/enums/OnboardingAccountReasonEnum.js +30 -0
- package/bin/onboarding/enums/OnboardingAccountStatusEnum.d.ts +22 -0
- package/bin/onboarding/enums/OnboardingAccountStatusEnum.js +26 -0
- package/bin/onboarding/enums/OnboardingStepIdEnum.d.ts +21 -0
- package/bin/onboarding/enums/OnboardingStepIdEnum.js +25 -0
- package/bin/onboarding/enums/OnboardingStepStatusEnum.d.ts +12 -0
- package/bin/onboarding/enums/OnboardingStepStatusEnum.js +16 -0
- package/bin/onboarding/index.d.ts +5 -0
- package/bin/onboarding/index.js +23 -0
- package/bin/riskProfile/dtos/TransactionAlarmQueueMessage.d.ts +30 -0
- package/package.json +1 -1
- package/src/benefitCenter/dtos/BenefitCreateRequest.ts +5 -0
- package/src/benefitCenter/dtos/BenefitItem.ts +1 -0
- package/src/benefitCenter/dtos/BenefitSummary.ts +1 -0
- package/src/benefitCenter/dtos/BenefitUpdateRequest.ts +2 -0
- package/src/index.ts +4 -0
- package/src/onboarding/dtos/responses/OnboardingStepsResponse.ts +61 -0
- package/src/onboarding/enums/OnboardingAccountReasonEnum.ts +26 -0
- package/src/onboarding/enums/OnboardingAccountStatusEnum.ts +22 -0
- package/src/onboarding/enums/OnboardingStepIdEnum.ts +21 -0
- package/src/onboarding/enums/OnboardingStepStatusEnum.ts +12 -0
- package/src/onboarding/index.ts +8 -0
- package/src/riskProfile/dtos/TransactionAlarmQueueMessage.ts +30 -0
- package/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +0 -11
- package/bin/benefitCenter/enums/BenefitFlowEnum.js +0 -15
- package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +0 -11
- package/bin/loanConfig/enums/ModifiableByRoleEnum.js +0 -15
- package/bin/places/dtos/CashInFeeDto.d.ts +0 -17
- package/bin/places/dtos/CashInFeeDto.js +0 -12
- package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
- package/bin/platformRbac/dtos/ResendOtpRequest.js +0 -36
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +0 -36
|
@@ -62,6 +62,11 @@ __decorate([
|
|
|
62
62
|
(0, class_validator_1.IsString)(),
|
|
63
63
|
__metadata("design:type", String)
|
|
64
64
|
], BenefitCreateRequest.prototype, "translationKey", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_validator_1.IsOptional)(),
|
|
67
|
+
(0, class_validator_1.IsBoolean)(),
|
|
68
|
+
__metadata("design:type", Boolean)
|
|
69
|
+
], BenefitCreateRequest.prototype, "requiresEmail", void 0);
|
|
65
70
|
__decorate([
|
|
66
71
|
(0, class_validator_1.ValidateNested)(),
|
|
67
72
|
(0, class_transformer_1.Type)(() => BenefitModuleConfigRequest_1.BenefitModuleConfigRequest),
|
|
@@ -54,6 +54,11 @@ __decorate([
|
|
|
54
54
|
(0, class_validator_1.IsString)(),
|
|
55
55
|
__metadata("design:type", String)
|
|
56
56
|
], BenefitUpdateRequest.prototype, "translationKey", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_validator_1.IsOptional)(),
|
|
59
|
+
(0, class_validator_1.IsBoolean)(),
|
|
60
|
+
__metadata("design:type", Boolean)
|
|
61
|
+
], BenefitUpdateRequest.prototype, "requiresEmail", void 0);
|
|
57
62
|
__decorate([
|
|
58
63
|
(0, class_validator_1.IsOptional)(),
|
|
59
64
|
(0, class_validator_1.ValidateNested)(),
|
package/bin/index.d.ts
CHANGED
|
@@ -101,6 +101,7 @@ export * as LoanCollectorAssignment from './loanCollectorAssignment';
|
|
|
101
101
|
export * as LoanCredit from './loanCredit';
|
|
102
102
|
export * as LoanScoring from './loanScoring';
|
|
103
103
|
export * as Kyc from './kyc';
|
|
104
|
+
export * as Onboarding from './onboarding';
|
|
104
105
|
export * from './messaging';
|
|
105
106
|
export * from './complaint';
|
|
106
107
|
export * as PhoneSales from './phoneSales';
|
package/bin/index.js
CHANGED
|
@@ -38,7 +38,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
|
|
40
40
|
exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = exports.RetailCatalog = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = void 0;
|
|
41
|
-
exports.Shipping = exports.PhoneSales = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
41
|
+
exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.MetamapConnector = __importStar(require("./metamapConnector"));
|
|
@@ -180,6 +180,10 @@ exports.LoanScoring = __importStar(require("./loanScoring"));
|
|
|
180
180
|
// consolidado + estados crudos + datos de persona. El consolidado reusa RetailKycStatusEnum
|
|
181
181
|
// (no hay enum consolidado propio — DEC-KYC-014). SureKeep Fase 2.
|
|
182
182
|
exports.Kyc = __importStar(require("./kyc"));
|
|
183
|
+
// Onboarding: contrato de los pasos del onboarding resueltos por SCOPE y no por país
|
|
184
|
+
// (onboarding-business, DEC-009 a DEC-021). Dos bloques: `steps` (qué le falta hacer al usuario) y
|
|
185
|
+
// `accounts` (cómo va el trámite de cada cuenta, por lado).
|
|
186
|
+
exports.Onboarding = __importStar(require("./onboarding"));
|
|
183
187
|
__exportStar(require("./messaging"), exports);
|
|
184
188
|
__exportStar(require("./complaint"), exports);
|
|
185
189
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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);
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
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 = {}));
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Scope } from '../../../directory/enums/Scope';
|
|
2
|
+
import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
3
|
+
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
|
+
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
|
+
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
/**
|
|
7
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
8
|
+
* onboarding-business).
|
|
9
|
+
*
|
|
10
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
11
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
12
|
+
*/
|
|
13
|
+
export declare class OnboardingStepDto {
|
|
14
|
+
id: OnboardingStepIdEnum;
|
|
15
|
+
status: OnboardingStepStatusEnum;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
19
|
+
*/
|
|
20
|
+
export declare class OnboardingAccountDto {
|
|
21
|
+
/** Scope de onboarding al que corresponde la cuenta: `fiado.on_us` o `fiado.on_mx`. */
|
|
22
|
+
scope: Scope;
|
|
23
|
+
status: OnboardingAccountStatusEnum;
|
|
24
|
+
/** `null` cuando no hay nada que explicar. */
|
|
25
|
+
reason: OnboardingAccountReasonEnum | null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
29
|
+
*
|
|
30
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
31
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
32
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
33
|
+
*
|
|
34
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
35
|
+
*/
|
|
36
|
+
export declare class OnboardingStepsResponse {
|
|
37
|
+
/**
|
|
38
|
+
* Solo los pasos aplicables al scope del usuario, **EN ORDEN DE PINTADO**. El consumidor pinta el
|
|
39
|
+
* array tal como llega: no reordena ni conoce las reglas de scope.
|
|
40
|
+
*
|
|
41
|
+
* El largo PUEDE CAMBIAR entre dos llamadas. Ejemplo real: en cuanto el usuario guarda una
|
|
42
|
+
* dirección, `MX_PROOF_OF_ADDRESS` deja de aplicar y sale de la lista.
|
|
43
|
+
*
|
|
44
|
+
* Vacío si la persona no tiene ningún scope de onboarding — eso NO es un error, significa que no
|
|
45
|
+
* tiene onboarding pendiente. Pasa justo después de firmar, cuando el scope pasa de `fiado.on_mx`
|
|
46
|
+
* a `fiado.mx`.
|
|
47
|
+
*/
|
|
48
|
+
steps: OnboardingStepDto[];
|
|
49
|
+
/**
|
|
50
|
+
* Un item por scope de onboarding que tenga el usuario. Vacío si no tiene ninguno.
|
|
51
|
+
*
|
|
52
|
+
* Cuando una cuenta viene en `REJECTED`, el consumidor tiene que darle PRIORIDAD sobre los pasos de
|
|
53
|
+
* esa cuenta: por diseño cinco de los siete pasos nunca se bloquean, así que un usuario rechazado
|
|
54
|
+
* igual va a recibir pasos abiertos.
|
|
55
|
+
*/
|
|
56
|
+
accounts: OnboardingAccountDto[];
|
|
57
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepsResponse = exports.OnboardingAccountDto = exports.OnboardingStepDto = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
9
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
10
|
+
*/
|
|
11
|
+
class OnboardingStepDto {
|
|
12
|
+
}
|
|
13
|
+
exports.OnboardingStepDto = OnboardingStepDto;
|
|
14
|
+
/**
|
|
15
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
16
|
+
*/
|
|
17
|
+
class OnboardingAccountDto {
|
|
18
|
+
}
|
|
19
|
+
exports.OnboardingAccountDto = OnboardingAccountDto;
|
|
20
|
+
/**
|
|
21
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
22
|
+
*
|
|
23
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
24
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
25
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
26
|
+
*
|
|
27
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
28
|
+
*/
|
|
29
|
+
class OnboardingStepsResponse {
|
|
30
|
+
}
|
|
31
|
+
exports.OnboardingStepsResponse = OnboardingStepsResponse;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
6
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
7
|
+
* sin texto.
|
|
8
|
+
*
|
|
9
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
10
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
11
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum OnboardingAccountReasonEnum {
|
|
14
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
15
|
+
BLACKLIST = "BLACKLIST",
|
|
16
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
17
|
+
DUPLICATE_USER = "DUPLICATE_USER",
|
|
18
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
19
|
+
DOCUMENT_INVALID = "DOCUMENT_INVALID",
|
|
20
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
21
|
+
DOCUMENT_VERIFICATION = "DOCUMENT_VERIFICATION",
|
|
22
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
23
|
+
PROVIDER_DENIED = "PROVIDER_DENIED",
|
|
24
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
25
|
+
PROVIDER_REVIEW = "PROVIDER_REVIEW"
|
|
26
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingAccountReasonEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
9
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
10
|
+
* sin texto.
|
|
11
|
+
*
|
|
12
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
13
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
14
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
15
|
+
*/
|
|
16
|
+
var OnboardingAccountReasonEnum;
|
|
17
|
+
(function (OnboardingAccountReasonEnum) {
|
|
18
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
19
|
+
OnboardingAccountReasonEnum["BLACKLIST"] = "BLACKLIST";
|
|
20
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
21
|
+
OnboardingAccountReasonEnum["DUPLICATE_USER"] = "DUPLICATE_USER";
|
|
22
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
23
|
+
OnboardingAccountReasonEnum["DOCUMENT_INVALID"] = "DOCUMENT_INVALID";
|
|
24
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
25
|
+
OnboardingAccountReasonEnum["DOCUMENT_VERIFICATION"] = "DOCUMENT_VERIFICATION";
|
|
26
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
27
|
+
OnboardingAccountReasonEnum["PROVIDER_DENIED"] = "PROVIDER_DENIED";
|
|
28
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
29
|
+
OnboardingAccountReasonEnum["PROVIDER_REVIEW"] = "PROVIDER_REVIEW";
|
|
30
|
+
})(OnboardingAccountReasonEnum || (exports.OnboardingAccountReasonEnum = OnboardingAccountReasonEnum = {}));
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
3
|
+
*
|
|
4
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
5
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
6
|
+
* persona ya hizo su parte.
|
|
7
|
+
*
|
|
8
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
9
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
10
|
+
* abrir cuenta cuando una de las dos sí.
|
|
11
|
+
*
|
|
12
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
13
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
14
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
15
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
16
|
+
*/
|
|
17
|
+
export declare enum OnboardingAccountStatusEnum {
|
|
18
|
+
IN_PROGRESS = "IN_PROGRESS",
|
|
19
|
+
UNDER_REVIEW = "UNDER_REVIEW",
|
|
20
|
+
REJECTED = "REJECTED",
|
|
21
|
+
OPEN = "OPEN"
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingAccountStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
6
|
+
*
|
|
7
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
8
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
9
|
+
* persona ya hizo su parte.
|
|
10
|
+
*
|
|
11
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
12
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
13
|
+
* abrir cuenta cuando una de las dos sí.
|
|
14
|
+
*
|
|
15
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
16
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
17
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
18
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
19
|
+
*/
|
|
20
|
+
var OnboardingAccountStatusEnum;
|
|
21
|
+
(function (OnboardingAccountStatusEnum) {
|
|
22
|
+
OnboardingAccountStatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
|
|
23
|
+
OnboardingAccountStatusEnum["UNDER_REVIEW"] = "UNDER_REVIEW";
|
|
24
|
+
OnboardingAccountStatusEnum["REJECTED"] = "REJECTED";
|
|
25
|
+
OnboardingAccountStatusEnum["OPEN"] = "OPEN";
|
|
26
|
+
})(OnboardingAccountStatusEnum || (exports.OnboardingAccountStatusEnum = OnboardingAccountStatusEnum = {}));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
6
|
+
* app pinta el array tal como llega.
|
|
7
|
+
*
|
|
8
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
9
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
10
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
11
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum OnboardingStepIdEnum {
|
|
14
|
+
KYC_IDENTIFICATION = "KYC_IDENTIFICATION",
|
|
15
|
+
INCOME_INFORMATION = "INCOME_INFORMATION",
|
|
16
|
+
US_ADDRESS = "US_ADDRESS",
|
|
17
|
+
MX_PROOF_OF_ADDRESS = "MX_PROOF_OF_ADDRESS",
|
|
18
|
+
MX_REGULATORY_QUESTIONS = "MX_REGULATORY_QUESTIONS",
|
|
19
|
+
MX_BENEFICIARIES = "MX_BENEFICIARIES",
|
|
20
|
+
DATA_CONFIRMATION = "DATA_CONFIRMATION"
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepIdEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
6
|
+
* onboarding-business).
|
|
7
|
+
*
|
|
8
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
9
|
+
* app pinta el array tal como llega.
|
|
10
|
+
*
|
|
11
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
12
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
13
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
14
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
15
|
+
*/
|
|
16
|
+
var OnboardingStepIdEnum;
|
|
17
|
+
(function (OnboardingStepIdEnum) {
|
|
18
|
+
OnboardingStepIdEnum["KYC_IDENTIFICATION"] = "KYC_IDENTIFICATION";
|
|
19
|
+
OnboardingStepIdEnum["INCOME_INFORMATION"] = "INCOME_INFORMATION";
|
|
20
|
+
OnboardingStepIdEnum["US_ADDRESS"] = "US_ADDRESS";
|
|
21
|
+
OnboardingStepIdEnum["MX_PROOF_OF_ADDRESS"] = "MX_PROOF_OF_ADDRESS";
|
|
22
|
+
OnboardingStepIdEnum["MX_REGULATORY_QUESTIONS"] = "MX_REGULATORY_QUESTIONS";
|
|
23
|
+
OnboardingStepIdEnum["MX_BENEFICIARIES"] = "MX_BENEFICIARIES";
|
|
24
|
+
OnboardingStepIdEnum["DATA_CONFIRMATION"] = "DATA_CONFIRMATION";
|
|
25
|
+
})(OnboardingStepIdEnum || (exports.OnboardingStepIdEnum = OnboardingStepIdEnum = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
3
|
+
*
|
|
4
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
5
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
6
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
7
|
+
*/
|
|
8
|
+
export declare enum OnboardingStepStatusEnum {
|
|
9
|
+
LOCKED = "LOCKED",
|
|
10
|
+
UNLOCKED = "UNLOCKED",
|
|
11
|
+
DONE = "DONE"
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingStepStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
6
|
+
*
|
|
7
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
8
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
9
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
10
|
+
*/
|
|
11
|
+
var OnboardingStepStatusEnum;
|
|
12
|
+
(function (OnboardingStepStatusEnum) {
|
|
13
|
+
OnboardingStepStatusEnum["LOCKED"] = "LOCKED";
|
|
14
|
+
OnboardingStepStatusEnum["UNLOCKED"] = "UNLOCKED";
|
|
15
|
+
OnboardingStepStatusEnum["DONE"] = "DONE";
|
|
16
|
+
})(OnboardingStepStatusEnum || (exports.OnboardingStepStatusEnum = OnboardingStepStatusEnum = {}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Enums
|
|
18
|
+
__exportStar(require("./enums/OnboardingStepIdEnum"), exports);
|
|
19
|
+
__exportStar(require("./enums/OnboardingStepStatusEnum"), exports);
|
|
20
|
+
__exportStar(require("./enums/OnboardingAccountStatusEnum"), exports);
|
|
21
|
+
__exportStar(require("./enums/OnboardingAccountReasonEnum"), exports);
|
|
22
|
+
// Response DTOs
|
|
23
|
+
__exportStar(require("./dtos/responses/OnboardingStepsResponse"), exports);
|
|
@@ -5,7 +5,37 @@ export declare class TransactionAlarmQueueMessage {
|
|
|
5
5
|
peopleId: string;
|
|
6
6
|
transactionNumber: string;
|
|
7
7
|
amount: number;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated NO usar como nombre del cliente titular.
|
|
10
|
+
*
|
|
11
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
12
|
+
* con `product.details.targetName` — es decir, el nombre del
|
|
13
|
+
* beneficiario/contraparte del transfer que registró el sistema
|
|
14
|
+
* originador, no el nombre del titular de la cuenta sobre la cual
|
|
15
|
+
* se genera la alerta.
|
|
16
|
+
*
|
|
17
|
+
* Fuente autoritativa del nombre del titular:
|
|
18
|
+
* identityApi.getPeopleByIds([peopleId])[0].indexName
|
|
19
|
+
*
|
|
20
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
21
|
+
* (post-fix 2026-07-29) para el pattern de resolución correcto.
|
|
22
|
+
* Bug histórico: TransactionAlert_GT.indexName mostraba
|
|
23
|
+
* "NO INGRESADO" u otro placeholder cuando este campo llegaba vacío.
|
|
24
|
+
*/
|
|
8
25
|
indexName: string;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated NO usar como teléfono del cliente titular.
|
|
28
|
+
*
|
|
29
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
30
|
+
* con `product.details.targetNumber` — es decir, el teléfono del
|
|
31
|
+
* beneficiario/contraparte del transfer, no del titular de la cuenta.
|
|
32
|
+
*
|
|
33
|
+
* Fuente autoritativa del teléfono del titular:
|
|
34
|
+
* directoryService.getById(directoryId).phoneNumber
|
|
35
|
+
*
|
|
36
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
37
|
+
* (post-fix 2026-07-29).
|
|
38
|
+
*/
|
|
9
39
|
phoneNumber: string;
|
|
10
40
|
transactionDate: string;
|
|
11
41
|
transactionType: string;
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
IsBoolean,
|
|
2
3
|
IsEnum,
|
|
3
4
|
IsInt,
|
|
4
5
|
IsNotEmpty,
|
|
@@ -51,6 +52,10 @@ export class BenefitCreateRequest {
|
|
|
51
52
|
@IsString()
|
|
52
53
|
translationKey?: string;
|
|
53
54
|
|
|
55
|
+
@IsOptional()
|
|
56
|
+
@IsBoolean()
|
|
57
|
+
requiresEmail?: boolean;
|
|
58
|
+
|
|
54
59
|
@ValidateNested()
|
|
55
60
|
@Type(() => BenefitModuleConfigRequest)
|
|
56
61
|
moduleConfig!: BenefitModuleConfigRequest;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
IsBoolean,
|
|
2
3
|
IsEnum,
|
|
3
4
|
IsInt,
|
|
4
5
|
IsNotEmpty,
|
|
@@ -23,6 +24,7 @@ export class BenefitUpdateRequest {
|
|
|
23
24
|
@IsOptional() @IsString() icon?: string;
|
|
24
25
|
@IsOptional() @IsString() @IsNotEmpty() flow?: string;
|
|
25
26
|
@IsOptional() @IsString() translationKey?: string;
|
|
27
|
+
@IsOptional() @IsBoolean() requiresEmail?: boolean;
|
|
26
28
|
|
|
27
29
|
@IsOptional()
|
|
28
30
|
@ValidateNested()
|
package/src/index.ts
CHANGED
|
@@ -139,6 +139,10 @@ export * as LoanScoring from './loanScoring';
|
|
|
139
139
|
// consolidado + estados crudos + datos de persona. El consolidado reusa RetailKycStatusEnum
|
|
140
140
|
// (no hay enum consolidado propio — DEC-KYC-014). SureKeep Fase 2.
|
|
141
141
|
export * as Kyc from './kyc';
|
|
142
|
+
// Onboarding: contrato de los pasos del onboarding resueltos por SCOPE y no por país
|
|
143
|
+
// (onboarding-business, DEC-009 a DEC-021). Dos bloques: `steps` (qué le falta hacer al usuario) y
|
|
144
|
+
// `accounts` (cómo va el trámite de cada cuenta, por lado).
|
|
145
|
+
export * as Onboarding from './onboarding';
|
|
142
146
|
export * from './messaging';
|
|
143
147
|
export * from './complaint';
|
|
144
148
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Scope } from '../../../directory/enums/Scope';
|
|
2
|
+
import { OnboardingStepIdEnum } from '../../enums/OnboardingStepIdEnum';
|
|
3
|
+
import { OnboardingStepStatusEnum } from '../../enums/OnboardingStepStatusEnum';
|
|
4
|
+
import { OnboardingAccountStatusEnum } from '../../enums/OnboardingAccountStatusEnum';
|
|
5
|
+
import { OnboardingAccountReasonEnum } from '../../enums/OnboardingAccountReasonEnum';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Un paso: `id` + `status` y nada más. Sin motivo, sin metadata y sin lado (DEC-012 de
|
|
9
|
+
* onboarding-business).
|
|
10
|
+
*
|
|
11
|
+
* Para saber QUÉ documento pedir en `KYC_IDENTIFICATION`, el consumidor le pregunta a
|
|
12
|
+
* kyc-verifications-business, que es quien decide el workflow de Metamap (DEC-017).
|
|
13
|
+
*/
|
|
14
|
+
export class OnboardingStepDto {
|
|
15
|
+
id!: OnboardingStepIdEnum;
|
|
16
|
+
status!: OnboardingStepStatusEnum;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* El trámite de una cuenta, por lado. Es el único bloque que lleva motivo.
|
|
21
|
+
*/
|
|
22
|
+
export class OnboardingAccountDto {
|
|
23
|
+
/** Scope de onboarding al que corresponde la cuenta: `fiado.on_us` o `fiado.on_mx`. */
|
|
24
|
+
scope!: Scope;
|
|
25
|
+
status!: OnboardingAccountStatusEnum;
|
|
26
|
+
/** `null` cuando no hay nada que explicar. */
|
|
27
|
+
reason!: OnboardingAccountReasonEnum | null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Respuesta de `GET /onboarding-business/steps`.
|
|
32
|
+
*
|
|
33
|
+
* Dos bloques que contestan preguntas DISTINTAS, y por eso no pueden contradecirse:
|
|
34
|
+
* - `steps` → qué le falta HACER al usuario.
|
|
35
|
+
* - `accounts` → cómo va el trámite de cada cuenta.
|
|
36
|
+
*
|
|
37
|
+
* No recibe `countryId`: los pasos salen de los scopes del usuario y el sujeto sale del token.
|
|
38
|
+
*/
|
|
39
|
+
export class OnboardingStepsResponse {
|
|
40
|
+
/**
|
|
41
|
+
* Solo los pasos aplicables al scope del usuario, **EN ORDEN DE PINTADO**. El consumidor pinta el
|
|
42
|
+
* array tal como llega: no reordena ni conoce las reglas de scope.
|
|
43
|
+
*
|
|
44
|
+
* El largo PUEDE CAMBIAR entre dos llamadas. Ejemplo real: en cuanto el usuario guarda una
|
|
45
|
+
* dirección, `MX_PROOF_OF_ADDRESS` deja de aplicar y sale de la lista.
|
|
46
|
+
*
|
|
47
|
+
* Vacío si la persona no tiene ningún scope de onboarding — eso NO es un error, significa que no
|
|
48
|
+
* tiene onboarding pendiente. Pasa justo después de firmar, cuando el scope pasa de `fiado.on_mx`
|
|
49
|
+
* a `fiado.mx`.
|
|
50
|
+
*/
|
|
51
|
+
steps!: OnboardingStepDto[];
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Un item por scope de onboarding que tenga el usuario. Vacío si no tiene ninguno.
|
|
55
|
+
*
|
|
56
|
+
* Cuando una cuenta viene en `REJECTED`, el consumidor tiene que darle PRIORIDAD sobre los pasos de
|
|
57
|
+
* esa cuenta: por diseño cinco de los siete pasos nunca se bloquean, así que un usuario rechazado
|
|
58
|
+
* igual va a recibir pasos abiertos.
|
|
59
|
+
*/
|
|
60
|
+
accounts!: OnboardingAccountDto[];
|
|
61
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motivo del estado de una cuenta. Solo viaja cuando hay algo que explicar (DEC-021 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* Las claves de texto de estos valores tienen que existir en Firebase Remote Config antes de que el
|
|
6
|
+
* backend empiece a mandarlos: el copy de la app vive ahí, así que un motivo sin clave deja la pantalla
|
|
7
|
+
* sin texto.
|
|
8
|
+
*
|
|
9
|
+
* `PROVIDER_DENIED` y `PROVIDER_REVIEW` aplican SOLO al lado USA, que es donde existe `CP_Status`. El
|
|
10
|
+
* lado mexicano no tiene señal propia de rechazo más allá de las banderas de verificación del
|
|
11
|
+
* documento: `authorizationNeededMXN` está en `NOT_REQUIRED` en el 100% de los registros de producción.
|
|
12
|
+
*/
|
|
13
|
+
export enum OnboardingAccountReasonEnum {
|
|
14
|
+
/** Lista negra (`fiadoListApproved === false`). Afecta los dos lados. */
|
|
15
|
+
BLACKLIST = 'BLACKLIST',
|
|
16
|
+
/** Detección de duplicados (`duplicateUserDetection === true`). Afecta los dos lados. */
|
|
17
|
+
DUPLICATE_USER = 'DUPLICATE_USER',
|
|
18
|
+
/** Alguna verificación del documento de ese lado en `false`. */
|
|
19
|
+
DOCUMENT_INVALID = 'DOCUMENT_INVALID',
|
|
20
|
+
/** Documento subido y verificaciones todavía sin resolver. */
|
|
21
|
+
DOCUMENT_VERIFICATION = 'DOCUMENT_VERIFICATION',
|
|
22
|
+
/** Solo lado USA: el proveedor rechazó. */
|
|
23
|
+
PROVIDER_DENIED = 'PROVIDER_DENIED',
|
|
24
|
+
/** Solo lado USA: el proveedor está revisando o pidiendo documento. */
|
|
25
|
+
PROVIDER_REVIEW = 'PROVIDER_REVIEW',
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado del trámite de UNA cuenta (DEC-021 de onboarding-business).
|
|
3
|
+
*
|
|
4
|
+
* Es un eje distinto del de los pasos: `steps` dice qué le falta HACER al usuario, `accounts` dice cómo
|
|
5
|
+
* va el trámite. Un paso en `DONE` junto a una cuenta en `UNDER_REVIEW` no es contradicción — la
|
|
6
|
+
* persona ya hizo su parte.
|
|
7
|
+
*
|
|
8
|
+
* Va por lado y no como valor global porque en producción hay 230 personas con problema solo del lado
|
|
9
|
+
* USA y 28 solo del mexicano: para esas 258 un valor único mentiría, diciéndoles que no se les puede
|
|
10
|
+
* abrir cuenta cuando una de las dos sí.
|
|
11
|
+
*
|
|
12
|
+
* `OPEN` se deriva de la bandera de la cuenta (`MEX_DebitAccount` / `USA_DebitAccount`) y NUNCA del
|
|
13
|
+
* scope: cuando el backend crea la cuenta el scope sigue siendo el de onboarding, y recién cambia
|
|
14
|
+
* cuando el usuario firma los documentos legales. Derivarlo del scope produce una circularidad que
|
|
15
|
+
* deja al usuario con la cuenta creada y el contrato sin firmar de forma permanente.
|
|
16
|
+
*/
|
|
17
|
+
export enum OnboardingAccountStatusEnum {
|
|
18
|
+
IN_PROGRESS = 'IN_PROGRESS',
|
|
19
|
+
UNDER_REVIEW = 'UNDER_REVIEW',
|
|
20
|
+
REJECTED = 'REJECTED',
|
|
21
|
+
OPEN = 'OPEN',
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Los 7 pasos del onboarding, resueltos por los scopes del usuario y NO por país (DEC-009, DEC-010 de
|
|
3
|
+
* onboarding-business).
|
|
4
|
+
*
|
|
5
|
+
* El orden de este enum no define el orden de pintado: la respuesta trae los pasos ya ordenados y la
|
|
6
|
+
* app pinta el array tal como llega.
|
|
7
|
+
*
|
|
8
|
+
* Los ids con prefijo de lado (`US_` / `MX_`) lo llevan porque **son** de un lado: lo que el rediseño
|
|
9
|
+
* elimina es el `countryId` de la entrada, no la realidad de que el comprobante de domicilio es un
|
|
10
|
+
* requisito mexicano. `DATA_CONFIRMATION` es el paso de "revisá y confirmá tus datos"; se llama así y
|
|
11
|
+
* no `INFO_SELF_VERIFY` para no confundirlo con la verificación de Metamap de `KYC_IDENTIFICATION`.
|
|
12
|
+
*/
|
|
13
|
+
export enum OnboardingStepIdEnum {
|
|
14
|
+
KYC_IDENTIFICATION = 'KYC_IDENTIFICATION',
|
|
15
|
+
INCOME_INFORMATION = 'INCOME_INFORMATION',
|
|
16
|
+
US_ADDRESS = 'US_ADDRESS',
|
|
17
|
+
MX_PROOF_OF_ADDRESS = 'MX_PROOF_OF_ADDRESS',
|
|
18
|
+
MX_REGULATORY_QUESTIONS = 'MX_REGULATORY_QUESTIONS',
|
|
19
|
+
MX_BENEFICIARIES = 'MX_BENEFICIARIES',
|
|
20
|
+
DATA_CONFIRMATION = 'DATA_CONFIRMATION',
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de un paso. Mapea 1:1 a lo que pinta la app: caja cerrada / caja abierta / verde.
|
|
3
|
+
*
|
|
4
|
+
* Solo `KYC_IDENTIFICATION` (por veto o verificación en curso) y `DATA_CONFIRMATION` (porque agrega
|
|
5
|
+
* sobre los demás) pueden venir en `LOCKED`. Los otros cinco pasos son `UNLOCKED` o `DONE` — no existe
|
|
6
|
+
* insumo que los pueda bloquear (DEC-011 de onboarding-business).
|
|
7
|
+
*/
|
|
8
|
+
export enum OnboardingStepStatusEnum {
|
|
9
|
+
LOCKED = 'LOCKED',
|
|
10
|
+
UNLOCKED = 'UNLOCKED',
|
|
11
|
+
DONE = 'DONE',
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Enums
|
|
2
|
+
export * from './enums/OnboardingStepIdEnum';
|
|
3
|
+
export * from './enums/OnboardingStepStatusEnum';
|
|
4
|
+
export * from './enums/OnboardingAccountStatusEnum';
|
|
5
|
+
export * from './enums/OnboardingAccountReasonEnum';
|
|
6
|
+
|
|
7
|
+
// Response DTOs
|
|
8
|
+
export * from './dtos/responses/OnboardingStepsResponse';
|
|
@@ -22,10 +22,40 @@ export class TransactionAlarmQueueMessage {
|
|
|
22
22
|
@IsNotEmpty()
|
|
23
23
|
amount: number
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated NO usar como nombre del cliente titular.
|
|
27
|
+
*
|
|
28
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
29
|
+
* con `product.details.targetName` — es decir, el nombre del
|
|
30
|
+
* beneficiario/contraparte del transfer que registró el sistema
|
|
31
|
+
* originador, no el nombre del titular de la cuenta sobre la cual
|
|
32
|
+
* se genera la alerta.
|
|
33
|
+
*
|
|
34
|
+
* Fuente autoritativa del nombre del titular:
|
|
35
|
+
* identityApi.getPeopleByIds([peopleId])[0].indexName
|
|
36
|
+
*
|
|
37
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
38
|
+
* (post-fix 2026-07-29) para el pattern de resolución correcto.
|
|
39
|
+
* Bug histórico: TransactionAlert_GT.indexName mostraba
|
|
40
|
+
* "NO INGRESADO" u otro placeholder cuando este campo llegaba vacío.
|
|
41
|
+
*/
|
|
25
42
|
@IsString()
|
|
26
43
|
@IsNotEmpty()
|
|
27
44
|
indexName: string
|
|
28
45
|
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated NO usar como teléfono del cliente titular.
|
|
48
|
+
*
|
|
49
|
+
* Este campo lo pobla `transaction-business/TransactionAlertMapper`
|
|
50
|
+
* con `product.details.targetNumber` — es decir, el teléfono del
|
|
51
|
+
* beneficiario/contraparte del transfer, no del titular de la cuenta.
|
|
52
|
+
*
|
|
53
|
+
* Fuente autoritativa del teléfono del titular:
|
|
54
|
+
* directoryService.getById(directoryId).phoneNumber
|
|
55
|
+
*
|
|
56
|
+
* Ver risk-profile-business/AlarmEvaluationManager.evaluateAlarms
|
|
57
|
+
* (post-fix 2026-07-29).
|
|
58
|
+
*/
|
|
29
59
|
@IsString()
|
|
30
60
|
@IsNotEmpty()
|
|
31
61
|
phoneNumber: string
|
|
@@ -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,11 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
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 = {}));
|
|
@@ -1,17 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
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;
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,36 +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.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);
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,36 +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.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);
|