@fiado/type-kit 3.564.0 → 3.566.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 (134) hide show
  1. package/_test_/unit/retailCustomer/customerReferralContract.test.ts +228 -0
  2. package/_test_/unit/retailPromotions/constants.test.ts +1 -1
  3. package/_test_/unit/retailPromotions/referralPromotion.test.ts +177 -0
  4. package/_test_/unit/retailPromotions/referralRewardsByPhones.test.ts +73 -0
  5. package/_test_/unit/retailPromotions/referralWizardContracts.test.ts +119 -0
  6. package/_test_/unit/retailPromotions/salePromotionPaymentCheck.test.ts +29 -0
  7. package/_test_/unit/retailWizard/backofficeCustomerReferrals.test.ts +78 -0
  8. package/_test_/unit/retailWizard/promotionInboundMessages.test.ts +151 -0
  9. package/_test_/unit/retailWizard/referralsCapture.test.ts +66 -0
  10. package/_test_/unit/retailWizard/ventaSagaMessages.test.ts +7 -2
  11. package/bin/retailCustomer/dtos/CustomerReferral.d.ts +25 -0
  12. package/bin/retailCustomer/dtos/CustomerReferral.js +99 -0
  13. package/bin/retailCustomer/dtos/requests/CreateCustomerReferralsRequest.d.ts +19 -0
  14. package/bin/retailCustomer/dtos/requests/CreateCustomerReferralsRequest.js +101 -0
  15. package/bin/retailCustomer/dtos/requests/GetCustomersByPhonesRequest.d.ts +4 -0
  16. package/bin/retailCustomer/dtos/requests/GetCustomersByPhonesRequest.js +28 -0
  17. package/bin/retailCustomer/dtos/requests/GetReferralsByPhoneQuery.d.ts +6 -0
  18. package/bin/retailCustomer/dtos/requests/GetReferralsByPhoneQuery.js +39 -0
  19. package/bin/retailCustomer/dtos/requests/UpdateCustomerReferralRequest.d.ts +8 -0
  20. package/bin/retailCustomer/dtos/requests/UpdateCustomerReferralRequest.js +53 -0
  21. package/bin/retailCustomer/dtos/requests/UpsertPromotionBonusRequest.d.ts +4 -0
  22. package/bin/retailCustomer/dtos/requests/UpsertPromotionBonusRequest.js +15 -0
  23. package/bin/retailCustomer/dtos/responses/CustomerReferralResponses.d.ts +39 -0
  24. package/bin/retailCustomer/dtos/responses/CustomerReferralResponses.js +2 -0
  25. package/bin/retailCustomer/enums/ReferralRoleEnum.d.ts +5 -0
  26. package/bin/retailCustomer/enums/ReferralRoleEnum.js +9 -0
  27. package/bin/retailCustomer/enums/ReferralSourceEnum.d.ts +6 -0
  28. package/bin/retailCustomer/enums/ReferralSourceEnum.js +10 -0
  29. package/bin/retailCustomer/enums/ReferralStatusEnum.d.ts +7 -0
  30. package/bin/retailCustomer/enums/ReferralStatusEnum.js +11 -0
  31. package/bin/retailCustomer/index.d.ts +9 -0
  32. package/bin/retailCustomer/index.js +9 -0
  33. package/bin/retailPromotions/constants/retailPromotionsErrorHttpStatus.js +2 -0
  34. package/bin/retailPromotions/dtos/ReferralPromotion.d.ts +33 -0
  35. package/bin/retailPromotions/dtos/ReferralPromotion.js +2 -0
  36. package/bin/retailPromotions/dtos/SalePromotion.d.ts +3 -0
  37. package/bin/retailPromotions/dtos/requests/CheckSalePromotionPaymentRequest.d.ts +6 -0
  38. package/bin/retailPromotions/dtos/requests/CheckSalePromotionPaymentRequest.js +25 -0
  39. package/bin/retailPromotions/dtos/requests/CreateSalePromotionRequest.d.ts +3 -0
  40. package/bin/retailPromotions/dtos/requests/CreateSalePromotionRequest.js +8 -0
  41. package/bin/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.d.ts +2 -0
  42. package/bin/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.js +7 -0
  43. package/bin/retailPromotions/dtos/requests/GetReferralRewardsByPhonesRequest.d.ts +5 -0
  44. package/bin/retailPromotions/dtos/requests/GetReferralRewardsByPhonesRequest.js +34 -0
  45. package/bin/retailPromotions/dtos/requests/ListLiveReferralPromotionsQuery.d.ts +10 -0
  46. package/bin/retailPromotions/dtos/requests/ListLiveReferralPromotionsQuery.js +38 -0
  47. package/bin/retailPromotions/dtos/requests/ListSalePromotionsQuery.d.ts +6 -1
  48. package/bin/retailPromotions/dtos/requests/ListSalePromotionsQuery.js +15 -1
  49. package/bin/retailPromotions/dtos/requests/ReferralPromotionInput.d.ts +24 -0
  50. package/bin/retailPromotions/dtos/requests/ReferralPromotionInput.js +119 -0
  51. package/bin/retailPromotions/dtos/requests/UpdateSalePromotionRequest.d.ts +3 -0
  52. package/bin/retailPromotions/dtos/requests/UpdateSalePromotionRequest.js +8 -0
  53. package/bin/retailPromotions/dtos/responses/LiveReferralPromotionsResponse.d.ts +24 -0
  54. package/bin/retailPromotions/dtos/responses/LiveReferralPromotionsResponse.js +2 -0
  55. package/bin/retailPromotions/dtos/responses/ReferralRewardsByPhonesResponses.d.ts +25 -0
  56. package/bin/retailPromotions/dtos/responses/ReferralRewardsByPhonesResponses.js +2 -0
  57. package/bin/retailPromotions/dtos/responses/SalePromotionPaymentCheckResponses.d.ts +16 -0
  58. package/bin/retailPromotions/dtos/responses/SalePromotionPaymentCheckResponses.js +2 -0
  59. package/bin/retailPromotions/dtos/responses/WizardSalePromotionResponses.d.ts +13 -0
  60. package/bin/retailPromotions/enums/ReferralPromotionChannelEnum.d.ts +5 -0
  61. package/bin/retailPromotions/enums/ReferralPromotionChannelEnum.js +9 -0
  62. package/bin/retailPromotions/enums/ReferralRewardStatusEnum.d.ts +9 -0
  63. package/bin/retailPromotions/enums/ReferralRewardStatusEnum.js +13 -0
  64. package/bin/retailPromotions/enums/ReferralRewardTypeEnum.d.ts +10 -0
  65. package/bin/retailPromotions/enums/ReferralRewardTypeEnum.js +14 -0
  66. package/bin/retailPromotions/enums/ReferralTriggerEnum.d.ts +13 -0
  67. package/bin/retailPromotions/enums/ReferralTriggerEnum.js +17 -0
  68. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.d.ts +5 -1
  69. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.js +4 -0
  70. package/bin/retailPromotions/enums/SalePromotionKindEnum.d.ts +3 -2
  71. package/bin/retailPromotions/enums/SalePromotionKindEnum.js +2 -1
  72. package/bin/retailPromotions/index.d.ts +12 -0
  73. package/bin/retailPromotions/index.js +12 -0
  74. package/bin/retailWizard/dtos/responses/BackofficeCustomerReferralsResponse.d.ts +58 -0
  75. package/bin/retailWizard/dtos/responses/BackofficeCustomerReferralsResponse.js +2 -0
  76. package/bin/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.d.ts +4 -2
  77. package/bin/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.js +3 -1
  78. package/bin/retailWizard/enums/WizardStepEnum.d.ts +3 -1
  79. package/bin/retailWizard/enums/WizardStepEnum.js +2 -0
  80. package/bin/retailWizard/events/RetailCommissionInboundMessage.d.ts +7 -0
  81. package/bin/retailWizard/events/RetailCommissionInboundMessage.js +22 -1
  82. package/bin/retailWizard/events/RetailPromotionAccountOpenedMessage.d.ts +15 -0
  83. package/bin/retailWizard/events/RetailPromotionAccountOpenedMessage.js +56 -0
  84. package/bin/retailWizard/events/RetailPromotionInboundMessage.d.ts +15 -0
  85. package/bin/retailWizard/events/RetailPromotionInboundMessage.js +41 -1
  86. package/bin/retailWizard/events/RetailPromotionInstallmentPaidMessage.d.ts +20 -0
  87. package/bin/retailWizard/events/RetailPromotionInstallmentPaidMessage.js +75 -0
  88. package/bin/retailWizard/events/RetailPromotionQueueMessage.d.ts +5 -0
  89. package/bin/retailWizard/events/RetailPromotionQueueMessage.js +2 -0
  90. package/bin/retailWizard/index.d.ts +4 -0
  91. package/bin/retailWizard/index.js +4 -0
  92. package/package.json +1 -1
  93. package/src/retailCustomer/dtos/CustomerReferral.ts +77 -0
  94. package/src/retailCustomer/dtos/requests/CreateCustomerReferralsRequest.ts +91 -0
  95. package/src/retailCustomer/dtos/requests/GetCustomersByPhonesRequest.ts +15 -0
  96. package/src/retailCustomer/dtos/requests/GetReferralsByPhoneQuery.ts +23 -0
  97. package/src/retailCustomer/dtos/requests/UpdateCustomerReferralRequest.ts +38 -0
  98. package/src/retailCustomer/dtos/requests/UpsertPromotionBonusRequest.ts +15 -1
  99. package/src/retailCustomer/dtos/responses/CustomerReferralResponses.ts +46 -0
  100. package/src/retailCustomer/enums/ReferralRoleEnum.ts +5 -0
  101. package/src/retailCustomer/enums/ReferralSourceEnum.ts +6 -0
  102. package/src/retailCustomer/enums/ReferralStatusEnum.ts +7 -0
  103. package/src/retailCustomer/index.ts +9 -0
  104. package/src/retailPromotions/constants/retailPromotionsErrorHttpStatus.ts +2 -0
  105. package/src/retailPromotions/dtos/ReferralPromotion.ts +35 -0
  106. package/src/retailPromotions/dtos/SalePromotion.ts +3 -0
  107. package/src/retailPromotions/dtos/requests/CheckSalePromotionPaymentRequest.ts +12 -0
  108. package/src/retailPromotions/dtos/requests/CreateSalePromotionRequest.ts +8 -0
  109. package/src/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.ts +7 -0
  110. package/src/retailPromotions/dtos/requests/GetReferralRewardsByPhonesRequest.ts +20 -0
  111. package/src/retailPromotions/dtos/requests/ListLiveReferralPromotionsQuery.ts +24 -0
  112. package/src/retailPromotions/dtos/requests/ListSalePromotionsQuery.ts +14 -1
  113. package/src/retailPromotions/dtos/requests/ReferralPromotionInput.ts +93 -0
  114. package/src/retailPromotions/dtos/requests/UpdateSalePromotionRequest.ts +8 -0
  115. package/src/retailPromotions/dtos/responses/LiveReferralPromotionsResponse.ts +26 -0
  116. package/src/retailPromotions/dtos/responses/ReferralRewardsByPhonesResponses.ts +28 -0
  117. package/src/retailPromotions/dtos/responses/SalePromotionPaymentCheckResponses.ts +17 -0
  118. package/src/retailPromotions/dtos/responses/WizardSalePromotionResponses.ts +15 -0
  119. package/src/retailPromotions/enums/ReferralPromotionChannelEnum.ts +5 -0
  120. package/src/retailPromotions/enums/ReferralRewardStatusEnum.ts +9 -0
  121. package/src/retailPromotions/enums/ReferralRewardTypeEnum.ts +10 -0
  122. package/src/retailPromotions/enums/ReferralTriggerEnum.ts +13 -0
  123. package/src/retailPromotions/enums/RetailPromotionsErrorCodeEnum.ts +4 -0
  124. package/src/retailPromotions/enums/SalePromotionKindEnum.ts +2 -1
  125. package/src/retailPromotions/index.ts +12 -0
  126. package/src/retailWizard/dtos/responses/BackofficeCustomerReferralsResponse.ts +63 -0
  127. package/src/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.ts +3 -1
  128. package/src/retailWizard/enums/WizardStepEnum.ts +2 -0
  129. package/src/retailWizard/events/RetailCommissionInboundMessage.ts +18 -0
  130. package/src/retailWizard/events/RetailPromotionAccountOpenedMessage.ts +38 -0
  131. package/src/retailWizard/events/RetailPromotionInboundMessage.ts +43 -1
  132. package/src/retailWizard/events/RetailPromotionInstallmentPaidMessage.ts +53 -0
  133. package/src/retailWizard/events/RetailPromotionQueueMessage.ts +9 -0
  134. package/src/retailWizard/index.ts +4 -0
