@fiado/type-kit 3.407.0 → 3.408.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/loanCredit/constants/creditPaymentHook.d.ts +2 -0
- package/bin/loanCredit/constants/creditPaymentHook.js +5 -0
- package/bin/loanCredit/dtos/requests/CreditPaymentAppliedRequest.d.ts +10 -0
- package/bin/loanCredit/dtos/requests/CreditPaymentAppliedRequest.js +38 -0
- package/bin/loanCredit/dtos/requests/CreditSettledRequest.d.ts +10 -0
- package/bin/loanCredit/dtos/requests/CreditSettledRequest.js +38 -0
- package/bin/loanCredit/dtos/responses/CreditPaymentAppliedResponse.d.ts +8 -0
- package/bin/loanCredit/dtos/responses/CreditPaymentAppliedResponse.js +2 -0
- package/bin/loanCredit/dtos/responses/CreditSettledResponse.d.ts +8 -0
- package/bin/loanCredit/dtos/responses/CreditSettledResponse.js +2 -0
- package/bin/loanCredit/enums/CreditPaymentUnlockDecisionEnum.d.ts +20 -0
- package/bin/loanCredit/enums/CreditPaymentUnlockDecisionEnum.js +24 -0
- package/bin/loanCredit/enums/CreditSettlementDecisionEnum.d.ts +21 -0
- package/bin/loanCredit/enums/CreditSettlementDecisionEnum.js +25 -0
- package/bin/loanCredit/enums/CreditSettlementReleaseDecisionEnum.d.ts +17 -0
- package/bin/loanCredit/enums/CreditSettlementReleaseDecisionEnum.js +21 -0
- package/bin/loanCredit/index.d.ts +8 -0
- package/bin/loanCredit/index.js +8 -0
- package/package.json +1 -1
- package/src/loanCredit/constants/creditPaymentHook.ts +2 -0
- package/src/loanCredit/dtos/requests/CreditPaymentAppliedRequest.ts +25 -0
- package/src/loanCredit/dtos/requests/CreditSettledRequest.ts +25 -0
- package/src/loanCredit/dtos/responses/CreditPaymentAppliedResponse.ts +9 -0
- package/src/loanCredit/dtos/responses/CreditSettledResponse.ts +9 -0
- package/src/loanCredit/enums/CreditPaymentUnlockDecisionEnum.ts +20 -0
- package/src/loanCredit/enums/CreditSettlementDecisionEnum.ts +21 -0
- package/src/loanCredit/enums/CreditSettlementReleaseDecisionEnum.ts +17 -0
- package/src/loanCredit/index.ts +8 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH = void 0;
|
|
4
|
+
/** Largo máximo del actor y de la referencia de pago de los dos hooks de cobranza del crédito. */
|
|
5
|
+
exports.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH = 120;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body de `POST /private/credits/:creditId/payment-applied` (loan-credit-business). Es OPCIONAL:
|
|
3
|
+
* sin él el pago se atribuye al sistema. `paymentReference` es sólo trazabilidad — no decide nada.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CreditPaymentAppliedRequest {
|
|
6
|
+
/** Quién aplicó el pago; queda en la bitácora del expediente. */
|
|
7
|
+
actor?: string;
|
|
8
|
+
/** Referencia del pago en el sistema que lo aplicó. Sólo trazabilidad. */
|
|
9
|
+
paymentReference?: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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.CreditPaymentAppliedRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const creditPaymentHook_1 = require("../../constants/creditPaymentHook");
|
|
16
|
+
/**
|
|
17
|
+
* Body de `POST /private/credits/:creditId/payment-applied` (loan-credit-business). Es OPCIONAL:
|
|
18
|
+
* sin él el pago se atribuye al sistema. `paymentReference` es sólo trazabilidad — no decide nada.
|
|
19
|
+
*/
|
|
20
|
+
class CreditPaymentAppliedRequest {
|
|
21
|
+
}
|
|
22
|
+
exports.CreditPaymentAppliedRequest = CreditPaymentAppliedRequest;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_transformer_1.Expose)(),
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsString)(),
|
|
27
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
28
|
+
(0, class_validator_1.MaxLength)(creditPaymentHook_1.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CreditPaymentAppliedRequest.prototype, "actor", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
36
|
+
(0, class_validator_1.MaxLength)(creditPaymentHook_1.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], CreditPaymentAppliedRequest.prototype, "paymentReference", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body de `POST /private/credits/:creditId/settled` (loan-credit-business). También opcional.
|
|
3
|
+
* La ruta VERIFICA que el crédito no deba nada: no le cree al caller.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CreditSettledRequest {
|
|
6
|
+
/** Quién declaró la liquidación; queda en la bitácora del expediente. */
|
|
7
|
+
actor?: string;
|
|
8
|
+
/** Referencia del pago que liquidó. Sólo trazabilidad. */
|
|
9
|
+
paymentReference?: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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.CreditSettledRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const creditPaymentHook_1 = require("../../constants/creditPaymentHook");
|
|
16
|
+
/**
|
|
17
|
+
* Body de `POST /private/credits/:creditId/settled` (loan-credit-business). También opcional.
|
|
18
|
+
* La ruta VERIFICA que el crédito no deba nada: no le cree al caller.
|
|
19
|
+
*/
|
|
20
|
+
class CreditSettledRequest {
|
|
21
|
+
}
|
|
22
|
+
exports.CreditSettledRequest = CreditSettledRequest;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_transformer_1.Expose)(),
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsString)(),
|
|
27
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
28
|
+
(0, class_validator_1.MaxLength)(creditPaymentHook_1.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CreditSettledRequest.prototype, "actor", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_transformer_1.Expose)(),
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
36
|
+
(0, class_validator_1.MaxLength)(creditPaymentHook_1.CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], CreditSettledRequest.prototype, "paymentReference", void 0);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CreditPaymentUnlockDecisionEnum } from '../../enums/CreditPaymentUnlockDecisionEnum';
|
|
2
|
+
/** Resultado de aplicar un pago: el crédito sale de mora y el equipo se suelta si corresponde. */
|
|
3
|
+
export interface CreditPaymentAppliedResponse {
|
|
4
|
+
creditId: string;
|
|
5
|
+
/** El crédito salió de mora. Pasa aunque no haya equipo, esté sin candado, o sea SCHEDULED. */
|
|
6
|
+
creditReactivated: boolean;
|
|
7
|
+
unlockDecision: CreditPaymentUnlockDecisionEnum;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CreditSettlementDecisionEnum } from '../../enums/CreditSettlementDecisionEnum';
|
|
2
|
+
import { CreditSettlementReleaseDecisionEnum } from '../../enums/CreditSettlementReleaseDecisionEnum';
|
|
3
|
+
/** Resultado de liquidar el crédito; `releaseDecision` es null si el equipo no salió al proveedor. */
|
|
4
|
+
export interface CreditSettledResponse {
|
|
5
|
+
creditId: string;
|
|
6
|
+
settlementDecision: CreditSettlementDecisionEnum;
|
|
7
|
+
releaseDecision: CreditSettlementReleaseDecisionEnum | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó con el equipo cuando se aplicó un pago al crédito.
|
|
3
|
+
* @enum {string}
|
|
4
|
+
*/
|
|
5
|
+
export declare enum CreditPaymentUnlockDecisionEnum {
|
|
6
|
+
CREDIT_NOT_FOUND = "CREDIT_NOT_FOUND",
|
|
7
|
+
/** El crédito no está en un estado al que el pago le suelte el equipo. */
|
|
8
|
+
CREDIT_NOT_UNLOCKABLE = "CREDIT_NOT_UNLOCKABLE",
|
|
9
|
+
NOT_ENROLLED = "NOT_ENROLLED",
|
|
10
|
+
/** El equipo no estaba bloqueado: no hay nada que soltar. */
|
|
11
|
+
NOT_LOCKED = "NOT_LOCKED",
|
|
12
|
+
/** El candado no es el de la mora (fraude, manual, o sin motivo): un pago no lo suelta. */
|
|
13
|
+
LOCKED_FOR_OTHER_REASON = "LOCKED_FOR_OTHER_REASON",
|
|
14
|
+
/** El pago no alcanzó el umbral escalonado: sigue bloqueado y no se reprograma nada. */
|
|
15
|
+
THRESHOLD_NOT_MET = "THRESHOLD_NOT_MET",
|
|
16
|
+
UNLOCKED = "UNLOCKED",
|
|
17
|
+
/** El proveedor aceptó la orden y todavía no la dio por hecha. */
|
|
18
|
+
UNLOCK_PENDING = "UNLOCK_PENDING",
|
|
19
|
+
UNLOCK_FAILED = "UNLOCK_FAILED"
|
|
20
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreditPaymentUnlockDecisionEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Qué pasó con el equipo cuando se aplicó un pago al crédito.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var CreditPaymentUnlockDecisionEnum;
|
|
9
|
+
(function (CreditPaymentUnlockDecisionEnum) {
|
|
10
|
+
CreditPaymentUnlockDecisionEnum["CREDIT_NOT_FOUND"] = "CREDIT_NOT_FOUND";
|
|
11
|
+
/** El crédito no está en un estado al que el pago le suelte el equipo. */
|
|
12
|
+
CreditPaymentUnlockDecisionEnum["CREDIT_NOT_UNLOCKABLE"] = "CREDIT_NOT_UNLOCKABLE";
|
|
13
|
+
CreditPaymentUnlockDecisionEnum["NOT_ENROLLED"] = "NOT_ENROLLED";
|
|
14
|
+
/** El equipo no estaba bloqueado: no hay nada que soltar. */
|
|
15
|
+
CreditPaymentUnlockDecisionEnum["NOT_LOCKED"] = "NOT_LOCKED";
|
|
16
|
+
/** El candado no es el de la mora (fraude, manual, o sin motivo): un pago no lo suelta. */
|
|
17
|
+
CreditPaymentUnlockDecisionEnum["LOCKED_FOR_OTHER_REASON"] = "LOCKED_FOR_OTHER_REASON";
|
|
18
|
+
/** El pago no alcanzó el umbral escalonado: sigue bloqueado y no se reprograma nada. */
|
|
19
|
+
CreditPaymentUnlockDecisionEnum["THRESHOLD_NOT_MET"] = "THRESHOLD_NOT_MET";
|
|
20
|
+
CreditPaymentUnlockDecisionEnum["UNLOCKED"] = "UNLOCKED";
|
|
21
|
+
/** El proveedor aceptó la orden y todavía no la dio por hecha. */
|
|
22
|
+
CreditPaymentUnlockDecisionEnum["UNLOCK_PENDING"] = "UNLOCK_PENDING";
|
|
23
|
+
CreditPaymentUnlockDecisionEnum["UNLOCK_FAILED"] = "UNLOCK_FAILED";
|
|
24
|
+
})(CreditPaymentUnlockDecisionEnum || (exports.CreditPaymentUnlockDecisionEnum = CreditPaymentUnlockDecisionEnum = {}));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó al intentar dejar el crédito liquidado. La ruta VERIFICA el saldo, no cree al caller.
|
|
3
|
+
* @enum {string}
|
|
4
|
+
*/
|
|
5
|
+
export declare enum CreditSettlementDecisionEnum {
|
|
6
|
+
CREDIT_NOT_FOUND = "CREDIT_NOT_FOUND",
|
|
7
|
+
/** Ya estaba liquidado: la ruta es idempotente y la liberación corre igual. */
|
|
8
|
+
ALREADY_SETTLED = "ALREADY_SETTLED",
|
|
9
|
+
/** El estado del crédito no admite liquidación (sólo ACTIVE e IN_ARREARS la admiten). */
|
|
10
|
+
CREDIT_NOT_SETTLEABLE = "CREDIT_NOT_SETTLEABLE",
|
|
11
|
+
/** Sin plan de cuotas no hay evidencia de que deba cero; fail-closed. */
|
|
12
|
+
NO_INSTALLMENTS = "NO_INSTALLMENTS",
|
|
13
|
+
/** Al plan le falta alguna cuota del plazo: la deuda que no se persistió no se puede saldar. */
|
|
14
|
+
INCOMPLETE_PLAN = "INCOMPLETE_PLAN",
|
|
15
|
+
/** Alguna cuota sigue debiendo: liquidar acá liberaría un equipo con deuda viva. */
|
|
16
|
+
BALANCE_OUTSTANDING = "BALANCE_OUTSTANDING",
|
|
17
|
+
SETTLED = "SETTLED",
|
|
18
|
+
/** Otro movió el estado entre la lectura y la escritura; el caller relee y reintenta. */
|
|
19
|
+
SETTLE_CONFLICT = "SETTLE_CONFLICT",
|
|
20
|
+
SETTLE_FAILED = "SETTLE_FAILED"
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreditSettlementDecisionEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Qué pasó al intentar dejar el crédito liquidado. La ruta VERIFICA el saldo, no cree al caller.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var CreditSettlementDecisionEnum;
|
|
9
|
+
(function (CreditSettlementDecisionEnum) {
|
|
10
|
+
CreditSettlementDecisionEnum["CREDIT_NOT_FOUND"] = "CREDIT_NOT_FOUND";
|
|
11
|
+
/** Ya estaba liquidado: la ruta es idempotente y la liberación corre igual. */
|
|
12
|
+
CreditSettlementDecisionEnum["ALREADY_SETTLED"] = "ALREADY_SETTLED";
|
|
13
|
+
/** El estado del crédito no admite liquidación (sólo ACTIVE e IN_ARREARS la admiten). */
|
|
14
|
+
CreditSettlementDecisionEnum["CREDIT_NOT_SETTLEABLE"] = "CREDIT_NOT_SETTLEABLE";
|
|
15
|
+
/** Sin plan de cuotas no hay evidencia de que deba cero; fail-closed. */
|
|
16
|
+
CreditSettlementDecisionEnum["NO_INSTALLMENTS"] = "NO_INSTALLMENTS";
|
|
17
|
+
/** Al plan le falta alguna cuota del plazo: la deuda que no se persistió no se puede saldar. */
|
|
18
|
+
CreditSettlementDecisionEnum["INCOMPLETE_PLAN"] = "INCOMPLETE_PLAN";
|
|
19
|
+
/** Alguna cuota sigue debiendo: liquidar acá liberaría un equipo con deuda viva. */
|
|
20
|
+
CreditSettlementDecisionEnum["BALANCE_OUTSTANDING"] = "BALANCE_OUTSTANDING";
|
|
21
|
+
CreditSettlementDecisionEnum["SETTLED"] = "SETTLED";
|
|
22
|
+
/** Otro movió el estado entre la lectura y la escritura; el caller relee y reintenta. */
|
|
23
|
+
CreditSettlementDecisionEnum["SETTLE_CONFLICT"] = "SETTLE_CONFLICT";
|
|
24
|
+
CreditSettlementDecisionEnum["SETTLE_FAILED"] = "SETTLE_FAILED";
|
|
25
|
+
})(CreditSettlementDecisionEnum || (exports.CreditSettlementDecisionEnum = CreditSettlementDecisionEnum = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó con el equipo al liquidarse el crédito. El verbo es Release, terminal: el equipo SALE
|
|
3
|
+
* del enrolamiento, no se queda desbloqueado.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum CreditSettlementReleaseDecisionEnum {
|
|
7
|
+
CREDIT_NOT_FOUND = "CREDIT_NOT_FOUND",
|
|
8
|
+
/** El crédito no está liquidado: liberar el equipo sería irreversible y prematuro. */
|
|
9
|
+
CREDIT_NOT_SETTLED = "CREDIT_NOT_SETTLED",
|
|
10
|
+
NOT_ENROLLED = "NOT_ENROLLED",
|
|
11
|
+
/** El expediente ya salió del MDM; la liberación es idempotente y no vuelve a salir. */
|
|
12
|
+
ALREADY_RELEASED = "ALREADY_RELEASED",
|
|
13
|
+
RELEASED = "RELEASED",
|
|
14
|
+
/** El proveedor aceptó la liberación y todavía no la dio por hecha. */
|
|
15
|
+
RELEASE_PENDING = "RELEASE_PENDING",
|
|
16
|
+
RELEASE_FAILED = "RELEASE_FAILED"
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreditSettlementReleaseDecisionEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Qué pasó con el equipo al liquidarse el crédito. El verbo es Release, terminal: el equipo SALE
|
|
6
|
+
* del enrolamiento, no se queda desbloqueado.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var CreditSettlementReleaseDecisionEnum;
|
|
10
|
+
(function (CreditSettlementReleaseDecisionEnum) {
|
|
11
|
+
CreditSettlementReleaseDecisionEnum["CREDIT_NOT_FOUND"] = "CREDIT_NOT_FOUND";
|
|
12
|
+
/** El crédito no está liquidado: liberar el equipo sería irreversible y prematuro. */
|
|
13
|
+
CreditSettlementReleaseDecisionEnum["CREDIT_NOT_SETTLED"] = "CREDIT_NOT_SETTLED";
|
|
14
|
+
CreditSettlementReleaseDecisionEnum["NOT_ENROLLED"] = "NOT_ENROLLED";
|
|
15
|
+
/** El expediente ya salió del MDM; la liberación es idempotente y no vuelve a salir. */
|
|
16
|
+
CreditSettlementReleaseDecisionEnum["ALREADY_RELEASED"] = "ALREADY_RELEASED";
|
|
17
|
+
CreditSettlementReleaseDecisionEnum["RELEASED"] = "RELEASED";
|
|
18
|
+
/** El proveedor aceptó la liberación y todavía no la dio por hecha. */
|
|
19
|
+
CreditSettlementReleaseDecisionEnum["RELEASE_PENDING"] = "RELEASE_PENDING";
|
|
20
|
+
CreditSettlementReleaseDecisionEnum["RELEASE_FAILED"] = "RELEASE_FAILED";
|
|
21
|
+
})(CreditSettlementReleaseDecisionEnum || (exports.CreditSettlementReleaseDecisionEnum = CreditSettlementReleaseDecisionEnum = {}));
|
|
@@ -17,6 +17,14 @@ export * from './dtos/requests/OriginateLoanCreditRequest';
|
|
|
17
17
|
export * from './dtos/requests/QuoteLoanCreditRequest';
|
|
18
18
|
export * from './dtos/requests/SignLoanCreditRequest';
|
|
19
19
|
export * from './dtos/requests/ActivationCheckRequest';
|
|
20
|
+
export * from './dtos/requests/CreditPaymentAppliedRequest';
|
|
21
|
+
export * from './dtos/requests/CreditSettledRequest';
|
|
22
|
+
export * from './dtos/responses/CreditPaymentAppliedResponse';
|
|
23
|
+
export * from './dtos/responses/CreditSettledResponse';
|
|
24
|
+
export * from './enums/CreditPaymentUnlockDecisionEnum';
|
|
25
|
+
export * from './enums/CreditSettlementDecisionEnum';
|
|
26
|
+
export * from './enums/CreditSettlementReleaseDecisionEnum';
|
|
27
|
+
export * from './constants/creditPaymentHook';
|
|
20
28
|
export * from './dtos/requests/ChangeLoanCreditStatusRequest';
|
|
21
29
|
export * from './dtos/responses/LoanBorrowerResponse';
|
|
22
30
|
export * from './dtos/responses/LoanCreditResponse';
|
package/bin/loanCredit/index.js
CHANGED
|
@@ -39,6 +39,14 @@ __exportStar(require("./dtos/requests/OriginateLoanCreditRequest"), exports);
|
|
|
39
39
|
__exportStar(require("./dtos/requests/QuoteLoanCreditRequest"), exports);
|
|
40
40
|
__exportStar(require("./dtos/requests/SignLoanCreditRequest"), exports);
|
|
41
41
|
__exportStar(require("./dtos/requests/ActivationCheckRequest"), exports);
|
|
42
|
+
__exportStar(require("./dtos/requests/CreditPaymentAppliedRequest"), exports);
|
|
43
|
+
__exportStar(require("./dtos/requests/CreditSettledRequest"), exports);
|
|
44
|
+
__exportStar(require("./dtos/responses/CreditPaymentAppliedResponse"), exports);
|
|
45
|
+
__exportStar(require("./dtos/responses/CreditSettledResponse"), exports);
|
|
46
|
+
__exportStar(require("./enums/CreditPaymentUnlockDecisionEnum"), exports);
|
|
47
|
+
__exportStar(require("./enums/CreditSettlementDecisionEnum"), exports);
|
|
48
|
+
__exportStar(require("./enums/CreditSettlementReleaseDecisionEnum"), exports);
|
|
49
|
+
__exportStar(require("./constants/creditPaymentHook"), exports);
|
|
42
50
|
__exportStar(require("./dtos/requests/ChangeLoanCreditStatusRequest"), exports);
|
|
43
51
|
// Response DTOs
|
|
44
52
|
__exportStar(require("./dtos/responses/LoanBorrowerResponse"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
3
|
+
import { CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH } from '../../constants/creditPaymentHook';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Body de `POST /private/credits/:creditId/payment-applied` (loan-credit-business). Es OPCIONAL:
|
|
7
|
+
* sin él el pago se atribuye al sistema. `paymentReference` es sólo trazabilidad — no decide nada.
|
|
8
|
+
*/
|
|
9
|
+
export class CreditPaymentAppliedRequest {
|
|
10
|
+
/** Quién aplicó el pago; queda en la bitácora del expediente. */
|
|
11
|
+
@Expose()
|
|
12
|
+
@IsOptional()
|
|
13
|
+
@IsString()
|
|
14
|
+
@IsNotEmpty()
|
|
15
|
+
@MaxLength(CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH)
|
|
16
|
+
actor?: string;
|
|
17
|
+
|
|
18
|
+
/** Referencia del pago en el sistema que lo aplicó. Sólo trazabilidad. */
|
|
19
|
+
@Expose()
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsString()
|
|
22
|
+
@IsNotEmpty()
|
|
23
|
+
@MaxLength(CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH)
|
|
24
|
+
paymentReference?: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
3
|
+
import { CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH } from '../../constants/creditPaymentHook';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Body de `POST /private/credits/:creditId/settled` (loan-credit-business). También opcional.
|
|
7
|
+
* La ruta VERIFICA que el crédito no deba nada: no le cree al caller.
|
|
8
|
+
*/
|
|
9
|
+
export class CreditSettledRequest {
|
|
10
|
+
/** Quién declaró la liquidación; queda en la bitácora del expediente. */
|
|
11
|
+
@Expose()
|
|
12
|
+
@IsOptional()
|
|
13
|
+
@IsString()
|
|
14
|
+
@IsNotEmpty()
|
|
15
|
+
@MaxLength(CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH)
|
|
16
|
+
actor?: string;
|
|
17
|
+
|
|
18
|
+
/** Referencia del pago que liquidó. Sólo trazabilidad. */
|
|
19
|
+
@Expose()
|
|
20
|
+
@IsOptional()
|
|
21
|
+
@IsString()
|
|
22
|
+
@IsNotEmpty()
|
|
23
|
+
@MaxLength(CREDIT_PAYMENT_HOOK_TEXT_MAX_LENGTH)
|
|
24
|
+
paymentReference?: string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CreditPaymentUnlockDecisionEnum } from '../../enums/CreditPaymentUnlockDecisionEnum';
|
|
2
|
+
|
|
3
|
+
/** Resultado de aplicar un pago: el crédito sale de mora y el equipo se suelta si corresponde. */
|
|
4
|
+
export interface CreditPaymentAppliedResponse {
|
|
5
|
+
creditId: string;
|
|
6
|
+
/** El crédito salió de mora. Pasa aunque no haya equipo, esté sin candado, o sea SCHEDULED. */
|
|
7
|
+
creditReactivated: boolean;
|
|
8
|
+
unlockDecision: CreditPaymentUnlockDecisionEnum;
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CreditSettlementDecisionEnum } from '../../enums/CreditSettlementDecisionEnum';
|
|
2
|
+
import { CreditSettlementReleaseDecisionEnum } from '../../enums/CreditSettlementReleaseDecisionEnum';
|
|
3
|
+
|
|
4
|
+
/** Resultado de liquidar el crédito; `releaseDecision` es null si el equipo no salió al proveedor. */
|
|
5
|
+
export interface CreditSettledResponse {
|
|
6
|
+
creditId: string;
|
|
7
|
+
settlementDecision: CreditSettlementDecisionEnum;
|
|
8
|
+
releaseDecision: CreditSettlementReleaseDecisionEnum | null;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó con el equipo cuando se aplicó un pago al crédito.
|
|
3
|
+
* @enum {string}
|
|
4
|
+
*/
|
|
5
|
+
export enum CreditPaymentUnlockDecisionEnum {
|
|
6
|
+
CREDIT_NOT_FOUND = 'CREDIT_NOT_FOUND',
|
|
7
|
+
/** El crédito no está en un estado al que el pago le suelte el equipo. */
|
|
8
|
+
CREDIT_NOT_UNLOCKABLE = 'CREDIT_NOT_UNLOCKABLE',
|
|
9
|
+
NOT_ENROLLED = 'NOT_ENROLLED',
|
|
10
|
+
/** El equipo no estaba bloqueado: no hay nada que soltar. */
|
|
11
|
+
NOT_LOCKED = 'NOT_LOCKED',
|
|
12
|
+
/** El candado no es el de la mora (fraude, manual, o sin motivo): un pago no lo suelta. */
|
|
13
|
+
LOCKED_FOR_OTHER_REASON = 'LOCKED_FOR_OTHER_REASON',
|
|
14
|
+
/** El pago no alcanzó el umbral escalonado: sigue bloqueado y no se reprograma nada. */
|
|
15
|
+
THRESHOLD_NOT_MET = 'THRESHOLD_NOT_MET',
|
|
16
|
+
UNLOCKED = 'UNLOCKED',
|
|
17
|
+
/** El proveedor aceptó la orden y todavía no la dio por hecha. */
|
|
18
|
+
UNLOCK_PENDING = 'UNLOCK_PENDING',
|
|
19
|
+
UNLOCK_FAILED = 'UNLOCK_FAILED',
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó al intentar dejar el crédito liquidado. La ruta VERIFICA el saldo, no cree al caller.
|
|
3
|
+
* @enum {string}
|
|
4
|
+
*/
|
|
5
|
+
export enum CreditSettlementDecisionEnum {
|
|
6
|
+
CREDIT_NOT_FOUND = 'CREDIT_NOT_FOUND',
|
|
7
|
+
/** Ya estaba liquidado: la ruta es idempotente y la liberación corre igual. */
|
|
8
|
+
ALREADY_SETTLED = 'ALREADY_SETTLED',
|
|
9
|
+
/** El estado del crédito no admite liquidación (sólo ACTIVE e IN_ARREARS la admiten). */
|
|
10
|
+
CREDIT_NOT_SETTLEABLE = 'CREDIT_NOT_SETTLEABLE',
|
|
11
|
+
/** Sin plan de cuotas no hay evidencia de que deba cero; fail-closed. */
|
|
12
|
+
NO_INSTALLMENTS = 'NO_INSTALLMENTS',
|
|
13
|
+
/** Al plan le falta alguna cuota del plazo: la deuda que no se persistió no se puede saldar. */
|
|
14
|
+
INCOMPLETE_PLAN = 'INCOMPLETE_PLAN',
|
|
15
|
+
/** Alguna cuota sigue debiendo: liquidar acá liberaría un equipo con deuda viva. */
|
|
16
|
+
BALANCE_OUTSTANDING = 'BALANCE_OUTSTANDING',
|
|
17
|
+
SETTLED = 'SETTLED',
|
|
18
|
+
/** Otro movió el estado entre la lectura y la escritura; el caller relee y reintenta. */
|
|
19
|
+
SETTLE_CONFLICT = 'SETTLE_CONFLICT',
|
|
20
|
+
SETTLE_FAILED = 'SETTLE_FAILED',
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Qué pasó con el equipo al liquidarse el crédito. El verbo es Release, terminal: el equipo SALE
|
|
3
|
+
* del enrolamiento, no se queda desbloqueado.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export enum CreditSettlementReleaseDecisionEnum {
|
|
7
|
+
CREDIT_NOT_FOUND = 'CREDIT_NOT_FOUND',
|
|
8
|
+
/** El crédito no está liquidado: liberar el equipo sería irreversible y prematuro. */
|
|
9
|
+
CREDIT_NOT_SETTLED = 'CREDIT_NOT_SETTLED',
|
|
10
|
+
NOT_ENROLLED = 'NOT_ENROLLED',
|
|
11
|
+
/** El expediente ya salió del MDM; la liberación es idempotente y no vuelve a salir. */
|
|
12
|
+
ALREADY_RELEASED = 'ALREADY_RELEASED',
|
|
13
|
+
RELEASED = 'RELEASED',
|
|
14
|
+
/** El proveedor aceptó la liberación y todavía no la dio por hecha. */
|
|
15
|
+
RELEASE_PENDING = 'RELEASE_PENDING',
|
|
16
|
+
RELEASE_FAILED = 'RELEASE_FAILED',
|
|
17
|
+
}
|
package/src/loanCredit/index.ts
CHANGED
|
@@ -23,6 +23,14 @@ export * from './dtos/requests/OriginateLoanCreditRequest';
|
|
|
23
23
|
export * from './dtos/requests/QuoteLoanCreditRequest';
|
|
24
24
|
export * from './dtos/requests/SignLoanCreditRequest';
|
|
25
25
|
export * from './dtos/requests/ActivationCheckRequest';
|
|
26
|
+
export * from './dtos/requests/CreditPaymentAppliedRequest';
|
|
27
|
+
export * from './dtos/requests/CreditSettledRequest';
|
|
28
|
+
export * from './dtos/responses/CreditPaymentAppliedResponse';
|
|
29
|
+
export * from './dtos/responses/CreditSettledResponse';
|
|
30
|
+
export * from './enums/CreditPaymentUnlockDecisionEnum';
|
|
31
|
+
export * from './enums/CreditSettlementDecisionEnum';
|
|
32
|
+
export * from './enums/CreditSettlementReleaseDecisionEnum';
|
|
33
|
+
export * from './constants/creditPaymentHook';
|
|
26
34
|
export * from './dtos/requests/ChangeLoanCreditStatusRequest';
|
|
27
35
|
|
|
28
36
|
// Response DTOs
|