@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.
- package/_test_/unit/loanCredit/dtos/originateLoanCreditRequest.test.ts +9 -0
- package/_test_/unit/loanCredit/segmentFactsDtos.test.ts +80 -0
- package/_test_/unit/loanOfferings/promotionRetailerScope.test.ts +79 -0
- package/_test_/unit/loanOfferings/segmentCatalog.test.ts +4 -2
- package/_test_/unit/loanOfferings/segmentCohorts.test.ts +333 -0
- package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.d.ts +2 -0
- package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.js +7 -0
- package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.d.ts +4 -0
- package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.js +27 -0
- package/bin/loanCredit/dtos/requests/SegmentFactsPageRequest.d.ts +7 -0
- package/bin/loanCredit/dtos/requests/SegmentFactsPageRequest.js +32 -0
- package/bin/loanCredit/dtos/responses/BorrowerSegmentFacts.d.ts +22 -0
- package/bin/loanCredit/dtos/responses/BorrowerSegmentFacts.js +2 -0
- package/bin/loanCredit/dtos/responses/SegmentFactsBatchResponse.d.ts +5 -0
- package/bin/loanCredit/dtos/responses/SegmentFactsBatchResponse.js +2 -0
- package/bin/loanCredit/dtos/responses/SegmentFactsPageResponse.d.ts +7 -0
- package/bin/loanCredit/dtos/responses/SegmentFactsPageResponse.js +2 -0
- package/bin/loanCredit/index.d.ts +5 -0
- package/bin/loanCredit/index.js +6 -0
- package/bin/loanOfferings/constants/promotionRetailerScope.d.ts +2 -0
- package/bin/loanOfferings/constants/promotionRetailerScope.js +5 -0
- package/bin/loanOfferings/dtos/requests/ChangeCohortStatusRequest.d.ts +9 -0
- package/bin/loanOfferings/dtos/requests/ChangeCohortStatusRequest.js +34 -0
- package/bin/loanOfferings/dtos/requests/CohortCondition.d.ts +15 -0
- package/bin/loanOfferings/dtos/requests/CohortCondition.js +48 -0
- package/bin/loanOfferings/dtos/requests/CreateCohortRequest.d.ts +11 -0
- package/bin/loanOfferings/dtos/requests/CreateCohortRequest.js +44 -0
- package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.d.ts +2 -0
- package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.js +10 -0
- package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.d.ts +7 -8
- package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.js +5 -3
- package/bin/loanOfferings/dtos/requests/CustomerSegmentFacts.d.ts +30 -0
- package/bin/loanOfferings/dtos/requests/CustomerSegmentFacts.js +92 -0
- package/bin/loanOfferings/dtos/requests/ListCohortsQuery.d.ts +5 -0
- package/bin/loanOfferings/dtos/requests/ListCohortsQuery.js +25 -0
- package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.d.ts +2 -0
- package/bin/loanOfferings/dtos/requests/ListPromotedSkusRequest.js +7 -0
- package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.d.ts +2 -0
- package/bin/loanOfferings/dtos/requests/ListSkuPromotionsRequest.js +7 -0
- package/bin/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.d.ts +4 -20
- package/bin/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.js +4 -48
- package/bin/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.d.ts +8 -0
- package/bin/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.js +31 -0
- package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.d.ts +2 -0
- package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.js +7 -0
- package/bin/loanOfferings/dtos/requests/TestCohortRequest.d.ts +9 -0
- package/bin/loanOfferings/dtos/requests/TestCohortRequest.js +36 -0
- package/bin/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.d.ts +4 -0
- package/bin/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.js +23 -0
- package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.d.ts +12 -0
- package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.js +53 -0
- package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.d.ts +2 -0
- package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.js +10 -0
- package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.d.ts +2 -2
- package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.js +3 -1
- package/bin/loanOfferings/dtos/responses/CohortCatalogResponse.d.ts +33 -0
- package/bin/loanOfferings/dtos/responses/CohortCatalogResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/CohortLogEntryResponse.d.ts +11 -0
- package/bin/loanOfferings/dtos/responses/CohortLogEntryResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/CohortResponse.d.ts +43 -0
- package/bin/loanOfferings/dtos/responses/CohortResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/PromotionResponse.d.ts +2 -0
- package/bin/loanOfferings/dtos/responses/SegmentCatalogResponse.d.ts +5 -2
- package/bin/loanOfferings/dtos/responses/SegmentLogEntryResponse.d.ts +11 -0
- package/bin/loanOfferings/dtos/responses/SegmentLogEntryResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/SegmentMembersResponse.d.ts +19 -0
- package/bin/loanOfferings/dtos/responses/SegmentMembersResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/SegmentResponse.d.ts +12 -6
- package/bin/loanOfferings/dtos/responses/SegmentUsageResponse.d.ts +18 -0
- package/bin/loanOfferings/dtos/responses/SegmentUsageResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/SegmentationRecountRunResponse.d.ts +23 -0
- package/bin/loanOfferings/dtos/responses/SegmentationRecountRunResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/SegmentationRecountStartResponse.d.ts +6 -0
- package/bin/loanOfferings/dtos/responses/SegmentationRecountStartResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/TestCohortResponse.d.ts +17 -0
- package/bin/loanOfferings/dtos/responses/TestCohortResponse.js +2 -0
- package/bin/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.d.ts +23 -0
- package/bin/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.js +2 -0
- package/bin/loanOfferings/enums/CohortConditionOutcomeEnum.d.ts +10 -0
- package/bin/loanOfferings/enums/CohortConditionOutcomeEnum.js +14 -0
- package/bin/loanOfferings/enums/CohortFactKeyEnum.d.ts +17 -0
- package/bin/loanOfferings/enums/CohortFactKeyEnum.js +21 -0
- package/bin/loanOfferings/enums/CohortFactTypeEnum.d.ts +9 -0
- package/bin/loanOfferings/enums/CohortFactTypeEnum.js +13 -0
- package/bin/loanOfferings/enums/CohortLogEventEnum.d.ts +10 -0
- package/bin/loanOfferings/enums/CohortLogEventEnum.js +14 -0
- package/bin/loanOfferings/enums/CohortOperatorEnum.d.ts +15 -0
- package/bin/loanOfferings/enums/CohortOperatorEnum.js +19 -0
- package/bin/loanOfferings/enums/CohortStatusEnum.d.ts +9 -0
- package/bin/loanOfferings/enums/CohortStatusEnum.js +13 -0
- package/bin/loanOfferings/enums/SegmentFilterIdEnum.d.ts +2 -0
- package/bin/loanOfferings/enums/SegmentFilterIdEnum.js +2 -0
- package/bin/loanOfferings/enums/SegmentLogEventEnum.d.ts +10 -0
- package/bin/loanOfferings/enums/SegmentLogEventEnum.js +14 -0
- package/bin/loanOfferings/enums/SegmentMembershipReasonEnum.d.ts +9 -0
- package/bin/loanOfferings/enums/SegmentMembershipReasonEnum.js +13 -0
- package/bin/loanOfferings/enums/SegmentationRecountStatusEnum.d.ts +9 -0
- package/bin/loanOfferings/enums/SegmentationRecountStatusEnum.js +13 -0
- package/bin/loanOfferings/enums/SegmentationRecountTriggerEnum.d.ts +8 -0
- package/bin/loanOfferings/enums/SegmentationRecountTriggerEnum.js +12 -0
- package/bin/loanOfferings/index.d.ts +30 -0
- package/bin/loanOfferings/index.js +30 -0
- package/package.json +1 -1
- package/src/loanCredit/dtos/requests/OriginateLoanCreditRequest.ts +7 -0
- package/src/loanCredit/dtos/requests/SegmentFactsBatchRequest.ts +13 -0
- package/src/loanCredit/dtos/requests/SegmentFactsPageRequest.ts +19 -0
- package/src/loanCredit/dtos/responses/BorrowerSegmentFacts.ts +24 -0
- package/src/loanCredit/dtos/responses/SegmentFactsBatchResponse.ts +6 -0
- package/src/loanCredit/dtos/responses/SegmentFactsPageResponse.ts +8 -0
- package/src/loanCredit/index.ts +7 -0
- package/src/loanOfferings/constants/promotionRetailerScope.ts +2 -0
- package/src/loanOfferings/dtos/requests/ChangeCohortStatusRequest.ts +19 -0
- package/src/loanOfferings/dtos/requests/CohortCondition.ts +33 -0
- package/src/loanOfferings/dtos/requests/CreateCohortRequest.ts +29 -0
- package/src/loanOfferings/dtos/requests/CreatePromotionRequest.ts +12 -0
- package/src/loanOfferings/dtos/requests/CreateSegmentRequest.ts +10 -9
- package/src/loanOfferings/dtos/requests/CustomerSegmentFacts.ts +79 -0
- package/src/loanOfferings/dtos/requests/ListCohortsQuery.ts +11 -0
- package/src/loanOfferings/dtos/requests/ListPromotedSkusRequest.ts +7 -0
- package/src/loanOfferings/dtos/requests/ListSkuPromotionsRequest.ts +7 -0
- package/src/loanOfferings/dtos/requests/ResolveCustomerSegmentsRequest.ts +5 -49
- package/src/loanOfferings/dtos/requests/ResolveSegmentMembersRequest.ts +17 -0
- package/src/loanOfferings/dtos/requests/SimulateCreditPlanRequest.ts +8 -1
- package/src/loanOfferings/dtos/requests/TestCohortRequest.ts +21 -0
- package/src/loanOfferings/dtos/requests/TestCustomerSegmentsRequest.ts +9 -0
- package/src/loanOfferings/dtos/requests/UpdateCohortRequest.ts +37 -0
- package/src/loanOfferings/dtos/requests/UpdatePromotionRequest.ts +12 -0
- package/src/loanOfferings/dtos/requests/UpdateSegmentRequest.ts +5 -3
- package/src/loanOfferings/dtos/responses/CohortCatalogResponse.ts +36 -0
- package/src/loanOfferings/dtos/responses/CohortLogEntryResponse.ts +12 -0
- package/src/loanOfferings/dtos/responses/CohortResponse.ts +47 -0
- package/src/loanOfferings/dtos/responses/PromotionResponse.ts +2 -0
- package/src/loanOfferings/dtos/responses/SegmentCatalogResponse.ts +5 -2
- package/src/loanOfferings/dtos/responses/SegmentLogEntryResponse.ts +12 -0
- package/src/loanOfferings/dtos/responses/SegmentMembersResponse.ts +21 -0
- package/src/loanOfferings/dtos/responses/SegmentResponse.ts +12 -6
- package/src/loanOfferings/dtos/responses/SegmentUsageResponse.ts +20 -0
- package/src/loanOfferings/dtos/responses/SegmentationRecountRunResponse.ts +25 -0
- package/src/loanOfferings/dtos/responses/SegmentationRecountStartResponse.ts +7 -0
- package/src/loanOfferings/dtos/responses/TestCohortResponse.ts +19 -0
- package/src/loanOfferings/dtos/responses/TestCustomerSegmentsResponse.ts +25 -0
- package/src/loanOfferings/enums/CohortConditionOutcomeEnum.ts +10 -0
- package/src/loanOfferings/enums/CohortFactKeyEnum.ts +17 -0
- package/src/loanOfferings/enums/CohortFactTypeEnum.ts +9 -0
- package/src/loanOfferings/enums/CohortLogEventEnum.ts +10 -0
- package/src/loanOfferings/enums/CohortOperatorEnum.ts +15 -0
- package/src/loanOfferings/enums/CohortStatusEnum.ts +9 -0
- package/src/loanOfferings/enums/SegmentFilterIdEnum.ts +2 -0
- package/src/loanOfferings/enums/SegmentLogEventEnum.ts +10 -0
- package/src/loanOfferings/enums/SegmentMembershipReasonEnum.ts +9 -0
- package/src/loanOfferings/enums/SegmentationRecountStatusEnum.ts +9 -0
- package/src/loanOfferings/enums/SegmentationRecountTriggerEnum.ts +8 -0
- package/src/loanOfferings/index.ts +30 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CohortFactKeyEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Datos del cliente sobre los que se arma una condición de cohort. Catálogo cerrado: un dato
|
|
6
|
+
* nuevo es un cambio de código en quien lo calcula y en quien lo evalúa.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var CohortFactKeyEnum;
|
|
10
|
+
(function (CohortFactKeyEnum) {
|
|
11
|
+
CohortFactKeyEnum["SCI_LEVEL"] = "sciLevel";
|
|
12
|
+
CohortFactKeyEnum["TOTAL_CREDITS"] = "totalCredits";
|
|
13
|
+
CohortFactKeyEnum["ACTIVE_CREDITS"] = "activeCredits";
|
|
14
|
+
CohortFactKeyEnum["COMPLETED_CREDITS"] = "completedCredits";
|
|
15
|
+
CohortFactKeyEnum["LIFETIME_WRITE_OFFS"] = "lifetimeWriteOffs";
|
|
16
|
+
CohortFactKeyEnum["CURRENT_ARREARS_DAYS"] = "currentArrearsDays";
|
|
17
|
+
CohortFactKeyEnum["DELINQUENCY_DAYS_LAST_6M"] = "delinquencyDaysLast6M";
|
|
18
|
+
CohortFactKeyEnum["LIFETIME_RESTRUCTURES"] = "lifetimeRestructures";
|
|
19
|
+
CohortFactKeyEnum["IS_EMPLOYEE"] = "isEmployee";
|
|
20
|
+
CohortFactKeyEnum["HAS_PCF_ACCOUNT"] = "hasPcfAccount";
|
|
21
|
+
})(CohortFactKeyEnum || (exports.CohortFactKeyEnum = CohortFactKeyEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CohortFactTypeEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tipo de un dato del catálogo de cohorts. Define qué operadores admite y cómo se pinta el valor.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var CohortFactTypeEnum;
|
|
9
|
+
(function (CohortFactTypeEnum) {
|
|
10
|
+
CohortFactTypeEnum["NUMBER"] = "NUMBER";
|
|
11
|
+
CohortFactTypeEnum["SELECT"] = "SELECT";
|
|
12
|
+
CohortFactTypeEnum["BOOLEAN"] = "BOOLEAN";
|
|
13
|
+
})(CohortFactTypeEnum || (exports.CohortFactTypeEnum = CohortFactTypeEnum = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CohortLogEventEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Evento de la bitácora de un cohort.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var CohortLogEventEnum;
|
|
9
|
+
(function (CohortLogEventEnum) {
|
|
10
|
+
CohortLogEventEnum["CREATED"] = "CREATED";
|
|
11
|
+
CohortLogEventEnum["UPDATED"] = "UPDATED";
|
|
12
|
+
CohortLogEventEnum["ARCHIVED"] = "ARCHIVED";
|
|
13
|
+
CohortLogEventEnum["REACTIVATED"] = "REACTIVATED";
|
|
14
|
+
})(CohortLogEventEnum || (exports.CohortLogEventEnum = CohortLogEventEnum = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operador de una condición de cohort. `IN` y `NOT_IN` comparan contra una lista (`values`); el
|
|
3
|
+
* resto, contra un solo valor (`value`).
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum CohortOperatorEnum {
|
|
7
|
+
EQUALS = "EQUALS",
|
|
8
|
+
NOT_EQUALS = "NOT_EQUALS",
|
|
9
|
+
GT = "GT",
|
|
10
|
+
GTE = "GTE",
|
|
11
|
+
LT = "LT",
|
|
12
|
+
LTE = "LTE",
|
|
13
|
+
IN = "IN",
|
|
14
|
+
NOT_IN = "NOT_IN"
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CohortOperatorEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Operador de una condición de cohort. `IN` y `NOT_IN` comparan contra una lista (`values`); el
|
|
6
|
+
* resto, contra un solo valor (`value`).
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var CohortOperatorEnum;
|
|
10
|
+
(function (CohortOperatorEnum) {
|
|
11
|
+
CohortOperatorEnum["EQUALS"] = "EQUALS";
|
|
12
|
+
CohortOperatorEnum["NOT_EQUALS"] = "NOT_EQUALS";
|
|
13
|
+
CohortOperatorEnum["GT"] = "GT";
|
|
14
|
+
CohortOperatorEnum["GTE"] = "GTE";
|
|
15
|
+
CohortOperatorEnum["LT"] = "LT";
|
|
16
|
+
CohortOperatorEnum["LTE"] = "LTE";
|
|
17
|
+
CohortOperatorEnum["IN"] = "IN";
|
|
18
|
+
CohortOperatorEnum["NOT_IN"] = "NOT_IN";
|
|
19
|
+
})(CohortOperatorEnum || (exports.CohortOperatorEnum = CohortOperatorEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado persistido de un cohort. No hay borrado: `ARCHIVED` lo saca de la evaluación y de los
|
|
3
|
+
* selectores, y los segmentos que lo usaban siguen resolviendo su nombre.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum CohortStatusEnum {
|
|
7
|
+
ACTIVE = "ACTIVE",
|
|
8
|
+
ARCHIVED = "ARCHIVED"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CohortStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado persistido de un cohort. No hay borrado: `ARCHIVED` lo saca de la evaluación y de los
|
|
6
|
+
* selectores, y los segmentos que lo usaban siguen resolviendo su nombre.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var CohortStatusEnum;
|
|
10
|
+
(function (CohortStatusEnum) {
|
|
11
|
+
CohortStatusEnum["ACTIVE"] = "ACTIVE";
|
|
12
|
+
CohortStatusEnum["ARCHIVED"] = "ARCHIVED";
|
|
13
|
+
})(CohortStatusEnum || (exports.CohortStatusEnum = CohortStatusEnum = {}));
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* El nombre y la descripción que ve el operador NO viven acá: los sirve
|
|
6
6
|
* `GET /segments/filters`, junto con la marca de si el filtro tiene fuente de datos hoy.
|
|
7
|
+
* @deprecated El segmento se arma con cohorts (`cohortIds`). Se conserva para migrar los filtros
|
|
8
|
+
* viejos y para los consumidores que todavía lo importan.
|
|
7
9
|
* @enum {string}
|
|
8
10
|
*/
|
|
9
11
|
export declare enum SegmentFilterIdEnum {
|
|
@@ -7,6 +7,8 @@ exports.SegmentFilterIdEnum = void 0;
|
|
|
7
7
|
*
|
|
8
8
|
* El nombre y la descripción que ve el operador NO viven acá: los sirve
|
|
9
9
|
* `GET /segments/filters`, junto con la marca de si el filtro tiene fuente de datos hoy.
|
|
10
|
+
* @deprecated El segmento se arma con cohorts (`cohortIds`). Se conserva para migrar los filtros
|
|
11
|
+
* viejos y para los consumidores que todavía lo importan.
|
|
10
12
|
* @enum {string}
|
|
11
13
|
*/
|
|
12
14
|
var SegmentFilterIdEnum;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SegmentLogEventEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Evento de la bitácora de un segmento.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var SegmentLogEventEnum;
|
|
9
|
+
(function (SegmentLogEventEnum) {
|
|
10
|
+
SegmentLogEventEnum["CREATED"] = "CREATED";
|
|
11
|
+
SegmentLogEventEnum["UPDATED"] = "UPDATED";
|
|
12
|
+
SegmentLogEventEnum["ARCHIVED"] = "ARCHIVED";
|
|
13
|
+
SegmentLogEventEnum["REACTIVATED"] = "REACTIVATED";
|
|
14
|
+
})(SegmentLogEventEnum || (exports.SegmentLogEventEnum = SegmentLogEventEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Por qué un cliente entra a un segmento: está en la lista manual (`MEMBER`) o cumple al menos
|
|
3
|
+
* uno de sus cohorts (`COHORT`). Si cumple las dos, gana la lista manual.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export declare enum SegmentMembershipReasonEnum {
|
|
7
|
+
MEMBER = "MEMBER",
|
|
8
|
+
COHORT = "COHORT"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SegmentMembershipReasonEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Por qué un cliente entra a un segmento: está en la lista manual (`MEMBER`) o cumple al menos
|
|
6
|
+
* uno de sus cohorts (`COHORT`). Si cumple las dos, gana la lista manual.
|
|
7
|
+
* @enum {string}
|
|
8
|
+
*/
|
|
9
|
+
var SegmentMembershipReasonEnum;
|
|
10
|
+
(function (SegmentMembershipReasonEnum) {
|
|
11
|
+
SegmentMembershipReasonEnum["MEMBER"] = "MEMBER";
|
|
12
|
+
SegmentMembershipReasonEnum["COHORT"] = "COHORT";
|
|
13
|
+
})(SegmentMembershipReasonEnum || (exports.SegmentMembershipReasonEnum = SegmentMembershipReasonEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SegmentationRecountStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de una corrida de recálculo de conteos de cohorts y segmentos.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var SegmentationRecountStatusEnum;
|
|
9
|
+
(function (SegmentationRecountStatusEnum) {
|
|
10
|
+
SegmentationRecountStatusEnum["RUNNING"] = "RUNNING";
|
|
11
|
+
SegmentationRecountStatusEnum["FINISHED"] = "FINISHED";
|
|
12
|
+
SegmentationRecountStatusEnum["FAILED"] = "FAILED";
|
|
13
|
+
})(SegmentationRecountStatusEnum || (exports.SegmentationRecountStatusEnum = SegmentationRecountStatusEnum = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SegmentationRecountTriggerEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Qué disparó un recálculo de conteos: la corrida nocturna o el botón del backoffice.
|
|
6
|
+
* @enum {string}
|
|
7
|
+
*/
|
|
8
|
+
var SegmentationRecountTriggerEnum;
|
|
9
|
+
(function (SegmentationRecountTriggerEnum) {
|
|
10
|
+
SegmentationRecountTriggerEnum["NIGHTLY"] = "NIGHTLY";
|
|
11
|
+
SegmentationRecountTriggerEnum["MANUAL"] = "MANUAL";
|
|
12
|
+
})(SegmentationRecountTriggerEnum || (exports.SegmentationRecountTriggerEnum = SegmentationRecountTriggerEnum = {}));
|
|
@@ -16,7 +16,18 @@ 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 './enums/CohortStatusEnum';
|
|
20
|
+
export * from './enums/CohortFactKeyEnum';
|
|
21
|
+
export * from './enums/CohortFactTypeEnum';
|
|
22
|
+
export * from './enums/CohortOperatorEnum';
|
|
23
|
+
export * from './enums/CohortConditionOutcomeEnum';
|
|
24
|
+
export * from './enums/CohortLogEventEnum';
|
|
25
|
+
export * from './enums/SegmentLogEventEnum';
|
|
26
|
+
export * from './enums/SegmentMembershipReasonEnum';
|
|
27
|
+
export * from './enums/SegmentationRecountTriggerEnum';
|
|
28
|
+
export * from './enums/SegmentationRecountStatusEnum';
|
|
19
29
|
export * from './constants/promotionSkuBatch';
|
|
30
|
+
export * from './constants/promotionRetailerScope';
|
|
20
31
|
export * from './dtos/CreditPlan';
|
|
21
32
|
export * from './dtos/PrepaymentMinimum';
|
|
22
33
|
export * from './dtos/Financier';
|
|
@@ -43,7 +54,16 @@ export * from './dtos/requests/ChangeStorePolicyStatusRequest';
|
|
|
43
54
|
export * from './dtos/requests/CreateSegmentRequest';
|
|
44
55
|
export * from './dtos/requests/UpdateSegmentRequest';
|
|
45
56
|
export * from './dtos/requests/ChangeSegmentStatusRequest';
|
|
57
|
+
export * from './dtos/requests/CustomerSegmentFacts';
|
|
46
58
|
export * from './dtos/requests/ResolveCustomerSegmentsRequest';
|
|
59
|
+
export * from './dtos/requests/ResolveSegmentMembersRequest';
|
|
60
|
+
export * from './dtos/requests/TestCustomerSegmentsRequest';
|
|
61
|
+
export * from './dtos/requests/CohortCondition';
|
|
62
|
+
export * from './dtos/requests/CreateCohortRequest';
|
|
63
|
+
export * from './dtos/requests/UpdateCohortRequest';
|
|
64
|
+
export * from './dtos/requests/ChangeCohortStatusRequest';
|
|
65
|
+
export * from './dtos/requests/TestCohortRequest';
|
|
66
|
+
export * from './dtos/requests/ListCohortsQuery';
|
|
47
67
|
export * from './dtos/requests/ComputeAmortizationScheduleRequest';
|
|
48
68
|
export * from './dtos/requests/ListSegmentCatalogQuery';
|
|
49
69
|
export * from './dtos/requests/PromotionSkuInput';
|
|
@@ -66,5 +86,15 @@ export * from './dtos/responses/SegmentResponse';
|
|
|
66
86
|
export * from './dtos/responses/SegmentFilterResponse';
|
|
67
87
|
export * from './dtos/responses/SegmentCatalogResponse';
|
|
68
88
|
export * from './dtos/responses/ResolveCustomerSegmentsResponse';
|
|
89
|
+
export * from './dtos/responses/SegmentMembersResponse';
|
|
90
|
+
export * from './dtos/responses/SegmentUsageResponse';
|
|
91
|
+
export * from './dtos/responses/TestCustomerSegmentsResponse';
|
|
92
|
+
export * from './dtos/responses/SegmentLogEntryResponse';
|
|
93
|
+
export * from './dtos/responses/SegmentationRecountStartResponse';
|
|
94
|
+
export * from './dtos/responses/SegmentationRecountRunResponse';
|
|
95
|
+
export * from './dtos/responses/CohortResponse';
|
|
96
|
+
export * from './dtos/responses/CohortCatalogResponse';
|
|
97
|
+
export * from './dtos/responses/TestCohortResponse';
|
|
98
|
+
export * from './dtos/responses/CohortLogEntryResponse';
|
|
69
99
|
export * from './dtos/responses/AmortizationScheduleRow';
|
|
70
100
|
export * from './dtos/responses/AmortizationScheduleResponse';
|
|
@@ -33,8 +33,19 @@ __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
|
+
__exportStar(require("./enums/CohortStatusEnum"), exports);
|
|
37
|
+
__exportStar(require("./enums/CohortFactKeyEnum"), exports);
|
|
38
|
+
__exportStar(require("./enums/CohortFactTypeEnum"), exports);
|
|
39
|
+
__exportStar(require("./enums/CohortOperatorEnum"), exports);
|
|
40
|
+
__exportStar(require("./enums/CohortConditionOutcomeEnum"), exports);
|
|
41
|
+
__exportStar(require("./enums/CohortLogEventEnum"), exports);
|
|
42
|
+
__exportStar(require("./enums/SegmentLogEventEnum"), exports);
|
|
43
|
+
__exportStar(require("./enums/SegmentMembershipReasonEnum"), exports);
|
|
44
|
+
__exportStar(require("./enums/SegmentationRecountTriggerEnum"), exports);
|
|
45
|
+
__exportStar(require("./enums/SegmentationRecountStatusEnum"), exports);
|
|
36
46
|
// Constantes
|
|
37
47
|
__exportStar(require("./constants/promotionSkuBatch"), exports);
|
|
48
|
+
__exportStar(require("./constants/promotionRetailerScope"), exports);
|
|
38
49
|
// Entity DTOs
|
|
39
50
|
__exportStar(require("./dtos/CreditPlan"), exports);
|
|
40
51
|
__exportStar(require("./dtos/PrepaymentMinimum"), exports);
|
|
@@ -63,7 +74,16 @@ __exportStar(require("./dtos/requests/ChangeStorePolicyStatusRequest"), exports)
|
|
|
63
74
|
__exportStar(require("./dtos/requests/CreateSegmentRequest"), exports);
|
|
64
75
|
__exportStar(require("./dtos/requests/UpdateSegmentRequest"), exports);
|
|
65
76
|
__exportStar(require("./dtos/requests/ChangeSegmentStatusRequest"), exports);
|
|
77
|
+
__exportStar(require("./dtos/requests/CustomerSegmentFacts"), exports);
|
|
66
78
|
__exportStar(require("./dtos/requests/ResolveCustomerSegmentsRequest"), exports);
|
|
79
|
+
__exportStar(require("./dtos/requests/ResolveSegmentMembersRequest"), exports);
|
|
80
|
+
__exportStar(require("./dtos/requests/TestCustomerSegmentsRequest"), exports);
|
|
81
|
+
__exportStar(require("./dtos/requests/CohortCondition"), exports);
|
|
82
|
+
__exportStar(require("./dtos/requests/CreateCohortRequest"), exports);
|
|
83
|
+
__exportStar(require("./dtos/requests/UpdateCohortRequest"), exports);
|
|
84
|
+
__exportStar(require("./dtos/requests/ChangeCohortStatusRequest"), exports);
|
|
85
|
+
__exportStar(require("./dtos/requests/TestCohortRequest"), exports);
|
|
86
|
+
__exportStar(require("./dtos/requests/ListCohortsQuery"), exports);
|
|
67
87
|
__exportStar(require("./dtos/requests/ComputeAmortizationScheduleRequest"), exports);
|
|
68
88
|
__exportStar(require("./dtos/requests/ListSegmentCatalogQuery"), exports);
|
|
69
89
|
__exportStar(require("./dtos/requests/PromotionSkuInput"), exports);
|
|
@@ -87,5 +107,15 @@ __exportStar(require("./dtos/responses/SegmentResponse"), exports);
|
|
|
87
107
|
__exportStar(require("./dtos/responses/SegmentFilterResponse"), exports);
|
|
88
108
|
__exportStar(require("./dtos/responses/SegmentCatalogResponse"), exports);
|
|
89
109
|
__exportStar(require("./dtos/responses/ResolveCustomerSegmentsResponse"), exports);
|
|
110
|
+
__exportStar(require("./dtos/responses/SegmentMembersResponse"), exports);
|
|
111
|
+
__exportStar(require("./dtos/responses/SegmentUsageResponse"), exports);
|
|
112
|
+
__exportStar(require("./dtos/responses/TestCustomerSegmentsResponse"), exports);
|
|
113
|
+
__exportStar(require("./dtos/responses/SegmentLogEntryResponse"), exports);
|
|
114
|
+
__exportStar(require("./dtos/responses/SegmentationRecountStartResponse"), exports);
|
|
115
|
+
__exportStar(require("./dtos/responses/SegmentationRecountRunResponse"), exports);
|
|
116
|
+
__exportStar(require("./dtos/responses/CohortResponse"), exports);
|
|
117
|
+
__exportStar(require("./dtos/responses/CohortCatalogResponse"), exports);
|
|
118
|
+
__exportStar(require("./dtos/responses/TestCohortResponse"), exports);
|
|
119
|
+
__exportStar(require("./dtos/responses/CohortLogEntryResponse"), exports);
|
|
90
120
|
__exportStar(require("./dtos/responses/AmortizationScheduleRow"), exports);
|
|
91
121
|
__exportStar(require("./dtos/responses/AmortizationScheduleResponse"), exports);
|
package/package.json
CHANGED
|
@@ -120,4 +120,11 @@ export class OriginateLoanCreditRequest {
|
|
|
120
120
|
@IsOptional()
|
|
121
121
|
@IsEnum(ProductTierEnum)
|
|
122
122
|
productTier?: ProductTierEnum;
|
|
123
|
+
|
|
124
|
+
/** Cadena de la tienda que vende; sin ella no se resuelven las promociones acotadas por cadena. */
|
|
125
|
+
@Expose()
|
|
126
|
+
@IsOptional()
|
|
127
|
+
@IsString()
|
|
128
|
+
@IsNotEmpty()
|
|
129
|
+
retailerId?: string;
|
|
123
130
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, ArrayMinSize, IsArray, IsNotEmpty, IsString } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
/** Body de `POST /private/borrowers/segment-facts`: datos para segmentar de hasta 100 clientes retail. */
|
|
5
|
+
export class SegmentFactsBatchRequest {
|
|
6
|
+
@Expose()
|
|
7
|
+
@IsArray()
|
|
8
|
+
@ArrayMinSize(1)
|
|
9
|
+
@ArrayMaxSize(100)
|
|
10
|
+
@IsString({ each: true })
|
|
11
|
+
@IsNotEmpty({ each: true })
|
|
12
|
+
retailCustomerIds!: string[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsInt, IsOptional, IsString, Max, Min } from 'class-validator';
|
|
3
|
+
|
|
4
|
+
/** Body de `POST /private/borrowers/segment-facts/page`: una página de la cartera de acreditados. */
|
|
5
|
+
export class SegmentFactsPageRequest {
|
|
6
|
+
/** Cursor opaco de la página anterior. Ausente en la primera página. */
|
|
7
|
+
@Expose()
|
|
8
|
+
@IsOptional()
|
|
9
|
+
@IsString()
|
|
10
|
+
cursor?: string;
|
|
11
|
+
|
|
12
|
+
/** Acreditados por página. Ausente = 100. */
|
|
13
|
+
@Expose()
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsInt()
|
|
16
|
+
@Min(1)
|
|
17
|
+
@Max(100)
|
|
18
|
+
limit?: number;
|
|
19
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CreditPlanLevelEnum } from '../../../loanOfferings/enums/CreditPlanLevelEnum';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Datos del acreditado para evaluar cohorts, ya normalizados: sin acreditado, conteos y días en
|
|
5
|
+
* `0`; `sciLevel` ausente si no hay evaluación o el nivel es `ALL` / `NOT_ELIGIBLE`.
|
|
6
|
+
*/
|
|
7
|
+
export interface BorrowerSegmentFacts {
|
|
8
|
+
sciLevel?: CreditPlanLevelEnum;
|
|
9
|
+
totalCredits: number;
|
|
10
|
+
activeCredits: number;
|
|
11
|
+
completedCredits: number;
|
|
12
|
+
lifetimeWriteOffs: number;
|
|
13
|
+
currentArrearsDays: number;
|
|
14
|
+
/** Sin cuotas en la ventana de 180 días cuenta como `0`. */
|
|
15
|
+
delinquencyDaysLast6M: number;
|
|
16
|
+
lifetimeRestructures: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Un cliente retail y sus datos para segmentar. `borrowerId` en `null` = no tiene acreditado. */
|
|
20
|
+
export interface BorrowerSegmentFactsItem {
|
|
21
|
+
retailCustomerId: string;
|
|
22
|
+
borrowerId: string | null;
|
|
23
|
+
facts: BorrowerSegmentFacts;
|
|
24
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BorrowerSegmentFactsItem } from './BorrowerSegmentFacts';
|
|
2
|
+
|
|
3
|
+
/** Respuesta de `POST /private/borrowers/segment-facts/page`. */
|
|
4
|
+
export interface SegmentFactsPageResponse {
|
|
5
|
+
items: BorrowerSegmentFactsItem[];
|
|
6
|
+
/** Cursor de la siguiente página. `null` = ya no quedan acreditados. */
|
|
7
|
+
nextCursor: string | null;
|
|
8
|
+
}
|
package/src/loanCredit/index.ts
CHANGED
|
@@ -198,3 +198,10 @@ export * from './dtos/requests/UpdateReconcileModeRequest';
|
|
|
198
198
|
export * from './dtos/responses/ReconcileModeView';
|
|
199
199
|
export * from './dtos/requests/RunDevicePostureBackfillRequest';
|
|
200
200
|
export * from './dtos/responses/DevicePostureBackfillResult';
|
|
201
|
+
|
|
202
|
+
// Datos del cliente para evaluar cohorts de segmentos
|
|
203
|
+
export * from './dtos/requests/SegmentFactsBatchRequest';
|
|
204
|
+
export * from './dtos/requests/SegmentFactsPageRequest';
|
|
205
|
+
export * from './dtos/responses/BorrowerSegmentFacts';
|
|
206
|
+
export * from './dtos/responses/SegmentFactsBatchResponse';
|
|
207
|
+
export * from './dtos/responses/SegmentFactsPageResponse';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsEnum, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
3
|
+
import { CohortStatusEnum } from '../../enums/CohortStatusEnum';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Body de PUT /cohorts/:cohortId/status — archiva o reactiva un cohort. No se archiva uno que use
|
|
7
|
+
* un segmento activo. `reason` queda en la bitácora.
|
|
8
|
+
*/
|
|
9
|
+
export class ChangeCohortStatusRequest {
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsEnum(CohortStatusEnum)
|
|
12
|
+
status!: CohortStatusEnum;
|
|
13
|
+
|
|
14
|
+
@Expose()
|
|
15
|
+
@IsOptional()
|
|
16
|
+
@IsString()
|
|
17
|
+
@MaxLength(280)
|
|
18
|
+
reason?: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, IsArray, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
3
|
+
import { CohortFactKeyEnum } from '../../enums/CohortFactKeyEnum';
|
|
4
|
+
import { CohortOperatorEnum } from '../../enums/CohortOperatorEnum';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Una condición de cohort: «dato operador valor». Las condiciones de un cohort se unen con Y.
|
|
8
|
+
* Que el operador aplique al tipo del dato y que el valor tenga el tipo correcto lo valida el
|
|
9
|
+
* lambda (422), contra el catálogo.
|
|
10
|
+
*/
|
|
11
|
+
export class CohortCondition {
|
|
12
|
+
@Expose()
|
|
13
|
+
@IsEnum(CohortFactKeyEnum)
|
|
14
|
+
field!: CohortFactKeyEnum;
|
|
15
|
+
|
|
16
|
+
@Expose()
|
|
17
|
+
@IsEnum(CohortOperatorEnum)
|
|
18
|
+
op!: CohortOperatorEnum;
|
|
19
|
+
|
|
20
|
+
/** Valor a comparar en los operadores de un solo valor. Tipado estricto: `3` no es `"3"`. */
|
|
21
|
+
@Expose()
|
|
22
|
+
@IsOptional()
|
|
23
|
+
value?: number | boolean | string;
|
|
24
|
+
|
|
25
|
+
/** Lista de opciones; solo con `IN` y `NOT_IN`. */
|
|
26
|
+
@Expose()
|
|
27
|
+
@IsOptional()
|
|
28
|
+
@IsArray()
|
|
29
|
+
@IsString({ each: true })
|
|
30
|
+
@IsNotEmpty({ each: true })
|
|
31
|
+
@ArrayMaxSize(10)
|
|
32
|
+
values?: string[];
|
|
33
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Expose, Type } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, ArrayMinSize, IsArray, IsOptional, IsString, MaxLength, ValidateNested } from 'class-validator';
|
|
3
|
+
import { CohortCondition } from './CohortCondition';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Body de POST /cohorts — alta de un cohort. Nace en `ACTIVE`; `cohortId`, `status`, `version` y
|
|
7
|
+
* la auditoría los asigna el lambda. El nombre es único entre los cohorts activos.
|
|
8
|
+
*/
|
|
9
|
+
export class CreateCohortRequest {
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsString()
|
|
12
|
+
@MaxLength(120)
|
|
13
|
+
name!: string;
|
|
14
|
+
|
|
15
|
+
@Expose()
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsString()
|
|
18
|
+
@MaxLength(500)
|
|
19
|
+
description?: string;
|
|
20
|
+
|
|
21
|
+
/** Condiciones unidas con Y: el cliente entra si cumple todas. */
|
|
22
|
+
@Expose()
|
|
23
|
+
@IsArray()
|
|
24
|
+
@ArrayMinSize(1)
|
|
25
|
+
@ArrayMaxSize(10)
|
|
26
|
+
@ValidateNested({ each: true })
|
|
27
|
+
@Type(() => CohortCondition)
|
|
28
|
+
conditions!: CohortCondition[];
|
|
29
|
+
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Expose, Type } from 'class-transformer';
|
|
2
2
|
import {
|
|
3
|
+
ArrayMaxSize,
|
|
3
4
|
ArrayNotEmpty,
|
|
4
5
|
IsArray,
|
|
5
6
|
IsEnum,
|
|
6
7
|
IsInt,
|
|
7
8
|
IsISO8601,
|
|
9
|
+
IsNotEmpty,
|
|
8
10
|
IsOptional,
|
|
9
11
|
IsString,
|
|
10
12
|
ValidateNested,
|
|
11
13
|
} from 'class-validator';
|
|
14
|
+
import { PROMOTION_RETAILER_IDS_MAX_ITEMS } from '../../constants/promotionRetailerScope';
|
|
12
15
|
import { CreditPlanLevelEnum } from '../../enums/CreditPlanLevelEnum';
|
|
13
16
|
import { ProductCategoryEnum } from '../../../retailCatalog/enums/ProductCategoryEnum';
|
|
14
17
|
import { ProductTierEnum } from '../../../retailCatalog/enums/ProductTierEnum';
|
|
@@ -65,6 +68,15 @@ export class CreatePromotionRequest {
|
|
|
65
68
|
@IsEnum(ProductTierEnum, { each: true })
|
|
66
69
|
tiers?: ProductTierEnum[] | null;
|
|
67
70
|
|
|
71
|
+
/** Cadenas alcanzadas; ausente, `null` o vacío = todas las cadenas. */
|
|
72
|
+
@Expose()
|
|
73
|
+
@IsOptional()
|
|
74
|
+
@IsArray()
|
|
75
|
+
@ArrayMaxSize(PROMOTION_RETAILER_IDS_MAX_ITEMS)
|
|
76
|
+
@IsString({ each: true })
|
|
77
|
+
@IsNotEmpty({ each: true })
|
|
78
|
+
retailerIds?: string[] | null;
|
|
79
|
+
|
|
68
80
|
/** Tiendas alcanzadas. `null` o ausente = todas. */
|
|
69
81
|
@Expose()
|
|
70
82
|
@IsOptional()
|