@@ -0,0 +1,63 @@
1
+ import { ReferralRoleEnum } from '../../../retailCustomer/enums/ReferralRoleEnum';
2
+ import { ReferralSourceEnum } from '../../../retailCustomer/enums/ReferralSourceEnum';
3
+ import { ReferralStatusEnum } from '../../../retailCustomer/enums/ReferralStatusEnum';
4
+ import { ReferralRewardStatusEnum } from '../../../retailPromotions/enums/ReferralRewardStatusEnum';
5
+ import { ReferralRewardTypeEnum } from '../../../retailPromotions/enums/ReferralRewardTypeEnum';
6
+
7
+ /** Premio de referido que muestra el cajón. */
8
+ export interface BackofficeReferralReward {
9
+ promotionId: string;
10
+ promotionName: string;
11
+ role: ReferralRoleEnum;
12
+ rewardType: ReferralRewardTypeEnum;
13
+ amountCents: number | null;
14
+ status: ReferralRewardStatusEnum;
15
+ /** Fecha del estado: pago, reserva o anulación. */
16
+ statusAt: string;
17
+ }
18
+
19
+ /** Dónde, cuándo y quién capturó el referido. */
20
+ export interface BackofficeReferralCapture {
21
+ source: ReferralSourceEnum;
22
+ /** `null` si se agregó en el cajón. */
23
+ storeId: string | null;
24
+ storeName: string | null;
25
+ /** Solo en `SALE`. */
26
+ saleId: string | null;
27
+ saleFolio: string | null;
28
+ /** Solo en `OPENING`. */
29
+ accountOpeningSessionId: string | null;
30
+ capturedBy: string;
31
+ capturedAt: string;
32
+ }
33
+
34
+ /** Referido del cliente en el cajón. */
35
+ export interface BackofficeCustomerReferral {
36
+ referralId: string;
37
+ name: string;
38
+ phone: string;
39
+ email: string | null;
40
+ status: ReferralStatusEnum;
41
+ capture: BackofficeReferralCapture;
42
+ updatedBy: string;
43
+ updatedAt: string;
44
+ /** Premios de quien recomienda por este referido; ausente si la ruta aún no los consulta. */
45
+ rewards?: BackofficeReferralReward[];
46
+ }
47
+
48
+ /** Quién recomendó al cliente y, opcional, lo que ganó él. */
49
+ export interface BackofficeReferredBy {
50
+ referralId: string;
51
+ referrerCustomerId: string;
52
+ referrerName: string;
53
+ referredAt: string;
54
+ /** Premios del cliente como recomendado, con su promo. */
55
+ rewards?: BackofficeReferralReward[];
56
+ }
57
+
58
+ /** GET /backoffice/customers/{retailCustomerId}/referrals — pestaña Referidos del cajón. */
59
+ export interface BackofficeCustomerReferralsResponse {
60
+ referrals: BackofficeCustomerReferral[];
61
+ /** `null` si el cliente no llegó recomendado. */
62
+ referredBy: BackofficeReferredBy | null;
63
+ }
@@ -1,5 +1,7 @@
1
- /** Tipo de mensaje que el wizard publica en la cola de Promociones. */
1
+ /** Tipo de mensaje en la cola de Promociones: venta y apertura los publica el wizard; la cuota, loan-credit. */
2
2
  export enum RetailPromotionInboundMessageTypeEnum {
3
3
  SALE_CONFIRMED = 'SALE_CONFIRMED',
4
4
  SALE_CANCELLED = 'SALE_CANCELLED',
5
+ ACCOUNT_OPENED = 'ACCOUNT_OPENED',
6
+ CREDIT_INSTALLMENT_PAID = 'CREDIT_INSTALLMENT_PAID',
5
7
  }
