@fiado/type-kit 3.491.0 → 3.492.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/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/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/enums/RetailCommissionInboundMessageTypeEnum.ts +5 -0
- package/src/retailWizard/events/RetailCommissionInboundMessage.ts +75 -2
- package/src/retailWizard/index.ts +1 -0
|
@@ -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 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,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 enum CommissionWindowEnum {
|
|
9
|
+
SEMANA_OPERATIVA = 'SEMANA_OPERATIVA',
|
|
10
|
+
ROLLING_7D = 'ROLLING_7D',
|
|
11
|
+
MES = 'MES',
|
|
12
|
+
}
|
|
@@ -12,9 +12,19 @@ export * from './enums/CommissionPayoutStatusEnum';
|
|
|
12
12
|
export * from './enums/CommissionPayeeTypeEnum';
|
|
13
13
|
export * from './enums/CommissionExceptionTypeEnum';
|
|
14
14
|
export * from './enums/CommissionCalcStepEnum';
|
|
15
|
+
export * from './enums/CommissionRuleStatusEnum';
|
|
16
|
+
export * from './enums/CommissionBonusModeEnum';
|
|
17
|
+
export * from './enums/CommissionMetricEnum';
|
|
18
|
+
export * from './enums/CommissionOperatorEnum';
|
|
19
|
+
export * from './enums/CommissionWindowEnum';
|
|
20
|
+
export * from './enums/CommissionAggregateByEnum';
|
|
21
|
+
export * from './enums/CommissionSeriesByEnum';
|
|
22
|
+
export * from './enums/CommissionSimulationSkipEnum';
|
|
15
23
|
|
|
16
24
|
// Entidades del dominio
|
|
17
25
|
export * from './dtos/CommissionPlan';
|
|
26
|
+
export * from './dtos/CommissionRule';
|
|
27
|
+
export * from './dtos/CommissionCouponAccrual';
|
|
18
28
|
export * from './dtos/CommissionCalcTrace';
|
|
19
29
|
export * from './dtos/CommissionAccrual';
|
|
20
30
|
export * from './dtos/CommissionPayout';
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
import { Type } from 'class-transformer';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
ArrayMinSize,
|
|
4
|
+
IsArray,
|
|
5
|
+
IsEnum,
|
|
6
|
+
IsISO8601,
|
|
7
|
+
IsInt,
|
|
8
|
+
IsNotEmpty,
|
|
9
|
+
IsOptional,
|
|
10
|
+
IsString,
|
|
11
|
+
Min,
|
|
12
|
+
ValidateNested,
|
|
13
|
+
} from 'class-validator';
|
|
3
14
|
import { ItemTypeEnum } from '../../retailCatalog/enums/ItemTypeEnum';
|
|
15
|
+
import { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
|
|
16
|
+
import { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
|
|
17
|
+
import { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
|
|
18
|
+
import { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
|
|
19
|
+
import { RetailCommissionInboundMessageTypeEnum } from '../enums/RetailCommissionInboundMessageTypeEnum';
|
|
20
|
+
import { SaleTypeEnum } from '../enums/SaleTypeEnum';
|
|
21
|
+
import { WizardLineRoleEnum } from '../enums/WizardLineRoleEnum';
|
|
4
22
|
|
|
5
23
|
/** Línea vendida en el mensaje de comisiones. */
|
|
6
24
|
export class RetailCommissionInboundLine {
|
|
25
|
+
@IsString()
|
|
26
|
+
@IsNotEmpty()
|
|
27
|
+
lineId!: string;
|
|
28
|
+
|
|
7
29
|
@IsString()
|
|
8
30
|
@IsNotEmpty()
|
|
9
31
|
sku!: string;
|
|
@@ -19,10 +41,34 @@ export class RetailCommissionInboundLine {
|
|
|
19
41
|
|
|
20
42
|
@IsEnum(ItemTypeEnum)
|
|
21
43
|
itemType!: ItemTypeEnum;
|
|
44
|
+
|
|
45
|
+
/** `null` si la línea no trae la ficha del producto. */
|
|
46
|
+
@IsOptional()
|
|
47
|
+
@IsEnum(ProductCategoryEnum)
|
|
48
|
+
category!: ProductCategoryEnum | null;
|
|
49
|
+
|
|
50
|
+
/** `null` = sin gama. */
|
|
51
|
+
@IsOptional()
|
|
52
|
+
@IsEnum(ProductTierEnum)
|
|
53
|
+
tier!: ProductTierEnum | null;
|
|
54
|
+
|
|
55
|
+
@IsOptional()
|
|
56
|
+
@IsString()
|
|
57
|
+
brand!: string | null;
|
|
58
|
+
|
|
59
|
+
@IsEnum(LinePaymentTypeEnum)
|
|
60
|
+
paymentType!: LinePaymentTypeEnum;
|
|
61
|
+
|
|
62
|
+
@IsOptional()
|
|
63
|
+
@IsEnum(WizardLineRoleEnum)
|
|
64
|
+
role?: WizardLineRoleEnum;
|
|
22
65
|
}
|
|
23
66
|
|
|
24
|
-
/** Venta
|
|
67
|
+
/** Venta cerrada o cancelada que el wizard publica en RetailCommissionInboundQueue. */
|
|
25
68
|
export class RetailCommissionInboundMessage {
|
|
69
|
+
@IsEnum(RetailCommissionInboundMessageTypeEnum)
|
|
70
|
+
type!: RetailCommissionInboundMessageTypeEnum;
|
|
71
|
+
|
|
26
72
|
@IsString()
|
|
27
73
|
@IsNotEmpty()
|
|
28
74
|
tenantId!: string;
|
|
@@ -43,9 +89,36 @@ export class RetailCommissionInboundMessage {
|
|
|
43
89
|
@IsNotEmpty()
|
|
44
90
|
sessionId!: string;
|
|
45
91
|
|
|
92
|
+
/** Quién vendió. */
|
|
93
|
+
@IsString()
|
|
94
|
+
@IsNotEmpty()
|
|
95
|
+
sellerRetailUserId!: string;
|
|
96
|
+
|
|
97
|
+
@IsEnum(SaleTypeEnum)
|
|
98
|
+
saleType!: SaleTypeEnum;
|
|
99
|
+
|
|
100
|
+
/** Solo en EXTERNAL_REFERRAL. */
|
|
101
|
+
@IsOptional()
|
|
102
|
+
@IsEnum(ExternalProviderEnum)
|
|
103
|
+
externalProvider!: ExternalProviderEnum | null;
|
|
104
|
+
|
|
105
|
+
@IsOptional()
|
|
106
|
+
@IsString()
|
|
107
|
+
@IsNotEmpty()
|
|
108
|
+
creditId!: string | null;
|
|
109
|
+
|
|
46
110
|
@IsISO8601()
|
|
47
111
|
soldAt!: string;
|
|
48
112
|
|
|
113
|
+
/** soldAt en la venta; cancelledAt en la cancelación. */
|
|
114
|
+
@IsISO8601()
|
|
115
|
+
occurredAt!: string;
|
|
116
|
+
|
|
117
|
+
/** Motivo de la cancelación; puede venir vacío. */
|
|
118
|
+
@IsOptional()
|
|
119
|
+
@IsString()
|
|
120
|
+
cancelReason?: string;
|
|
121
|
+
|
|
49
122
|
@IsArray()
|
|
50
123
|
@ArrayMinSize(1)
|
|
51
124
|
@ValidateNested({ each: true })
|
|
@@ -166,6 +166,7 @@ export * from './events/SaleCompletedV2';
|
|
|
166
166
|
export * from './events/SaleCancelledV2';
|
|
167
167
|
export * from './events/SessionExpiredV1';
|
|
168
168
|
export * from './enums/RetailPromotionInboundMessageTypeEnum';
|
|
169
|
+
export * from './enums/RetailCommissionInboundMessageTypeEnum';
|
|
169
170
|
export * from './events/RetailPromotionInboundMessage';
|
|
170
171
|
export * from './events/RetailCommissionInboundMessage';
|
|
171
172
|
|