@fiado/type-kit 3.608.0 → 3.610.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 (83) hide show
  1. package/_test_/unit/biometrics/BiometricEventTypeEnum.test.ts +35 -0
  2. package/_test_/unit/biometrics/BiometricVerificationResponse.test.ts +19 -0
  3. package/_test_/unit/kyc/KycProgressEnums.test.ts +20 -0
  4. package/_test_/unit/kyc/KycProofOfAddressCompletedV1.test.ts +24 -0
  5. package/_test_/unit/kyc/KycStepCompletedV1.test.ts +34 -0
  6. package/_test_/unit/kyc/KycVerificationChangedV1.test.ts +30 -0
  7. package/_test_/unit/kyc/KycVerificationProgressV1.test.ts +144 -0
  8. package/_test_/unit/loanCredit/dtos/originateLoanCreditRequest.test.ts +9 -0
  9. package/_test_/unit/loanOfferings/promotionCategoryTierScope.test.ts +89 -0
  10. package/_test_/unit/retailWizard/kycAttemptProgress.test.ts +131 -0
  11. package/bin/biometrics/dtos/responses/BiometricVerificationResponse.d.ts +2 -0
  12. package/bin/biometrics/dtos/responses/BiometricVerificationResponse.js +6 -0
  13. package/bin/biometrics/enums/BiometricEventTypeEnum.d.ts +7 -3
  14. package/bin/biometrics/enums/BiometricEventTypeEnum.js +6 -2
  15. package/bin/kyc/enums/KycFlowEnum.d.ts +5 -0
  16. package/bin/kyc/enums/KycFlowEnum.js +9 -0
  17. package/bin/kyc/enums/KycProgressStageEnum.d.ts +6 -0
  18. package/bin/kyc/enums/KycProgressStageEnum.js +10 -0
  19. package/bin/kyc/events/KycProofOfAddressCompletedV1.d.ts +2 -0
  20. package/bin/kyc/events/KycProofOfAddressCompletedV1.js +7 -0
  21. package/bin/kyc/events/KycStepCompletedV1.d.ts +5 -0
  22. package/bin/kyc/events/KycStepCompletedV1.js +14 -0
  23. package/bin/kyc/events/KycVerificationChangedV1.d.ts +2 -0
  24. package/bin/kyc/events/KycVerificationChangedV1.js +7 -0
  25. package/bin/kyc/events/KycVerificationProgressV1.d.ts +14 -0
  26. package/bin/kyc/events/KycVerificationProgressV1.js +63 -0
  27. package/bin/kyc/index.d.ts +3 -0
  28. package/bin/kyc/index.js +3 -0
  29. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.d.ts +6 -0
  30. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.js +14 -0
  31. package/bin/loanOfferings/constants/promotionSkuBatch.d.ts +2 -0
  32. package/bin/loanOfferings/constants/promotionSkuBatch.js +5 -0
  33. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.d.ts +6 -0
  34. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.js +16 -0
  35. package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.d.ts +11 -0
  36. package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.js +47 -0
  37. package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.d.ts +11 -0
  38. package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.js +47 -0
  39. package/bin/loanOfferings/dtos/requests/PromotionSkuInput.d.ts +8 -0
  40. package/bin/loanOfferings/dtos/requests/PromotionSkuInput.js +37 -0
  41. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.d.ts +6 -0
  42. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.js +14 -0
  43. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.d.ts +6 -0
  44. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.js +16 -0
  45. package/bin/loanOfferings/dtos/responses/PromotionResponse.d.ts +6 -0
  46. package/bin/loanOfferings/index.d.ts +4 -0
  47. package/bin/loanOfferings/index.js +5 -0
  48. package/bin/retailWizard/dtos/KycAttemptProgress.d.ts +14 -0
  49. package/bin/retailWizard/dtos/KycAttemptProgress.js +2 -0
  50. package/bin/retailWizard/dtos/KycStatusProgress.d.ts +7 -0
  51. package/bin/retailWizard/dtos/KycStatusProgress.js +2 -0
  52. package/bin/retailWizard/dtos/responses/KycPrepareResponse.d.ts +4 -0
  53. package/bin/retailWizard/dtos/responses/ProofOfAddressPrepareResponse.d.ts +2 -0
  54. package/bin/retailWizard/enums/KycAttemptStageEnum.d.ts +8 -0
  55. package/bin/retailWizard/enums/KycAttemptStageEnum.js +12 -0
  56. package/bin/retailWizard/index.d.ts +3 -0
  57. package/bin/retailWizard/index.js +3 -0
  58. package/package.json +1 -1
  59. package/src/biometrics/dtos/responses/BiometricVerificationResponse.ts +4 -0
  60. package/src/biometrics/enums/BiometricEventTypeEnum.ts +8 -2
  61. package/src/kyc/enums/KycFlowEnum.ts +5 -0
  62. package/src/kyc/enums/KycProgressStageEnum.ts +6 -0
  63. package/src/kyc/events/KycProofOfAddressCompletedV1.ts +4 -0
  64. package/src/kyc/events/KycStepCompletedV1.ts +9 -0
  65. package/src/kyc/events/KycVerificationChangedV1.ts +4 -0
  66. package/src/kyc/events/KycVerificationProgressV1.ts +33 -0
  67. package/src/kyc/index.ts +3 -0
  68. package/src/loanCredit/dtos/requests/OriginateLoanCreditRequest.ts +14 -0
  69. package/src/loanOfferings/constants/promotionSkuBatch.ts +2 -0
  70. package/src/loanOfferings/dtos/requests/CreatePromotionRequest.ts +16 -0
  71. package/src/loanOfferings/dtos/requests/ListPromotedSkusRequest.ts +32 -0
  72. package/src/loanOfferings/dtos/requests/ListSkuPromotionsRequest.ts +32 -0
  73. package/src/loanOfferings/dtos/requests/PromotionSkuInput.ts +21 -0
  74. package/src/loanOfferings/dtos/requests/SimulateCreditPlanRequest.ts +16 -1
  75. package/src/loanOfferings/dtos/requests/UpdatePromotionRequest.ts +16 -0
  76. package/src/loanOfferings/dtos/responses/PromotionResponse.ts +6 -0
  77. package/src/loanOfferings/index.ts +6 -0
  78. package/src/retailWizard/dtos/KycAttemptProgress.ts +15 -0
  79. package/src/retailWizard/dtos/KycStatusProgress.ts +8 -0
  80. package/src/retailWizard/dtos/responses/KycPrepareResponse.ts +4 -0
  81. package/src/retailWizard/dtos/responses/ProofOfAddressPrepareResponse.ts +2 -0
  82. package/src/retailWizard/enums/KycAttemptStageEnum.ts +8 -0
  83. package/src/retailWizard/index.ts +3 -0
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KycProgressStageEnum = void 0;
4
+ /** Etapa de avance de una verificación de Metamap, tal como la publica `kyc-metamap-webhook`. */
5
+ var KycProgressStageEnum;
6
+ (function (KycProgressStageEnum) {
7
+ KycProgressStageEnum["STARTED"] = "STARTED";
8
+ KycProgressStageEnum["INPUTS_COMPLETED"] = "INPUTS_COMPLETED";
9
+ KycProgressStageEnum["EXPIRED"] = "EXPIRED";
10
+ })(KycProgressStageEnum || (exports.KycProgressStageEnum = KycProgressStageEnum = {}));
@@ -46,4 +46,6 @@ export declare class KycProofOfAddressCompletedV1 {
46
46
  * truena. Normalizar a UTC es trabajo del webhook; este candado lo manda al DLQ si deja de hacerlo.
47
47
  */
48
48
  occurredAt: string;
49
+ /** Intento del wizard que originó el comprobante; el consumidor descarta los que no son el vigente. */
50
+ attemptId?: string;
49
51
  }