@@ -10,4 +10,6 @@ export enum WizardStepEnum {
10
10
  S08 = 'S08',
11
11
  S09 = 'S09',
12
12
  S10 = 'S10',
13
+ /** Referidos: tras firma o cobro en la venta, tras cuenta abierta en la apertura; el orden lo da el camino. */
14
+ S11 = 'S11',
13
15
  }
@@ -70,6 +70,17 @@ export class RetailCommissionInboundLine {
70
70
  phoneCount?: number;
71
71
  }
72
72
 
73
+ /** Referido capturado en la venta, con quien lo capturó para su comisión. */
74
+ export class RetailCommissionInboundReferral {
75
+ @IsString()
76
+ @IsNotEmpty()
77
+ referralId!: string;
78
+
79
+ @IsString()
80
+ @IsNotEmpty()
81
+ capturedBy!: string;
82
+ }
83
+
73
84
  /** Venta cerrada o cancelada que el wizard publica en RetailCommissionInboundQueue. */
74
85
  export class RetailCommissionInboundMessage {
75
86
  @IsEnum(RetailCommissionInboundMessageTypeEnum)
@@ -130,4 +141,11 @@ export class RetailCommissionInboundMessage {
130
141
  @ValidateNested({ each: true })
131
142
  @Type(() => RetailCommissionInboundLine)
132
143
  lines!: RetailCommissionInboundLine[];
144
+
145
+ /** Referidos capturados en la venta; ausente en mensajes viejos. */
146
+ @IsOptional()
147
+ @IsArray()
148
+ @ValidateNested({ each: true })
149
+ @Type(() => RetailCommissionInboundReferral)
150
+ referrals?: RetailCommissionInboundReferral[];
133
151
  }
@@ -0,0 +1,38 @@
1
+ import { Equals, IsISO8601, IsNotEmpty, IsString } from 'class-validator';
2
+ import { RetailPromotionInboundMessageTypeEnum } from '../enums/RetailPromotionInboundMessageTypeEnum';
3
+
4
+ /** Cuenta PCF que quedó OPEN (LINKED no cuenta); el wizard la publica en RetailPromotionInboundQueue. */
5
+ export class RetailPromotionAccountOpenedMessage {
6
+ @Equals(RetailPromotionInboundMessageTypeEnum.ACCOUNT_OPENED)
7
+ type!: RetailPromotionInboundMessageTypeEnum.ACCOUNT_OPENED;
8
+
9
+ @IsString()
10
+ @IsNotEmpty()
11
+ tenantId!: string;
12
+
13
+ @IsString()
14
+ @IsNotEmpty()
15
+ retailerId!: string;
16
+
17
+ @IsString()
18
+ @IsNotEmpty()
19
+ storeId!: string;
20
+
21
+ /** El retailCustomerId de quien abrió la cuenta. */
22
+ @IsString()
23
+ @IsNotEmpty()
24
+ customerId!: string;
25
+
26
+ /** Teléfono a 10 dígitos: con él se busca al referidor. */
27
+ @IsString()
28
+ @IsNotEmpty()
29
+ phone!: string;
30
+
31
+ /** Sesión del wizard donde se abrió la cuenta. */
32
+ @IsString()
33
+ @IsNotEmpty()
34
+ sessionId!: string;
35
+
36
+ @IsISO8601()
37
+ openedAt!: string;
38
+ }
@@ -4,6 +4,7 @@ import {
4
4
  IsArray,
5
5
  IsBoolean,
6
6
  IsEnum,
7
+ IsIn,
7
8
  IsISO8601,
8
9
  IsInt,
9
10
  IsNotEmpty,
@@ -14,7 +15,10 @@ import {
14
15
  } from 'class-validator';
15
16
  import { LinePromotionAmount } from '../../retailPromotions/dtos/LinePromotionAmount';
16
17
  import { SalePromotionRef } from '../../retailPromotions/dtos/SalePromotionRef';
18
+ import { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
17
19
  import { RetailPromotionInboundMessageTypeEnum } from '../enums/RetailPromotionInboundMessageTypeEnum';
20
+ import { SalePaymentMethodEnum } from '../enums/SalePaymentMethodEnum';
21
+ import { SaleTypeEnum } from '../enums/SaleTypeEnum';
18
22
  import { WizardLineRoleEnum } from '../enums/WizardLineRoleEnum';
19
23
 
20
24
  /** Línea de la venta en el mensaje de Promociones. */
@@ -90,9 +94,14 @@ export class RetailPromotionInboundLine {
90
94
  returned?: boolean;
91
95
  }
92
96
 
97
+ const SALE_MESSAGE_TYPES = [
98
+ RetailPromotionInboundMessageTypeEnum.SALE_CONFIRMED,
99
+ RetailPromotionInboundMessageTypeEnum.SALE_CANCELLED,
100
+ ];
101
+
93
102
  /** Venta confirmada o cancelada que el wizard publica en RetailPromotionInboundQueue; crédito = trae creditId. */
94
103
  export class RetailPromotionInboundMessage {
95
- @IsEnum(RetailPromotionInboundMessageTypeEnum)
104
+ @IsIn(SALE_MESSAGE_TYPES)
96
105
  type!: RetailPromotionInboundMessageTypeEnum;
97
106
 
98
107
  @IsString()
@@ -159,4 +168,37 @@ export class RetailPromotionInboundMessage {
159
168
  @ValidateNested({ each: true })
160
169
  @Type(() => RetailPromotionInboundLine)
161
170
  lines!: RetailPromotionInboundLine[];
171
+
172
+ /** Forma de pago; ausente en mensajes viejos. */
173
+ @IsOptional()
174
+ @IsEnum(SaleTypeEnum)
175
+ saleType?: SaleTypeEnum;
176
+
177
+ /** Medio de cobro, solo en contado. */
178
+ @IsOptional()
179
+ @IsEnum(SalePaymentMethodEnum)
180
+ paymentMethod?: SalePaymentMethodEnum | null;
181
+
182
+ /** Financiera externa, solo en `EXTERNAL_REFERRAL`. */
183
+ @IsOptional()
184
+ @IsEnum(ExternalProviderEnum)
185
+ externalProvider?: ExternalProviderEnum | null;
186
+
187
+ /** Precio del equipo en centavos; en crédito no es el enganche. */
188
+ @IsOptional()
189
+ @IsInt()
190
+ @Min(0)
191
+ amountCents?: number;
192
+
193
+ /** 1 + ventas no canceladas del cliente en la cadena. */
194
+ @IsOptional()
195
+ @IsInt()
196
+ @Min(1)
197
+ purchaseNumber?: number;
198
+
199
+ /** Teléfono del cliente a 10 dígitos. */
200
+ @IsOptional()
201
+ @IsString()
202
+ @IsNotEmpty()
203
+ phone?: string;
162
204
  }
@@ -0,0 +1,53 @@
1
+ import { Equals, IsBoolean, IsEnum, IsISO8601, IsInt, IsNotEmpty, IsString, Min } from 'class-validator';
2
+ import { LoanInstallmentStatusEnum } from '../../loanCredit/enums/LoanInstallmentStatusEnum';
3
+ import { RetailPromotionInboundMessageTypeEnum } from '../enums/RetailPromotionInboundMessageTypeEnum';
4
+
5
+ /** Cuota pagada que loan-credit publica en RetailPromotionInboundQueue: `InstallmentPaidV1` + contexto. Sin PII. */
6
+ export class RetailPromotionInstallmentPaidMessage {
7
+ @Equals(RetailPromotionInboundMessageTypeEnum.CREDIT_INSTALLMENT_PAID)
8
+ type!: RetailPromotionInboundMessageTypeEnum.CREDIT_INSTALLMENT_PAID;
9
+
10
+ @IsString()
11
+ @IsNotEmpty()
12
+ tenantId!: string;
13
+
14
+ @IsString()
15
+ @IsNotEmpty()
16
+ creditId!: string;
17
+
18
+ @IsInt()
19
+ @Min(1)
20
+ installmentNumber!: number;
21
+
22
+ /** Lo pagado de la cuota en total, en centavos. */
23
+ @IsInt()
24
+ @Min(0)
25
+ paidCents!: number;
26
+
27
+ @IsISO8601()
28
+ paidAt!: string;
29
+
30
+ @IsEnum(LoanInstallmentStatusEnum)
31
+ installmentStatus!: LoanInstallmentStatusEnum;
32
+
33
+ @IsString()
34
+ @IsNotEmpty()
35
+ paymentId!: string;
36
+
37
+ @IsString()
38
+ @IsNotEmpty()
39
+ wizardSessionId!: string;
40
+
41
+ @IsString()
42
+ @IsNotEmpty()
43
+ storeId!: string;
44
+
45
+ /** Pagada a más tardar en su vencimiento. */
46
+ @IsBoolean()
47
+ onTime!: boolean;
48
+
49
+ /** Cuotas seguidas a tiempo hasta esta, incluida; 0 si esta fue tarde. */
50
+ @IsInt()
51
+ @Min(0)
52
+ onTimeStreak!: number;
53
+ }
@@ -0,0 +1,9 @@
1
+ import { RetailPromotionAccountOpenedMessage } from './RetailPromotionAccountOpenedMessage';
2
+ import { RetailPromotionInboundMessage } from './RetailPromotionInboundMessage';
3
+ import { RetailPromotionInstallmentPaidMessage } from './RetailPromotionInstallmentPaidMessage';
4
+
5
+ /** Cualquier mensaje de RetailPromotionInboundQueue; el `type` dice cuál clase validar. */
6
+ export type RetailPromotionQueueMessage =
7
+ | RetailPromotionInboundMessage
8
+ | RetailPromotionAccountOpenedMessage
9
+ | RetailPromotionInstallmentPaidMessage;
@@ -182,6 +182,7 @@ export * from './enums/SellerTableSourceStatusEnum';
182
182
  export * from './dtos/responses/BackofficeSellerTableResponse';
183
183
  export * from './dtos/responses/BackofficeCustomerTableResponse';
184
184
  export * from './dtos/responses/BackofficeAccountOpeningsResponse';
185
+ export * from './dtos/responses/BackofficeCustomerReferralsResponse';
185
186
  export * from './enums/StoreKindEnum';
186
187
  export * from './dtos/responses/BackofficeStoreTableResponse';
187
188
  export * from './enums/StoreMixCategoryEnum';
@@ -196,6 +197,9 @@ export * from './events/SessionExpiredV1';
196
197
  export * from './enums/RetailPromotionInboundMessageTypeEnum';
197
198
  export * from './enums/RetailCommissionInboundMessageTypeEnum';
198
199
  export * from './events/RetailPromotionInboundMessage';
200
+ export * from './events/RetailPromotionAccountOpenedMessage';
201
+ export * from './events/RetailPromotionInstallmentPaidMessage';
202
+ export * from './events/RetailPromotionQueueMessage';
199
203
  export * from './events/RetailCommissionInboundMessage';
200
204
 
201
205
  // Lookup privado por lote (GET /private/wizard-sessions/batch)