@fiado/type-kit 3.613.0 → 3.615.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 (153) hide show
  1. package/_test_/unit/loanCredit/dtos/originateLoanCreditRequest.test.ts +9 -0
  2. package/_test_/unit/loanCredit/segmentFactsDtos.test.ts +80 -0
  3. package/_test_/unit/loanOfferings/promotionRetailerScope.test.ts +79 -0
  4. package/_test_/unit/loanOfferings/segmentCatalog.test.ts +4 -2
  5. package/_test_/unit/loanOfferings/segmentCohorts.test.ts +333 -0
  6. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.d.ts +2 -0
  7. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.js +7 -0
  8. package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.d.ts +4 -0
  9. package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.js +27 -0
  10. package/bin/loanCredit/dtos/requests/SegmentFactsPageRequest.d.ts +7 -0
  11. package/bin/loanCredit/dtos/requests/SegmentFactsPageRequest.js +32 -0
  12. package/bin/loanCredit/dtos/responses/BorrowerSegmentFacts.d.ts +22 -0
  13. package/bin/loanCredit/dtos/responses/BorrowerSegmentFacts.js +2 -0
  14. package/bin/loanCredit/dtos/responses/SegmentFactsBatchResponse.d.ts +5 -0
  15. package/bin/loanCredit/dtos/responses/SegmentFactsBatchResponse.js +2 -0
  16. package/bin/loanCredit/dtos/responses/SegmentFactsPageResponse.d.ts +7 -0
  17. package/bin/loanCredit/dtos/responses/SegmentFactsPageResponse.js +2 -0
  18. package/bin/loanCredit/index.d.ts +5 -0
  19. package/bin/loanCredit/index.js +6 -0
  20. package/bin/loanOfferings/constants/promotionRetailerScope.d.ts +2 -0
  21. package/bin/loanOfferings/constants/promotionRetailerScope.js +5 -0
  22. package/bin/loanOfferings/dtos/requests/ChangeCohortStatusRequest.d.ts +9 -0
  23. package/bin/loanOfferings/dtos/requests/ChangeCohortStatusRequest.js +34 -0
  24. package/bin/loanOfferings/dtos/requests/CohortCondition.d.ts +15 -0
  25. package/bin/loanOfferings/dtos/requests/CohortCondition.js +48 -0
  26. package/bin/loanOfferings/dtos/requests/CreateCohortRequest.d.ts +11 -0
  27. package/bin/loanOfferings/dtos/requests/CreateCohortRequest.js +44 -0
  28. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.d.ts +2 -0
  29. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.js +10 -0
  30. package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.d.ts +7 -8
  31. package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.js +5 -3
  32. package/bin/loanOfferings/dtos/requests/CustomerSegmentFacts.d.ts +30 -0
  33. package/bin/loanOfferings/dtos/requests/CustomerSegmentFacts.js +92 -0
  34. package/bin/loanOfferings/dtos/requests/ListCohortsQuery.d.ts +5 -0
  35. package/bin/loanOfferings/dtos/requests/ListCohortsQuery.js +25 -0
  36. package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.d.ts +2 -0
  37. package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.js +7 -0
  38. package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.d.ts +2 -0
  39. package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.js +7 -0
  40. package/bin/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.d.ts +4 -20
  41. package/bin/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.js +4 -48
  42. package/bin/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.d.ts +8 -0
  43. package/bin/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.js +31 -0
  44. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.d.ts +2 -0
  45. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.js +7 -0
  46. package/bin/loanOfferings/dtos/requests/TestCohortRequest.d.ts +9 -0
  47. package/bin/loanOfferings/dtos/requests/TestCohortRequest.js +36 -0
  48. package/bin/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.d.ts +4 -0
  49. package/bin/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.js +23 -0
  50. package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.d.ts +12 -0
  51. package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.js +53 -0
  52. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.d.ts +2 -0
  53. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.js +10 -0
  54. package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.d.ts +2 -2
  55. package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.js +3 -1
  56. package/bin/loanOfferings/dtos/responses/CohortCatalogResponse.d.ts +33 -0
  57. package/bin/loanOfferings/dtos/responses/CohortCatalogResponse.js +2 -0
  58. package/bin/loanOfferings/dtos/responses/CohortLogEntryResponse.d.ts +11 -0
  59. package/bin/loanOfferings/dtos/responses/CohortLogEntryResponse.js +2 -0
  60. package/bin/loanOfferings/dtos/responses/CohortResponse.d.ts +43 -0
  61. package/bin/loanOfferings/dtos/responses/CohortResponse.js +2 -0
  62. package/bin/loanOfferings/dtos/responses/PromotionResponse.d.ts +2 -0
  63. package/bin/loanOfferings/dtos/responses/SegmentCatalogResponse.d.ts +5 -2
  64. package/bin/loanOfferings/dtos/responses/SegmentLogEntryResponse.d.ts +11 -0
  65. package/bin/loanOfferings/dtos/responses/SegmentLogEntryResponse.js +2 -0
  66. package/bin/loanOfferings/dtos/responses/SegmentMembersResponse.d.ts +19 -0
  67. package/bin/loanOfferings/dtos/responses/SegmentMembersResponse.js +2 -0
  68. package/bin/loanOfferings/dtos/responses/SegmentResponse.d.ts +12 -6
  69. package/bin/loanOfferings/dtos/responses/SegmentUsageResponse.d.ts +18 -0
  70. package/bin/loanOfferings/dtos/responses/SegmentUsageResponse.js +2 -0
  71. package/bin/loanOfferings/dtos/responses/SegmentationRecountRunResponse.d.ts +23 -0
  72. package/bin/loanOfferings/dtos/responses/SegmentationRecountRunResponse.js +2 -0
  73. package/bin/loanOfferings/dtos/responses/SegmentationRecountStartResponse.d.ts +6 -0
  74. package/bin/loanOfferings/dtos/responses/SegmentationRecountStartResponse.js +2 -0
  75. package/bin/loanOfferings/dtos/responses/TestCohortResponse.d.ts +17 -0
  76. package/bin/loanOfferings/dtos/responses/TestCohortResponse.js +2 -0
  77. package/bin/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.d.ts +23 -0
  78. package/bin/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.js +2 -0
  79. package/bin/loanOfferings/enums/CohortConditionOutcomeEnum.d.ts +10 -0
  80. package/bin/loanOfferings/enums/CohortConditionOutcomeEnum.js +14 -0
  81. package/bin/loanOfferings/enums/CohortFactKeyEnum.d.ts +17 -0
  82. package/bin/loanOfferings/enums/CohortFactKeyEnum.js +21 -0
  83. package/bin/loanOfferings/enums/CohortFactTypeEnum.d.ts +9 -0
  84. package/bin/loanOfferings/enums/CohortFactTypeEnum.js +13 -0
  85. package/bin/loanOfferings/enums/CohortLogEventEnum.d.ts +10 -0
  86. package/bin/loanOfferings/enums/CohortLogEventEnum.js +14 -0
  87. package/bin/loanOfferings/enums/CohortOperatorEnum.d.ts +15 -0
  88. package/bin/loanOfferings/enums/CohortOperatorEnum.js +19 -0
  89. package/bin/loanOfferings/enums/CohortStatusEnum.d.ts +9 -0
  90. package/bin/loanOfferings/enums/CohortStatusEnum.js +13 -0
  91. package/bin/loanOfferings/enums/SegmentFilterIdEnum.d.ts +2 -0
  92. package/bin/loanOfferings/enums/SegmentFilterIdEnum.js +2 -0
  93. package/bin/loanOfferings/enums/SegmentLogEventEnum.d.ts +10 -0
  94. package/bin/loanOfferings/enums/SegmentLogEventEnum.js +14 -0
  95. package/bin/loanOfferings/enums/SegmentMembershipReasonEnum.d.ts +9 -0
  96. package/bin/loanOfferings/enums/SegmentMembershipReasonEnum.js +13 -0
  97. package/bin/loanOfferings/enums/SegmentationRecountStatusEnum.d.ts +9 -0
  98. package/bin/loanOfferings/enums/SegmentationRecountStatusEnum.js +13 -0
  99. package/bin/loanOfferings/enums/SegmentationRecountTriggerEnum.d.ts +8 -0
  100. package/bin/loanOfferings/enums/SegmentationRecountTriggerEnum.js +12 -0
  101. package/bin/loanOfferings/index.d.ts +30 -0
  102. package/bin/loanOfferings/index.js +30 -0
  103. package/package.json +1 -1
  104. package/src/loanCredit/dtos/requests/OriginateLoanCreditRequest.ts +7 -0
  105. package/src/loanCredit/dtos/requests/SegmentFactsBatchRequest.ts +13 -0
  106. package/src/loanCredit/dtos/requests/SegmentFactsPageRequest.ts +19 -0
  107. package/src/loanCredit/dtos/responses/BorrowerSegmentFacts.ts +24 -0
  108. package/src/loanCredit/dtos/responses/SegmentFactsBatchResponse.ts +6 -0
  109. package/src/loanCredit/dtos/responses/SegmentFactsPageResponse.ts +8 -0
  110. package/src/loanCredit/index.ts +7 -0
  111. package/src/loanOfferings/constants/promotionRetailerScope.ts +2 -0
  112. package/src/loanOfferings/dtos/requests/ChangeCohortStatusRequest.ts +19 -0
  113. package/src/loanOfferings/dtos/requests/CohortCondition.ts +33 -0
  114. package/src/loanOfferings/dtos/requests/CreateCohortRequest.ts +29 -0
  115. package/src/loanOfferings/dtos/requests/CreatePromotionRequest.ts +12 -0
  116. package/src/loanOfferings/dtos/requests/CreateSegmentRequest.ts +10 -9
  117. package/src/loanOfferings/dtos/requests/CustomerSegmentFacts.ts +79 -0
  118. package/src/loanOfferings/dtos/requests/ListCohortsQuery.ts +11 -0
  119. package/src/loanOfferings/dtos/requests/ListPromotedSkusRequest.ts +7 -0
  120. package/src/loanOfferings/dtos/requests/ListSkuPromotionsRequest.ts +7 -0
  121. package/src/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.ts +5 -49
  122. package/src/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.ts +17 -0
  123. package/src/loanOfferings/dtos/requests/SimulateCreditPlanRequest.ts +8 -1
  124. package/src/loanOfferings/dtos/requests/TestCohortRequest.ts +21 -0
  125. package/src/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.ts +9 -0
  126. package/src/loanOfferings/dtos/requests/UpdateCohortRequest.ts +37 -0
  127. package/src/loanOfferings/dtos/requests/UpdatePromotionRequest.ts +12 -0
  128. package/src/loanOfferings/dtos/requests/UpdateSegmentRequest.ts +5 -3
  129. package/src/loanOfferings/dtos/responses/CohortCatalogResponse.ts +36 -0
  130. package/src/loanOfferings/dtos/responses/CohortLogEntryResponse.ts +12 -0
  131. package/src/loanOfferings/dtos/responses/CohortResponse.ts +47 -0
  132. package/src/loanOfferings/dtos/responses/PromotionResponse.ts +2 -0
  133. package/src/loanOfferings/dtos/responses/SegmentCatalogResponse.ts +5 -2
  134. package/src/loanOfferings/dtos/responses/SegmentLogEntryResponse.ts +12 -0
  135. package/src/loanOfferings/dtos/responses/SegmentMembersResponse.ts +21 -0
  136. package/src/loanOfferings/dtos/responses/SegmentResponse.ts +12 -6
  137. package/src/loanOfferings/dtos/responses/SegmentUsageResponse.ts +20 -0
  138. package/src/loanOfferings/dtos/responses/SegmentationRecountRunResponse.ts +25 -0
  139. package/src/loanOfferings/dtos/responses/SegmentationRecountStartResponse.ts +7 -0
  140. package/src/loanOfferings/dtos/responses/TestCohortResponse.ts +19 -0
  141. package/src/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.ts +25 -0
  142. package/src/loanOfferings/enums/CohortConditionOutcomeEnum.ts +10 -0
  143. package/src/loanOfferings/enums/CohortFactKeyEnum.ts +17 -0
  144. package/src/loanOfferings/enums/CohortFactTypeEnum.ts +9 -0
  145. package/src/loanOfferings/enums/CohortLogEventEnum.ts +10 -0
  146. package/src/loanOfferings/enums/CohortOperatorEnum.ts +15 -0
  147. package/src/loanOfferings/enums/CohortStatusEnum.ts +9 -0
  148. package/src/loanOfferings/enums/SegmentFilterIdEnum.ts +2 -0
  149. package/src/loanOfferings/enums/SegmentLogEventEnum.ts +10 -0
  150. package/src/loanOfferings/enums/SegmentMembershipReasonEnum.ts +9 -0
  151. package/src/loanOfferings/enums/SegmentationRecountStatusEnum.ts +9 -0
  152. package/src/loanOfferings/enums/SegmentationRecountTriggerEnum.ts +8 -0
  153. package/src/loanOfferings/index.ts +30 -0