@@ -73,3 +73,10 @@ __decorate([
73
73
  }),
74
74
  __metadata("design:type", String)
75
75
  ], KycProofOfAddressCompletedV1.prototype, "occurredAt", void 0);
76
+ __decorate([
77
+ (0, class_transformer_1.Expose)(),
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, class_validator_1.IsString)(),
80
+ (0, class_validator_1.IsNotEmpty)(),
81
+ __metadata("design:type", String)
82
+ ], KycProofOfAddressCompletedV1.prototype, "attemptId", void 0);
@@ -1,3 +1,4 @@
1
+ import { KycFlowEnum } from '../enums/KycFlowEnum';
1
2
  import { KycSubCheckNameEnum } from '../enums/KycSubCheckNameEnum';
2
3
  import { KycSubCheckStatusEnum } from '../enums/KycSubCheckStatusEnum';
3
4
  import { KycWatchlistStatusEnum } from '../enums/KycWatchlistStatusEnum';
@@ -82,4 +83,8 @@ export declare class KycStepCompletedV1 {
82
83
  occurredAt: string;
83
84
  /** El flujo de Metamap que corrió. Solo para diagnóstico — nadie ramifica por él. */
84
85
  metamapFlowId?: string;
86
+ /** Intento del wizard que originó la verificación; el consumidor descarta los que no son el vigente. */
87
+ attemptId?: string;
88
+ /** Flujo al que pertenece la estación, derivado de `metadata.kycStep`. */
89
+ flow?: KycFlowEnum;
85
90
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.KycStepCompletedV1 = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const KycFlowEnum_1 = require("../enums/KycFlowEnum");
15
16
  const KycSubCheckNameEnum_1 = require("../enums/KycSubCheckNameEnum");
16
17
  const IsKycStepStatusByStep_1 = require("../validators/IsKycStepStatusByStep");
17
18
  /**
@@ -91,3 +92,16 @@ __decorate([
91
92
  (0, class_validator_1.IsString)(),
92
93
  __metadata("design:type", String)
93
94
  ], KycStepCompletedV1.prototype, "metamapFlowId", void 0);
95
+ __decorate([
96
+ (0, class_transformer_1.Expose)(),
97
+ (0, class_validator_1.IsOptional)(),
98
+ (0, class_validator_1.IsString)(),
99
+ (0, class_validator_1.IsNotEmpty)(),
100
+ __metadata("design:type", String)
101
+ ], KycStepCompletedV1.prototype, "attemptId", void 0);
102
+ __decorate([
103
+ (0, class_transformer_1.Expose)(),
104
+ (0, class_validator_1.IsOptional)(),
105
+ (0, class_validator_1.IsEnum)(KycFlowEnum_1.KycFlowEnum),
106
+ __metadata("design:type", String)
107
+ ], KycStepCompletedV1.prototype, "flow", void 0);
@@ -71,4 +71,6 @@ export declare class KycVerificationChangedV1 {
71
71
  * degradación segura (el consumidor lo pide y lo guarda él).
72
72
  */
73
73
  addressPushedToFiado?: boolean;
74
+ /** Intento del wizard que originó la verificación; el consumidor descarta los que no son el vigente. */
75
+ attemptId?: string;
74
76
  }
