@fiado/type-kit 3.518.0 → 3.520.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/retailWizard/fixtures/saleWithoutPhone.strict.ts +57 -0
- package/_test_/unit/retailWizard/saleWithoutPhone.test.ts +46 -0
- package/_test_/unit/retailWizard/saleWithoutPhoneLines.test.ts +82 -0
- package/_test_/unit/rewards/backoffice.test.ts +1 -1
- package/_test_/unit/rewards/chargeDtos.test.ts +21 -0
- package/_test_/unit/rewards/deliveryMetricsDtos.test.ts +25 -0
- package/_test_/unit/rewards/grantBackofficeDtos.test.ts +30 -0
- package/_test_/unit/rewards/partnerDtos.test.ts +47 -0
- package/bin/retailCommission/dtos/CommissionAccrual.d.ts +2 -1
- package/bin/retailWizard/dtos/Sale.d.ts +3 -2
- package/bin/retailWizard/dtos/WizardLineProduct.d.ts +3 -0
- package/bin/retailWizard/events/RetailCommissionInboundMessage.d.ts +2 -0
- package/bin/retailWizard/events/RetailCommissionInboundMessage.js +6 -0
- package/bin/retailWizard/events/SaleCompletedV1.d.ts +3 -2
- package/bin/retailWizard/events/SaleCompletedV2.d.ts +2 -1
- package/bin/rewards/constants/BackofficeLimits.d.ts +13 -0
- package/bin/rewards/constants/BackofficeLimits.js +14 -1
- package/bin/rewards/dtos/backoffice/BackofficeGrantAttemptResponse.d.ts +5 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantAttemptResponse.js +7 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantItemResponse.d.ts +7 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantItemResponse.js +7 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantResponse.d.ts +7 -0
- package/bin/rewards/dtos/backoffice/BackofficeGrantResponse.js +8 -0
- package/bin/rewards/dtos/backoffice/ChargeListResponse.d.ts +6 -0
- package/bin/rewards/dtos/backoffice/ChargeListResponse.js +6 -0
- package/bin/rewards/dtos/backoffice/ChargeRecord.d.ts +17 -0
- package/bin/rewards/dtos/backoffice/ChargeRecord.js +7 -0
- package/bin/rewards/dtos/backoffice/ChargesExportQuery.d.ts +5 -0
- package/bin/rewards/dtos/backoffice/ChargesExportQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/ChargesQuery.d.ts +7 -0
- package/bin/rewards/dtos/backoffice/ChargesQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/DeliveryMetricsPoint.d.ts +13 -0
- package/bin/rewards/dtos/backoffice/DeliveryMetricsPoint.js +7 -0
- package/bin/rewards/dtos/backoffice/DeliveryMetricsQuery.d.ts +9 -0
- package/bin/rewards/dtos/backoffice/DeliveryMetricsQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/DeliveryTopEntry.d.ts +16 -0
- package/bin/rewards/dtos/backoffice/DeliveryTopEntry.js +7 -0
- package/bin/rewards/dtos/backoffice/DeliveryTopQuery.d.ts +11 -0
- package/bin/rewards/dtos/backoffice/DeliveryTopQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/GrantListQuery.d.ts +22 -0
- package/bin/rewards/dtos/backoffice/GrantListQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/GrantListResponse.d.ts +5 -0
- package/bin/rewards/dtos/backoffice/GrantListResponse.js +6 -0
- package/bin/rewards/dtos/backoffice/PartnerListResponse.d.ts +6 -0
- package/bin/rewards/dtos/backoffice/PartnerListResponse.js +6 -0
- package/bin/rewards/dtos/backoffice/PartnerRequest.d.ts +7 -0
- package/bin/rewards/dtos/backoffice/PartnerRequest.js +38 -0
- package/bin/rewards/dtos/backoffice/PartnerResponse.d.ts +11 -0
- package/bin/rewards/dtos/backoffice/PartnerResponse.js +6 -0
- package/bin/rewards/dtos/backoffice/PartnerSummary.d.ts +12 -0
- package/bin/rewards/dtos/backoffice/PartnerSummary.js +7 -0
- package/bin/rewards/dtos/backoffice/PartnersSummaryQuery.d.ts +5 -0
- package/bin/rewards/dtos/backoffice/PartnersSummaryQuery.js +7 -0
- package/bin/rewards/dtos/backoffice/RewardChargeToInput.d.ts +1 -1
- package/bin/rewards/dtos/backoffice/RewardChargeToInput.js +1 -7
- package/bin/rewards/enums/DeliveryDimensionEnum.d.ts +8 -0
- package/bin/rewards/enums/DeliveryDimensionEnum.js +12 -0
- package/bin/rewards/enums/DeliveryTopByEnum.d.ts +5 -0
- package/bin/rewards/enums/DeliveryTopByEnum.js +9 -0
- package/bin/rewards/enums/DeliveryTopDimensionEnum.d.ts +7 -0
- package/bin/rewards/enums/DeliveryTopDimensionEnum.js +11 -0
- package/bin/rewards/index.d.ts +21 -0
- package/bin/rewards/index.js +21 -0
- package/package.json +1 -1
- package/src/retailCommission/dtos/CommissionAccrual.ts +2 -1
- package/src/retailWizard/dtos/Sale.ts +3 -2
- package/src/retailWizard/dtos/WizardLineProduct.ts +3 -0
- package/src/retailWizard/events/RetailCommissionInboundMessage.ts +6 -0
- package/src/retailWizard/events/SaleCompletedV1.ts +3 -2
- package/src/retailWizard/events/SaleCompletedV2.ts +2 -1
- package/src/rewards/constants/BackofficeLimits.ts +16 -0
- package/src/rewards/dtos/backoffice/BackofficeGrantAttemptResponse.ts +6 -0
- package/src/rewards/dtos/backoffice/BackofficeGrantItemResponse.ts +8 -0
- package/src/rewards/dtos/backoffice/BackofficeGrantResponse.ts +8 -0
- package/src/rewards/dtos/backoffice/ChargeListResponse.ts +7 -0
- package/src/rewards/dtos/backoffice/ChargeRecord.ts +18 -0
- package/src/rewards/dtos/backoffice/ChargesExportQuery.ts +5 -0
- package/src/rewards/dtos/backoffice/ChargesQuery.ts +7 -0
- package/src/rewards/dtos/backoffice/DeliveryMetricsPoint.ts +14 -0
- package/src/rewards/dtos/backoffice/DeliveryMetricsQuery.ts +10 -0
- package/src/rewards/dtos/backoffice/DeliveryTopEntry.ts +14 -0
- package/src/rewards/dtos/backoffice/DeliveryTopQuery.ts +12 -0
- package/src/rewards/dtos/backoffice/GrantListQuery.ts +23 -0
- package/src/rewards/dtos/backoffice/GrantListResponse.ts +6 -0
- package/src/rewards/dtos/backoffice/PartnerListResponse.ts +7 -0
- package/src/rewards/dtos/backoffice/PartnerRequest.ts +22 -0
- package/src/rewards/dtos/backoffice/PartnerResponse.ts +12 -0
- package/src/rewards/dtos/backoffice/PartnerSummary.ts +13 -0
- package/src/rewards/dtos/backoffice/PartnersSummaryQuery.ts +5 -0
- package/src/rewards/dtos/backoffice/RewardChargeToInput.ts +1 -6
- package/src/rewards/enums/DeliveryDimensionEnum.ts +8 -0
- package/src/rewards/enums/DeliveryTopByEnum.ts +5 -0
- package/src/rewards/enums/DeliveryTopDimensionEnum.ts +7 -0
- package/src/rewards/index.ts +21 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ItemErrorCategoryEnum } from '../../enums/ItemErrorCategoryEnum';
|
|
2
|
+
import { RewardCost } from '../RewardCost';
|
|
3
|
+
/** Una fila del top de métricas. `errors` solo viene en la dimensión `CATALOG_ITEM`. */
|
|
4
|
+
export declare class DeliveryTopEntry {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
granted: number;
|
|
8
|
+
failed: number;
|
|
9
|
+
skipped: number;
|
|
10
|
+
/** Un costo por moneda; las monedas no se suman entre sí. */
|
|
11
|
+
cost: RewardCost[];
|
|
12
|
+
errors?: {
|
|
13
|
+
category: ItemErrorCategoryEnum;
|
|
14
|
+
count: number;
|
|
15
|
+
}[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryTopEntry = void 0;
|
|
4
|
+
/** Una fila del top de métricas. `errors` solo viene en la dimensión `CATALOG_ITEM`. */
|
|
5
|
+
class DeliveryTopEntry {
|
|
6
|
+
}
|
|
7
|
+
exports.DeliveryTopEntry = DeliveryTopEntry;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CurrencyId } from '../../../currency';
|
|
2
|
+
import { DeliveryTopByEnum } from '../../enums/DeliveryTopByEnum';
|
|
3
|
+
import { DeliveryTopDimensionEnum } from '../../enums/DeliveryTopDimensionEnum';
|
|
4
|
+
/** Query params ya validados de `GET /metrics/deliveries/top`. `from`/`to` = `AAAA-MM-DD` UTC. */
|
|
5
|
+
export declare class DeliveryTopQuery {
|
|
6
|
+
dimension: DeliveryTopDimensionEnum;
|
|
7
|
+
from: string;
|
|
8
|
+
to: string;
|
|
9
|
+
by: DeliveryTopByEnum;
|
|
10
|
+
currency?: CurrencyId;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryTopQuery = void 0;
|
|
4
|
+
/** Query params ya validados de `GET /metrics/deliveries/top`. `from`/`to` = `AAAA-MM-DD` UTC. */
|
|
5
|
+
class DeliveryTopQuery {
|
|
6
|
+
}
|
|
7
|
+
exports.DeliveryTopQuery = DeliveryTopQuery;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ItemErrorCategoryEnum } from '../../enums/ItemErrorCategoryEnum';
|
|
2
|
+
/** Query params ya validados de `GET /grants` y `GET /grants/export` (el lambda los valida; ver `GrantListQueryHelper`). */
|
|
3
|
+
export declare class GrantListQuery {
|
|
4
|
+
limit?: number;
|
|
5
|
+
cursor?: string;
|
|
6
|
+
/** Uno o varios `GrantStatusEnum` separados por coma. */
|
|
7
|
+
status?: string;
|
|
8
|
+
packageId?: string;
|
|
9
|
+
campaignId?: string;
|
|
10
|
+
service?: string;
|
|
11
|
+
partnerId?: string;
|
|
12
|
+
directoryId?: string;
|
|
13
|
+
/** Coincide con un `id` de entrega; si no, se trata como `directoryId`. Sin búsqueda por nombre. */
|
|
14
|
+
search?: string;
|
|
15
|
+
/** `AAAA-MM-DD` UTC, inclusivos. Default: `to` = hoy, `from` = `to − 6`. Máximo 92 días. */
|
|
16
|
+
from?: string;
|
|
17
|
+
to?: string;
|
|
18
|
+
/** Entregas que contienen esta recompensa del catálogo (D-F1). */
|
|
19
|
+
catalogItemId?: string;
|
|
20
|
+
/** Entregas con al menos un ítem FAILED cuyo último intento falló con esta categoría (D-F1). */
|
|
21
|
+
errorCategory?: ItemErrorCategoryEnum;
|
|
22
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrantListQuery = void 0;
|
|
4
|
+
/** Query params ya validados de `GET /grants` y `GET /grants/export` (el lambda los valida; ver `GrantListQueryHelper`). */
|
|
5
|
+
class GrantListQuery {
|
|
6
|
+
}
|
|
7
|
+
exports.GrantListQuery = GrantListQuery;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RewardStatusEnum } from '../../enums/RewardStatusEnum';
|
|
2
|
+
/** Crear (POST) o reemplazar (PUT) un aliado. `version` y `updatedBy` los pone el servidor. El `id` lo genera el front del nombre. */
|
|
3
|
+
export declare class PartnerRequest {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
status: RewardStatusEnum;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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.PartnerRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const BackofficeLimits_1 = require("../../constants/BackofficeLimits");
|
|
16
|
+
const RewardStatusEnum_1 = require("../../enums/RewardStatusEnum");
|
|
17
|
+
/** Crear (POST) o reemplazar (PUT) un aliado. `version` y `updatedBy` los pone el servidor. El `id` lo genera el front del nombre. */
|
|
18
|
+
class PartnerRequest {
|
|
19
|
+
}
|
|
20
|
+
exports.PartnerRequest = PartnerRequest;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_transformer_1.Expose)(),
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
(0, class_validator_1.Matches)(BackofficeLimits_1.REWARD_ID_PATTERN),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], PartnerRequest.prototype, "id", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_transformer_1.Expose)(),
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
31
|
+
(0, class_validator_1.MaxLength)(120),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], PartnerRequest.prototype, "name", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_transformer_1.Expose)(),
|
|
36
|
+
(0, class_validator_1.IsEnum)(RewardStatusEnum_1.RewardStatusEnum),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], PartnerRequest.prototype, "status", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RewardStatusEnum } from '../../enums/RewardStatusEnum';
|
|
2
|
+
export declare class PartnerResponse {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
status: RewardStatusEnum;
|
|
6
|
+
version: number;
|
|
7
|
+
/** Epoch en milisegundos. */
|
|
8
|
+
createdAt: number;
|
|
9
|
+
updatedAt: number;
|
|
10
|
+
updatedBy: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RewardCost } from '../RewardCost';
|
|
2
|
+
import { RewardStatusEnum } from '../../enums/RewardStatusEnum';
|
|
3
|
+
/** Un aliado con sus recompensas cobradas y el valor entregado en el rango (`GET /partners/summary`). */
|
|
4
|
+
export declare class PartnerSummary {
|
|
5
|
+
partnerId: string;
|
|
6
|
+
partnerName: string;
|
|
7
|
+
status: RewardStatusEnum;
|
|
8
|
+
/** Recompensas del catálogo que se le cobran a este aliado. */
|
|
9
|
+
catalogItemIds: string[];
|
|
10
|
+
/** Valor entregado en el rango, POR MONEDA (nunca se mezclan). Vacío si no hubo entregas. */
|
|
11
|
+
delivered: RewardCost[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartnerSummary = void 0;
|
|
4
|
+
/** Un aliado con sus recompensas cobradas y el valor entregado en el rango (`GET /partners/summary`). */
|
|
5
|
+
class PartnerSummary {
|
|
6
|
+
}
|
|
7
|
+
exports.PartnerSummary = PartnerSummary;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartnersSummaryQuery = void 0;
|
|
4
|
+
/** Query params ya validados de `GET /partners/summary` (`AAAA-MM-DD`, UTC, inclusivos; default últimos 30 días). */
|
|
5
|
+
class PartnersSummaryQuery {
|
|
6
|
+
}
|
|
7
|
+
exports.PartnersSummaryQuery = PartnersSummaryQuery;
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.RewardChargeToInput = void 0;
|
|
13
13
|
const class_transformer_1 = require("class-transformer");
|
|
14
14
|
const class_validator_1 = require("class-validator");
|
|
15
|
+
/** A quién se le cobra. `partnerName` ya no se escribe a mano: el servidor lo copia de `RewardPartner_GT` (D-A2). */
|
|
15
16
|
class RewardChargeToInput {
|
|
16
17
|
}
|
|
17
18
|
exports.RewardChargeToInput = RewardChargeToInput;
|
|
@@ -22,10 +23,3 @@ __decorate([
|
|
|
22
23
|
(0, class_validator_1.MaxLength)(64),
|
|
23
24
|
__metadata("design:type", String)
|
|
24
25
|
], RewardChargeToInput.prototype, "partnerId", void 0);
|
|
25
|
-
__decorate([
|
|
26
|
-
(0, class_transformer_1.Expose)(),
|
|
27
|
-
(0, class_validator_1.IsString)(),
|
|
28
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
29
|
-
(0, class_validator_1.MaxLength)(120),
|
|
30
|
-
__metadata("design:type", String)
|
|
31
|
-
], RewardChargeToInput.prototype, "partnerName", void 0);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Dimensión de la serie diaria de métricas. Las etiquetas (`TAG#campaignId`, `TAG#evaluationId`) se validan con `METRICS_TAG_DIMENSION_PATTERN`. */
|
|
2
|
+
export declare enum DeliveryDimensionEnum {
|
|
3
|
+
ALL = "ALL",
|
|
4
|
+
PACKAGE = "PACKAGE",
|
|
5
|
+
CATALOG_ITEM = "CATALOG_ITEM",
|
|
6
|
+
PARTNER = "PARTNER",
|
|
7
|
+
SOURCE = "SOURCE"
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryDimensionEnum = void 0;
|
|
4
|
+
/** Dimensión de la serie diaria de métricas. Las etiquetas (`TAG#campaignId`, `TAG#evaluationId`) se validan con `METRICS_TAG_DIMENSION_PATTERN`. */
|
|
5
|
+
var DeliveryDimensionEnum;
|
|
6
|
+
(function (DeliveryDimensionEnum) {
|
|
7
|
+
DeliveryDimensionEnum["ALL"] = "ALL";
|
|
8
|
+
DeliveryDimensionEnum["PACKAGE"] = "PACKAGE";
|
|
9
|
+
DeliveryDimensionEnum["CATALOG_ITEM"] = "CATALOG_ITEM";
|
|
10
|
+
DeliveryDimensionEnum["PARTNER"] = "PARTNER";
|
|
11
|
+
DeliveryDimensionEnum["SOURCE"] = "SOURCE";
|
|
12
|
+
})(DeliveryDimensionEnum || (exports.DeliveryDimensionEnum = DeliveryDimensionEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryTopByEnum = void 0;
|
|
4
|
+
/** Criterio de ordenamiento del top de métricas. */
|
|
5
|
+
var DeliveryTopByEnum;
|
|
6
|
+
(function (DeliveryTopByEnum) {
|
|
7
|
+
DeliveryTopByEnum["cost"] = "cost";
|
|
8
|
+
DeliveryTopByEnum["count"] = "count";
|
|
9
|
+
})(DeliveryTopByEnum || (exports.DeliveryTopByEnum = DeliveryTopByEnum = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryTopDimensionEnum = void 0;
|
|
4
|
+
/** Dimensiones sobre las que se calcula el top de métricas. */
|
|
5
|
+
var DeliveryTopDimensionEnum;
|
|
6
|
+
(function (DeliveryTopDimensionEnum) {
|
|
7
|
+
DeliveryTopDimensionEnum["PACKAGE"] = "PACKAGE";
|
|
8
|
+
DeliveryTopDimensionEnum["CATALOG_ITEM"] = "CATALOG_ITEM";
|
|
9
|
+
DeliveryTopDimensionEnum["PARTNER"] = "PARTNER";
|
|
10
|
+
DeliveryTopDimensionEnum["SOURCE"] = "SOURCE";
|
|
11
|
+
})(DeliveryTopDimensionEnum || (exports.DeliveryTopDimensionEnum = DeliveryTopDimensionEnum = {}));
|
package/bin/rewards/index.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ export * from './enums/ItemErrorCategoryEnum';
|
|
|
7
7
|
export * from './enums/RewardStatusEnum';
|
|
8
8
|
export * from './enums/DependencyIfMissingEnum';
|
|
9
9
|
export * from './enums/RewardsErrorCodeEnum';
|
|
10
|
+
export * from './enums/DeliveryDimensionEnum';
|
|
11
|
+
export * from './enums/DeliveryTopDimensionEnum';
|
|
12
|
+
export * from './enums/DeliveryTopByEnum';
|
|
10
13
|
export * from './types/RewardInputs';
|
|
11
14
|
export * from './dtos/RewardCost';
|
|
12
15
|
export * from './dtos/RewardChargeTo';
|
|
@@ -33,3 +36,21 @@ export * from './dtos/backoffice/PackageResponse';
|
|
|
33
36
|
export * from './dtos/backoffice/RewardTypeResponse';
|
|
34
37
|
export * from './dtos/backoffice/CatalogItemListResponse';
|
|
35
38
|
export * from './dtos/backoffice/PackageListResponse';
|
|
39
|
+
export * from './dtos/backoffice/PartnerRequest';
|
|
40
|
+
export * from './dtos/backoffice/PartnerResponse';
|
|
41
|
+
export * from './dtos/backoffice/PartnerListResponse';
|
|
42
|
+
export * from './dtos/backoffice/PartnerSummary';
|
|
43
|
+
export * from './dtos/backoffice/PartnersSummaryQuery';
|
|
44
|
+
export * from './dtos/backoffice/GrantListQuery';
|
|
45
|
+
export * from './dtos/backoffice/BackofficeGrantAttemptResponse';
|
|
46
|
+
export * from './dtos/backoffice/BackofficeGrantItemResponse';
|
|
47
|
+
export * from './dtos/backoffice/BackofficeGrantResponse';
|
|
48
|
+
export * from './dtos/backoffice/GrantListResponse';
|
|
49
|
+
export * from './dtos/backoffice/ChargeRecord';
|
|
50
|
+
export * from './dtos/backoffice/ChargeListResponse';
|
|
51
|
+
export * from './dtos/backoffice/ChargesQuery';
|
|
52
|
+
export * from './dtos/backoffice/ChargesExportQuery';
|
|
53
|
+
export * from './dtos/backoffice/DeliveryMetricsQuery';
|
|
54
|
+
export * from './dtos/backoffice/DeliveryTopQuery';
|
|
55
|
+
export * from './dtos/backoffice/DeliveryMetricsPoint';
|
|
56
|
+
export * from './dtos/backoffice/DeliveryTopEntry';
|
package/bin/rewards/index.js
CHANGED
|
@@ -24,6 +24,9 @@ __exportStar(require("./enums/ItemErrorCategoryEnum"), exports);
|
|
|
24
24
|
__exportStar(require("./enums/RewardStatusEnum"), exports);
|
|
25
25
|
__exportStar(require("./enums/DependencyIfMissingEnum"), exports);
|
|
26
26
|
__exportStar(require("./enums/RewardsErrorCodeEnum"), exports);
|
|
27
|
+
__exportStar(require("./enums/DeliveryDimensionEnum"), exports);
|
|
28
|
+
__exportStar(require("./enums/DeliveryTopDimensionEnum"), exports);
|
|
29
|
+
__exportStar(require("./enums/DeliveryTopByEnum"), exports);
|
|
27
30
|
//Types
|
|
28
31
|
__exportStar(require("./types/RewardInputs"), exports);
|
|
29
32
|
//DTOs
|
|
@@ -58,3 +61,21 @@ __exportStar(require("./dtos/backoffice/PackageResponse"), exports);
|
|
|
58
61
|
__exportStar(require("./dtos/backoffice/RewardTypeResponse"), exports);
|
|
59
62
|
__exportStar(require("./dtos/backoffice/CatalogItemListResponse"), exports);
|
|
60
63
|
__exportStar(require("./dtos/backoffice/PackageListResponse"), exports);
|
|
64
|
+
__exportStar(require("./dtos/backoffice/PartnerRequest"), exports);
|
|
65
|
+
__exportStar(require("./dtos/backoffice/PartnerResponse"), exports);
|
|
66
|
+
__exportStar(require("./dtos/backoffice/PartnerListResponse"), exports);
|
|
67
|
+
__exportStar(require("./dtos/backoffice/PartnerSummary"), exports);
|
|
68
|
+
__exportStar(require("./dtos/backoffice/PartnersSummaryQuery"), exports);
|
|
69
|
+
__exportStar(require("./dtos/backoffice/GrantListQuery"), exports);
|
|
70
|
+
__exportStar(require("./dtos/backoffice/BackofficeGrantAttemptResponse"), exports);
|
|
71
|
+
__exportStar(require("./dtos/backoffice/BackofficeGrantItemResponse"), exports);
|
|
72
|
+
__exportStar(require("./dtos/backoffice/BackofficeGrantResponse"), exports);
|
|
73
|
+
__exportStar(require("./dtos/backoffice/GrantListResponse"), exports);
|
|
74
|
+
__exportStar(require("./dtos/backoffice/ChargeRecord"), exports);
|
|
75
|
+
__exportStar(require("./dtos/backoffice/ChargeListResponse"), exports);
|
|
76
|
+
__exportStar(require("./dtos/backoffice/ChargesQuery"), exports);
|
|
77
|
+
__exportStar(require("./dtos/backoffice/ChargesExportQuery"), exports);
|
|
78
|
+
__exportStar(require("./dtos/backoffice/DeliveryMetricsQuery"), exports);
|
|
79
|
+
__exportStar(require("./dtos/backoffice/DeliveryTopQuery"), exports);
|
|
80
|
+
__exportStar(require("./dtos/backoffice/DeliveryMetricsPoint"), exports);
|
|
81
|
+
__exportStar(require("./dtos/backoffice/DeliveryTopEntry"), exports);
|
package/package.json
CHANGED
|
@@ -72,7 +72,8 @@ export interface CommissionSaleInput {
|
|
|
72
72
|
sellerId: string;
|
|
73
73
|
retailerId: string;
|
|
74
74
|
storeId: string;
|
|
75
|
-
|
|
75
|
+
/** `null` en la venta sin teléfono: se comisiona solo por accesorios. */
|
|
76
|
+
sku: string | null;
|
|
76
77
|
brand: string | null;
|
|
77
78
|
/**
|
|
78
79
|
* 🔴 **La base de comisión es el PRECIO DEL EQUIPO, no lo cobrado en caja.**
|
|
@@ -21,8 +21,9 @@ export interface Sale {
|
|
|
21
21
|
wizardSessionId: string;
|
|
22
22
|
type: SaleTypeEnum;
|
|
23
23
|
externalProvider: ExternalProviderEnum | null;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
/** SKU del teléfono de la venta; `null` en la venta sin teléfono (en DDB se omite). */
|
|
25
|
+
sku: string | null;
|
|
26
|
+
/** Líneas vendidas; `sku` e `imei` son los del teléfono, o `null` si la venta no lleva teléfono. */
|
|
26
27
|
lines?: SaleLine[];
|
|
27
28
|
/** SKUs de líneas y componentes, para filtrar ventas por SKU. */
|
|
28
29
|
skus?: string[];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ItemTypeEnum } from '../../retailCatalog/enums/ItemTypeEnum';
|
|
1
2
|
import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
|
|
2
3
|
import type { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
|
|
3
4
|
import type { TrackingModeEnum } from '../../retailCatalog/enums/TrackingModeEnum';
|
|
@@ -13,4 +14,6 @@ export interface WizardLineProduct {
|
|
|
13
14
|
tier: ProductTierEnum | null;
|
|
14
15
|
category: ProductCategoryEnum;
|
|
15
16
|
trackingMode: TrackingModeEnum;
|
|
17
|
+
/** Producto físico o servicio; ausente en líneas viejas (el consumidor lo toma como PRODUCT). */
|
|
18
|
+
itemType?: ItemTypeEnum;
|
|
16
19
|
}
|
|
@@ -62,6 +62,12 @@ export class RetailCommissionInboundLine {
|
|
|
62
62
|
@IsOptional()
|
|
63
63
|
@IsEnum(WizardLineRoleEnum)
|
|
64
64
|
role?: WizardLineRoleEnum;
|
|
65
|
+
|
|
66
|
+
/** Teléfonos que trae la línea (kit), congelados al cerrar; ausente en mensajes viejos. */
|
|
67
|
+
@IsOptional()
|
|
68
|
+
@IsInt()
|
|
69
|
+
@Min(0)
|
|
70
|
+
phoneCount?: number;
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
/** Venta cerrada o cancelada que el wizard publica en RetailCommissionInboundQueue. */
|
|
@@ -11,7 +11,8 @@ export interface SaleCompletedV1 {
|
|
|
11
11
|
retailerId: string;
|
|
12
12
|
storeId: string;
|
|
13
13
|
retailCustomerId: string;
|
|
14
|
-
|
|
14
|
+
/** `null` en la venta sin teléfono. */
|
|
15
|
+
sku: string | null;
|
|
15
16
|
imei: string | null;
|
|
16
17
|
/**
|
|
17
18
|
* Lo cobrado en caja al cerrar: enganche + lo no financiado (en contado, el total).
|
|
@@ -23,7 +24,7 @@ export interface SaleCompletedV1 {
|
|
|
23
24
|
* sin `type` un crédito con $1,300 de enganche era indistinguible de un contado de $1,300.
|
|
24
25
|
*/
|
|
25
26
|
type?: SaleTypeEnum;
|
|
26
|
-
/** Precio de lista del equipo; en contado coincide con `amountCents`. */
|
|
27
|
+
/** Precio de lista del equipo; en contado coincide con `amountCents`. Sin equipo se omite. */
|
|
27
28
|
equipmentPriceCents?: number;
|
|
28
29
|
/** Enganche cobrado (solo `type=CREDIT`). */
|
|
29
30
|
downPaymentCents?: number;
|
|
@@ -24,7 +24,8 @@ export interface SaleCompletedV2 {
|
|
|
24
24
|
/** Quién vendió — el eje del cálculo de comisión. Es lo que más falta en la V1. */
|
|
25
25
|
sellerRetailUserId: string;
|
|
26
26
|
retailCustomerId: string;
|
|
27
|
-
|
|
27
|
+
/** `null` en la venta sin teléfono. */
|
|
28
|
+
sku: string | null;
|
|
28
29
|
/** Marca del equipo, del snapshot congelado al cerrar. `null` si no se pudo resolver. */
|
|
29
30
|
brand: string | null;
|
|
30
31
|
imei: string | null;
|
|
@@ -4,3 +4,19 @@ export const REWARD_ITEM_KEY_PATTERN = new RegExp(`^[A-Za-z0-9_-]{1,${REWARD_ITE
|
|
|
4
4
|
export const REWARD_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
|
|
5
5
|
/** Máximo de ítems de un paquete (B-12 de rewards-business: presupuesto de tiempo del worker). Igual a `MAX_ITEMS_PER_PACKAGE` del lambda. */
|
|
6
6
|
export const REWARD_PACKAGE_MAX_ITEMS = 4;
|
|
7
|
+
|
|
8
|
+
/** Entregas de backoffice (Fase 4): ventana máxima del listado, default y tope del CSV. */
|
|
9
|
+
export const GRANTS_MAX_RANGE_DAYS = 92;
|
|
10
|
+
export const GRANTS_DEFAULT_RANGE_DAYS = 7;
|
|
11
|
+
export const GRANTS_EXPORT_MAX_ROWS = 5000;
|
|
12
|
+
|
|
13
|
+
/** Cierre mensual por aliado (D-C1): tope del CSV y formato de `month` (UTC). */
|
|
14
|
+
export const CHARGES_EXPORT_MAX_ROWS = 10000;
|
|
15
|
+
export const CHARGES_MONTH_PATTERN = /^\d{4}-(0[1-9]|1[0-2])$/;
|
|
16
|
+
|
|
17
|
+
/** Métricas de entregas (D-D3): top de 10, máximo 200 valores por dimensión, y etiquetas permitidas. */
|
|
18
|
+
export const METRICS_TOP_LIMIT = 10;
|
|
19
|
+
export const METRICS_TOP_MAX_VALUES = 200;
|
|
20
|
+
/** Etiquetas permitidas en métricas (D-D3b): una llave libre tendría cardinalidad ilimitada. */
|
|
21
|
+
export const METRICS_TAG_ALLOWLIST: readonly string[] = ['campaignId', 'evaluationId'];
|
|
22
|
+
export const METRICS_TAG_DIMENSION_PATTERN = /^TAG#(campaignId|evaluationId)$/;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GrantItemResponse } from '../responses/GrantItemResponse';
|
|
2
|
+
import { BackofficeGrantAttemptResponse } from './BackofficeGrantAttemptResponse';
|
|
3
|
+
|
|
4
|
+
export class BackofficeGrantItemResponse extends GrantItemResponse {
|
|
5
|
+
/** Nombre de la recompensa congelada en la entrega. */
|
|
6
|
+
name: string;
|
|
7
|
+
attempts: BackofficeGrantAttemptResponse[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GrantResponse } from '../responses/GrantResponse';
|
|
2
|
+
import { BackofficeGrantItemResponse } from './BackofficeGrantItemResponse';
|
|
3
|
+
|
|
4
|
+
/** Sin `directoryName`: Directory no trae un campo de nombre confiable (Q2). Sin `requestSnapshot`/`providerResponse` (R2). */
|
|
5
|
+
export class BackofficeGrantResponse extends GrantResponse {
|
|
6
|
+
packageName?: string;
|
|
7
|
+
items: BackofficeGrantItemResponse[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RewardChargeTo } from '../RewardChargeTo';
|
|
2
|
+
import { RewardCost } from '../RewardCost';
|
|
3
|
+
|
|
4
|
+
/** Un cargo = un ítem que quedó GRANTED, con el costo CONGELADO en la entrega (no el actual del catálogo). Sin `source` (R4 lo guarda, no se expone). */
|
|
5
|
+
export class ChargeRecord {
|
|
6
|
+
grantId: string;
|
|
7
|
+
itemKey: string;
|
|
8
|
+
/** Epoch en milisegundos (UTC). */
|
|
9
|
+
grantedAt: number;
|
|
10
|
+
directoryId: string;
|
|
11
|
+
catalogItemId: string;
|
|
12
|
+
catalogItemName: string;
|
|
13
|
+
campaignId?: string;
|
|
14
|
+
packageId: string;
|
|
15
|
+
cost: RewardCost;
|
|
16
|
+
chargeTo: RewardChargeTo;
|
|
17
|
+
externalRef?: Record<string, string>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CurrencyId } from '../../../currency';
|
|
2
|
+
|
|
3
|
+
/** Un punto de la serie diaria. `date` = `AAAA-MM-DD` UTC. `costGranted` = `costGrantedMinor / 100` (nunca se suman monedas distintas). */
|
|
4
|
+
export class DeliveryMetricsPoint {
|
|
5
|
+
date: string;
|
|
6
|
+
currency: CurrencyId;
|
|
7
|
+
granted: number;
|
|
8
|
+
failed: number;
|
|
9
|
+
skipped: number;
|
|
10
|
+
grantsCompleted: number;
|
|
11
|
+
grantsPartial: number;
|
|
12
|
+
grantsFailed: number;
|
|
13
|
+
costGranted: number;
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CurrencyId } from '../../../currency';
|
|
2
|
+
|
|
3
|
+
/** Query params ya validados de `GET /metrics/deliveries`. `dimension` es un `DeliveryDimensionEnum` o `TAG#campaignId|TAG#evaluationId`. `from`/`to` = `AAAA-MM-DD` UTC. */
|
|
4
|
+
export class DeliveryMetricsQuery {
|
|
5
|
+
dimension: string;
|
|
6
|
+
value?: string;
|
|
7
|
+
from: string;
|
|
8
|
+
to: string;
|
|
9
|
+
currency?: CurrencyId;
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ItemErrorCategoryEnum } from '../../enums/ItemErrorCategoryEnum';
|
|
2
|
+
import { RewardCost } from '../RewardCost';
|
|
3
|
+
|
|
4
|
+
/** Una fila del top de métricas. `errors` solo viene en la dimensión `CATALOG_ITEM`. */
|
|
5
|
+
export class DeliveryTopEntry {
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
granted: number;
|
|
9
|
+
failed: number;
|
|
10
|
+
skipped: number;
|
|
11
|
+
/** Un costo por moneda; las monedas no se suman entre sí. */
|
|
12
|
+
cost: RewardCost[];
|
|
13
|
+
errors?: { category: ItemErrorCategoryEnum; count: number }[];
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CurrencyId } from '../../../currency';
|
|
2
|
+
import { DeliveryTopByEnum } from '../../enums/DeliveryTopByEnum';
|
|
3
|
+
import { DeliveryTopDimensionEnum } from '../../enums/DeliveryTopDimensionEnum';
|
|
4
|
+
|
|
5
|
+
/** Query params ya validados de `GET /metrics/deliveries/top`. `from`/`to` = `AAAA-MM-DD` UTC. */
|
|
6
|
+
export class DeliveryTopQuery {
|
|
7
|
+
dimension: DeliveryTopDimensionEnum;
|
|
8
|
+
from: string;
|
|
9
|
+
to: string;
|
|
10
|
+
by: DeliveryTopByEnum;
|
|
11
|
+
currency?: CurrencyId;
|
|
12
|
+
}
|