@fiado/type-kit 3.394.0 → 3.396.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_test_/unit/loanCredit/creditAuditSnapshots.test.ts +75 -0
- package/_test_/unit/loanOfferings/simulationAudit.test.ts +70 -0
- package/_test_/unit/loanOfferings/storePolicyRequests.test.ts +5 -1
- package/bin/loanCredit/dtos/AppliedStorePolicySnapshot.d.ts +11 -0
- package/bin/loanCredit/dtos/AppliedStorePolicySnapshot.js +2 -0
- package/bin/loanCredit/dtos/CandidatePlanSnapshot.d.ts +8 -0
- package/bin/loanCredit/dtos/CandidatePlanSnapshot.js +2 -0
- package/bin/loanCredit/dtos/EffectiveTermsSnapshot.d.ts +12 -0
- package/bin/loanCredit/dtos/EffectiveTermsSnapshot.js +2 -0
- package/bin/loanCredit/dtos/responses/LoanCreditResponse.d.ts +18 -0
- package/bin/loanCredit/index.d.ts +3 -0
- package/bin/loanCredit/index.js +3 -0
- package/bin/loanOfferings/dtos/requests/ChangePromotionStatusRequest.d.ts +3 -2
- package/bin/loanOfferings/dtos/requests/ChangePromotionStatusRequest.js +3 -2
- package/bin/loanOfferings/dtos/requests/ChangeStorePolicyStatusRequest.d.ts +3 -2
- package/bin/loanOfferings/dtos/requests/ChangeStorePolicyStatusRequest.js +3 -2
- package/bin/loanOfferings/dtos/responses/SimulationResultResponse.d.ts +33 -0
- package/bin/loanOfferings/enums/FoldableTermEnum.d.ts +10 -0
- package/bin/loanOfferings/enums/FoldableTermEnum.js +14 -0
- package/bin/loanOfferings/enums/PromotionLogEventEnum.d.ts +2 -1
- package/bin/loanOfferings/enums/PromotionLogEventEnum.js +1 -0
- package/bin/loanOfferings/enums/PromotionStatusEnum.d.ts +5 -3
- package/bin/loanOfferings/enums/PromotionStatusEnum.js +4 -2
- package/bin/loanOfferings/enums/StorePolicyStatusEnum.d.ts +5 -3
- package/bin/loanOfferings/enums/StorePolicyStatusEnum.js +4 -2
- package/bin/loanOfferings/index.d.ts +1 -0
- package/bin/loanOfferings/index.js +1 -0
- package/package.json +1 -1
- package/src/loanCredit/dtos/AppliedStorePolicySnapshot.ts +12 -0
- package/src/loanCredit/dtos/CandidatePlanSnapshot.ts +8 -0
- package/src/loanCredit/dtos/EffectiveTermsSnapshot.ts +12 -0
- package/src/loanCredit/dtos/responses/LoanCreditResponse.ts +18 -0
- package/src/loanCredit/index.ts +3 -0
- package/src/loanOfferings/dtos/requests/ChangePromotionStatusRequest.ts +3 -2
- package/src/loanOfferings/dtos/requests/ChangeStorePolicyStatusRequest.ts +3 -2
- package/src/loanOfferings/dtos/responses/SimulationResultResponse.ts +35 -0
- package/src/loanOfferings/enums/FoldableTermEnum.ts +10 -0
- package/src/loanOfferings/enums/PromotionLogEventEnum.ts +1 -0
- package/src/loanOfferings/enums/PromotionStatusEnum.ts +4 -2
- package/src/loanOfferings/enums/StorePolicyStatusEnum.ts +4 -2
- package/src/loanOfferings/index.ts +1 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import {
|
|
3
|
+
AppliedStorePolicySnapshot,
|
|
4
|
+
CandidatePlanSnapshot,
|
|
5
|
+
EffectiveTermsSnapshot,
|
|
6
|
+
LoanCreditResponse,
|
|
7
|
+
} from '../../../src/loanCredit/index';
|
|
8
|
+
import { FoldableTermEnum, PromotionEffectKindEnum } from '../../../src/loanOfferings/index';
|
|
9
|
+
|
|
10
|
+
describe('snapshots de auditoría del crédito', () => {
|
|
11
|
+
it('congela la política especial con los términos que ganó', () => {
|
|
12
|
+
const policy: AppliedStorePolicySnapshot = {
|
|
13
|
+
policyId: 'POL#1',
|
|
14
|
+
name: 'Freno de riesgo Norte',
|
|
15
|
+
appliedTerms: [FoldableTermEnum.MAX_FINANCED_AMOUNT_CENTS],
|
|
16
|
+
};
|
|
17
|
+
expect(policy.appliedTerms[0]).toBe('maxFinancedAmountCents');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('congela el plan candidato con su id y su código', () => {
|
|
21
|
+
const candidate: CandidatePlanSnapshot = { planId: 'PLAN#1', code: 'SK-12' };
|
|
22
|
+
expect(candidate.planId).toBe('PLAN#1');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('admite un tope de enganche nulo: el plan puede no acotarlo', () => {
|
|
26
|
+
const terms: EffectiveTermsSnapshot = {
|
|
27
|
+
minDownPaymentPct: 0.1,
|
|
28
|
+
maxDownPaymentPct: null,
|
|
29
|
+
maxFinancedAmountCents: 2_500_000,
|
|
30
|
+
};
|
|
31
|
+
expect(terms.maxDownPaymentPct).toBeNull();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe('LoanCreditResponse', () => {
|
|
36
|
+
it('deja la auditoría opcional y nullable: los créditos viejos no la tienen', () => {
|
|
37
|
+
const legacy: Pick<
|
|
38
|
+
LoanCreditResponse,
|
|
39
|
+
| 'appliedPromotions'
|
|
40
|
+
| 'appliedStorePolicies'
|
|
41
|
+
| 'candidatePlans'
|
|
42
|
+
| 'planVersionAtOrigination'
|
|
43
|
+
| 'segmentIdsAtQuote'
|
|
44
|
+
| 'effectiveTerms'
|
|
45
|
+
> = {
|
|
46
|
+
appliedPromotions: null,
|
|
47
|
+
appliedStorePolicies: null,
|
|
48
|
+
candidatePlans: null,
|
|
49
|
+
planVersionAtOrigination: null,
|
|
50
|
+
segmentIdsAtQuote: null,
|
|
51
|
+
effectiveTerms: null,
|
|
52
|
+
};
|
|
53
|
+
expect(Object.values(legacy).every((value) => value === null)).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('convive con la promoción primaria singular, que no cambia', () => {
|
|
57
|
+
const audited: Pick<LoanCreditResponse, 'appliedPromotion' | 'appliedPromotions'> = {
|
|
58
|
+
appliedPromotion: {
|
|
59
|
+
promotionId: 'PROMO#1',
|
|
60
|
+
name: 'Buen Fin',
|
|
61
|
+
version: 2,
|
|
62
|
+
appliedEffects: [PromotionEffectKindEnum.DOWN_PAYMENT_DELTA],
|
|
63
|
+
},
|
|
64
|
+
appliedPromotions: [
|
|
65
|
+
{
|
|
66
|
+
promotionId: 'PROMO#1',
|
|
67
|
+
name: 'Buen Fin',
|
|
68
|
+
version: 2,
|
|
69
|
+
appliedEffects: [PromotionEffectKindEnum.DOWN_PAYMENT_DELTA],
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
expect(audited.appliedPromotions?.[0].name).toBe(audited.appliedPromotion?.name);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import {
|
|
3
|
+
AppliedStorePolicyResponse,
|
|
4
|
+
CandidatePlanResponse,
|
|
5
|
+
FoldableTermEnum,
|
|
6
|
+
PromotionEffectKindEnum,
|
|
7
|
+
SimulationResultResponse,
|
|
8
|
+
} from '../../../src/loanOfferings/index';
|
|
9
|
+
|
|
10
|
+
/** Los valores del enum son las claves literales de los términos que el motor pliega. */
|
|
11
|
+
describe('FoldableTermEnum', () => {
|
|
12
|
+
it('expone exactamente los tres términos plegables con su clave literal', () => {
|
|
13
|
+
expect(Object.values(FoldableTermEnum).sort()).toEqual(
|
|
14
|
+
['maxFinancedAmountCents', 'minDownPaymentPct', 'tnaAnnual'],
|
|
15
|
+
);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
describe('auditoría de la simulación', () => {
|
|
20
|
+
it('tipa el plan candidato con su id y su código', () => {
|
|
21
|
+
const candidate: CandidatePlanResponse = { planId: 'PLAN#1', code: 'SK-12' };
|
|
22
|
+
expect(candidate.code).toBe('SK-12');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('tipa la política aplicada con los términos que ganó', () => {
|
|
26
|
+
const policy: AppliedStorePolicyResponse = {
|
|
27
|
+
policyId: 'POL#1',
|
|
28
|
+
name: 'Freno de riesgo Norte',
|
|
29
|
+
appliedTerms: [FoldableTermEnum.TNA_ANNUAL, FoldableTermEnum.MIN_DOWN_PAYMENT_PCT],
|
|
30
|
+
};
|
|
31
|
+
expect(policy.appliedTerms).toHaveLength(2);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('deja los tres bloques de auditoría opcionales y conviviendo con la promoción primaria', () => {
|
|
35
|
+
const minimal: Pick<SimulationResultResponse, 'appliedPromotion'> = { appliedPromotion: null };
|
|
36
|
+
expect(minimal.appliedPromotion).toBeNull();
|
|
37
|
+
|
|
38
|
+
const audited: Pick<
|
|
39
|
+
SimulationResultResponse,
|
|
40
|
+
'appliedPromotion' | 'appliedPromotions' | 'candidatePlans' | 'appliedStorePolicies'
|
|
41
|
+
> = {
|
|
42
|
+
appliedPromotion: {
|
|
43
|
+
promotionId: 'PROMO#1',
|
|
44
|
+
name: 'Buen Fin',
|
|
45
|
+
version: 2,
|
|
46
|
+
appliedEffects: [PromotionEffectKindEnum.TNA_OVERRIDE],
|
|
47
|
+
},
|
|
48
|
+
appliedPromotions: [
|
|
49
|
+
{
|
|
50
|
+
promotionId: 'PROMO#1',
|
|
51
|
+
name: 'Buen Fin',
|
|
52
|
+
version: 2,
|
|
53
|
+
appliedEffects: [PromotionEffectKindEnum.TNA_OVERRIDE],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
promotionId: 'PROMO#2',
|
|
57
|
+
name: 'Bono tarjeta',
|
|
58
|
+
version: 1,
|
|
59
|
+
appliedEffects: [PromotionEffectKindEnum.PCF_BONUS],
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
candidatePlans: [{ planId: 'PLAN#1', code: 'SK-12' }],
|
|
63
|
+
appliedStorePolicies: [
|
|
64
|
+
{ policyId: 'POL#1', name: 'Freno Norte', appliedTerms: [FoldableTermEnum.TNA_ANNUAL] },
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
expect(audited.appliedPromotions).toHaveLength(2);
|
|
68
|
+
expect(audited.appliedPromotion?.promotionId).toBe(audited.appliedPromotions?.[0].promotionId);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
@@ -110,8 +110,12 @@ describe('ChangeStorePolicyStatusRequest', () => {
|
|
|
110
110
|
});
|
|
111
111
|
|
|
112
112
|
it('rechaza un estado que no existe', async () => {
|
|
113
|
-
expect(await errorProperties({ status: '
|
|
113
|
+
expect(await errorProperties({ status: 'CANCELLED' }, ChangeStorePolicyStatusRequest)).toContain(
|
|
114
114
|
'status',
|
|
115
115
|
);
|
|
116
116
|
});
|
|
117
|
+
|
|
118
|
+
it('acepta ARCHIVED: es la baja lógica de la pantalla', async () => {
|
|
119
|
+
expect(await errorProperties({ status: 'ARCHIVED' }, ChangeStorePolicyStatusRequest)).toEqual([]);
|
|
120
|
+
});
|
|
117
121
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FoldableTermEnum } from '../../loanOfferings/enums/FoldableTermEnum';
|
|
2
|
+
/**
|
|
3
|
+
* Política especial que ganó algún término de este crédito, congelada al cotizar. El catálogo de
|
|
4
|
+
* políticas es editable: sin esta copia, una edición posterior deja la cuota sin explicación.
|
|
5
|
+
*/
|
|
6
|
+
export interface AppliedStorePolicySnapshot {
|
|
7
|
+
policyId: string;
|
|
8
|
+
name: string;
|
|
9
|
+
/** Términos del plan que esta política ganó en el pliegue final. */
|
|
10
|
+
appliedTerms: FoldableTermEnum[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cotas con las que se cotizó este crédito de verdad, ya pisadas por promociones y políticas.
|
|
3
|
+
* NO son las del plan: una promoción puede bajar el enganche mínimo o subir el techo de monto.
|
|
4
|
+
*/
|
|
5
|
+
export interface EffectiveTermsSnapshot {
|
|
6
|
+
/** Enganche mínimo exigible, en decimal sobre 1 (`0.10` = 10%). */
|
|
7
|
+
minDownPaymentPct: number;
|
|
8
|
+
/** Tope de enganche, o `null` si el plan no lo acota. */
|
|
9
|
+
maxDownPaymentPct: number | null;
|
|
10
|
+
/** Techo de capital financiable. */
|
|
11
|
+
maxFinancedAmountCents: number;
|
|
12
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ClientLevelEnum } from '../../../loanScoring/enums/ClientLevelEnum';
|
|
2
2
|
import { LoanCreditStatusEnum } from '../../enums/LoanCreditStatusEnum';
|
|
3
3
|
import { AppliedPromotionSnapshot } from '../AppliedPromotionSnapshot';
|
|
4
|
+
import { AppliedStorePolicySnapshot } from '../AppliedStorePolicySnapshot';
|
|
5
|
+
import { CandidatePlanSnapshot } from '../CandidatePlanSnapshot';
|
|
6
|
+
import { EffectiveTermsSnapshot } from '../EffectiveTermsSnapshot';
|
|
4
7
|
/**
|
|
5
8
|
* Response de los endpoints de LoanCredit (loan-credit-business). Montos en cents; TNA decimal.
|
|
6
9
|
*/
|
|
@@ -31,6 +34,21 @@ export interface LoanCreditResponse {
|
|
|
31
34
|
clientLevelAtOrigination?: ClientLevelEnum;
|
|
32
35
|
/** Promoción con la que se cotizó, o `null` si ninguna alcanzaba a esta venta. */
|
|
33
36
|
appliedPromotion?: AppliedPromotionSnapshot | null;
|
|
37
|
+
/**
|
|
38
|
+
* TODAS las promociones aplicadas: `appliedPromotion` es la primaria y esto es la auditoría
|
|
39
|
+
* completa. Los términos de arriba YA las incluyen, no son un extra a sumar.
|
|
40
|
+
*/
|
|
41
|
+
appliedPromotions?: AppliedPromotionSnapshot[] | null;
|
|
42
|
+
/** Políticas especiales que ganaron algún término: qué frenó o aflojó la cuota. */
|
|
43
|
+
appliedStorePolicies?: AppliedStorePolicySnapshot[] | null;
|
|
44
|
+
/** Los planes que compitieron: contesta por qué este plan y no otro. */
|
|
45
|
+
candidatePlans?: CandidatePlanSnapshot[] | null;
|
|
46
|
+
/** Edición del plan al originar: contesta con qué reglas se cotizó, aunque después se edite. */
|
|
47
|
+
planVersionAtOrigination?: number | null;
|
|
48
|
+
/** Segmentos del cliente al cotizar: contesta por qué le alcanzó esa promoción. */
|
|
49
|
+
segmentIdsAtQuote?: string[] | null;
|
|
50
|
+
/** Cotas con las que se cotizó de verdad, ya pisadas por promociones y políticas. */
|
|
51
|
+
effectiveTerms?: EffectiveTermsSnapshot | null;
|
|
34
52
|
activatedAt?: string;
|
|
35
53
|
voluntaryCancelDeadline?: string;
|
|
36
54
|
firstDueDate?: string;
|
|
@@ -9,6 +9,9 @@ export * from './dtos/LoanInstallment';
|
|
|
9
9
|
export * from './dtos/LoanContract';
|
|
10
10
|
export * from './dtos/ActivationChecklist';
|
|
11
11
|
export * from './dtos/AppliedPromotionSnapshot';
|
|
12
|
+
export * from './dtos/AppliedStorePolicySnapshot';
|
|
13
|
+
export * from './dtos/CandidatePlanSnapshot';
|
|
14
|
+
export * from './dtos/EffectiveTermsSnapshot';
|
|
12
15
|
export * from './dtos/requests/UpsertLoanBorrowerRequest';
|
|
13
16
|
export * from './dtos/requests/OriginateLoanCreditRequest';
|
|
14
17
|
export * from './dtos/requests/QuoteLoanCreditRequest';
|
package/bin/loanCredit/index.js
CHANGED
|
@@ -30,6 +30,9 @@ __exportStar(require("./dtos/LoanInstallment"), exports);
|
|
|
30
30
|
__exportStar(require("./dtos/LoanContract"), exports);
|
|
31
31
|
__exportStar(require("./dtos/ActivationChecklist"), exports);
|
|
32
32
|
__exportStar(require("./dtos/AppliedPromotionSnapshot"), exports);
|
|
33
|
+
__exportStar(require("./dtos/AppliedStorePolicySnapshot"), exports);
|
|
34
|
+
__exportStar(require("./dtos/CandidatePlanSnapshot"), exports);
|
|
35
|
+
__exportStar(require("./dtos/EffectiveTermsSnapshot"), exports);
|
|
33
36
|
// Request DTOs
|
|
34
37
|
__exportStar(require("./dtos/requests/UpsertLoanBorrowerRequest"), exports);
|
|
35
38
|
__exportStar(require("./dtos/requests/OriginateLoanCreditRequest"), exports);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PromotionStatusEnum } from '../../enums/PromotionStatusEnum';
|
|
2
2
|
/**
|
|
3
|
-
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar o
|
|
4
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
3
|
+
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
4
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
5
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
5
6
|
* `reason` acompaña la pausa y queda en la bitácora.
|
|
6
7
|
*/
|
|
7
8
|
export declare class ChangePromotionStatusRequest {
|
|
@@ -14,8 +14,9 @@ const class_transformer_1 = require("class-transformer");
|
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const PromotionStatusEnum_1 = require("../../enums/PromotionStatusEnum");
|
|
16
16
|
/**
|
|
17
|
-
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar o
|
|
18
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
17
|
+
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
18
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
19
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
19
20
|
* `reason` acompaña la pausa y queda en la bitácora.
|
|
20
21
|
*/
|
|
21
22
|
class ChangePromotionStatusRequest {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { StorePolicyStatusEnum } from '../../enums/StorePolicyStatusEnum';
|
|
2
2
|
/**
|
|
3
|
-
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar o
|
|
4
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
3
|
+
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
4
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
5
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
5
6
|
* `reason` acompaña el cambio y queda en la bitácora.
|
|
6
7
|
*/
|
|
7
8
|
export declare class ChangeStorePolicyStatusRequest {
|
|
@@ -14,8 +14,9 @@ const class_transformer_1 = require("class-transformer");
|
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const StorePolicyStatusEnum_1 = require("../../enums/StorePolicyStatusEnum");
|
|
16
16
|
/**
|
|
17
|
-
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar o
|
|
18
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
17
|
+
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
18
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
19
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
19
20
|
* `reason` acompaña el cambio y queda en la bitácora.
|
|
20
21
|
*/
|
|
21
22
|
class ChangeStorePolicyStatusRequest {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FoldableTermEnum } from '../../enums/FoldableTermEnum';
|
|
1
2
|
import { PromotionEffectKindEnum } from '../../enums/PromotionEffectKindEnum';
|
|
2
3
|
import { PlanTermProvenance } from './StorePolicyResponse';
|
|
3
4
|
/**
|
|
@@ -27,6 +28,24 @@ export interface AppliedPromotionResponse {
|
|
|
27
28
|
/** Palancas del plan que la promoción pisó. */
|
|
28
29
|
appliedEffects: PromotionEffectKindEnum[];
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Una `CreditPlan` que el paso Base consideró para esta venta, haya ganado algún término o no.
|
|
33
|
+
* Es lo que contesta por qué ganó este plan y no otro.
|
|
34
|
+
*/
|
|
35
|
+
export interface CandidatePlanResponse {
|
|
36
|
+
planId: string;
|
|
37
|
+
code: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Política especial que ganó al menos un término de esta cotización. Las políticas en alcance que
|
|
41
|
+
* no ganaron nada no se reportan: no explican la cuota.
|
|
42
|
+
*/
|
|
43
|
+
export interface AppliedStorePolicyResponse {
|
|
44
|
+
policyId: string;
|
|
45
|
+
name: string;
|
|
46
|
+
/** Términos del plan que esta política ganó en el pliegue final. */
|
|
47
|
+
appliedTerms: FoldableTermEnum[];
|
|
48
|
+
}
|
|
30
49
|
/**
|
|
31
50
|
* Cotas con las que se cotizó de verdad, ya pisadas por la promoción y las políticas. NO son las
|
|
32
51
|
* del plan: una promoción puede bajar el enganche mínimo o subir el techo de monto.
|
|
@@ -84,4 +103,18 @@ export interface SimulationResultResponse {
|
|
|
84
103
|
* Las cotas efectivas de ESTA cotización. Ausente si el lambda todavía no las emite.
|
|
85
104
|
*/
|
|
86
105
|
effectiveTerms?: EffectiveTermsResponse;
|
|
106
|
+
/**
|
|
107
|
+
* Todas las `CreditPlan` candidatas del paso Base. Ausente si el lambda todavía no lo emite.
|
|
108
|
+
*/
|
|
109
|
+
candidatePlans?: CandidatePlanResponse[];
|
|
110
|
+
/**
|
|
111
|
+
* TODAS las promociones aplicadas: `appliedPromotion` es la primaria y esto es la auditoría
|
|
112
|
+
* completa. Los montos de arriba YA las incluyen, no son un extra a sumar. Ausente si el
|
|
113
|
+
* lambda todavía no lo emite.
|
|
114
|
+
*/
|
|
115
|
+
appliedPromotions?: AppliedPromotionResponse[];
|
|
116
|
+
/**
|
|
117
|
+
* Políticas especiales que ganaron algún término. Ausente si el lambda todavía no lo emite.
|
|
118
|
+
*/
|
|
119
|
+
appliedStorePolicies?: AppliedStorePolicyResponse[];
|
|
87
120
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Términos del plan que el motor de cotización pliega capa por capa (plan base, promociones,
|
|
3
|
+
* políticas especiales). El valor es la clave literal del término en el contrato.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum FoldableTermEnum {
|
|
7
|
+
MIN_DOWN_PAYMENT_PCT = "minDownPaymentPct",
|
|
8
|
+
TNA_ANNUAL = "tnaAnnual",
|
|
9
|
+
MAX_FINANCED_AMOUNT_CENTS = "maxFinancedAmountCents"
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FoldableTermEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Términos del plan que el motor de cotización pliega capa por capa (plan base, promociones,
|
|
6
|
+
* políticas especiales). El valor es la clave literal del término en el contrato.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var FoldableTermEnum;
|
|
10
|
+
(function (FoldableTermEnum) {
|
|
11
|
+
FoldableTermEnum["MIN_DOWN_PAYMENT_PCT"] = "minDownPaymentPct";
|
|
12
|
+
FoldableTermEnum["TNA_ANNUAL"] = "tnaAnnual";
|
|
13
|
+
FoldableTermEnum["MAX_FINANCED_AMOUNT_CENTS"] = "maxFinancedAmountCents";
|
|
14
|
+
})(FoldableTermEnum || (exports.FoldableTermEnum = FoldableTermEnum = {}));
|
|
@@ -13,4 +13,5 @@ var PromotionLogEventEnum;
|
|
|
13
13
|
PromotionLogEventEnum["RESUME"] = "RESUME";
|
|
14
14
|
PromotionLogEventEnum["EXPIRE"] = "EXPIRE";
|
|
15
15
|
PromotionLogEventEnum["UPDATE"] = "UPDATE";
|
|
16
|
+
PromotionLogEventEnum["ARCHIVE"] = "ARCHIVE";
|
|
16
17
|
})(PromotionLogEventEnum || (exports.PromotionLogEventEnum = PromotionLogEventEnum = {}));
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Estado PERSISTIDO de una promoción del motor (portal-admin-sk-promociones).
|
|
3
|
-
* `EXPIRED`
|
|
4
|
-
* se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
3
|
+
* `EXPIRED` y `ARCHIVED` son terminales. La «fase» que ve el operador (programada / activa /
|
|
4
|
+
* vencida) NO se guarda: se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
5
5
|
* @enum {string}
|
|
6
6
|
*/
|
|
7
7
|
export declare enum PromotionStatusEnum {
|
|
8
8
|
DRAFT = "DRAFT",
|
|
9
9
|
PUBLISHED = "PUBLISHED",
|
|
10
10
|
PAUSED = "PAUSED",
|
|
11
|
-
EXPIRED = "EXPIRED"
|
|
11
|
+
EXPIRED = "EXPIRED",
|
|
12
|
+
/** Baja lógica: la fila sigue en la tabla para los créditos que la referencian, y sale de toda lectura de operación. */
|
|
13
|
+
ARCHIVED = "ARCHIVED"
|
|
12
14
|
}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PromotionStatusEnum = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Estado PERSISTIDO de una promoción del motor (portal-admin-sk-promociones).
|
|
6
|
-
* `EXPIRED`
|
|
7
|
-
* se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
6
|
+
* `EXPIRED` y `ARCHIVED` son terminales. La «fase» que ve el operador (programada / activa /
|
|
7
|
+
* vencida) NO se guarda: se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
8
8
|
* @enum {string}
|
|
9
9
|
*/
|
|
10
10
|
var PromotionStatusEnum;
|
|
@@ -13,4 +13,6 @@ var PromotionStatusEnum;
|
|
|
13
13
|
PromotionStatusEnum["PUBLISHED"] = "PUBLISHED";
|
|
14
14
|
PromotionStatusEnum["PAUSED"] = "PAUSED";
|
|
15
15
|
PromotionStatusEnum["EXPIRED"] = "EXPIRED";
|
|
16
|
+
/** Baja lógica: la fila sigue en la tabla para los créditos que la referencian, y sale de toda lectura de operación. */
|
|
17
|
+
PromotionStatusEnum["ARCHIVED"] = "ARCHIVED";
|
|
16
18
|
})(PromotionStatusEnum || (exports.PromotionStatusEnum = PromotionStatusEnum = {}));
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED`
|
|
3
|
-
* operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
2
|
+
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED` y `ARCHIVED` son terminales. La
|
|
3
|
+
* fase que ve el operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
4
4
|
* @enum {string}
|
|
5
5
|
*/
|
|
6
6
|
export declare enum StorePolicyStatusEnum {
|
|
7
7
|
DRAFT = "DRAFT",
|
|
8
8
|
PUBLISHED = "PUBLISHED",
|
|
9
9
|
PAUSED = "PAUSED",
|
|
10
|
-
EXPIRED = "EXPIRED"
|
|
10
|
+
EXPIRED = "EXPIRED",
|
|
11
|
+
/** Baja lógica: la fila sigue en la tabla para la bitácora y las cotizaciones ya emitidas, y sale de toda lectura de operación. */
|
|
12
|
+
ARCHIVED = "ARCHIVED"
|
|
11
13
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StorePolicyStatusEnum = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED`
|
|
6
|
-
* operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
5
|
+
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED` y `ARCHIVED` son terminales. La
|
|
6
|
+
* fase que ve el operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
7
7
|
* @enum {string}
|
|
8
8
|
*/
|
|
9
9
|
var StorePolicyStatusEnum;
|
|
@@ -12,4 +12,6 @@ var StorePolicyStatusEnum;
|
|
|
12
12
|
StorePolicyStatusEnum["PUBLISHED"] = "PUBLISHED";
|
|
13
13
|
StorePolicyStatusEnum["PAUSED"] = "PAUSED";
|
|
14
14
|
StorePolicyStatusEnum["EXPIRED"] = "EXPIRED";
|
|
15
|
+
/** Baja lógica: la fila sigue en la tabla para la bitácora y las cotizaciones ya emitidas, y sale de toda lectura de operación. */
|
|
16
|
+
StorePolicyStatusEnum["ARCHIVED"] = "ARCHIVED";
|
|
15
17
|
})(StorePolicyStatusEnum || (exports.StorePolicyStatusEnum = StorePolicyStatusEnum = {}));
|
|
@@ -6,6 +6,7 @@ export * from './enums/FinancierTypeEnum';
|
|
|
6
6
|
export * from './enums/FinancierStatusEnum';
|
|
7
7
|
export * from './enums/PromotionStatusEnum';
|
|
8
8
|
export * from './enums/PromotionEffectKindEnum';
|
|
9
|
+
export * from './enums/FoldableTermEnum';
|
|
9
10
|
export * from './enums/PromotionBonusStatusEnum';
|
|
10
11
|
export * from './enums/PromotionPhaseEnum';
|
|
11
12
|
export * from './enums/PromotionLogEventEnum';
|
|
@@ -23,6 +23,7 @@ __exportStar(require("./enums/FinancierTypeEnum"), exports);
|
|
|
23
23
|
__exportStar(require("./enums/FinancierStatusEnum"), exports);
|
|
24
24
|
__exportStar(require("./enums/PromotionStatusEnum"), exports);
|
|
25
25
|
__exportStar(require("./enums/PromotionEffectKindEnum"), exports);
|
|
26
|
+
__exportStar(require("./enums/FoldableTermEnum"), exports);
|
|
26
27
|
__exportStar(require("./enums/PromotionBonusStatusEnum"), exports);
|
|
27
28
|
__exportStar(require("./enums/PromotionPhaseEnum"), exports);
|
|
28
29
|
__exportStar(require("./enums/PromotionLogEventEnum"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FoldableTermEnum } from '../../loanOfferings/enums/FoldableTermEnum';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Política especial que ganó algún término de este crédito, congelada al cotizar. El catálogo de
|
|
5
|
+
* políticas es editable: sin esta copia, una edición posterior deja la cuota sin explicación.
|
|
6
|
+
*/
|
|
7
|
+
export interface AppliedStorePolicySnapshot {
|
|
8
|
+
policyId: string;
|
|
9
|
+
name: string;
|
|
10
|
+
/** Términos del plan que esta política ganó en el pliegue final. */
|
|
11
|
+
appliedTerms: FoldableTermEnum[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cotas con las que se cotizó este crédito de verdad, ya pisadas por promociones y políticas.
|
|
3
|
+
* NO son las del plan: una promoción puede bajar el enganche mínimo o subir el techo de monto.
|
|
4
|
+
*/
|
|
5
|
+
export interface EffectiveTermsSnapshot {
|
|
6
|
+
/** Enganche mínimo exigible, en decimal sobre 1 (`0.10` = 10%). */
|
|
7
|
+
minDownPaymentPct: number;
|
|
8
|
+
/** Tope de enganche, o `null` si el plan no lo acota. */
|
|
9
|
+
maxDownPaymentPct: number | null;
|
|
10
|
+
/** Techo de capital financiable. */
|
|
11
|
+
maxFinancedAmountCents: number;
|
|
12
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ClientLevelEnum } from '../../../loanScoring/enums/ClientLevelEnum';
|
|
2
2
|
import { LoanCreditStatusEnum } from '../../enums/LoanCreditStatusEnum';
|
|
3
3
|
import { AppliedPromotionSnapshot } from '../AppliedPromotionSnapshot';
|
|
4
|
+
import { AppliedStorePolicySnapshot } from '../AppliedStorePolicySnapshot';
|
|
5
|
+
import { CandidatePlanSnapshot } from '../CandidatePlanSnapshot';
|
|
6
|
+
import { EffectiveTermsSnapshot } from '../EffectiveTermsSnapshot';
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* Response de los endpoints de LoanCredit (loan-credit-business). Montos en cents; TNA decimal.
|
|
@@ -32,6 +35,21 @@ export interface LoanCreditResponse {
|
|
|
32
35
|
clientLevelAtOrigination?: ClientLevelEnum;
|
|
33
36
|
/** Promoción con la que se cotizó, o `null` si ninguna alcanzaba a esta venta. */
|
|
34
37
|
appliedPromotion?: AppliedPromotionSnapshot | null;
|
|
38
|
+
/**
|
|
39
|
+
* TODAS las promociones aplicadas: `appliedPromotion` es la primaria y esto es la auditoría
|
|
40
|
+
* completa. Los términos de arriba YA las incluyen, no son un extra a sumar.
|
|
41
|
+
*/
|
|
42
|
+
appliedPromotions?: AppliedPromotionSnapshot[] | null;
|
|
43
|
+
/** Políticas especiales que ganaron algún término: qué frenó o aflojó la cuota. */
|
|
44
|
+
appliedStorePolicies?: AppliedStorePolicySnapshot[] | null;
|
|
45
|
+
/** Los planes que compitieron: contesta por qué este plan y no otro. */
|
|
46
|
+
candidatePlans?: CandidatePlanSnapshot[] | null;
|
|
47
|
+
/** Edición del plan al originar: contesta con qué reglas se cotizó, aunque después se edite. */
|
|
48
|
+
planVersionAtOrigination?: number | null;
|
|
49
|
+
/** Segmentos del cliente al cotizar: contesta por qué le alcanzó esa promoción. */
|
|
50
|
+
segmentIdsAtQuote?: string[] | null;
|
|
51
|
+
/** Cotas con las que se cotizó de verdad, ya pisadas por promociones y políticas. */
|
|
52
|
+
effectiveTerms?: EffectiveTermsSnapshot | null;
|
|
35
53
|
activatedAt?: string;
|
|
36
54
|
voluntaryCancelDeadline?: string;
|
|
37
55
|
firstDueDate?: string;
|
package/src/loanCredit/index.ts
CHANGED
|
@@ -13,6 +13,9 @@ export * from './dtos/LoanInstallment';
|
|
|
13
13
|
export * from './dtos/LoanContract';
|
|
14
14
|
export * from './dtos/ActivationChecklist';
|
|
15
15
|
export * from './dtos/AppliedPromotionSnapshot';
|
|
16
|
+
export * from './dtos/AppliedStorePolicySnapshot';
|
|
17
|
+
export * from './dtos/CandidatePlanSnapshot';
|
|
18
|
+
export * from './dtos/EffectiveTermsSnapshot';
|
|
16
19
|
|
|
17
20
|
// Request DTOs
|
|
18
21
|
export * from './dtos/requests/UpsertLoanBorrowerRequest';
|
|
@@ -3,8 +3,9 @@ import { IsEnum, IsOptional, IsString } from 'class-validator';
|
|
|
3
3
|
import { PromotionStatusEnum } from '../../enums/PromotionStatusEnum';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar o
|
|
7
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
6
|
+
* Body de PUT /promotions/:promotionId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
7
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
8
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
8
9
|
* `reason` acompaña la pausa y queda en la bitácora.
|
|
9
10
|
*/
|
|
10
11
|
export class ChangePromotionStatusRequest {
|
|
@@ -3,8 +3,9 @@ import { IsEnum, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
|
3
3
|
import { StorePolicyStatusEnum } from '../../enums/StorePolicyStatusEnum';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar o
|
|
7
|
-
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED
|
|
6
|
+
* Body de PUT /store-policies/:policyId/status — publicar, pausar, reanudar, vencer o archivar.
|
|
7
|
+
* Transiciones válidas: `DRAFT→PUBLISHED`, `PUBLISHED⇄PAUSED`, `PUBLISHED|PAUSED→EXPIRED`, y
|
|
8
|
+
* `ARCHIVED` desde cualquier estado no terminal.
|
|
8
9
|
* `reason` acompaña el cambio y queda en la bitácora.
|
|
9
10
|
*/
|
|
10
11
|
export class ChangeStorePolicyStatusRequest {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FoldableTermEnum } from '../../enums/FoldableTermEnum';
|
|
1
2
|
import { PromotionEffectKindEnum } from '../../enums/PromotionEffectKindEnum';
|
|
2
3
|
import { PlanTermProvenance } from './StorePolicyResponse';
|
|
3
4
|
|
|
@@ -30,6 +31,26 @@ export interface AppliedPromotionResponse {
|
|
|
30
31
|
appliedEffects: PromotionEffectKindEnum[];
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
/**
|
|
35
|
+
* Una `CreditPlan` que el paso Base consideró para esta venta, haya ganado algún término o no.
|
|
36
|
+
* Es lo que contesta por qué ganó este plan y no otro.
|
|
37
|
+
*/
|
|
38
|
+
export interface CandidatePlanResponse {
|
|
39
|
+
planId: string;
|
|
40
|
+
code: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Política especial que ganó al menos un término de esta cotización. Las políticas en alcance que
|
|
45
|
+
* no ganaron nada no se reportan: no explican la cuota.
|
|
46
|
+
*/
|
|
47
|
+
export interface AppliedStorePolicyResponse {
|
|
48
|
+
policyId: string;
|
|
49
|
+
name: string;
|
|
50
|
+
/** Términos del plan que esta política ganó en el pliegue final. */
|
|
51
|
+
appliedTerms: FoldableTermEnum[];
|
|
52
|
+
}
|
|
53
|
+
|
|
33
54
|
/**
|
|
34
55
|
* Cotas con las que se cotizó de verdad, ya pisadas por la promoción y las políticas. NO son las
|
|
35
56
|
* del plan: una promoción puede bajar el enganche mínimo o subir el techo de monto.
|
|
@@ -88,4 +109,18 @@ export interface SimulationResultResponse {
|
|
|
88
109
|
* Las cotas efectivas de ESTA cotización. Ausente si el lambda todavía no las emite.
|
|
89
110
|
*/
|
|
90
111
|
effectiveTerms?: EffectiveTermsResponse;
|
|
112
|
+
/**
|
|
113
|
+
* Todas las `CreditPlan` candidatas del paso Base. Ausente si el lambda todavía no lo emite.
|
|
114
|
+
*/
|
|
115
|
+
candidatePlans?: CandidatePlanResponse[];
|
|
116
|
+
/**
|
|
117
|
+
* TODAS las promociones aplicadas: `appliedPromotion` es la primaria y esto es la auditoría
|
|
118
|
+
* completa. Los montos de arriba YA las incluyen, no son un extra a sumar. Ausente si el
|
|
119
|
+
* lambda todavía no lo emite.
|
|
120
|
+
*/
|
|
121
|
+
appliedPromotions?: AppliedPromotionResponse[];
|
|
122
|
+
/**
|
|
123
|
+
* Políticas especiales que ganaron algún término. Ausente si el lambda todavía no lo emite.
|
|
124
|
+
*/
|
|
125
|
+
appliedStorePolicies?: AppliedStorePolicyResponse[];
|
|
91
126
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Términos del plan que el motor de cotización pliega capa por capa (plan base, promociones,
|
|
3
|
+
* políticas especiales). El valor es la clave literal del término en el contrato.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export enum FoldableTermEnum {
|
|
7
|
+
MIN_DOWN_PAYMENT_PCT = 'minDownPaymentPct',
|
|
8
|
+
TNA_ANNUAL = 'tnaAnnual',
|
|
9
|
+
MAX_FINANCED_AMOUNT_CENTS = 'maxFinancedAmountCents',
|
|
10
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Estado PERSISTIDO de una promoción del motor (portal-admin-sk-promociones).
|
|
3
|
-
* `EXPIRED`
|
|
4
|
-
* se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
3
|
+
* `EXPIRED` y `ARCHIVED` son terminales. La «fase» que ve el operador (programada / activa /
|
|
4
|
+
* vencida) NO se guarda: se deriva de las fechas — ver `PromotionPhaseEnum`.
|
|
5
5
|
* @enum {string}
|
|
6
6
|
*/
|
|
7
7
|
export enum PromotionStatusEnum {
|
|
@@ -9,4 +9,6 @@ export enum PromotionStatusEnum {
|
|
|
9
9
|
PUBLISHED = 'PUBLISHED',
|
|
10
10
|
PAUSED = 'PAUSED',
|
|
11
11
|
EXPIRED = 'EXPIRED',
|
|
12
|
+
/** Baja lógica: la fila sigue en la tabla para los créditos que la referencian, y sale de toda lectura de operación. */
|
|
13
|
+
ARCHIVED = 'ARCHIVED',
|
|
12
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED`
|
|
3
|
-
* operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
2
|
+
* Estado PERSISTIDO de una política especial de tienda. `EXPIRED` y `ARCHIVED` son terminales. La
|
|
3
|
+
* fase que ve el operador NO se guarda: se deriva de las fechas — ver `StorePolicyPhaseEnum`.
|
|
4
4
|
* @enum {string}
|
|
5
5
|
*/
|
|
6
6
|
export enum StorePolicyStatusEnum {
|
|
@@ -8,4 +8,6 @@ export enum StorePolicyStatusEnum {
|
|
|
8
8
|
PUBLISHED = 'PUBLISHED',
|
|
9
9
|
PAUSED = 'PAUSED',
|
|
10
10
|
EXPIRED = 'EXPIRED',
|
|
11
|
+
/** Baja lógica: la fila sigue en la tabla para la bitácora y las cotizaciones ya emitidas, y sale de toda lectura de operación. */
|
|
12
|
+
ARCHIVED = 'ARCHIVED',
|
|
11
13
|
}
|
|
@@ -7,6 +7,7 @@ export * from './enums/FinancierTypeEnum';
|
|
|
7
7
|
export * from './enums/FinancierStatusEnum';
|
|
8
8
|
export * from './enums/PromotionStatusEnum';
|
|
9
9
|
export * from './enums/PromotionEffectKindEnum';
|
|
10
|
+
export * from './enums/FoldableTermEnum';
|
|
10
11
|
export * from './enums/PromotionBonusStatusEnum';
|
|
11
12
|
export * from './enums/PromotionPhaseEnum';
|
|
12
13
|
export * from './enums/PromotionLogEventEnum';
|