@@ -104,3 +104,10 @@ __decorate([
104
104
  (0, class_validator_1.IsBoolean)(),
105
105
  __metadata("design:type", Boolean)
106
106
  ], KycVerificationChangedV1.prototype, "addressPushedToFiado", void 0);
107
+ __decorate([
108
+ (0, class_transformer_1.Expose)(),
109
+ (0, class_validator_1.IsOptional)(),
110
+ (0, class_validator_1.IsString)(),
111
+ (0, class_validator_1.IsNotEmpty)(),
112
+ __metadata("design:type", String)
113
+ ], KycVerificationChangedV1.prototype, "attemptId", void 0);
@@ -0,0 +1,14 @@
1
+ import { KycFlowEnum } from '../enums/KycFlowEnum';
2
+ import { KycProgressStageEnum } from '../enums/KycProgressStageEnum';
3
+ /** Avance de una verificación de Metamap (started, inputs_completed, expired) que publica `kyc-metamap-webhook`. */
4
+ export declare class KycVerificationProgressV1 {
5
+ eventType: 'KycVerificationProgressV1';
6
+ stage: KycProgressStageEnum;
7
+ flow: KycFlowEnum;
8
+ verificationId: string;
9
+ directoryId: string;
10
+ /** Intento del wizard que originó la verificación; ausente en sesiones previas al despliegue. */
11
+ attemptId?: string;
12
+ /** ISO-8601 en UTC con `Z`, igual que los demás eventos de la cola. */
13
+ occurredAt: string;
14
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KycVerificationProgressV1 = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const KycFlowEnum_1 = require("../enums/KycFlowEnum");
16
+ const KycProgressStageEnum_1 = require("../enums/KycProgressStageEnum");
17
+ /** Avance de una verificación de Metamap (started, inputs_completed, expired) que publica `kyc-metamap-webhook`. */
18
+ class KycVerificationProgressV1 {
19
+ }
20
+ exports.KycVerificationProgressV1 = KycVerificationProgressV1;
21
+ __decorate([
22
+ (0, class_transformer_1.Expose)(),
23
+ (0, class_validator_1.IsIn)(['KycVerificationProgressV1']),
24
+ __metadata("design:type", String)
25
+ ], KycVerificationProgressV1.prototype, "eventType", void 0);
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ (0, class_validator_1.IsEnum)(KycProgressStageEnum_1.KycProgressStageEnum),
29
+ __metadata("design:type", String)
30
+ ], KycVerificationProgressV1.prototype, "stage", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsEnum)(KycFlowEnum_1.KycFlowEnum),
34
+ __metadata("design:type", String)
35
+ ], KycVerificationProgressV1.prototype, "flow", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Expose)(),
38
+ (0, class_validator_1.IsString)(),
39
+ (0, class_validator_1.IsNotEmpty)(),
40
+ __metadata("design:type", String)
41
+ ], KycVerificationProgressV1.prototype, "verificationId", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ (0, class_validator_1.IsString)(),
45
+ (0, class_validator_1.IsNotEmpty)(),
46
+ __metadata("design:type", String)
47
+ ], KycVerificationProgressV1.prototype, "directoryId", void 0);
48
+ __decorate([
49
+ (0, class_transformer_1.Expose)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ (0, class_validator_1.IsNotEmpty)(),
53
+ __metadata("design:type", String)
54
+ ], KycVerificationProgressV1.prototype, "attemptId", void 0);
55
+ __decorate([
56
+ (0, class_transformer_1.Expose)(),
57
+ (0, class_validator_1.IsString)(),
58
+ (0, class_validator_1.IsISO8601)({ strict: true }),
59
+ (0, class_validator_1.Matches)(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, {
60
+ message: 'occurredAt debe ser ISO-8601 en UTC con Z (ej. 2026-10-28T10:05:00.000Z)',
61
+ }),
62
+ __metadata("design:type", String)
63
+ ], KycVerificationProgressV1.prototype, "occurredAt", void 0);
@@ -3,6 +3,8 @@ export * from './enums/KycSubCheckStatusEnum';
3
3
  export * from './enums/KycWatchlistStatusEnum';