@@ -0,0 +1,31 @@
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.ResolveSegmentMembersRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const ResolveCustomerSegmentsRequest_1 = require("./ResolveCustomerSegmentsRequest");
16
+ /**
17
+ * Body de POST /private/segments/members — pertenencia a segmentos en lote, con cohorts. Cada
18
+ * cliente viaja con sus datos si el llamador los tiene; los que falten los pide loan-offerings.
19
+ */
20
+ class ResolveSegmentMembersRequest {
21
+ }
22
+ exports.ResolveSegmentMembersRequest = ResolveSegmentMembersRequest;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, class_validator_1.IsArray)(),
26
+ (0, class_validator_1.ArrayMinSize)(1),
27
+ (0, class_validator_1.ArrayMaxSize)(100),
28
+ (0, class_validator_1.ValidateNested)({ each: true }),
29
+ (0, class_transformer_1.Type)(() => ResolveCustomerSegmentsRequest_1.ResolveCustomerSegmentsRequest),
30
+ __metadata("design:type", Array)
31
+ ], ResolveSegmentMembersRequest.prototype, "customers", void 0);
@@ -22,6 +22,8 @@ export declare class SimulateCreditPlanRequest {
22
22
  productCategory?: ProductCategoryEnum;
23
23
  /** Gama del equipo. Sin ella no se resuelven las promociones acotadas por gama. */
24
24
  productTier?: ProductTierEnum;
25
+ /** Cadena de la tienda que cotiza; sin ella no se resuelven las promociones acotadas por cadena. */
26
+ retailerId?: string;
25
27
  /**
26
28
  * Segmentos del cliente, los que devolvió `POST /private/segments/resolve`. Un arreglo vacío
27
29
  * declara que el cliente no está en ninguno; ausente declara que el caller no lo consultó.
@@ -77,6 +77,13 @@ __decorate([
77
77
  (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum),
78
78
  __metadata("design:type", String)
79
79
  ], SimulateCreditPlanRequest.prototype, "productTier", void 0);
80
+ __decorate([
81
+ (0, class_transformer_1.Expose)(),
82
+ (0, class_validator_1.IsOptional)(),
83
+ (0, class_validator_1.IsString)(),
84
+ (0, class_validator_1.IsNotEmpty)(),
85
+ __metadata("design:type", String)
86
+ ], SimulateCreditPlanRequest.prototype, "retailerId", void 0);
80
87
  __decorate([
81
88
  (0, class_transformer_1.Expose)(),
82
89
  (0, class_validator_1.IsOptional)(),
@@ -0,0 +1,9 @@
1
+ import { CohortCondition } from './CohortCondition';
2
+ /**
3
+ * Body de POST /cohorts/test — prueba unas condiciones, guardadas o no, con un cliente. Devuelve
4
+ * los datos del cliente y el resultado de cada condición.
5
+ */
6
+ export declare class TestCohortRequest {
7
+ retailCustomerId: string;
8
+ conditions: CohortCondition[];
9
+ }
@@ -0,0 +1,36 @@
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.TestCohortRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const CohortCondition_1 = require("./CohortCondition");
16
+ /**
17
+ * Body de POST /cohorts/test — prueba unas condiciones, guardadas o no, con un cliente. Devuelve
18
+ * los datos del cliente y el resultado de cada condición.
19
+ */
20
+ class TestCohortRequest {
21
+ }
22
+ exports.TestCohortRequest = TestCohortRequest;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, class_validator_1.IsString)(),
26
+ __metadata("design:type", String)
27
+ ], TestCohortRequest.prototype, "retailCustomerId", void 0);
28
+ __decorate([
29
+ (0, class_transformer_1.Expose)(),
30
+ (0, class_validator_1.IsArray)(),
31
+ (0, class_validator_1.ArrayMinSize)(1),
32
+ (0, class_validator_1.ArrayMaxSize)(10),
33
+ (0, class_validator_1.ValidateNested)({ each: true }),
34
+ (0, class_transformer_1.Type)(() => CohortCondition_1.CohortCondition),
35
+ __metadata("design:type", Array)
36
+ ], TestCohortRequest.prototype, "conditions", void 0);
@@ -0,0 +1,4 @@
1
+ /** Body de POST /segments/test — en qué segmentos cae un cliente y por qué. */
2
+ export declare class TestCustomerSegmentsRequest {
3
+ retailCustomerId: string;
4
+ }
@@ -0,0 +1,23 @@
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.TestCustomerSegmentsRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /** Body de POST /segments/test — en qué segmentos cae un cliente y por qué. */
16
+ class TestCustomerSegmentsRequest {
17
+ }
18
+ exports.TestCustomerSegmentsRequest = TestCustomerSegmentsRequest;
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ (0, class_validator_1.IsString)(),
22
+ __metadata("design:type", String)
23
+ ], TestCustomerSegmentsRequest.prototype, "retailCustomerId", void 0);
@@ -0,0 +1,12 @@
1
+ import { CohortCondition } from './CohortCondition';
2
+ /**
3
+ * Body de PUT /cohorts/:cohortId — edición parcial; ausente deja el campo como está. Sube
4
+ * `version`. El cambio de estado va por su endpoint dedicado.
5
+ */
6
+ export declare class UpdateCohortRequest {
7
+ name?: string;
8
+ description?: string;
9
+ /** Reemplaza todas las condiciones. */
10
+ conditions?: CohortCondition[];
11
+ reason?: string;
12
+ }
@@ -0,0 +1,53 @@
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.UpdateCohortRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const CohortCondition_1 = require("./CohortCondition");
16
+ /**
17
+ * Body de PUT /cohorts/:cohortId — edición parcial; ausente deja el campo como está. Sube
18
+ * `version`. El cambio de estado va por su endpoint dedicado.
19
+ */
20
+ class UpdateCohortRequest {
21
+ }
22
+ exports.UpdateCohortRequest = UpdateCohortRequest;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.MaxLength)(120),
28
+ __metadata("design:type", String)
29
+ ], UpdateCohortRequest.prototype, "name", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)(),
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.MaxLength)(500),
35
+ __metadata("design:type", String)
36
+ ], UpdateCohortRequest.prototype, "description", void 0);
37
+ __decorate([
38
+ (0, class_transformer_1.Expose)(),
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsArray)(),
41
+ (0, class_validator_1.ArrayMinSize)(1),
42
+ (0, class_validator_1.ArrayMaxSize)(10),
43
+ (0, class_validator_1.ValidateNested)({ each: true }),
44
+ (0, class_transformer_1.Type)(() => CohortCondition_1.CohortCondition),
45
+ __metadata("design:type", Array)
46
+ ], UpdateCohortRequest.prototype, "conditions", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_validator_1.IsString)(),
51
+ (0, class_validator_1.MaxLength)(280),
52
+ __metadata("design:type", String)
53
+ ], UpdateCohortRequest.prototype, "reason", void 0);
@@ -18,6 +18,8 @@ export declare class UpdatePromotionRequest {
18
18
  productCategories?: ProductCategoryEnum[] | null;
19
19
  /** Gamas alcanzadas; ausente o `null` = todas las gamas. */
20
20
  tiers?: ProductTierEnum[] | null;
21
+ /** Cadenas alcanzadas; ausente, `null` o vacío = todas las cadenas. */
22
+ retailerIds?: string[] | null;
21
23
  /** Tiendas alcanzadas. `null` o ausente = todas. */
22
24
  storeIds?: string[] | null;
23
25
  validFrom?: string | null;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdatePromotionRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const promotionRetailerScope_1 = require("../../constants/promotionRetailerScope");
15
16
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
16
17
  const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
17
18
  const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
@@ -78,6 +79,15 @@ __decorate([
78
79
  (0, class_validator_1.IsEnum)(ProductTierEnum_1.ProductTierEnum, { each: true }),
79
80
  __metadata("design:type", Array)
80
81
  ], UpdatePromotionRequest.prototype, "tiers", void 0);
82
+ __decorate([
83
+ (0, class_transformer_1.Expose)(),
84
+ (0, class_validator_1.IsOptional)(),
85
+ (0, class_validator_1.IsArray)(),
86
+ (0, class_validator_1.ArrayMaxSize)(promotionRetailerScope_1.PROMOTION_RETAILER_IDS_MAX_ITEMS),
87
+ (0, class_validator_1.IsString)({ each: true }),
88
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
89
+ __metadata("design:type", Array)
90
+ ], UpdatePromotionRequest.prototype, "retailerIds", void 0);
81
91
  __decorate([
82
92
  (0, class_transformer_1.Expose)(),
83
93
  (0, class_validator_1.IsOptional)(),
@@ -10,8 +10,8 @@ export declare class UpdateSegmentRequest {
10
10
  name?: string;
11
11
  description?: string;
12
12
  colorSlot?: SegmentColorSlotEnum;
13
- /** Reemplaza la lista entera; `[]` deja el segmento sin filtros. */
14
- filterIds?: string[];
13
+ /** Reemplaza la lista entera; `[]` deja el segmento sin cohorts. */
14
+ cohortIds?: string[];
15
15
  /** Reemplaza la lista entera; `[]` saca a todos los agregados a mano. */
16
16
  memberIds?: string[];
17
17
  reason?: string;
@@ -48,8 +48,10 @@ __decorate([
48
48
  (0, class_validator_1.IsOptional)(),
49
49
  (0, class_validator_1.IsArray)(),
50
50
  (0, class_validator_1.IsString)({ each: true }),
51
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
52
+ (0, class_validator_1.ArrayMaxSize)(20),
51
53
  __metadata("design:type", Array)
52
- ], UpdateSegmentRequest.prototype, "filterIds", void 0);
54
+ ], UpdateSegmentRequest.prototype, "cohortIds", void 0);
53
55
  __decorate([
54
56
  (0, class_transformer_1.Expose)(),
55
57
  (0, class_validator_1.IsOptional)(),
@@ -0,0 +1,33 @@
1
+ import { CohortFactKeyEnum } from '../../enums/CohortFactKeyEnum';
2
+ import { CohortFactTypeEnum } from '../../enums/CohortFactTypeEnum';
3
+ import { CohortOperatorEnum } from '../../enums/CohortOperatorEnum';
4
+ /** Una opción de un dato de tipo `SELECT`. */
5
+ export interface CohortFactOption {
6
+ value: string;
7
+ label: string;
8
+ }
9
+ /**
10
+ * Un dato del cliente tal como lo pinta el armador de cohorts. El front lo toma de acá en vez de
11
+ * duplicar la lista.
12
+ */
13
+ export interface CohortFactFieldResponse {
14
+ key: CohortFactKeyEnum;
15
+ type: CohortFactTypeEnum;
16
+ label: string;
17
+ unit: string | null;
18
+ /** Solo en `SELECT`. */
19
+ options: CohortFactOption[] | null;
20
+ /** Operadores que admite su tipo. */
21
+ operators: CohortOperatorEnum[];
22
+ /**
23
+ * `false` cuando ningún sistema produce el dato: el armador lo muestra deshabilitado y el lambda
24
+ * rechaza guardar un cohort que lo use (422).
25
+ */
26
+ hasSource: boolean;
27
+ /** Por qué no tiene fuente. `null` cuando `hasSource` es `true`. */
28
+ missingSourceReason: string | null;
29
+ }
30
+ /** Respuesta de GET /cohorts/catalog. */
31
+ export interface CohortCatalogResponse {
32
+ fields: CohortFactFieldResponse[];
33
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import { CohortLogEventEnum } from '../../enums/CohortLogEventEnum';
2
+ /** Un evento de la bitácora de un cohort. */
3
+ export interface CohortLogEntryResponse {
4
+ cohortId: string;
5
+ cohortName: string;
6
+ event: CohortLogEventEnum;
7
+ occurredAt: string;
8
+ performedBy: string;
9
+ reason: string | null;
10
+ version: number;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,43 @@
1
+ import { CohortFactKeyEnum } from '../../enums/CohortFactKeyEnum';
2
+ import { CohortOperatorEnum } from '../../enums/CohortOperatorEnum';
3
+ import { CohortStatusEnum } from '../../enums/CohortStatusEnum';
4
+ /** Una condición guardada. `value` y `values` van en `null` cuando el operador no los usa. */
5
+ export interface CohortConditionResponse {
6
+ field: CohortFactKeyEnum;
7
+ op: CohortOperatorEnum;
8
+ value: number | boolean | string | null;
9
+ values: string[] | null;
10
+ }
11
+ /** Un segmento que usa el cohort, con lo mínimo para enlazarlo. */
12
+ export interface CohortSegmentRef {
13
+ segmentId: string;
14
+ name: string;
15
+ }
16
+ /**
17
+ * Shape de salida de un cohort (GET / POST / PUT de /cohorts). Sus condiciones se unen con Y.
18
+ * Los conteos salen del último recálculo; `null` = sin calcular.
19
+ */
20
+ export interface CohortResponse {
21
+ cohortId: string;
22
+ name: string;
23
+ description: string | null;
24
+ conditions: CohortConditionResponse[];
25
+ status: CohortStatusEnum;
26
+ version: number;
27
+ memberCount: number | null;
28
+ /** Porcentaje de los acreditados del tenant, de 0 a 100 con un decimal. `null` = sin calcular. */
29
+ pctTotal: number | null;
30
+ countedAt: string | null;
31
+ /** `true` si nunca se contó o se editó después del último recálculo. */
32
+ countPending: boolean;
33
+ /** Segmentos ACTIVE que lo referencian. */
34
+ usedBySegments: CohortSegmentRef[];
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ createdBy: string;
38
+ updatedBy: string;
39
+ }
40
+ /** Respuesta de GET /cohorts. */
41
+ export interface CohortListResponse {
42
+ cohorts: CohortResponse[];
43
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -27,6 +27,8 @@ export interface PromotionResponse {
27
27
  productCategories: ProductCategoryEnum[] | null;
28
28
  /** `null` = alcanza a todas las gamas. */
29
29
  tiers: ProductTierEnum[] | null;
30
+ /** `null` = alcanza a todas las cadenas. */
31
+ retailerIds: string[] | null;
30
32
  /** `null` = alcanza a todas las tiendas. Dimensión «Tienda / canal» del alcance. */
31
33
  storeIds: string[] | null;
32
34
  validFrom: string | null;
@@ -1,11 +1,14 @@
1
- import { SegmentFilterIdEnum } from '../../enums/SegmentFilterIdEnum';
2
1
  import { SegmentStatusEnum } from '../../enums/SegmentStatusEnum';
3
2
  /** Un segmento como lo necesita un selector: sin miembros ni metadatos de edición. */
4
3
  export interface SegmentCatalogItem {
5
4
  segmentId: string;
6
5
  name: string;
7
6
  status: SegmentStatusEnum;
8
- filterIds: SegmentFilterIdEnum[];
7
+ cohortIds: string[];
8
+ /** `true` si el segmento tiene cohorts: su pertenencia depende de los datos del cliente. */
9
+ dependsOnFacts: boolean;
10
+ /** @deprecated Mismo contenido que `cohortIds`; usar `cohortIds` o `dependsOnFacts`. */
11
+ filterIds: string[];
9
12
  /** `true` solo en el catch-all, que el resolve nunca devuelve. */
10
13
  isDefault: boolean;
11
14
  }
@@ -0,0 +1,11 @@
1
+ import { SegmentLogEventEnum } from '../../enums/SegmentLogEventEnum';
2
+ /** Un evento de la bitácora de un segmento. */
3
+ export interface SegmentLogEntryResponse {
4
+ segmentId: string;
5
+ segmentName: string;
6
+ event: SegmentLogEventEnum;
7
+ occurredAt: string;
8
+ performedBy: string;
9
+ reason: string | null;
10
+ version: number;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,19 @@
1
+ /** Un segmento como lo pinta una celda de la tabla de clientes. */
2
+ export interface CustomerSegmentRef {
3
+ segmentId: string;
4
+ name: string;
5
+ /** `true` solo en el catch-all: el cliente no pertenece a ningún otro segmento. */
6
+ isDefault: boolean;
7
+ }
8
+ /** Un cliente pedido y sus segmentos. */
9
+ export interface CustomerSegmentsItem {
10
+ retailCustomerId: string;
11
+ segments: CustomerSegmentRef[];
12
+ }
13
+ /**
14
+ * Respuesta de la pertenencia a segmentos en lote: una fila por id pedido, en el orden en que
15
+ * llegaron, así el llamador distingue «ninguno» de «no vino».
16
+ */
17
+ export interface SegmentMembersResponse {
18
+ items: CustomerSegmentsItem[];
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,9 @@
1
1
  import { SegmentColorSlotEnum } from '../../enums/SegmentColorSlotEnum';
2
- import { SegmentFilterIdEnum } from '../../enums/SegmentFilterIdEnum';
3
2
  import { SegmentStatusEnum } from '../../enums/SegmentStatusEnum';
4
3
  /**
5
4
  * Shape de salida de un segmento (GET / POST / PUT de /segments).
6
5
  *
7
- * Un cliente pertenece si cumple AL MENOS UNO de los `filterIds` (OR) **o** está en `memberIds`.
6
+ * Un cliente pertenece si cumple AL MENOS UNO de los `cohortIds` (OR) **o** está en `memberIds`.
8
7
  * No hay prioridad ni desempate: el cliente puede estar en varios segmentos a la vez.
9
8
  */
10
9
  export interface SegmentResponse {
@@ -12,14 +11,21 @@ export interface SegmentResponse {
12
11
  name: string;
13
12
  description: string | null;
14
13
  colorSlot: SegmentColorSlotEnum;
15
- /** Ids del catálogo cerrado. Vacío = no alcanza a nadie por regla. */
16
- filterIds: SegmentFilterIdEnum[];
17
- /** `retailCustomerId` agregados a mano. Ganan aunque el cliente no cumpla ningún filtro. */
14
+ /** Cohorts del segmento. Vacío = no alcanza a nadie por regla. */
15
+ cohortIds: string[];
16
+ /** `retailCustomerId` agregados a mano. Ganan aunque el cliente no cumpla ningún cohort. */
18
17
  memberIds: string[];
19
- /** El catch-all implícito. No acepta filtros ni individuos, no se archiva y solo se renombra. */
18
+ /** El catch-all implícito. No acepta cohorts ni individuos, no se archiva y solo se renombra. */
20
19
  isDefault: boolean;
21
20
  status: SegmentStatusEnum;
22
21
  version: number;
22
+ /** Clientes del último recálculo. En el catch-all, los que no cayeron en ningún segmento. `null` = sin calcular. */
23
+ clientCount: number | null;
24
+ /** Porcentaje de los acreditados del tenant, de 0 a 100 con un decimal. `null` = sin calcular. */
25
+ pctTotal: number | null;
26
+ countedAt: string | null;
27
+ /** `true` si nunca se contó o se editó después del último recálculo. */
28
+ countPending: boolean;
23
29
  createdAt: string;
24
30
  updatedAt: string;
25
31
  createdBy: string;
@@ -0,0 +1,18 @@
1
+ /** Una política de tienda que apunta al segmento. */
2
+ export interface SegmentUsagePolicyRef {
3
+ policyId: string;
4
+ name: string;
5
+ status: string;
6
+ }
7
+ /** Una promoción que apunta al segmento. */
8
+ export interface SegmentUsagePromotionRef {
9
+ promotionId: string;
10
+ name: string;
11
+ status: string;
12
+ }
13
+ /** Respuesta de GET /segments/:segmentId/usage: dónde se aplica el segmento, con su estado. */
14
+ export interface SegmentUsageResponse {
15
+ segmentId: string;
16
+ policies: SegmentUsagePolicyRef[];
17
+ promotions: SegmentUsagePromotionRef[];
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ import { SegmentationRecountStatusEnum } from '../../enums/SegmentationRecountStatusEnum';
2
+ import { SegmentationRecountTriggerEnum } from '../../enums/SegmentationRecountTriggerEnum';
3
+ /**
4
+ * Una corrida del recálculo de conteos de cohorts y segmentos. Los campos de cierre van en `null`
5
+ * mientras corre.
6
+ */
7
+ export interface SegmentationRecountRunResponse {
8
+ runId: string;
9
+ trigger: SegmentationRecountTriggerEnum;
10
+ status: SegmentationRecountStatusEnum;
11
+ /** Quién la disparó. */
12
+ actor: string;
13
+ startedAt: string;
14
+ finishedAt: string | null;
15
+ /** Acreditados evaluados. */
16
+ evaluated: number | null;
17
+ durationMs: number | null;
18
+ error: string | null;
19
+ }
20
+ /** Respuesta de GET /segmentation/recount/runs: la más reciente primero, máximo 50. */
21
+ export interface SegmentationRecountRunsResponse {
22
+ runs: SegmentationRecountRunResponse[];
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import { SegmentationRecountStatusEnum } from '../../enums/SegmentationRecountStatusEnum';
2
+ /** Respuesta de POST /segmentation/recount: la corrida arranca en segundo plano. */
3
+ export interface SegmentationRecountStartResponse {
4
+ runId: string;
5
+ status: SegmentationRecountStatusEnum;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import { CohortConditionOutcomeEnum } from '../../enums/CohortConditionOutcomeEnum';
2
+ import { CohortFactKeyEnum } from '../../enums/CohortFactKeyEnum';
3
+ import { CohortConditionResponse } from './CohortResponse';
4
+ /** Una condición probada con un cliente: el valor real que tiene y si la cumple. */
5
+ export interface CohortConditionTrace extends CohortConditionResponse {
6
+ /** Valor del cliente. `null` = no tiene el dato. */
7
+ actual: number | boolean | string | null;
8
+ outcome: CohortConditionOutcomeEnum;
9
+ }
10
+ /** Respuesta de POST /cohorts/test. `matched` es `true` si el cliente cumple todas las condiciones. */
11
+ export interface TestCohortResponse {
12
+ retailCustomerId: string;
13
+ matched: boolean;
14
+ /** Datos del cliente que se evaluaron. Un dato ausente no viene. */
15
+ facts: Partial<Record<CohortFactKeyEnum, number | boolean | string>>;
16
+ conditions: CohortConditionTrace[];
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ import { CohortFactKeyEnum } from '../../enums/CohortFactKeyEnum';
2
+ import { SegmentMembershipReasonEnum } from '../../enums/SegmentMembershipReasonEnum';
3
+ /** Un segmento evaluado para un cliente: si entra, por qué, y qué cohorts cumplió. */
4
+ export interface CustomerSegmentTrace {
5
+ segmentId: string;
6
+ name: string;
7
+ matched: boolean;
8
+ /** `null` cuando no entra. */
9
+ reason: SegmentMembershipReasonEnum | null;
10
+ matchedCohortIds: string[];
11
+ }
12
+ /** Respuesta de POST /segments/test. */
13
+ export interface TestCustomerSegmentsResponse {
14
+ retailCustomerId: string;
15
+ /** Datos del cliente que se evaluaron. Un dato ausente no viene. */
16
+ facts: Partial<Record<CohortFactKeyEnum, number | boolean | string>>;
17
+ /** Todos los segmentos ACTIVE que no son el catch-all. */
18
+ segments: CustomerSegmentTrace[];
19
+ /** `true` si no cayó en ningún segmento: le aplica el catch-all. */
20
+ defaultApplies: boolean;
21
+ /** `false` si el evaluador de cohorts falló: solo cuenta la lista manual. */
22
+ evaluatorAvailable: boolean;
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Resultado de una condición al probar un cohort con un cliente. `MISSING` = el cliente no tiene
3
+ * ese dato, así que la condición no se cumple.
4
+ * @enum {string}
5
+ */
6
+ export declare enum CohortConditionOutcomeEnum {
7
+ MATCH = "MATCH",
8
+ NO_MATCH = "NO_MATCH",
9
+ MISSING = "MISSING"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CohortConditionOutcomeEnum = void 0;
4
+ /**
5
+ * Resultado de una condición al probar un cohort con un cliente. `MISSING` = el cliente no tiene
6
+ * ese dato, así que la condición no se cumple.
7
+ * @enum {string}
8
+ */
9
+ var CohortConditionOutcomeEnum;
10
+ (function (CohortConditionOutcomeEnum) {
11
+ CohortConditionOutcomeEnum["MATCH"] = "MATCH";
12
+ CohortConditionOutcomeEnum["NO_MATCH"] = "NO_MATCH";
13
+ CohortConditionOutcomeEnum["MISSING"] = "MISSING";
14
+ })(CohortConditionOutcomeEnum || (exports.CohortConditionOutcomeEnum = CohortConditionOutcomeEnum = {}));
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Datos del cliente sobre los que se arma una condición de cohort. Catálogo cerrado: un dato
3
+ * nuevo es un cambio de código en quien lo calcula y en quien lo evalúa.
4
+ * @enum {string}
5
+ */
6
+ export declare enum CohortFactKeyEnum {
7
+ SCI_LEVEL = "sciLevel",
8
+ TOTAL_CREDITS = "totalCredits",
9
+ ACTIVE_CREDITS = "activeCredits",
10
+ COMPLETED_CREDITS = "completedCredits",
11
+ LIFETIME_WRITE_OFFS = "lifetimeWriteOffs",
12
+ CURRENT_ARREARS_DAYS = "currentArrearsDays",
13
+ DELINQUENCY_DAYS_LAST_6M = "delinquencyDaysLast6M",
14
+ LIFETIME_RESTRUCTURES = "lifetimeRestructures",
15
+ IS_EMPLOYEE = "isEmployee",
16
+ HAS_PCF_ACCOUNT = "hasPcfAccount"
17
+ }