@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.
Files changed (67) hide show
  1. package/_test_/unit/loanCredit/installmentPaidEvent.test.ts +17 -0
  2. package/_test_/unit/retailCommission/commissionPayout.test.ts +104 -0
  3. package/_test_/unit/retailCommission/commissionRent.test.ts +33 -0
  4. package/_test_/unit/retailCommission/commissionRules.test.ts +249 -0
  5. package/_test_/unit/retailCommission/commissionSimulation.test.ts +43 -0
  6. package/_test_/unit/retailCommission/myCommissions.test.ts +29 -0
  7. package/_test_/unit/retailWizard/ventaSagaMessages.test.ts +108 -11
  8. package/bin/loanCredit/dtos/InstallmentPaidEvent.d.ts +18 -0
  9. package/bin/loanCredit/dtos/InstallmentPaidEvent.js +5 -0
  10. package/bin/loanCredit/index.d.ts +1 -0
  11. package/bin/loanCredit/index.js +1 -0
  12. package/bin/retailCommission/dtos/CommissionAccrual.d.ts +36 -0
  13. package/bin/retailCommission/dtos/CommissionApi.d.ts +241 -2
  14. package/bin/retailCommission/dtos/CommissionCalcTrace.d.ts +10 -0
  15. package/bin/retailCommission/dtos/CommissionCouponAccrual.d.ts +31 -0
  16. package/bin/retailCommission/dtos/CommissionCouponAccrual.js +2 -0
  17. package/bin/retailCommission/dtos/CommissionPayout.d.ts +84 -0
  18. package/bin/retailCommission/dtos/CommissionRule.d.ts +119 -0
  19. package/bin/retailCommission/dtos/CommissionRule.js +2 -0
  20. package/bin/retailCommission/enums/CommissionAggregateByEnum.d.ts +14 -0
  21. package/bin/retailCommission/enums/CommissionAggregateByEnum.js +18 -0
  22. package/bin/retailCommission/enums/CommissionBonusModeEnum.d.ts +10 -0
  23. package/bin/retailCommission/enums/CommissionBonusModeEnum.js +14 -0
  24. package/bin/retailCommission/enums/CommissionCalcStepEnum.d.ts +3 -1
  25. package/bin/retailCommission/enums/CommissionCalcStepEnum.js +2 -0
  26. package/bin/retailCommission/enums/CommissionMetricEnum.d.ts +14 -0
  27. package/bin/retailCommission/enums/CommissionMetricEnum.js +18 -0
  28. package/bin/retailCommission/enums/CommissionOperatorEnum.d.ts +15 -0
  29. package/bin/retailCommission/enums/CommissionOperatorEnum.js +19 -0
  30. package/bin/retailCommission/enums/CommissionRuleStatusEnum.d.ts +16 -0
  31. package/bin/retailCommission/enums/CommissionRuleStatusEnum.js +20 -0
  32. package/bin/retailCommission/enums/CommissionSeriesByEnum.d.ts +14 -0
  33. package/bin/retailCommission/enums/CommissionSeriesByEnum.js +18 -0
  34. package/bin/retailCommission/enums/CommissionSimulationSkipEnum.d.ts +14 -0
  35. package/bin/retailCommission/enums/CommissionSimulationSkipEnum.js +18 -0
  36. package/bin/retailCommission/enums/CommissionWindowEnum.d.ts +12 -0
  37. package/bin/retailCommission/enums/CommissionWindowEnum.js +16 -0
  38. package/bin/retailCommission/index.d.ts +10 -0
  39. package/bin/retailCommission/index.js +10 -0
  40. package/bin/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.d.ts +5 -0
  41. package/bin/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.js +9 -0
  42. package/bin/retailWizard/events/RetailCommissionInboundMessage.d.ts +27 -1
  43. package/bin/retailWizard/events/RetailCommissionInboundMessage.js +70 -1
  44. package/bin/retailWizard/index.d.ts +1 -0
  45. package/bin/retailWizard/index.js +1 -0
  46. package/package.json +1 -1
  47. package/src/loanCredit/dtos/InstallmentPaidEvent.ts +20 -0
  48. package/src/loanCredit/index.ts +1 -0
  49. package/src/retailCommission/dtos/CommissionAccrual.ts +38 -0
  50. package/src/retailCommission/dtos/CommissionApi.ts +276 -2
  51. package/src/retailCommission/dtos/CommissionCalcTrace.ts +7 -0
  52. package/src/retailCommission/dtos/CommissionCouponAccrual.ts +33 -0
  53. package/src/retailCommission/dtos/CommissionPayout.ts +91 -0
  54. package/src/retailCommission/dtos/CommissionRule.ts +132 -0
  55. package/src/retailCommission/enums/CommissionAggregateByEnum.ts +14 -0
  56. package/src/retailCommission/enums/CommissionBonusModeEnum.ts +10 -0
  57. package/src/retailCommission/enums/CommissionCalcStepEnum.ts +2 -0
  58. package/src/retailCommission/enums/CommissionMetricEnum.ts +14 -0
  59. package/src/retailCommission/enums/CommissionOperatorEnum.ts +15 -0
  60. package/src/retailCommission/enums/CommissionRuleStatusEnum.ts +16 -0
  61. package/src/retailCommission/enums/CommissionSeriesByEnum.ts +14 -0
  62. package/src/retailCommission/enums/CommissionSimulationSkipEnum.ts +14 -0
  63. package/src/retailCommission/enums/CommissionWindowEnum.ts +12 -0
  64. package/src/retailCommission/index.ts +10 -0
  65. package/src/retailWizard/enums/RetailCommissionInboundMessageTypeEnum.ts +5 -0
  66. package/src/retailWizard/events/RetailCommissionInboundMessage.ts +75 -2
  67. 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';
@@ -0,0 +1,5 @@
1
+ /** Tipo de mensaje que el wizard publica en la cola de Comisiones. */
2
+ export enum RetailCommissionInboundMessageTypeEnum {
3
+ SALE_COMPLETED = 'SALE_COMPLETED',
4
+ SALE_CANCELLED = 'SALE_CANCELLED',
5
+ }
@@ -1,9 +1,31 @@
1
1
  import { Type } from 'class-transformer';
2
- import { ArrayMinSize, IsArray, IsEnum, IsISO8601, IsInt, IsNotEmpty, IsString, Min, ValidateNested } from 'class-validator';
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 de la saga que el wizard publica en la cola de comisiones, con sus líneas. */
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