4
4
  export * from './enums/KycSubCheckNameEnum';
5
5
  export * from './enums/ProofAddressStatusEnum';
6
+ export * from './enums/KycProgressStageEnum';
7
+ export * from './enums/KycFlowEnum';
6
8
  export * from './dtos/KycSubChecks';
7
9
  export * from './validators/IsKycStepStatusByStep';
8
10
  export * from './helpers/applyKycStep';
@@ -12,3 +14,4 @@ export * from './dtos/responses/KycByDirectoryResponse';
12
14
  export * from './events/KycVerificationChangedV1';
13
15
  export * from './events/KycStepCompletedV1';
14
16
  export * from './events/KycProofOfAddressCompletedV1';
17
+ export * from './events/KycVerificationProgressV1';
package/bin/kyc/index.js CHANGED
@@ -21,6 +21,8 @@ __exportStar(require("./enums/KycSubCheckStatusEnum"), exports);
21
21
  __exportStar(require("./enums/KycWatchlistStatusEnum"), exports);
22
22
  __exportStar(require("./enums/KycSubCheckNameEnum"), exports);
23
23
  __exportStar(require("./enums/ProofAddressStatusEnum"), exports);
24
+ __exportStar(require("./enums/KycProgressStageEnum"), exports);
25
+ __exportStar(require("./enums/KycFlowEnum"), exports);
24
26
  // Sub-pasos descompuestos (SureKeep F2)
25
27
  __exportStar(require("./dtos/KycSubChecks"), exports);
26
28
  // Validators
@@ -36,3 +38,4 @@ __exportStar(require("./dtos/responses/KycByDirectoryResponse"), exports);
36
38
  __exportStar(require("./events/KycVerificationChangedV1"), exports);
37
39
  __exportStar(require("./events/KycStepCompletedV1"), exports);
38
40
  __exportStar(require("./events/KycProofOfAddressCompletedV1"), exports);
41
+ __exportStar(require("./events/KycVerificationProgressV1"), exports);
@@ -1,3 +1,5 @@
1
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
2
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
1
3
  import { ClientLevelEnum } from '../../../loanScoring/enums/ClientLevelEnum';
2
4
  /**
3
5
  * Body de `POST /private/credits/originate` (loan-credit-business — wizard, vía api-invoker).
@@ -40,4 +42,8 @@ export declare class OriginateLoanCreditRequest {
40
42
  sellerId?: string;
41
43
  /** SKU del equipo, por el mismo motivo que `storeId`: resuelve promociones acotadas por producto. */
42
44
  productSku?: string;
45
+ /** Tipo del equipo: resuelve promociones acotadas por tipo. */
46
+ productCategory?: ProductCategoryEnum;
47
+ /** Gama del equipo: resuelve promociones acotadas por gama. */
48
+ productTier?: ProductTierEnum;
43
49
  }
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.OriginateLoanCreditRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
16
+ const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
15
17
  const ClientLevelEnum_1 = require("../../../loanScoring/enums/ClientLevelEnum");
