@fiado/type-kit 3.202.0 → 3.204.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/index.d.ts +1 -0
- package/bin/index.js +6 -2
- package/bin/loanCredit/dtos/LoanBorrower.d.ts +2 -0
- package/bin/loanCredit/dtos/LoanBorrower.js +6 -0
- package/bin/loanCredit/dtos/requests/SignLoanCreditRequest.d.ts +12 -0
- package/bin/loanCredit/dtos/requests/SignLoanCreditRequest.js +12 -0
- package/bin/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.d.ts +2 -0
- package/bin/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.js +6 -0
- package/bin/loanCredit/dtos/responses/LoanBorrowerResponse.d.ts +1 -0
- package/bin/shortlink/dtos/requests/CreateShortLinkRequest.d.ts +20 -0
- package/bin/shortlink/dtos/requests/CreateShortLinkRequest.js +62 -0
- package/bin/shortlink/dtos/responses/CreateShortLinkResponse.d.ts +10 -0
- package/bin/shortlink/dtos/responses/CreateShortLinkResponse.js +31 -0
- package/bin/shortlink/index.d.ts +2 -0
- package/bin/shortlink/index.js +20 -0
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/loanCredit/dtos/LoanBorrower.ts +6 -0
- package/src/loanCredit/dtos/requests/SignLoanCreditRequest.ts +20 -0
- package/src/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.ts +6 -0
- package/src/loanCredit/dtos/responses/LoanBorrowerResponse.ts +1 -0
- package/src/shortlink/dtos/requests/CreateShortLinkRequest.ts +47 -0
- package/src/shortlink/dtos/responses/CreateShortLinkResponse.ts +18 -0
- package/src/shortlink/index.ts +5 -0
package/bin/index.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ export * as RetailCards from './retailCards';
|
|
|
94
94
|
export * as RetailCustomer from './retailCustomer';
|
|
95
95
|
export * as RetailWizard from './retailWizard';
|
|
96
96
|
export * as LoanConfig from './loanConfig';
|
|
97
|
+
export * as Shortlink from './shortlink';
|
|
97
98
|
export * as LoanOfferings from './loanOfferings';
|
|
98
99
|
export * as LoanCollectorAssignment from './loanCollectorAssignment';
|
|
99
100
|
export * as LoanCredit from './loanCredit';
|
package/bin/index.js
CHANGED
|
@@ -37,8 +37,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Device = 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.Account = exports.Crypto = void 0;
|
|
40
|
-
exports.
|
|
41
|
-
exports.Kyc = void 0;
|
|
40
|
+
exports.LoanCredit = 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 = void 0;
|
|
41
|
+
exports.Kyc = exports.LoanScoring = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.Activity = __importStar(require("./activity"));
|
|
@@ -158,6 +158,10 @@ exports.RetailCustomer = __importStar(require("./retailCustomer"));
|
|
|
158
158
|
exports.RetailWizard = __importStar(require("./retailWizard"));
|
|
159
159
|
// LoanConfig: DTOs/enums del lambda loan-config-business (comp 09 — parámetros operativos del SOFOM).
|
|
160
160
|
exports.LoanConfig = __importStar(require("./loanConfig"));
|
|
161
|
+
// Shortlink: DTOs del lambda shortlink-business (acortador de URLs). Se consume M2M por su endpoint
|
|
162
|
+
// privado POST /private/links. En SureKeep Fase 2 lo usan el QR de instalación de la app (paso 09, D9)
|
|
163
|
+
// y el link de KYC CUSTOMER_LINK (paso 02, QR en tablet o SMS).
|
|
164
|
+
exports.Shortlink = __importStar(require("./shortlink"));
|
|
161
165
|
// LoanOfferings: DTOs/enums del lambda loan-offerings-business (comp 07 — planes de crédito,
|
|
162
166
|
// financieras, M:N retailer↔plan y simulador de cuota; SureKeep Fase 1 — pista Loan).
|
|
163
167
|
exports.LoanOfferings = __importStar(require("./loanOfferings"));
|
|
@@ -9,6 +9,8 @@ export declare class LoanBorrower {
|
|
|
9
9
|
borrowerId: string;
|
|
10
10
|
/** FK al comprador de retail (`RetailCustomer` — owner retail-customer-business). */
|
|
11
11
|
retailCustomerId: string;
|
|
12
|
+
/** DirectoryId Fiado del cliente (id operacional — hidratado de CustomerKycVerifiedV1). */
|
|
13
|
+
fiadoDirectoryId?: string;
|
|
12
14
|
/** SCI vigente 0-100 (M7). Ausente hasta la primera evaluación. */
|
|
13
15
|
sciScore?: number;
|
|
14
16
|
clientLevel?: ClientLevelEnum;
|
|
@@ -33,6 +33,12 @@ __decorate([
|
|
|
33
33
|
(0, class_validator_1.IsString)(),
|
|
34
34
|
__metadata("design:type", String)
|
|
35
35
|
], LoanBorrower.prototype, "retailCustomerId", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, class_transformer_1.Expose)(),
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], LoanBorrower.prototype, "fiadoDirectoryId", void 0);
|
|
36
42
|
__decorate([
|
|
37
43
|
(0, class_transformer_1.Expose)(),
|
|
38
44
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -14,4 +14,16 @@
|
|
|
14
14
|
export declare class SignLoanCreditRequest {
|
|
15
15
|
/** Código OTP de firma. Ausente = iniciar la firma (generar PDFs + enviar OTP). */
|
|
16
16
|
otpCode?: string;
|
|
17
|
+
/**
|
|
18
|
+
* SOLO en el inicio de firma (tiempo 1) con el OTP REAL de messages-business: el directoryId
|
|
19
|
+
* Fiado del cliente (lo aporta el WIZARD — dueño del dato; fallback: el fiadoDirectoryId
|
|
20
|
+
* hidratado en el borrower). El OTP se genera/verifica keyeado a este id (D5).
|
|
21
|
+
*/
|
|
22
|
+
otpDirectoryId?: string;
|
|
23
|
+
/**
|
|
24
|
+
* SOLO en el inicio de firma (tiempo 1) con el OTP REAL: el teléfono destino del SMS (E.164).
|
|
25
|
+
* PII TRANSITORIA: el motor la pasa a messages-business y NO la persiste ni loggea (silo
|
|
26
|
+
* PII-zero — el teléfono vive en RetailCustomer).
|
|
27
|
+
*/
|
|
28
|
+
otpDestination?: string;
|
|
17
29
|
}
|
|
@@ -35,3 +35,15 @@ __decorate([
|
|
|
35
35
|
(0, class_validator_1.Length)(4, 4),
|
|
36
36
|
__metadata("design:type", String)
|
|
37
37
|
], SignLoanCreditRequest.prototype, "otpCode", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_transformer_1.Expose)(),
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], SignLoanCreditRequest.prototype, "otpDirectoryId", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_transformer_1.Expose)(),
|
|
46
|
+
(0, class_validator_1.IsOptional)(),
|
|
47
|
+
(0, class_validator_1.IsString)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], SignLoanCreditRequest.prototype, "otpDestination", void 0);
|
|
@@ -7,6 +7,8 @@ import { LoanBeneficiary } from '../LoanBeneficiary';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class UpsertLoanBorrowerRequest {
|
|
9
9
|
retailCustomerId: string;
|
|
10
|
+
/** DirectoryId Fiado del cliente (id operacional). */
|
|
11
|
+
fiadoDirectoryId?: string;
|
|
10
12
|
sciScore?: number;
|
|
11
13
|
clientLevel?: ClientLevelEnum;
|
|
12
14
|
bureauScore?: number;
|
|
@@ -28,6 +28,12 @@ __decorate([
|
|
|
28
28
|
(0, class_validator_1.IsNotEmpty)(),
|
|
29
29
|
__metadata("design:type", String)
|
|
30
30
|
], UpsertLoanBorrowerRequest.prototype, "retailCustomerId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], UpsertLoanBorrowerRequest.prototype, "fiadoDirectoryId", void 0);
|
|
31
37
|
__decorate([
|
|
32
38
|
(0, class_transformer_1.Expose)(),
|
|
33
39
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -6,6 +6,7 @@ import { ClientLevelEnum } from '../../../loanScoring/enums/ClientLevelEnum';
|
|
|
6
6
|
export interface LoanBorrowerResponse {
|
|
7
7
|
borrowerId: string;
|
|
8
8
|
retailCustomerId: string;
|
|
9
|
+
fiadoDirectoryId?: string;
|
|
9
10
|
sciScore?: number;
|
|
10
11
|
clientLevel?: ClientLevelEnum;
|
|
11
12
|
bureauScore?: number;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creación de un short link vía el endpoint privado M2M de `shortlink-business`
|
|
3
|
+
* (`POST /private/links`). SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*
|
|
5
|
+
* Ojo con `expireAt`: es opcional en el tipo pero **obligatorio de facto**. El manager del
|
|
6
|
+
* lambda destino rechaza con `INVALID_EXPIRE_AT` si falta o si ya venció. Se deja opcional
|
|
7
|
+
* para no romper a un caller que use un default propio, pero mándalo siempre.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CreateShortLinkRequest {
|
|
10
|
+
/** URL destino. Debe ser HTTPS: el destino rechaza `http://` con `INVALID_DESTINATION_URL`. */
|
|
11
|
+
destination: string;
|
|
12
|
+
/** Epoch en **segundos** (no milisegundos). Debe ser futuro. */
|
|
13
|
+
expireAt?: number;
|
|
14
|
+
/** Quién pidió el link. En M2M conviene el nombre del lambda caller. */
|
|
15
|
+
createdBy?: string;
|
|
16
|
+
notes?: string;
|
|
17
|
+
directoryId?: string;
|
|
18
|
+
/** Código vanity. Si se omite, el destino genera uno Base62 único. */
|
|
19
|
+
code?: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
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.CreateShortLinkRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Creación de un short link vía el endpoint privado M2M de `shortlink-business`
|
|
17
|
+
* (`POST /private/links`). SureKeep Fase 2 — pista Retail.
|
|
18
|
+
*
|
|
19
|
+
* Ojo con `expireAt`: es opcional en el tipo pero **obligatorio de facto**. El manager del
|
|
20
|
+
* lambda destino rechaza con `INVALID_EXPIRE_AT` si falta o si ya venció. Se deja opcional
|
|
21
|
+
* para no romper a un caller que use un default propio, pero mándalo siempre.
|
|
22
|
+
*/
|
|
23
|
+
class CreateShortLinkRequest {
|
|
24
|
+
}
|
|
25
|
+
exports.CreateShortLinkRequest = CreateShortLinkRequest;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_transformer_1.Expose)(),
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
(0, class_validator_1.IsUrl)({ require_protocol: true, protocols: ['https'] }),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], CreateShortLinkRequest.prototype, "destination", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_transformer_1.Expose)(),
|
|
35
|
+
(0, class_validator_1.IsOptional)(),
|
|
36
|
+
(0, class_validator_1.IsNumber)(),
|
|
37
|
+
__metadata("design:type", Number)
|
|
38
|
+
], CreateShortLinkRequest.prototype, "expireAt", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_transformer_1.Expose)(),
|
|
41
|
+
(0, class_validator_1.IsOptional)(),
|
|
42
|
+
(0, class_validator_1.IsString)(),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], CreateShortLinkRequest.prototype, "createdBy", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_transformer_1.Expose)(),
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
48
|
+
(0, class_validator_1.IsString)(),
|
|
49
|
+
__metadata("design:type", String)
|
|
50
|
+
], CreateShortLinkRequest.prototype, "notes", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, class_transformer_1.Expose)(),
|
|
53
|
+
(0, class_validator_1.IsOptional)(),
|
|
54
|
+
(0, class_validator_1.IsString)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], CreateShortLinkRequest.prototype, "directoryId", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_transformer_1.Expose)(),
|
|
59
|
+
(0, class_validator_1.IsOptional)(),
|
|
60
|
+
(0, class_validator_1.IsString)(),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], CreateShortLinkRequest.prototype, "code", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Respuesta de `POST /private/links` de `shortlink-business`.
|
|
3
|
+
* Verificado contra Dev (2026-07-21): `{"id":"zJCeg7O","shortUrl":"https://.../go/zJCeg7O"}`.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CreateShortLinkResponse {
|
|
6
|
+
/** Código corto generado. Es la última parte del `shortUrl`. */
|
|
7
|
+
id: string;
|
|
8
|
+
/** URL corta completa, lista para mandar por SMS o pintar como QR. */
|
|
9
|
+
shortUrl: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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.CreateShortLinkResponse = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Respuesta de `POST /private/links` de `shortlink-business`.
|
|
17
|
+
* Verificado contra Dev (2026-07-21): `{"id":"zJCeg7O","shortUrl":"https://.../go/zJCeg7O"}`.
|
|
18
|
+
*/
|
|
19
|
+
class CreateShortLinkResponse {
|
|
20
|
+
}
|
|
21
|
+
exports.CreateShortLinkResponse = CreateShortLinkResponse;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_transformer_1.Expose)(),
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], CreateShortLinkResponse.prototype, "id", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_transformer_1.Expose)(),
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], CreateShortLinkResponse.prototype, "shortUrl", void 0);
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
// Request DTOs (input validado por endpoint)
|
|
18
|
+
__exportStar(require("./dtos/requests/CreateShortLinkRequest"), exports);
|
|
19
|
+
// Response DTOs
|
|
20
|
+
__exportStar(require("./dtos/responses/CreateShortLinkResponse"), exports);
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -117,6 +117,10 @@ export * as RetailCustomer from './retailCustomer';
|
|
|
117
117
|
export * as RetailWizard from './retailWizard';
|
|
118
118
|
// LoanConfig: DTOs/enums del lambda loan-config-business (comp 09 — parámetros operativos del SOFOM).
|
|
119
119
|
export * as LoanConfig from './loanConfig';
|
|
120
|
+
// Shortlink: DTOs del lambda shortlink-business (acortador de URLs). Se consume M2M por su endpoint
|
|
121
|
+
// privado POST /private/links. En SureKeep Fase 2 lo usan el QR de instalación de la app (paso 09, D9)
|
|
122
|
+
// y el link de KYC CUSTOMER_LINK (paso 02, QR en tablet o SMS).
|
|
123
|
+
export * as Shortlink from './shortlink';
|
|
120
124
|
// LoanOfferings: DTOs/enums del lambda loan-offerings-business (comp 07 — planes de crédito,
|
|
121
125
|
// financieras, M:N retailer↔plan y simulador de cuota; SureKeep Fase 1 — pista Loan).
|
|
122
126
|
export * as LoanOfferings from './loanOfferings';
|
|
@@ -28,6 +28,12 @@ export class LoanBorrower {
|
|
|
28
28
|
@IsString()
|
|
29
29
|
retailCustomerId!: string;
|
|
30
30
|
|
|
31
|
+
/** DirectoryId Fiado del cliente (id operacional — hidratado de CustomerKycVerifiedV1). */
|
|
32
|
+
@Expose()
|
|
33
|
+
@IsOptional()
|
|
34
|
+
@IsString()
|
|
35
|
+
fiadoDirectoryId?: string;
|
|
36
|
+
|
|
31
37
|
/** SCI vigente 0-100 (M7). Ausente hasta la primera evaluación. */
|
|
32
38
|
@Expose()
|
|
33
39
|
@IsOptional()
|
|
@@ -21,4 +21,24 @@ export class SignLoanCreditRequest {
|
|
|
21
21
|
@IsString()
|
|
22
22
|
@Length(4, 4)
|
|
23
23
|
otpCode?: string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* SOLO en el inicio de firma (tiempo 1) con el OTP REAL de messages-business: el directoryId
|
|
27
|
+
* Fiado del cliente (lo aporta el WIZARD — dueño del dato; fallback: el fiadoDirectoryId
|
|
28
|
+
* hidratado en el borrower). El OTP se genera/verifica keyeado a este id (D5).
|
|
29
|
+
*/
|
|
30
|
+
@Expose()
|
|
31
|
+
@IsOptional()
|
|
32
|
+
@IsString()
|
|
33
|
+
otpDirectoryId?: string;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* SOLO en el inicio de firma (tiempo 1) con el OTP REAL: el teléfono destino del SMS (E.164).
|
|
37
|
+
* PII TRANSITORIA: el motor la pasa a messages-business y NO la persiste ni loggea (silo
|
|
38
|
+
* PII-zero — el teléfono vive en RetailCustomer).
|
|
39
|
+
*/
|
|
40
|
+
@Expose()
|
|
41
|
+
@IsOptional()
|
|
42
|
+
@IsString()
|
|
43
|
+
otpDestination?: string;
|
|
24
44
|
}
|
|
@@ -23,6 +23,12 @@ export class UpsertLoanBorrowerRequest {
|
|
|
23
23
|
@IsNotEmpty()
|
|
24
24
|
retailCustomerId!: string;
|
|
25
25
|
|
|
26
|
+
/** DirectoryId Fiado del cliente (id operacional). */
|
|
27
|
+
@Expose()
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@IsString()
|
|
30
|
+
fiadoDirectoryId?: string;
|
|
31
|
+
|
|
26
32
|
@Expose()
|
|
27
33
|
@IsOptional()
|
|
28
34
|
@IsInt()
|
|
@@ -7,6 +7,7 @@ import { ClientLevelEnum } from '../../../loanScoring/enums/ClientLevelEnum';
|
|
|
7
7
|
export interface LoanBorrowerResponse {
|
|
8
8
|
borrowerId: string;
|
|
9
9
|
retailCustomerId: string;
|
|
10
|
+
fiadoDirectoryId?: string;
|
|
10
11
|
sciScore?: number;
|
|
11
12
|
clientLevel?: ClientLevelEnum;
|
|
12
13
|
bureauScore?: number;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsNotEmpty, IsNumber, IsOptional, IsString, IsUrl } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creación de un short link vía el endpoint privado M2M de `shortlink-business`
|
|
6
|
+
* (`POST /private/links`). SureKeep Fase 2 — pista Retail.
|
|
7
|
+
*
|
|
8
|
+
* Ojo con `expireAt`: es opcional en el tipo pero **obligatorio de facto**. El manager del
|
|
9
|
+
* lambda destino rechaza con `INVALID_EXPIRE_AT` si falta o si ya venció. Se deja opcional
|
|
10
|
+
* para no romper a un caller que use un default propio, pero mándalo siempre.
|
|
11
|
+
*/
|
|
12
|
+
export class CreateShortLinkRequest {
|
|
13
|
+
/** URL destino. Debe ser HTTPS: el destino rechaza `http://` con `INVALID_DESTINATION_URL`. */
|
|
14
|
+
@Expose()
|
|
15
|
+
@IsString()
|
|
16
|
+
@IsNotEmpty()
|
|
17
|
+
@IsUrl({ require_protocol: true, protocols: ['https'] })
|
|
18
|
+
destination!: string;
|
|
19
|
+
|
|
20
|
+
/** Epoch en **segundos** (no milisegundos). Debe ser futuro. */
|
|
21
|
+
@Expose()
|
|
22
|
+
@IsOptional()
|
|
23
|
+
@IsNumber()
|
|
24
|
+
expireAt?: number;
|
|
25
|
+
|
|
26
|
+
/** Quién pidió el link. En M2M conviene el nombre del lambda caller. */
|
|
27
|
+
@Expose()
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@IsString()
|
|
30
|
+
createdBy?: string;
|
|
31
|
+
|
|
32
|
+
@Expose()
|
|
33
|
+
@IsOptional()
|
|
34
|
+
@IsString()
|
|
35
|
+
notes?: string;
|
|
36
|
+
|
|
37
|
+
@Expose()
|
|
38
|
+
@IsOptional()
|
|
39
|
+
@IsString()
|
|
40
|
+
directoryId?: string;
|
|
41
|
+
|
|
42
|
+
/** Código vanity. Si se omite, el destino genera uno Base62 único. */
|
|
43
|
+
@Expose()
|
|
44
|
+
@IsOptional()
|
|
45
|
+
@IsString()
|
|
46
|
+
code?: string;
|
|
47
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsString } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Respuesta de `POST /private/links` de `shortlink-business`.
|
|
6
|
+
* Verificado contra Dev (2026-07-21): `{"id":"zJCeg7O","shortUrl":"https://.../go/zJCeg7O"}`.
|
|
7
|
+
*/
|
|
8
|
+
export class CreateShortLinkResponse {
|
|
9
|
+
/** Código corto generado. Es la última parte del `shortUrl`. */
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsString()
|
|
12
|
+
id!: string;
|
|
13
|
+
|
|
14
|
+
/** URL corta completa, lista para mandar por SMS o pintar como QR. */
|
|
15
|
+
@Expose()
|
|
16
|
+
@IsString()
|
|
17
|
+
shortUrl!: string;
|
|
18
|
+
}
|