@fiado/type-kit 3.491.0 → 3.493.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/installmentPaidEvent.test.ts +17 -0
- package/_test_/unit/retailCommission/commissionPayout.test.ts +104 -0
- package/_test_/unit/retailCommission/commissionRent.test.ts +33 -0
- package/_test_/unit/retailCommission/commissionRules.test.ts +249 -0
- package/_test_/unit/retailCommission/commissionSimulation.test.ts +43 -0
- package/_test_/unit/retailCommission/myCommissions.test.ts +29 -0
- package/_test_/unit/retailWizard/creditPromotionBonusContract.test.ts +10 -0
- package/_test_/unit/retailWizard/ventaSagaMessages.test.ts +108 -11
- package/bin/loanCredit/dtos/InstallmentPaidEvent.d.ts +18 -0
- package/bin/loanCredit/dtos/InstallmentPaidEvent.js +5 -0
- package/bin/loanCredit/index.d.ts +1 -0
- package/bin/loanCredit/index.js +1 -0
- package/bin/retailCommission/dtos/CommissionAccrual.d.ts +36 -0
- package/bin/retailCommission/dtos/CommissionApi.d.ts +241 -2
- package/bin/retailCommission/dtos/CommissionCalcTrace.d.ts +10 -0
- package/bin/retailCommission/dtos/CommissionCouponAccrual.d.ts +31 -0
- package/bin/retailCommission/dtos/CommissionCouponAccrual.js +2 -0
- package/bin/retailCommission/dtos/CommissionPayout.d.ts +84 -0
- package/bin/retailCommission/dtos/CommissionRule.d.ts +119 -0
- package/bin/retailCommission/dtos/CommissionRule.js +2 -0
- package/bin/retailCommission/enums/CommissionAggregateByEnum.d.ts +14 -0
- package/bin/retailCommission/enums/CommissionAggregateByEnum.js +18 -0
- package/bin/retailCommission/enums/CommissionBonusModeEnum.d.ts +10 -0
- package/bin/retailCommission/enums/CommissionBonusModeEnum.js +14 -0
- package/bin/retailCommission/enums/CommissionCalcStepEnum.d.ts +3 -1
- package/bin/retailCommission/enums/CommissionCalcStepEnum.js +2 -0
- package/bin/retailCommission/enums/CommissionMetricEnum.d.ts +14 -0
- package/bin/retailCommission/enums/CommissionMetricEnum.js +18 -0
- package/bin/retailCommission/enums/CommissionOperatorEnum.d.ts +15 -0
- package/bin/retailCommission/enums/CommissionOperatorEnum.js +19 -0
- package/bin/retailCommission/enums/CommissionRuleStatusEnum.d.ts +16 -0
- package/bin/retailCommission/enums/CommissionRuleStatusEnum.js +20 -0
- package/bin/retailCommission/enums/CommissionSeriesByEnum.d.ts +14 -0
- package/bin/retailCommission/enums/CommissionSeriesByEnum.js +18 -0
- package/bin/retailCommission/enums/CommissionSimulationSkipEnum.d.ts +14 -0
- package/bin/retailCommission/enums/CommissionSimulationSkipEnum.js +18 -0
- package/bin/retailCommission/enums/CommissionWindowEnum.d.ts +12 -0
- package/bin/retailCommission/enums/CommissionWindowEnum.js +16 -0
- package/bin/retailCommission/index.d.ts +10 -0
- package/bin/retailCommission/index.js +10 -0
- package/bin/retailWizard/dtos/WizardCreditPromotionBonus.d.ts +3 -0
- package/bin/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.d.ts +5 -0
- package/bin/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.js +9 -0
- package/bin/retailWizard/events/RetailCommissionInboundMessage.d.ts +27 -1
- package/bin/retailWizard/events/RetailCommissionInboundMessage.js +70 -1
- package/bin/retailWizard/index.d.ts +1 -0
- package/bin/retailWizard/index.js +1 -0
- package/package.json +1 -1
- package/src/loanCredit/dtos/InstallmentPaidEvent.ts +20 -0
- package/src/loanCredit/index.ts +1 -0
- package/src/retailCommission/dtos/CommissionAccrual.ts +38 -0
- package/src/retailCommission/dtos/CommissionApi.ts +276 -2
- package/src/retailCommission/dtos/CommissionCalcTrace.ts +7 -0
- package/src/retailCommission/dtos/CommissionCouponAccrual.ts +33 -0
- package/src/retailCommission/dtos/CommissionPayout.ts +91 -0
- package/src/retailCommission/dtos/CommissionRule.ts +132 -0
- package/src/retailCommission/enums/CommissionAggregateByEnum.ts +14 -0
- package/src/retailCommission/enums/CommissionBonusModeEnum.ts +10 -0
- package/src/retailCommission/enums/CommissionCalcStepEnum.ts +2 -0
- package/src/retailCommission/enums/CommissionMetricEnum.ts +14 -0
- package/src/retailCommission/enums/CommissionOperatorEnum.ts +15 -0
- package/src/retailCommission/enums/CommissionRuleStatusEnum.ts +16 -0
- package/src/retailCommission/enums/CommissionSeriesByEnum.ts +14 -0
- package/src/retailCommission/enums/CommissionSimulationSkipEnum.ts +14 -0
- package/src/retailCommission/enums/CommissionWindowEnum.ts +12 -0
- package/src/retailCommission/index.ts +10 -0
- package/src/retailWizard/dtos/WizardCreditPromotionBonus.ts +3 -0
- package/src/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.ts +5 -0
- package/src/retailWizard/events/RetailCommissionInboundMessage.ts +75 -2
- package/src/retailWizard/index.ts +1 -0
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* QUOTA - Se resolvió la cuota (binaria o escalonada). Ocurre al CERRAR, no al devengar.
|
|
11
11
|
* ADJUSTMENT - Un ajuste manual del corte.
|
|
12
12
|
* NO_CATEGORY - El SKU no matcheó ninguna categoría del plan: devenga 0 y queda visible.
|
|
13
|
+
* BONUS_PER_SALE - Una regla con bono por venta sumó por una pieza de la venta.
|
|
13
14
|
*
|
|
14
15
|
* SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
|
|
15
16
|
*/
|
|
@@ -19,5 +20,6 @@ export declare enum CommissionCalcStepEnum {
|
|
|
19
20
|
ADDON = "ADDON",
|
|
20
21
|
QUOTA = "QUOTA",
|
|
21
22
|
ADJUSTMENT = "ADJUSTMENT",
|
|
22
|
-
NO_CATEGORY = "NO_CATEGORY"
|
|
23
|
+
NO_CATEGORY = "NO_CATEGORY",
|
|
24
|
+
BONUS_PER_SALE = "BONUS_PER_SALE"
|
|
23
25
|
}
|
|
@@ -13,6 +13,7 @@ exports.CommissionCalcStepEnum = void 0;
|
|
|
13
13
|
* QUOTA - Se resolvió la cuota (binaria o escalonada). Ocurre al CERRAR, no al devengar.
|
|
14
14
|
* ADJUSTMENT - Un ajuste manual del corte.
|
|
15
15
|
* NO_CATEGORY - El SKU no matcheó ninguna categoría del plan: devenga 0 y queda visible.
|
|
16
|
+
* BONUS_PER_SALE - Una regla con bono por venta sumó por una pieza de la venta.
|
|
16
17
|
*
|
|
17
18
|
* SureKeep Fase 3 — pista Retail. Motor de comisiones de VentasLuga.
|
|
18
19
|
*/
|
|
@@ -24,4 +25,5 @@ var CommissionCalcStepEnum;
|
|
|
24
25
|
CommissionCalcStepEnum["QUOTA"] = "QUOTA";
|
|
25
26
|
CommissionCalcStepEnum["ADJUSTMENT"] = "ADJUSTMENT";
|
|
26
27
|
CommissionCalcStepEnum["NO_CATEGORY"] = "NO_CATEGORY";
|
|
28
|
+
CommissionCalcStepEnum["BONUS_PER_SALE"] = "BONUS_PER_SALE";
|
|
27
29
|
})(CommissionCalcStepEnum || (exports.CommissionCalcStepEnum = CommissionCalcStepEnum = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Métricas de la condición de una regla.
|
|
3
|
+
*
|
|
4
|
+
* POSICION_VENTA_EN_PERIODO - Lugar de la pieza entre las del vendedor en el periodo que caen en el alcance de la regla.
|
|
5
|
+
* COLOCACION_PERIODO - Suma del precio neto de todo lo que el vendedor vendió en el periodo, en centavos.
|
|
6
|
+
* NPI_M30_VENDEDOR - Proporción de créditos del vendedor con primer impago a 30 días, en bps. Viene del crédito.
|
|
7
|
+
* SKUS_DISTINTOS_PERIODO - Cuántos SKUs distintos vendió el vendedor en el periodo.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum CommissionMetricEnum {
|
|
10
|
+
POSICION_VENTA_EN_PERIODO = "POSICION_VENTA_EN_PERIODO",
|
|
11
|
+
COLOCACION_PERIODO = "COLOCACION_PERIODO",
|
|
12
|
+
NPI_M30_VENDEDOR = "NPI_M30_VENDEDOR",
|
|
13
|
+
SKUS_DISTINTOS_PERIODO = "SKUS_DISTINTOS_PERIODO"
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionMetricEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Métricas de la condición de una regla.
|
|
6
|
+
*
|
|
7
|
+
* POSICION_VENTA_EN_PERIODO - Lugar de la pieza entre las del vendedor en el periodo que caen en el alcance de la regla.
|
|
8
|
+
* COLOCACION_PERIODO - Suma del precio neto de todo lo que el vendedor vendió en el periodo, en centavos.
|
|
9
|
+
* NPI_M30_VENDEDOR - Proporción de créditos del vendedor con primer impago a 30 días, en bps. Viene del crédito.
|
|
10
|
+
* SKUS_DISTINTOS_PERIODO - Cuántos SKUs distintos vendió el vendedor en el periodo.
|
|
11
|
+
*/
|
|
12
|
+
var CommissionMetricEnum;
|
|
13
|
+
(function (CommissionMetricEnum) {
|
|
14
|
+
CommissionMetricEnum["POSICION_VENTA_EN_PERIODO"] = "POSICION_VENTA_EN_PERIODO";
|
|
15
|
+
CommissionMetricEnum["COLOCACION_PERIODO"] = "COLOCACION_PERIODO";
|
|
16
|
+
CommissionMetricEnum["NPI_M30_VENDEDOR"] = "NPI_M30_VENDEDOR";
|
|
17
|
+
CommissionMetricEnum["SKUS_DISTINTOS_PERIODO"] = "SKUS_DISTINTOS_PERIODO";
|
|
18
|
+
})(CommissionMetricEnum || (exports.CommissionMetricEnum = CommissionMetricEnum = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operadores de la condición de una regla.
|
|
3
|
+
*
|
|
4
|
+
* GTE, LTE, LT, GT - Contra un número.
|
|
5
|
+
* BETWEEN - Contra `[min, max]`, ambos inclusive.
|
|
6
|
+
* IN - Contra una lista de valores.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum CommissionOperatorEnum {
|
|
9
|
+
GTE = "GTE",
|
|
10
|
+
LTE = "LTE",
|
|
11
|
+
LT = "LT",
|
|
12
|
+
GT = "GT",
|
|
13
|
+
BETWEEN = "BETWEEN",
|
|
14
|
+
IN = "IN"
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionOperatorEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Operadores de la condición de una regla.
|
|
6
|
+
*
|
|
7
|
+
* GTE, LTE, LT, GT - Contra un número.
|
|
8
|
+
* BETWEEN - Contra `[min, max]`, ambos inclusive.
|
|
9
|
+
* IN - Contra una lista de valores.
|
|
10
|
+
*/
|
|
11
|
+
var CommissionOperatorEnum;
|
|
12
|
+
(function (CommissionOperatorEnum) {
|
|
13
|
+
CommissionOperatorEnum["GTE"] = "GTE";
|
|
14
|
+
CommissionOperatorEnum["LTE"] = "LTE";
|
|
15
|
+
CommissionOperatorEnum["LT"] = "LT";
|
|
16
|
+
CommissionOperatorEnum["GT"] = "GT";
|
|
17
|
+
CommissionOperatorEnum["BETWEEN"] = "BETWEEN";
|
|
18
|
+
CommissionOperatorEnum["IN"] = "IN";
|
|
19
|
+
})(CommissionOperatorEnum || (exports.CommissionOperatorEnum = CommissionOperatorEnum = {}));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de una regla de comisión.
|
|
3
|
+
*
|
|
4
|
+
* DRAFT - Borrador: nunca se publicó y no está en el plan vigente.
|
|
5
|
+
* SCHEDULED - Publicada, con vigencia que todavía no empieza.
|
|
6
|
+
* ACTIVE - Publicada y vigente.
|
|
7
|
+
* PAUSED - Publicada y pausada: sale del plan vigente hasta reanudarla.
|
|
8
|
+
* EXPIRED - Vencida por fecha o con "Vencer ahora". No vuelve a aplicar.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum CommissionRuleStatusEnum {
|
|
11
|
+
DRAFT = "DRAFT",
|
|
12
|
+
SCHEDULED = "SCHEDULED",
|
|
13
|
+
ACTIVE = "ACTIVE",
|
|
14
|
+
PAUSED = "PAUSED",
|
|
15
|
+
EXPIRED = "EXPIRED"
|
|
16
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionRuleStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de una regla de comisión.
|
|
6
|
+
*
|
|
7
|
+
* DRAFT - Borrador: nunca se publicó y no está en el plan vigente.
|
|
8
|
+
* SCHEDULED - Publicada, con vigencia que todavía no empieza.
|
|
9
|
+
* ACTIVE - Publicada y vigente.
|
|
10
|
+
* PAUSED - Publicada y pausada: sale del plan vigente hasta reanudarla.
|
|
11
|
+
* EXPIRED - Vencida por fecha o con "Vencer ahora". No vuelve a aplicar.
|
|
12
|
+
*/
|
|
13
|
+
var CommissionRuleStatusEnum;
|
|
14
|
+
(function (CommissionRuleStatusEnum) {
|
|
15
|
+
CommissionRuleStatusEnum["DRAFT"] = "DRAFT";
|
|
16
|
+
CommissionRuleStatusEnum["SCHEDULED"] = "SCHEDULED";
|
|
17
|
+
CommissionRuleStatusEnum["ACTIVE"] = "ACTIVE";
|
|
18
|
+
CommissionRuleStatusEnum["PAUSED"] = "PAUSED";
|
|
19
|
+
CommissionRuleStatusEnum["EXPIRED"] = "EXPIRED";
|
|
20
|
+
})(CommissionRuleStatusEnum || (exports.CommissionRuleStatusEnum = CommissionRuleStatusEnum = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* De qué se arma una serie por periodo.
|
|
3
|
+
*
|
|
4
|
+
* SELLER - Un vendedor.
|
|
5
|
+
* RULE - Una regla.
|
|
6
|
+
* STORE - Una tienda.
|
|
7
|
+
* SKU - Un producto.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum CommissionSeriesByEnum {
|
|
10
|
+
SELLER = "SELLER",
|
|
11
|
+
RULE = "RULE",
|
|
12
|
+
STORE = "STORE",
|
|
13
|
+
SKU = "SKU"
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionSeriesByEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* De qué se arma una serie por periodo.
|
|
6
|
+
*
|
|
7
|
+
* SELLER - Un vendedor.
|
|
8
|
+
* RULE - Una regla.
|
|
9
|
+
* STORE - Una tienda.
|
|
10
|
+
* SKU - Un producto.
|
|
11
|
+
*/
|
|
12
|
+
var CommissionSeriesByEnum;
|
|
13
|
+
(function (CommissionSeriesByEnum) {
|
|
14
|
+
CommissionSeriesByEnum["SELLER"] = "SELLER";
|
|
15
|
+
CommissionSeriesByEnum["RULE"] = "RULE";
|
|
16
|
+
CommissionSeriesByEnum["STORE"] = "STORE";
|
|
17
|
+
CommissionSeriesByEnum["SKU"] = "SKU";
|
|
18
|
+
})(CommissionSeriesByEnum || (exports.CommissionSeriesByEnum = CommissionSeriesByEnum = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Por qué una regla no paga en la simulación.
|
|
3
|
+
*
|
|
4
|
+
* NOT_IN_EFFECT - Fuera de su vigencia en la fecha simulada.
|
|
5
|
+
* OUT_OF_SCOPE - El producto o la tienda no caen en su alcance.
|
|
6
|
+
* CONDITION_NOT_MET - Su condición no se cumple en esa posición.
|
|
7
|
+
* NO_DATA - Su condición usa un dato que todavía no existe (NPI M30).
|
|
8
|
+
*/
|
|
9
|
+
export declare enum CommissionSimulationSkipEnum {
|
|
10
|
+
NOT_IN_EFFECT = "NOT_IN_EFFECT",
|
|
11
|
+
OUT_OF_SCOPE = "OUT_OF_SCOPE",
|
|
12
|
+
CONDITION_NOT_MET = "CONDITION_NOT_MET",
|
|
13
|
+
NO_DATA = "NO_DATA"
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionSimulationSkipEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Por qué una regla no paga en la simulación.
|
|
6
|
+
*
|
|
7
|
+
* NOT_IN_EFFECT - Fuera de su vigencia en la fecha simulada.
|
|
8
|
+
* OUT_OF_SCOPE - El producto o la tienda no caen en su alcance.
|
|
9
|
+
* CONDITION_NOT_MET - Su condición no se cumple en esa posición.
|
|
10
|
+
* NO_DATA - Su condición usa un dato que todavía no existe (NPI M30).
|
|
11
|
+
*/
|
|
12
|
+
var CommissionSimulationSkipEnum;
|
|
13
|
+
(function (CommissionSimulationSkipEnum) {
|
|
14
|
+
CommissionSimulationSkipEnum["NOT_IN_EFFECT"] = "NOT_IN_EFFECT";
|
|
15
|
+
CommissionSimulationSkipEnum["OUT_OF_SCOPE"] = "OUT_OF_SCOPE";
|
|
16
|
+
CommissionSimulationSkipEnum["CONDITION_NOT_MET"] = "CONDITION_NOT_MET";
|
|
17
|
+
CommissionSimulationSkipEnum["NO_DATA"] = "NO_DATA";
|
|
18
|
+
})(CommissionSimulationSkipEnum || (exports.CommissionSimulationSkipEnum = CommissionSimulationSkipEnum = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ventana del corte de comisiones.
|
|
3
|
+
*
|
|
4
|
+
* SEMANA_OPERATIVA - Semana operativa de la cadena.
|
|
5
|
+
* ROLLING_7D - Últimos 7 días.
|
|
6
|
+
* MES - Mes calendario.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum CommissionWindowEnum {
|
|
9
|
+
SEMANA_OPERATIVA = "SEMANA_OPERATIVA",
|
|
10
|
+
ROLLING_7D = "ROLLING_7D",
|
|
11
|
+
MES = "MES"
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommissionWindowEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Ventana del corte de comisiones.
|
|
6
|
+
*
|
|
7
|
+
* SEMANA_OPERATIVA - Semana operativa de la cadena.
|
|
8
|
+
* ROLLING_7D - Últimos 7 días.
|
|
9
|
+
* MES - Mes calendario.
|
|
10
|
+
*/
|
|
11
|
+
var CommissionWindowEnum;
|
|
12
|
+
(function (CommissionWindowEnum) {
|
|
13
|
+
CommissionWindowEnum["SEMANA_OPERATIVA"] = "SEMANA_OPERATIVA";
|
|
14
|
+
CommissionWindowEnum["ROLLING_7D"] = "ROLLING_7D";
|
|
15
|
+
CommissionWindowEnum["MES"] = "MES";
|
|
16
|
+
})(CommissionWindowEnum || (exports.CommissionWindowEnum = CommissionWindowEnum = {}));
|
|
@@ -11,7 +11,17 @@ export * from './enums/CommissionPayoutStatusEnum';
|
|
|
11
11
|
export * from './enums/CommissionPayeeTypeEnum';
|
|
12
12
|
export * from './enums/CommissionExceptionTypeEnum';
|
|
13
13
|
export * from './enums/CommissionCalcStepEnum';
|
|
14
|
+
export * from './enums/CommissionRuleStatusEnum';
|
|
15
|
+
export * from './enums/CommissionBonusModeEnum';
|
|
16
|
+
export * from './enums/CommissionMetricEnum';
|
|
17
|
+
export * from './enums/CommissionOperatorEnum';
|
|
18
|
+
export * from './enums/CommissionWindowEnum';
|
|
19
|
+
export * from './enums/CommissionAggregateByEnum';
|
|
20
|
+
export * from './enums/CommissionSeriesByEnum';
|
|
21
|
+
export * from './enums/CommissionSimulationSkipEnum';
|
|
14
22
|
export * from './dtos/CommissionPlan';
|
|
23
|
+
export * from './dtos/CommissionRule';
|
|
24
|
+
export * from './dtos/CommissionCouponAccrual';
|
|
15
25
|
export * from './dtos/CommissionCalcTrace';
|
|
16
26
|
export * from './dtos/CommissionAccrual';
|
|
17
27
|
export * from './dtos/CommissionPayout';
|
|
@@ -28,8 +28,18 @@ __exportStar(require("./enums/CommissionPayoutStatusEnum"), exports);
|
|
|
28
28
|
__exportStar(require("./enums/CommissionPayeeTypeEnum"), exports);
|
|
29
29
|
__exportStar(require("./enums/CommissionExceptionTypeEnum"), exports);
|
|
30
30
|
__exportStar(require("./enums/CommissionCalcStepEnum"), exports);
|
|
31
|
+
__exportStar(require("./enums/CommissionRuleStatusEnum"), exports);
|
|
32
|
+
__exportStar(require("./enums/CommissionBonusModeEnum"), exports);
|
|
33
|
+
__exportStar(require("./enums/CommissionMetricEnum"), exports);
|
|
34
|
+
__exportStar(require("./enums/CommissionOperatorEnum"), exports);
|
|
35
|
+
__exportStar(require("./enums/CommissionWindowEnum"), exports);
|
|
36
|
+
__exportStar(require("./enums/CommissionAggregateByEnum"), exports);
|
|
37
|
+
__exportStar(require("./enums/CommissionSeriesByEnum"), exports);
|
|
38
|
+
__exportStar(require("./enums/CommissionSimulationSkipEnum"), exports);
|
|
31
39
|
// Entidades del dominio
|
|
32
40
|
__exportStar(require("./dtos/CommissionPlan"), exports);
|
|
41
|
+
__exportStar(require("./dtos/CommissionRule"), exports);
|
|
42
|
+
__exportStar(require("./dtos/CommissionCouponAccrual"), exports);
|
|
33
43
|
__exportStar(require("./dtos/CommissionCalcTrace"), exports);
|
|
34
44
|
__exportStar(require("./dtos/CommissionAccrual"), exports);
|
|
35
45
|
__exportStar(require("./dtos/CommissionPayout"), exports);
|
|
@@ -5,4 +5,7 @@ export interface WizardCreditPromotionBonus {
|
|
|
5
5
|
amountCents: number;
|
|
6
6
|
/** `RESERVED` = en proceso; los otros tres son terminales. */
|
|
7
7
|
status: PromotionBonusStatusEnum;
|
|
8
|
+
/** ISO 8601 del instante en que el bono entró en RESERVED por primera vez.
|
|
9
|
+
* Lo sella el wizard una vez y no cambia después. */
|
|
10
|
+
pendingSince?: string;
|
|
8
11
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RetailCommissionInboundMessageTypeEnum = void 0;
|
|
4
|
+
/** Tipo de mensaje que el wizard publica en la cola de Comisiones. */
|
|
5
|
+
var RetailCommissionInboundMessageTypeEnum;
|
|
6
|
+
(function (RetailCommissionInboundMessageTypeEnum) {
|
|
7
|
+
RetailCommissionInboundMessageTypeEnum["SALE_COMPLETED"] = "SALE_COMPLETED";
|
|
8
|
+
RetailCommissionInboundMessageTypeEnum["SALE_CANCELLED"] = "SALE_CANCELLED";
|
|
9
|
+
})(RetailCommissionInboundMessageTypeEnum || (exports.RetailCommissionInboundMessageTypeEnum = RetailCommissionInboundMessageTypeEnum = {}));
|
|
@@ -1,19 +1,45 @@
|
|
|
1
1
|
import { ItemTypeEnum } from '../../retailCatalog/enums/ItemTypeEnum';
|
|
2
|
+
import { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
|
|
3
|
+
import { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
|
|
4
|
+
import { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
|
|
5
|
+
import { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
|
|
6
|
+
import { RetailCommissionInboundMessageTypeEnum } from '../enums/RetailCommissionInboundMessageTypeEnum';
|
|
7
|
+
import { SaleTypeEnum } from '../enums/SaleTypeEnum';
|
|
8
|
+
import { WizardLineRoleEnum } from '../enums/WizardLineRoleEnum';
|
|
2
9
|
/** Línea vendida en el mensaje de comisiones. */
|
|
3
10
|
export declare class RetailCommissionInboundLine {
|
|
11
|
+
lineId: string;
|
|
4
12
|
sku: string;
|
|
5
13
|
qty: number;
|
|
6
14
|
/** Precio neto de la línea (precio − descuento). */
|
|
7
15
|
netCents: number;
|
|
8
16
|
itemType: ItemTypeEnum;
|
|
17
|
+
/** `null` si la línea no trae la ficha del producto. */
|
|
18
|
+
category: ProductCategoryEnum | null;
|
|
19
|
+
/** `null` = sin gama. */
|
|
20
|
+
tier: ProductTierEnum | null;
|
|
21
|
+
brand: string | null;
|
|
22
|
+
paymentType: LinePaymentTypeEnum;
|
|
23
|
+
role?: WizardLineRoleEnum;
|
|
9
24
|
}
|
|
10
|
-
/** Venta
|
|
25
|
+
/** Venta cerrada o cancelada que el wizard publica en RetailCommissionInboundQueue. */
|
|
11
26
|
export declare class RetailCommissionInboundMessage {
|
|
27
|
+
type: RetailCommissionInboundMessageTypeEnum;
|
|
12
28
|
tenantId: string;
|
|
13
29
|
retailerId: string;
|
|
14
30
|
storeId: string;
|
|
15
31
|
saleId: string;
|
|
16
32
|
sessionId: string;
|
|
33
|
+
/** Quién vendió. */
|
|
34
|
+
sellerRetailUserId: string;
|
|
35
|
+
saleType: SaleTypeEnum;
|
|
36
|
+
/** Solo en EXTERNAL_REFERRAL. */
|
|
37
|
+
externalProvider: ExternalProviderEnum | null;
|
|
38
|
+
creditId: string | null;
|
|
17
39
|
soldAt: string;
|
|
40
|
+
/** soldAt en la venta; cancelledAt en la cancelación. */
|
|
41
|
+
occurredAt: string;
|
|
42
|
+
/** Motivo de la cancelación; puede venir vacío. */
|
|
43
|
+
cancelReason?: string;
|
|
18
44
|
lines: RetailCommissionInboundLine[];
|
|
19
45
|
}
|
|
@@ -13,10 +13,22 @@ exports.RetailCommissionInboundMessage = exports.RetailCommissionInboundLine = v
|
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
15
|
const ItemTypeEnum_1 = require("../../retailCatalog/enums/ItemTypeEnum");
|
|
16
|
+
const ProductCategoryEnum_1 = require("../../retailCatalog/enums/ProductCategoryEnum");
|
|
17
|
+
const ProductTierEnum_1 = require("../../retailCatalog/enums/ProductTierEnum");
|
|
18
|
+
const ExternalProviderEnum_1 = require("../enums/ExternalProviderEnum");
|
|
19
|
+
const LinePaymentTypeEnum_1 = require("../enums/LinePaymentTypeEnum");
|
|
20
|
+
const RetailCommissionInboundMessageTypeEnum_1 = require("../enums/RetailCommissionInboundMessageTypeEnum");
|
|
21
|
+
const SaleTypeEnum_1 = require("../enums/SaleTypeEnum");
|
|
22
|
+
const WizardLineRoleEnum_1 = require("../enums/WizardLineRoleEnum");
|
|
16
23
|
/** Línea vendida en el mensaje de comisiones. */
|
|
17
24
|
class RetailCommissionInboundLine {
|
|
18
25
|
}
|
|
19
26
|
exports.RetailCommissionInboundLine = RetailCommissionInboundLine;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], RetailCommissionInboundLine.prototype, "lineId", void 0);
|
|
20
32
|
__decorate([
|
|
21
33
|
(0, class_validator_1.IsString)(),
|
|
22
34
|
(0, class_validator_1.IsNotEmpty)(),
|
|
@@ -36,10 +48,38 @@ __decorate([
|
|
|
36
48
|
(0, class_validator_1.IsEnum)(ItemTypeEnum_1.ItemTypeEnum),
|
|
37
49
|
__metadata("design:type", String)
|
|
38
50
|
], RetailCommissionInboundLine.prototype, "itemType", void 0);
|
|
39
|
-
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, class_validator_1.IsOptional)(),
|
|
53
|
+
(0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], RetailCommissionInboundLine.prototype, "category", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, class_validator_1.IsOptional)(),
|
|
58
|
+
(0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], RetailCommissionInboundLine.prototype, "tier", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, class_validator_1.IsOptional)(),
|
|
63
|
+
(0, class_validator_1.IsString)(),
|
|
64
|
+
__metadata("design:type", String)
|
|
65
|
+
], RetailCommissionInboundLine.prototype, "brand", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, class_validator_1.IsEnum)(LinePaymentTypeEnum_1.LinePaymentTypeEnum),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], RetailCommissionInboundLine.prototype, "paymentType", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, class_validator_1.IsOptional)(),
|
|
72
|
+
(0, class_validator_1.IsEnum)(WizardLineRoleEnum_1.WizardLineRoleEnum),
|
|
73
|
+
__metadata("design:type", String)
|
|
74
|
+
], RetailCommissionInboundLine.prototype, "role", void 0);
|
|
75
|
+
/** Venta cerrada o cancelada que el wizard publica en RetailCommissionInboundQueue. */
|
|
40
76
|
class RetailCommissionInboundMessage {
|
|
41
77
|
}
|
|
42
78
|
exports.RetailCommissionInboundMessage = RetailCommissionInboundMessage;
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, class_validator_1.IsEnum)(RetailCommissionInboundMessageTypeEnum_1.RetailCommissionInboundMessageTypeEnum),
|
|
81
|
+
__metadata("design:type", String)
|
|
82
|
+
], RetailCommissionInboundMessage.prototype, "type", void 0);
|
|
43
83
|
__decorate([
|
|
44
84
|
(0, class_validator_1.IsString)(),
|
|
45
85
|
(0, class_validator_1.IsNotEmpty)(),
|
|
@@ -65,10 +105,39 @@ __decorate([
|
|
|
65
105
|
(0, class_validator_1.IsNotEmpty)(),
|
|
66
106
|
__metadata("design:type", String)
|
|
67
107
|
], RetailCommissionInboundMessage.prototype, "sessionId", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, class_validator_1.IsString)(),
|
|
110
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], RetailCommissionInboundMessage.prototype, "sellerRetailUserId", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, class_validator_1.IsEnum)(SaleTypeEnum_1.SaleTypeEnum),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], RetailCommissionInboundMessage.prototype, "saleType", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, class_validator_1.IsOptional)(),
|
|
119
|
+
(0, class_validator_1.IsEnum)(ExternalProviderEnum_1.ExternalProviderEnum),
|
|
120
|
+
__metadata("design:type", String)
|
|
121
|
+
], RetailCommissionInboundMessage.prototype, "externalProvider", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, class_validator_1.IsOptional)(),
|
|
124
|
+
(0, class_validator_1.IsString)(),
|
|
125
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
126
|
+
__metadata("design:type", String)
|
|
127
|
+
], RetailCommissionInboundMessage.prototype, "creditId", void 0);
|
|
68
128
|
__decorate([
|
|
69
129
|
(0, class_validator_1.IsISO8601)(),
|
|
70
130
|
__metadata("design:type", String)
|
|
71
131
|
], RetailCommissionInboundMessage.prototype, "soldAt", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, class_validator_1.IsISO8601)(),
|
|
134
|
+
__metadata("design:type", String)
|
|
135
|
+
], RetailCommissionInboundMessage.prototype, "occurredAt", void 0);
|
|
136
|
+
__decorate([
|
|
137
|
+
(0, class_validator_1.IsOptional)(),
|
|
138
|
+
(0, class_validator_1.IsString)(),
|
|
139
|
+
__metadata("design:type", String)
|
|
140
|
+
], RetailCommissionInboundMessage.prototype, "cancelReason", void 0);
|
|
72
141
|
__decorate([
|
|
73
142
|
(0, class_validator_1.IsArray)(),
|
|
74
143
|
(0, class_validator_1.ArrayMinSize)(1),
|
|
@@ -139,6 +139,7 @@ export * from './events/SaleCompletedV2';
|
|
|
139
139
|
export * from './events/SaleCancelledV2';
|
|
140
140
|
export * from './events/SessionExpiredV1';
|
|
141
141
|
export * from './enums/RetailPromotionInboundMessageTypeEnum';
|
|
142
|
+
export * from './enums/RetailCommissionInboundMessageTypeEnum';
|
|
142
143
|
export * from './events/RetailPromotionInboundMessage';
|
|
143
144
|
export * from './events/RetailCommissionInboundMessage';
|
|
144
145
|
export * from './enums/WizardSessionLookupStatusEnum';
|
|
@@ -170,6 +170,7 @@ __exportStar(require("./events/SaleCompletedV2"), exports);
|
|
|
170
170
|
__exportStar(require("./events/SaleCancelledV2"), exports);
|
|
171
171
|
__exportStar(require("./events/SessionExpiredV1"), exports);
|
|
172
172
|
__exportStar(require("./enums/RetailPromotionInboundMessageTypeEnum"), exports);
|
|
173
|
+
__exportStar(require("./enums/RetailCommissionInboundMessageTypeEnum"), exports);
|
|
173
174
|
__exportStar(require("./events/RetailPromotionInboundMessage"), exports);
|
|
174
175
|
__exportStar(require("./events/RetailCommissionInboundMessage"), exports);
|
|
175
176
|
// Lookup privado por lote (GET /private/wizard-sessions/batch)
|
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { LoanInstallmentStatusEnum } from '../enums/LoanInstallmentStatusEnum';
|
|
2
|
+
|
|
3
|
+
/** `eventType` del outbox cuando una cuota queda pagada. */
|
|
4
|
+
export const INSTALLMENT_PAID_EVENT_TYPE = 'InstallmentPaidV1';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Payload de `InstallmentPaidV1`: una cuota que pasó a `PAID` o `PAID_IN_ADVANCE` por cualquier
|
|
8
|
+
* camino (cargo de la cuota, revisión, adelanto, liquidación o recuperación). Se escribe al outbox en
|
|
9
|
+
* la misma transacción que la cuota. Sin PII.
|
|
10
|
+
*/
|
|
11
|
+
export interface InstallmentPaidV1Payload {
|
|
12
|
+
creditId: string;
|
|
13
|
+
installmentNumber: number;
|
|
14
|
+
/** Lo pagado de la cuota en total (capital + interés + IVA), en centavos. */
|
|
15
|
+
paidCents: number;
|
|
16
|
+
/** Instante del pago (ISO): decide el corte de la renta. */
|
|
17
|
+
paidAt: string;
|
|
18
|
+
installmentStatus: LoanInstallmentStatusEnum;
|
|
19
|
+
paymentId: string;
|
|
20
|
+
}
|
package/src/loanCredit/index.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * from './dtos/LoanBorrower';
|
|
|
10
10
|
export * from './dtos/LoanBeneficiary';
|
|
11
11
|
export * from './dtos/LoanCredit';
|
|
12
12
|
export * from './dtos/LoanInstallment';
|
|
13
|
+
export * from './dtos/InstallmentPaidEvent';
|
|
13
14
|
export * from './dtos/LoanContract';
|
|
14
15
|
export * from './dtos/ActivationChecklist';
|
|
15
16
|
export * from './dtos/AppliedPromotionSnapshot';
|
|
@@ -2,6 +2,11 @@ import type { CommissionAccrualStatusEnum } from '../enums/CommissionAccrualStat
|
|
|
2
2
|
import type { CommissionPayeeTypeEnum } from '../enums/CommissionPayeeTypeEnum';
|
|
3
3
|
import type { SaleFinancierEnum } from '../../retailWizard/enums/SaleFinancierEnum';
|
|
4
4
|
import type { CommissionCalcTrace } from './CommissionCalcTrace';
|
|
5
|
+
import type { CommissionBonusModeEnum } from '../enums/CommissionBonusModeEnum';
|
|
6
|
+
import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
|
|
7
|
+
import type { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
|
|
8
|
+
import type { LinePaymentTypeEnum } from '../../retailWizard/enums/LinePaymentTypeEnum';
|
|
9
|
+
import type { WizardLineRoleEnum } from '../../retailWizard/enums/WizardLineRoleEnum';
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* El devengo: lo que se le debe a un vendedor por UNA venta.
|
|
@@ -52,6 +57,10 @@ export interface CommissionAccrual {
|
|
|
52
57
|
payoutId: string | null;
|
|
53
58
|
reversalReason: string | null;
|
|
54
59
|
calcTrace: CommissionCalcTrace;
|
|
60
|
+
/** Los bonos por venta que sumaron, uno por regla y por pieza. Solo en devengos calculados con reglas. */
|
|
61
|
+
appliedBonuses?: CommissionAppliedBonus[];
|
|
62
|
+
/** Suma de `appliedBonuses`. Solo en devengos calculados con reglas. */
|
|
63
|
+
subtotalBonusCents?: number;
|
|
55
64
|
}
|
|
56
65
|
|
|
57
66
|
/**
|
|
@@ -78,4 +87,33 @@ export interface CommissionSaleInput {
|
|
|
78
87
|
/** `CASH` | `CREDIT`, para `PERCENT_BY_PAYMENT`. */
|
|
79
88
|
paymentType: string;
|
|
80
89
|
soldAt: string;
|
|
90
|
+
/** Las líneas de la venta. Las ventas que se calculan con reglas siempre las traen. */
|
|
91
|
+
lines?: CommissionSaleLine[];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Una línea de la venta, congelada en el devengo. */
|
|
95
|
+
export interface CommissionSaleLine {
|
|
96
|
+
lineId: string;
|
|
97
|
+
sku: string;
|
|
98
|
+
qty: number;
|
|
99
|
+
/** Precio neto de la línea completa (todas sus piezas). */
|
|
100
|
+
netCents: number;
|
|
101
|
+
category: ProductCategoryEnum | null;
|
|
102
|
+
tier: ProductTierEnum | null;
|
|
103
|
+
brand: string | null;
|
|
104
|
+
paymentType: LinePaymentTypeEnum;
|
|
105
|
+
/** `GIFT` = regalo: no comisiona ni cuenta en la posición. */
|
|
106
|
+
role?: WizardLineRoleEnum;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Un bono por venta que sumó en el devengo. */
|
|
110
|
+
export interface CommissionAppliedBonus {
|
|
111
|
+
ruleId: string;
|
|
112
|
+
name: string;
|
|
113
|
+
lineId: string;
|
|
114
|
+
sku: string;
|
|
115
|
+
/** Posición de la pieza en el contador de la regla dentro del periodo. */
|
|
116
|
+
position: number;
|
|
117
|
+
mode: CommissionBonusModeEnum;
|
|
118
|
+
amountCents: number;
|
|
81
119
|
}
|