16
18
  /**
17
19
  * Body de `POST /private/credits/originate` (loan-credit-business — wizard, vía api-invoker).
@@ -108,3 +110,15 @@ __decorate([
108
110
  (0, class_validator_1.IsString)(),
109
111
  __metadata("design:type", String)
110
112
  ], OriginateLoanCreditRequest.prototype, "productSku", void 0);
113
+ __decorate([
114
+ (0, class_transformer_1.Expose)(),
115
+ (0, class_validator_1.IsOptional)(),
116
+ (0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum),
117
+ __metadata("design:type", String)
118
+ ], OriginateLoanCreditRequest.prototype, "productCategory", void 0);
119
+ __decorate([
120
+ (0, class_transformer_1.Expose)(),
121
+ (0, class_validator_1.IsOptional)(),
122
+ (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum),
123
+ __metadata("design:type", String)
124
+ ], OriginateLoanCreditRequest.prototype, "productTier", void 0);
@@ -0,0 +1,2 @@
1
+ /** Tope de SKUs por llamada a los lotes de promociones por SKU; el caller parte en bloques. */
2
+ export declare const PROMOTION_SKU_BATCH_MAX_ITEMS = 100;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROMOTION_SKU_BATCH_MAX_ITEMS = void 0;
4
+ /** Tope de SKUs por llamada a los lotes de promociones por SKU; el caller parte en bloques. */
5
+ exports.PROMOTION_SKU_BATCH_MAX_ITEMS = 100;
@@ -1,4 +1,6 @@
1
1
  import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
2
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
3
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
2
4
  import { PromotionEffectInput } from './PromotionEffectInput';
3
5
  /**
4
6
  * Body de POST /promotions — alta de una promoción del motor.
@@ -14,6 +16,10 @@ export declare class CreatePromotionRequest {
14
16
  targetLevels: CreditPlanLevelEnum[];
15
17
  /** SKUs alcanzados; ausente o `null` = todos los productos. */
16
18
  productSkus?: string[] | null;
19
+ /** Tipos de producto alcanzados; ausente o `null` = todos los tipos. */
20
+ productCategories?: ProductCategoryEnum[] | null;
21
+ /** Gamas alcanzadas; ausente o `null` = todas las gamas. */
22
+ tiers?: ProductTierEnum[] | null;
17
23
  /** Tiendas alcanzadas. `null` o ausente = todas. */
18
24
  storeIds?: string[] | null;
19
25
  validFrom?: string | null;
@@ -13,6 +13,8 @@ exports.CreatePromotionRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
16
+ const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
17
+ const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
16
18
  const PromotionEffectInput_1 = require("./PromotionEffectInput");
17
19
  /**
18
20
  * Body de POST /promotions — alta de una promoción del motor.
@@ -57,6 +59,20 @@ __decorate([
57
59
  (0, class_validator_1.IsString)({ each: true }),
58
60
  __metadata("design:type", Array)
59
61
  ], CreatePromotionRequest.prototype, "productSkus", void 0);
62
+ __decorate([
63
+ (0, class_transformer_1.Expose)(),
64
+ (0, class_validator_1.IsOptional)(),
65
+ (0, class_validator_1.IsArray)(),
66
+ (0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum, { each: true }),
67
+ __metadata("design:type", Array)
68
+ ], CreatePromotionRequest.prototype, "productCategories", void 0);
69
+ __decorate([
70
+ (0, class_transformer_1.Expose)(),
71
+ (0, class_validator_1.IsOptional)(),
72
+ (0, class_validator_1.IsArray)(),
73
+ (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum, { each: true }),
74
+ __metadata("design:type", Array)
75
+ ], CreatePromotionRequest.prototype, "tiers", void 0);
60
76
  __decorate([
61
77
  (0, class_transformer_1.Expose)(),
62
78
  (0, class_validator_1.IsOptional)(),
@@ -0,0 +1,11 @@
1
+ import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
2
+ import { PromotionSkuInput } from './PromotionSkuInput';
3
+ /** Body de `POST /private/promotions/promoted-skus` (M2M): SKUs del lote con promoción viva para el badge; hasta 100 SKUs. */
4
+ export declare class ListPromotedSkusRequest {
5
+ storeId: string;
6
+ /** Nivel del cliente si loan-scoring ya corrió. */
7
+ level?: CreditPlanLevelEnum;
8
+ /** Segmento del cliente si ya se resolvió. */
9
+ segmentId?: string;
10
+ items: PromotionSkuInput[];
11
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ListPromotedSkusRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const promotionSkuBatch_1 = require("../../constants/promotionSkuBatch");
16
+ const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
17
+ const PromotionSkuInput_1 = require("./PromotionSkuInput");
18
+ /** Body de `POST /private/promotions/promoted-skus` (M2M): SKUs del lote con promoción viva para el badge; hasta 100 SKUs. */
19
+ class ListPromotedSkusRequest {
20
+ }
21
+ exports.ListPromotedSkusRequest = ListPromotedSkusRequest;
22
+ __decorate([
23
+ (0, class_transformer_1.Expose)(),
24
+ (0, class_validator_1.IsString)(),
25
+ (0, class_validator_1.IsNotEmpty)(),
26
+ __metadata("design:type", String)
27
+ ], ListPromotedSkusRequest.prototype, "storeId", void 0);
28
+ __decorate([
29
+ (0, class_transformer_1.Expose)(),
30
+ (0, class_validator_1.IsOptional)(),
31
+ (0, class_validator_1.IsEnum)(CreditPlanLevelEnum_1.CreditPlanLevelEnum),
32
+ __metadata("design:type", String)
33
+ ], ListPromotedSkusRequest.prototype, "level", void 0);
34
+ __decorate([
35
+ (0, class_transformer_1.Expose)(),
36
+ (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.IsString)(),
38
+ __metadata("design:type", String)
39
+ ], ListPromotedSkusRequest.prototype, "segmentId", void 0);
40
+ __decorate([
41
+ (0, class_transformer_1.Expose)(),
42
+ (0, class_validator_1.IsArray)(),
43
+ (0, class_validator_1.ArrayMaxSize)(promotionSkuBatch_1.PROMOTION_SKU_BATCH_MAX_ITEMS),
44
+ (0, class_validator_1.ValidateNested)({ each: true }),
45
+ (0, class_transformer_1.Type)(() => PromotionSkuInput_1.PromotionSkuInput),
46
+ __metadata("design:type", Array)
47
+ ], ListPromotedSkusRequest.prototype, "items", void 0);
@@ -0,0 +1,11 @@
1
+ import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
2
+ import { PromotionSkuInput } from './PromotionSkuInput';
3
+ /** Body de `POST /private/promotions/by-sku` (M2M): promociones vivas de cada SKU del lote; hasta 100 SKUs. */
4
+ export declare class ListSkuPromotionsRequest {
5
+ storeId: string;
6
+ /** Nivel del cliente si loan-scoring ya corrió. */
7
+ level?: CreditPlanLevelEnum;
8
+ /** Segmento del cliente si ya se resolvió. */
9
+ segmentId?: string;
10
+ items: PromotionSkuInput[];
11
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ListSkuPromotionsRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const promotionSkuBatch_1 = require("../../constants/promotionSkuBatch");
16
+ const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
17
+ const PromotionSkuInput_1 = require("./PromotionSkuInput");
18
+ /** Body de `POST /private/promotions/by-sku` (M2M): promociones vivas de cada SKU del lote; hasta 100 SKUs. */
19
+ class ListSkuPromotionsRequest {
20
+ }
21
+ exports.ListSkuPromotionsRequest = ListSkuPromotionsRequest;
22
+ __decorate([
23
+ (0, class_transformer_1.Expose)(),
24
+ (0, class_validator_1.IsString)(),
25
+ (0, class_validator_1.IsNotEmpty)(),
26
+ __metadata("design:type", String)
27
+ ], ListSkuPromotionsRequest.prototype, "storeId", void 0);
28
+ __decorate([
29
+ (0, class_transformer_1.Expose)(),
30
+ (0, class_validator_1.IsOptional)(),
31
+ (0, class_validator_1.IsEnum)(CreditPlanLevelEnum_1.CreditPlanLevelEnum),
32
+ __metadata("design:type", String)
33
+ ], ListSkuPromotionsRequest.prototype, "level", void 0);
34
+ __decorate([
35
+ (0, class_transformer_1.Expose)(),
36
+ (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.IsString)(),
38
+ __metadata("design:type", String)
39
+ ], ListSkuPromotionsRequest.prototype, "segmentId", void 0);
40
+ __decorate([
41
+ (0, class_transformer_1.Expose)(),
42
+ (0, class_validator_1.IsArray)(),
43
+ (0, class_validator_1.ArrayMaxSize)(promotionSkuBatch_1.PROMOTION_SKU_BATCH_MAX_ITEMS),
44
+ (0, class_validator_1.ValidateNested)({ each: true }),
45
+ (0, class_transformer_1.Type)(() => PromotionSkuInput_1.PromotionSkuInput),
46
+ __metadata("design:type", Array)
47
+ ], ListSkuPromotionsRequest.prototype, "items", void 0);
@@ -0,0 +1,8 @@
1
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
2
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
3
+ /** Un SKU con su tipo y gama; sin ellos no cumple un alcance por tipo o por gama. */
4
+ export declare class PromotionSkuInput {
5
+ sku: string;
6
+ category?: ProductCategoryEnum;
7
+ tier?: ProductTierEnum;
8
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PromotionSkuInput = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
16
+ const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
17
+ /** Un SKU con su tipo y gama; sin ellos no cumple un alcance por tipo o por gama. */
18
+ class PromotionSkuInput {
19
+ }
20
+ exports.PromotionSkuInput = PromotionSkuInput;
21
+ __decorate([
22
+ (0, class_transformer_1.Expose)(),
23
+ (0, class_validator_1.IsString)(),
24
+ __metadata("design:type", String)
25
+ ], PromotionSkuInput.prototype, "sku", void 0);
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum),
30
+ __metadata("design:type", String)
31
+ ], PromotionSkuInput.prototype, "category", void 0);
32
+ __decorate([
33
+ (0, class_transformer_1.Expose)(),
34
+ (0, class_validator_1.IsOptional)(),
35
+ (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum),
36
+ __metadata("design:type", String)
37
+ ], PromotionSkuInput.prototype, "tier", void 0);
@@ -1,3 +1,5 @@
1
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
2
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
1
3
  /**
2
4
  * Body de POST /private/credit-plans/:planId/simulate y query de GET /credit-plans/:planId/simulator.
3
5
  * Entradas del simulador de cuota (flow 06 §6.1.4). `productPriceCents` en cents; `downPaymentPct`
@@ -16,6 +18,10 @@ export declare class SimulateCreditPlanRequest {
16
18
  storeId?: string;
17
19
  /** SKU del equipo. Sin él no se resuelven las promociones acotadas por producto. */
18
20
  productSku?: string;
21
+ /** Tipo del equipo. Sin él no se resuelven las promociones acotadas por tipo. */
22
+ productCategory?: ProductCategoryEnum;
23
+ /** Gama del equipo. Sin ella no se resuelven las promociones acotadas por gama. */
24
+ productTier?: ProductTierEnum;
19
25
  /**
20
26
  * Segmentos del cliente, los que devolvió `POST /private/segments/resolve`. Un arreglo vacío
21
27
  * declara que el cliente no está en ninguno; ausente declara que el caller no lo consultó.
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SimulateCreditPlanRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
16
+ const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
15
17
  /**
16
18
  * Body de POST /private/credit-plans/:planId/simulate y query de GET /credit-plans/:planId/simulator.
17
19
  * Entradas del simulador de cuota (flow 06 §6.1.4). `productPriceCents` en cents; `downPaymentPct`
@@ -63,6 +65,18 @@ __decorate([
63
65
  (0, class_validator_1.IsString)(),
64
66
  __metadata("design:type", String)
65
67
  ], SimulateCreditPlanRequest.prototype, "productSku", void 0);
68
+ __decorate([
69
+ (0, class_transformer_1.Expose)(),
70
+ (0, class_validator_1.IsOptional)(),
71
+ (0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum),
72
+ __metadata("design:type", String)
73
+ ], SimulateCreditPlanRequest.prototype, "productCategory", void 0);
74
+ __decorate([
75
+ (0, class_transformer_1.Expose)(),
76
+ (0, class_validator_1.IsOptional)(),
77
+ (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum),
78
+ __metadata("design:type", String)
79
+ ], SimulateCreditPlanRequest.prototype, "productTier", void 0);
66
80
  __decorate([
67
81
  (0, class_transformer_1.Expose)(),
68
82
  (0, class_validator_1.IsOptional)(),
@@ -1,4 +1,6 @@
1
1
  import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
2
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
3
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
2
4
  import { PromotionEffectInput } from './PromotionEffectInput';
3
5
  /**
4
6
  * Body de PUT /promotions/:promotionId — edición parcial (todos los campos opcionales).
@@ -12,6 +14,10 @@ export declare class UpdatePromotionRequest {
12
14
  segmentId?: string;
13
15
  targetLevels?: CreditPlanLevelEnum[];
14
16
  productSkus?: string[] | null;
17
+ /** Tipos de producto alcanzados; ausente o `null` = todos los tipos. */
18
+ productCategories?: ProductCategoryEnum[] | null;
19
+ /** Gamas alcanzadas; ausente o `null` = todas las gamas. */
20
+ tiers?: ProductTierEnum[] | null;
15
21
  /** Tiendas alcanzadas. `null` o ausente = todas. */
16
22
  storeIds?: string[] | null;
17
23
  validFrom?: string | null;
@@ -13,6 +13,8 @@ exports.UpdatePromotionRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
16
+ const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
17
+ const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
16
18
  const PromotionEffectInput_1 = require("./PromotionEffectInput");
17
19
  /**
18
20
  * Body de PUT /promotions/:promotionId — edición parcial (todos los campos opcionales).
@@ -62,6 +64,20 @@ __decorate([
62
64
  (0, class_validator_1.IsString)({ each: true }),
63
65
  __metadata("design:type", Array)
64
66
  ], UpdatePromotionRequest.prototype, "productSkus", void 0);
67
+ __decorate([
68
+ (0, class_transformer_1.Expose)(),
69
+ (0, class_validator_1.IsOptional)(),
70
+ (0, class_validator_1.IsArray)(),
71
+ (0, class_validator_1.IsEnum)(ProductCategoryEnum_1.ProductCategoryEnum, { each: true }),
72
+ __metadata("design:type", Array)
73
+ ], UpdatePromotionRequest.prototype, "productCategories", void 0);
74
+ __decorate([
75
+ (0, class_transformer_1.Expose)(),
76
+ (0, class_validator_1.IsOptional)(),
77
+ (0, class_validator_1.IsArray)(),
78
+ (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum, { each: true }),
79
+ __metadata("design:type", Array)
80
+ ], UpdatePromotionRequest.prototype, "tiers", void 0);
65
81
  __decorate([
66
82
  (0, class_transformer_1.Expose)(),
67
83
  (0, class_validator_1.IsOptional)(),
@@ -1,3 +1,5 @@
1
+ import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
2
+ import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
1
3
  import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
2
4
  import { PromotionEffectKindEnum } from '../../enums/PromotionEffectKindEnum';
3
5
  import { PromotionPhaseEnum } from '../../enums/PromotionPhaseEnum';
@@ -21,6 +23,10 @@ export interface PromotionResponse {
21
23
  targetLevels: CreditPlanLevelEnum[];
22
24
  /** `null` = alcanza a todos los productos. */
23
25
  productSkus: string[] | null;
26
+ /** `null` = alcanza a todos los tipos de producto. */
27
+ productCategories: ProductCategoryEnum[] | null;
28
+ /** `null` = alcanza a todas las gamas. */
29
+ tiers: ProductTierEnum[] | null;
24
30
  /** `null` = alcanza a todas las tiendas. Dimensión «Tienda / canal» del alcance. */
25
31
  storeIds: string[] | null;
26
32
  validFrom: string | null;
@@ -16,6 +16,7 @@ export * from './enums/SegmentStatusEnum';
16
16
  export * from './enums/SegmentColorSlotEnum';
17
17
  export * from './enums/SegmentFilterIdEnum';
18
18
  export * from './enums/PrepaymentMinimumModeEnum';
19
+ export * from './constants/promotionSkuBatch';
19
20
  export * from './dtos/CreditPlan';
20
21
  export * from './dtos/PrepaymentMinimum';
21
22
  export * from './dtos/Financier';
@@ -45,6 +46,9 @@ export * from './dtos/requests/ChangeSegmentStatusRequest';
45
46
  export * from './dtos/requests/ResolveCustomerSegmentsRequest';
46
47
  export * from './dtos/requests/ComputeAmortizationScheduleRequest';
47
48
  export * from './dtos/requests/ListSegmentCatalogQuery';
49
+ export * from './dtos/requests/PromotionSkuInput';
50
+ export * from './dtos/requests/ListPromotedSkusRequest';
51
+ export * from './dtos/requests/ListSkuPromotionsRequest';
48
52
  export * from './dtos/responses/CreditPlanResponse';
49
53
  export * from './dtos/responses/FinancierResponse';
50
54
  export * from './dtos/responses/RetailerCreditPlanResponse';
@@ -33,6 +33,8 @@ __exportStar(require("./enums/SegmentStatusEnum"), exports);
33
33
  __exportStar(require("./enums/SegmentColorSlotEnum"), exports);
34
34
  __exportStar(require("./enums/SegmentFilterIdEnum"), exports);
35
35
  __exportStar(require("./enums/PrepaymentMinimumModeEnum"), exports);
36
+ // Constantes
37
+ __exportStar(require("./constants/promotionSkuBatch"), exports);
36
38
  // Entity DTOs
37
39
  __exportStar(require("./dtos/CreditPlan"), exports);
38
40
  __exportStar(require("./dtos/PrepaymentMinimum"), exports);
@@ -64,6 +66,9 @@ __exportStar(require("./dtos/requests/ChangeSegmentStatusRequest"), exports);
64
66
  __exportStar(require("./dtos/requests/ResolveCustomerSegmentsRequest"), exports);
65
67
  __exportStar(require("./dtos/requests/ComputeAmortizationScheduleRequest"), exports);
66
68
  __exportStar(require("./dtos/requests/ListSegmentCatalogQuery"), exports);
69
+ __exportStar(require("./dtos/requests/PromotionSkuInput"), exports);
70
+ __exportStar(require("./dtos/requests/ListPromotedSkusRequest"), exports);
71
+ __exportStar(require("./dtos/requests/ListSkuPromotionsRequest"), exports);
67
72
  // Response DTOs
68
73
  __exportStar(require("./dtos/responses/CreditPlanResponse"), exports);
69
74
  __exportStar(require("./dtos/responses/FinancierResponse"), exports);