@fiado/type-kit 3.267.0 → 3.269.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/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +11 -0
- package/bin/benefitCenter/enums/BenefitFlowEnum.js +15 -0
- package/bin/collection/dtos/CollectionProductConfigDto.d.ts +13 -0
- package/bin/collection/dtos/CollectionProductConfigDto.js +59 -0
- package/bin/collection/dtos/CollectionSourceDto.d.ts +10 -0
- package/bin/collection/dtos/CollectionSourceDto.js +43 -0
- package/bin/collection/dtos/RetryPolicyDto.d.ts +5 -0
- package/bin/collection/dtos/RetryPolicyDto.js +29 -0
- package/bin/collection/dtos/UpsertProductConfigRequest.d.ts +12 -0
- package/bin/collection/dtos/UpsertProductConfigRequest.js +43 -0
- package/bin/collection/index.d.ts +4 -0
- package/bin/collection/index.js +4 -0
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.d.ts +11 -0
- package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.js +46 -0
- package/bin/loanCredit/enums/ClientLevelEnum.d.ts +11 -0
- package/bin/loanCredit/enums/ClientLevelEnum.js +15 -0
- package/bin/retailWizard/dtos/responses/RunSalesReportResponse.d.ts +25 -0
- package/bin/retailWizard/dtos/responses/RunSalesReportResponse.js +2 -0
- package/bin/retailWizard/enums/ReportRunStatusEnum.d.ts +14 -7
- package/bin/retailWizard/enums/ReportRunStatusEnum.js +14 -7
- package/bin/retailWizard/index.d.ts +1 -0
- package/bin/retailWizard/index.js +1 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +6 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +31 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +7 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +6 -0
- package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +11 -0
- package/bin/walletFunding/dtos/CancelFundingRequest.js +33 -0
- package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +14 -0
- package/bin/walletFunding/dtos/CancelFundingResponse.js +12 -0
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +3 -0
- package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +21 -0
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +7 -0
- package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +6 -0
- package/package.json +1 -1
- package/src/collection/dtos/CollectionProductConfigDto.ts +16 -0
- package/src/collection/dtos/CollectionSourceDto.ts +12 -0
- package/src/collection/dtos/RetryPolicyDto.ts +7 -0
- package/src/collection/dtos/UpsertProductConfigRequest.ts +15 -0
- package/src/collection/index.ts +4 -0
- package/src/retailWizard/dtos/responses/RunSalesReportResponse.ts +26 -0
- package/src/retailWizard/enums/ReportRunStatusEnum.ts +14 -7
- package/src/retailWizard/index.ts +1 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum BenefitFlowEnum {
|
|
2
|
+
TOPUPS = "TOPUPS",
|
|
3
|
+
BILL_PAYMENT = "BILL_PAYMENT",
|
|
4
|
+
CREDIT = "CREDIT",
|
|
5
|
+
INSURANCE = "INSURANCE",
|
|
6
|
+
DONATION = "DONATION",
|
|
7
|
+
PHARMACY = "PHARMACY",
|
|
8
|
+
REMITTANCE = "REMITTANCE",
|
|
9
|
+
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
10
|
+
WALLET_FUNDING = "WALLET_FUNDING"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BenefitFlowEnum = void 0;
|
|
4
|
+
var BenefitFlowEnum;
|
|
5
|
+
(function (BenefitFlowEnum) {
|
|
6
|
+
BenefitFlowEnum["TOPUPS"] = "TOPUPS";
|
|
7
|
+
BenefitFlowEnum["BILL_PAYMENT"] = "BILL_PAYMENT";
|
|
8
|
+
BenefitFlowEnum["CREDIT"] = "CREDIT";
|
|
9
|
+
BenefitFlowEnum["INSURANCE"] = "INSURANCE";
|
|
10
|
+
BenefitFlowEnum["DONATION"] = "DONATION";
|
|
11
|
+
BenefitFlowEnum["PHARMACY"] = "PHARMACY";
|
|
12
|
+
BenefitFlowEnum["REMITTANCE"] = "REMITTANCE";
|
|
13
|
+
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
14
|
+
BenefitFlowEnum["WALLET_FUNDING"] = "WALLET_FUNDING";
|
|
15
|
+
})(BenefitFlowEnum || (exports.BenefitFlowEnum = BenefitFlowEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
2
|
+
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
3
|
+
export declare class CollectionProductConfigDto {
|
|
4
|
+
tenantId: string;
|
|
5
|
+
productId: string;
|
|
6
|
+
version: number;
|
|
7
|
+
sources: CollectionSourceDto[];
|
|
8
|
+
allowPartial: boolean;
|
|
9
|
+
retryPolicy: RetryPolicyDto;
|
|
10
|
+
reportTargets: string[];
|
|
11
|
+
createdBy: string;
|
|
12
|
+
updatedBy: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.CollectionProductConfigDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const CollectionSourceDto_1 = require("./CollectionSourceDto");
|
|
16
|
+
const RetryPolicyDto_1 = require("./RetryPolicyDto");
|
|
17
|
+
class CollectionProductConfigDto {
|
|
18
|
+
}
|
|
19
|
+
exports.CollectionProductConfigDto = CollectionProductConfigDto;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_validator_1.IsString)(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], CollectionProductConfigDto.prototype, "tenantId", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], CollectionProductConfigDto.prototype, "productId", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_validator_1.IsInt)(),
|
|
30
|
+
__metadata("design:type", Number)
|
|
31
|
+
], CollectionProductConfigDto.prototype, "version", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsArray)(),
|
|
34
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
35
|
+
(0, class_transformer_1.Type)(() => CollectionSourceDto_1.CollectionSourceDto),
|
|
36
|
+
__metadata("design:type", Array)
|
|
37
|
+
], CollectionProductConfigDto.prototype, "sources", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsBoolean)(),
|
|
40
|
+
__metadata("design:type", Boolean)
|
|
41
|
+
], CollectionProductConfigDto.prototype, "allowPartial", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, class_validator_1.ValidateNested)(),
|
|
44
|
+
(0, class_transformer_1.Type)(() => RetryPolicyDto_1.RetryPolicyDto),
|
|
45
|
+
__metadata("design:type", RetryPolicyDto_1.RetryPolicyDto)
|
|
46
|
+
], CollectionProductConfigDto.prototype, "retryPolicy", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, class_validator_1.IsArray)(),
|
|
49
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
50
|
+
__metadata("design:type", Array)
|
|
51
|
+
], CollectionProductConfigDto.prototype, "reportTargets", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, class_validator_1.IsString)(),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], CollectionProductConfigDto.prototype, "createdBy", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, class_validator_1.IsString)(),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], CollectionProductConfigDto.prototype, "updatedBy", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MechanismType } from '../enums/MechanismType';
|
|
2
|
+
import { CurrencyId } from '../../currency/enums/CurrencyId';
|
|
3
|
+
export declare class CollectionSourceDto {
|
|
4
|
+
order: number;
|
|
5
|
+
wallet: string;
|
|
6
|
+
currency: CurrencyId;
|
|
7
|
+
mechanism: MechanismType;
|
|
8
|
+
provider: string;
|
|
9
|
+
fxPolicy?: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.CollectionSourceDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const MechanismType_1 = require("../enums/MechanismType");
|
|
15
|
+
const CurrencyId_1 = require("../../currency/enums/CurrencyId");
|
|
16
|
+
class CollectionSourceDto {
|
|
17
|
+
}
|
|
18
|
+
exports.CollectionSourceDto = CollectionSourceDto;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsInt)(),
|
|
21
|
+
__metadata("design:type", Number)
|
|
22
|
+
], CollectionSourceDto.prototype, "order", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], CollectionSourceDto.prototype, "wallet", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsEnum)(CurrencyId_1.CurrencyId),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CollectionSourceDto.prototype, "currency", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsEnum)(MechanismType_1.MechanismType),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], CollectionSourceDto.prototype, "mechanism", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], CollectionSourceDto.prototype, "provider", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], CollectionSourceDto.prototype, "fxPolicy", void 0);
|
|
@@ -0,0 +1,29 @@
|
|
|
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.RetryPolicyDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class RetryPolicyDto {
|
|
15
|
+
}
|
|
16
|
+
exports.RetryPolicyDto = RetryPolicyDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsInt)(),
|
|
19
|
+
__metadata("design:type", Number)
|
|
20
|
+
], RetryPolicyDto.prototype, "maxAttempts", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsInt)(),
|
|
23
|
+
__metadata("design:type", Number)
|
|
24
|
+
], RetryPolicyDto.prototype, "backoffSeconds", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
27
|
+
(0, class_validator_1.IsInt)(),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], RetryPolicyDto.prototype, "awaitingWindowDays", void 0);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
2
|
+
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
3
|
+
/**
|
|
4
|
+
* Body de PUT /collection/products/:tenantId/:productId/config.
|
|
5
|
+
* tenantId/productId van en el path, no en el body.
|
|
6
|
+
*/
|
|
7
|
+
export declare class UpsertProductConfigRequest {
|
|
8
|
+
sources: CollectionSourceDto[];
|
|
9
|
+
allowPartial: boolean;
|
|
10
|
+
retryPolicy: RetryPolicyDto;
|
|
11
|
+
reportTargets: string[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.UpsertProductConfigRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const CollectionSourceDto_1 = require("./CollectionSourceDto");
|
|
16
|
+
const RetryPolicyDto_1 = require("./RetryPolicyDto");
|
|
17
|
+
/**
|
|
18
|
+
* Body de PUT /collection/products/:tenantId/:productId/config.
|
|
19
|
+
* tenantId/productId van en el path, no en el body.
|
|
20
|
+
*/
|
|
21
|
+
class UpsertProductConfigRequest {
|
|
22
|
+
}
|
|
23
|
+
exports.UpsertProductConfigRequest = UpsertProductConfigRequest;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsArray)(),
|
|
26
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
27
|
+
(0, class_transformer_1.Type)(() => CollectionSourceDto_1.CollectionSourceDto),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], UpsertProductConfigRequest.prototype, "sources", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsBoolean)(),
|
|
32
|
+
__metadata("design:type", Boolean)
|
|
33
|
+
], UpsertProductConfigRequest.prototype, "allowPartial", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.ValidateNested)(),
|
|
36
|
+
(0, class_transformer_1.Type)(() => RetryPolicyDto_1.RetryPolicyDto),
|
|
37
|
+
__metadata("design:type", RetryPolicyDto_1.RetryPolicyDto)
|
|
38
|
+
], UpsertProductConfigRequest.prototype, "retryPolicy", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsArray)(),
|
|
41
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
42
|
+
__metadata("design:type", Array)
|
|
43
|
+
], UpsertProductConfigRequest.prototype, "reportTargets", void 0);
|
|
@@ -9,3 +9,7 @@ export * from './dtos/RegisterCollectibleRequest';
|
|
|
9
9
|
export * from './dtos/CollectionResultEvent';
|
|
10
10
|
export * from './dtos/AuthorizeCollectionMovementRequest';
|
|
11
11
|
export * from './dtos/AuthorizeCollectionMovementResponse';
|
|
12
|
+
export * from './dtos/RetryPolicyDto';
|
|
13
|
+
export * from './dtos/CollectionSourceDto';
|
|
14
|
+
export * from './dtos/CollectionProductConfigDto';
|
|
15
|
+
export * from './dtos/UpsertProductConfigRequest';
|
package/bin/collection/index.js
CHANGED
|
@@ -27,3 +27,7 @@ __exportStar(require("./dtos/RegisterCollectibleRequest"), exports);
|
|
|
27
27
|
__exportStar(require("./dtos/CollectionResultEvent"), exports);
|
|
28
28
|
__exportStar(require("./dtos/AuthorizeCollectionMovementRequest"), exports);
|
|
29
29
|
__exportStar(require("./dtos/AuthorizeCollectionMovementResponse"), exports);
|
|
30
|
+
__exportStar(require("./dtos/RetryPolicyDto"), exports);
|
|
31
|
+
__exportStar(require("./dtos/CollectionSourceDto"), exports);
|
|
32
|
+
__exportStar(require("./dtos/CollectionProductConfigDto"), exports);
|
|
33
|
+
__exportStar(require("./dtos/UpsertProductConfigRequest"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
|
|
3
|
+
* cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
|
|
4
|
+
* (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
|
|
5
|
+
*/
|
|
6
|
+
export declare class UpdateActivationChecklistRequest {
|
|
7
|
+
downPayment?: boolean;
|
|
8
|
+
contractSigned?: boolean;
|
|
9
|
+
imeiEnrolled?: boolean;
|
|
10
|
+
lockVerified?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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.UpdateActivationChecklistRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
|
|
17
|
+
* cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
|
|
18
|
+
* (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
|
|
19
|
+
*/
|
|
20
|
+
class UpdateActivationChecklistRequest {
|
|
21
|
+
}
|
|
22
|
+
exports.UpdateActivationChecklistRequest = UpdateActivationChecklistRequest;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_transformer_1.Expose)(),
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_validator_1.IsBoolean)(),
|
|
27
|
+
__metadata("design:type", Boolean)
|
|
28
|
+
], UpdateActivationChecklistRequest.prototype, "downPayment", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_transformer_1.Expose)(),
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsBoolean)(),
|
|
33
|
+
__metadata("design:type", Boolean)
|
|
34
|
+
], UpdateActivationChecklistRequest.prototype, "contractSigned", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_transformer_1.Expose)(),
|
|
37
|
+
(0, class_validator_1.IsOptional)(),
|
|
38
|
+
(0, class_validator_1.IsBoolean)(),
|
|
39
|
+
__metadata("design:type", Boolean)
|
|
40
|
+
], UpdateActivationChecklistRequest.prototype, "imeiEnrolled", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_transformer_1.Expose)(),
|
|
43
|
+
(0, class_validator_1.IsOptional)(),
|
|
44
|
+
(0, class_validator_1.IsBoolean)(),
|
|
45
|
+
__metadata("design:type", Boolean)
|
|
46
|
+
], UpdateActivationChecklistRequest.prototype, "lockVerified", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
|
|
3
|
+
* Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
|
|
4
|
+
* un CLIENTE nunca es `ALL`.
|
|
5
|
+
* @enum {string}
|
|
6
|
+
*/
|
|
7
|
+
export declare enum ClientLevelEnum {
|
|
8
|
+
BRONZE = "BRONZE",
|
|
9
|
+
SILVER = "SILVER",
|
|
10
|
+
GOLD = "GOLD"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientLevelEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
|
|
6
|
+
* Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
|
|
7
|
+
* un CLIENTE nunca es `ALL`.
|
|
8
|
+
* @enum {string}
|
|
9
|
+
*/
|
|
10
|
+
var ClientLevelEnum;
|
|
11
|
+
(function (ClientLevelEnum) {
|
|
12
|
+
ClientLevelEnum["BRONZE"] = "BRONZE";
|
|
13
|
+
ClientLevelEnum["SILVER"] = "SILVER";
|
|
14
|
+
ClientLevelEnum["GOLD"] = "GOLD";
|
|
15
|
+
})(ClientLevelEnum || (exports.ClientLevelEnum = ClientLevelEnum = {}));
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SalesReportRun } from '../SalesReportRun';
|
|
2
|
+
/**
|
|
3
|
+
* POST /backoffice/reports/{reportId}/run — el reporte generado, SÍNCRONO.
|
|
4
|
+
* SureKeep Fase 3 — pista Retail.
|
|
5
|
+
*
|
|
6
|
+
* El archivo viaja **en la respuesta**, no por una URL de descarga: el más grande del catálogo son
|
|
7
|
+
* ~96 KB, muy por debajo del límite de 6 MB de payload de Lambda. Eso evita bucket, URL prefirmada y
|
|
8
|
+
* endpoint de descarga para algo que se arma en milisegundos.
|
|
9
|
+
*
|
|
10
|
+
* ⚠️ El contenido puede traer **PII** (nombre del cliente en el reporte por período). Su lectura queda
|
|
11
|
+
* registrada en `PiiAccessLog` igual que las demás pantallas del BO. **Nunca loguear `content`.**
|
|
12
|
+
*
|
|
13
|
+
* Si algún reporte creciera hasta no entrar en la respuesta, el camino es S3 + `downloadUrl` (que ya
|
|
14
|
+
* está en `SalesReportRun`) + estado `QUEUED`: el contrato NO hay que romperlo, ya lo contempla.
|
|
15
|
+
*/
|
|
16
|
+
export interface RunSalesReportResponse {
|
|
17
|
+
/** La corrida registrada en el log, con su estado final y el conteo de filas. */
|
|
18
|
+
run: SalesReportRun;
|
|
19
|
+
/** Nombre sugerido del archivo, ej. `RVL-01_2026-08-03.csv`. */
|
|
20
|
+
filename: string;
|
|
21
|
+
/** Tipo MIME, ej. `text/csv`. */
|
|
22
|
+
contentType: string;
|
|
23
|
+
/** El archivo completo. El front lo baja con un `Blob`. */
|
|
24
|
+
content: string;
|
|
25
|
+
}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Estado de una corrida de reporte.
|
|
3
|
-
* el front poletea el listado. SureKeep Fase 3 — pista Retail.
|
|
2
|
+
* Estado de una corrida de reporte. SureKeep Fase 3 — pista Retail.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* El ciclo real es **`RUNNING → READY | FAILED`, todo dentro de la MISMA llamada**: la generación es
|
|
5
|
+
* SÍNCRONA. Es el mismo patrón del reporte SIC de `credit-worker-business`, que abre la fila en
|
|
6
|
+
* `RUNNING` antes de procesar (`createMetadata`) y la cierra al terminar (`finalizeMetadata`).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Es síncrono porque los volúmenes lo permiten: el reporte más grande del catálogo son **320 filas
|
|
9
|
+
* (~96 KB)** — el propio mockup lo declara. Encolarlo sería infraestructura (worker + cola + bucket)
|
|
10
|
+
* para un archivo que se arma en milisegundos.
|
|
11
|
+
*
|
|
12
|
+
* RUNNING - Generándose. La fila se escribe ANTES de procesar, para que una corrida que muera a
|
|
13
|
+
* mitad deje rastro en vez de desaparecer.
|
|
14
|
+
* READY - Terminó bien. `rowCount` trae las filas generadas.
|
|
11
15
|
* FAILED - Falló; `failureReason` explica por qué.
|
|
16
|
+
* QUEUED - **RESERVADO, hoy no se emite.** Existe para poder volver a asíncrono si algún reporte
|
|
17
|
+
* crece de verdad, **sin romper el contrato del front**: la pantalla ya sabe que un estado
|
|
18
|
+
* intermedio es posible. Sacarlo del enum ahora obligaría a versionar el DTO después.
|
|
12
19
|
*/
|
|
13
20
|
export declare enum ReportRunStatusEnum {
|
|
14
21
|
QUEUED = "QUEUED",
|
|
@@ -2,16 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReportRunStatusEnum = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Estado de una corrida de reporte.
|
|
6
|
-
* el front poletea el listado. SureKeep Fase 3 — pista Retail.
|
|
5
|
+
* Estado de una corrida de reporte. SureKeep Fase 3 — pista Retail.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* El ciclo real es **`RUNNING → READY | FAILED`, todo dentro de la MISMA llamada**: la generación es
|
|
8
|
+
* SÍNCRONA. Es el mismo patrón del reporte SIC de `credit-worker-business`, que abre la fila en
|
|
9
|
+
* `RUNNING` antes de procesar (`createMetadata`) y la cierra al terminar (`finalizeMetadata`).
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* Es síncrono porque los volúmenes lo permiten: el reporte más grande del catálogo son **320 filas
|
|
12
|
+
* (~96 KB)** — el propio mockup lo declara. Encolarlo sería infraestructura (worker + cola + bucket)
|
|
13
|
+
* para un archivo que se arma en milisegundos.
|
|
14
|
+
*
|
|
15
|
+
* RUNNING - Generándose. La fila se escribe ANTES de procesar, para que una corrida que muera a
|
|
16
|
+
* mitad deje rastro en vez de desaparecer.
|
|
17
|
+
* READY - Terminó bien. `rowCount` trae las filas generadas.
|
|
14
18
|
* FAILED - Falló; `failureReason` explica por qué.
|
|
19
|
+
* QUEUED - **RESERVADO, hoy no se emite.** Existe para poder volver a asíncrono si algún reporte
|
|
20
|
+
* crece de verdad, **sin romper el contrato del front**: la pantalla ya sabe que un estado
|
|
21
|
+
* intermedio es posible. Sacarlo del enum ahora obligaría a versionar el DTO después.
|
|
15
22
|
*/
|
|
16
23
|
var ReportRunStatusEnum;
|
|
17
24
|
(function (ReportRunStatusEnum) {
|
|
@@ -90,6 +90,7 @@ export * from './dtos/requests/BackofficeCancelSaleRequest';
|
|
|
90
90
|
export * from './dtos/responses/BackofficeSalesStatsResponse';
|
|
91
91
|
export * from './dtos/responses/BackofficeSalesKpisResponse';
|
|
92
92
|
export * from './dtos/responses/BackofficeReportsResponse';
|
|
93
|
+
export * from './dtos/responses/RunSalesReportResponse';
|
|
93
94
|
export * from './dtos/RetailCustomerListItem';
|
|
94
95
|
export * from './dtos/responses/BackofficeCustomersResponse';
|
|
95
96
|
export * from './dtos/responses/BackofficeCustomerPurchasesResponse';
|
|
@@ -118,6 +118,7 @@ __exportStar(require("./dtos/requests/BackofficeCancelSaleRequest"), exports);
|
|
|
118
118
|
__exportStar(require("./dtos/responses/BackofficeSalesStatsResponse"), exports);
|
|
119
119
|
__exportStar(require("./dtos/responses/BackofficeSalesKpisResponse"), exports);
|
|
120
120
|
__exportStar(require("./dtos/responses/BackofficeReportsResponse"), exports);
|
|
121
|
+
__exportStar(require("./dtos/responses/RunSalesReportResponse"), exports);
|
|
121
122
|
// A1-A4 · agregados del portal (D17)
|
|
122
123
|
__exportStar(require("./dtos/RetailCustomerListItem"), exports);
|
|
123
124
|
__exportStar(require("./dtos/responses/BackofficeCustomersResponse"), exports);
|
|
@@ -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.CancelFundingReferenceRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CancelFundingReferenceRequest {
|
|
15
|
+
}
|
|
16
|
+
exports.CancelFundingReferenceRequest = CancelFundingReferenceRequest;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
19
|
+
(0, class_validator_1.MaxLength)(64),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], CancelFundingReferenceRequest.prototype, "reference", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
(0, class_validator_1.MaxLength)(64),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], CancelFundingReferenceRequest.prototype, "directoryId", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.MaxLength)(64),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], CancelFundingReferenceRequest.prototype, "idempotencyKey", void 0);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
|
|
2
|
+
import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
|
|
3
|
+
export declare class CancelFundingReferenceResponse {
|
|
4
|
+
reference: string;
|
|
5
|
+
status: BenefitPaymentStatusEnum;
|
|
6
|
+
errorCode?: WalletFundingErrorCodeEnum;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request del cancel via Centro de Beneficios (spec 13 v2.0).
|
|
3
|
+
* `reference` viaja en el path, `directoryId` se resuelve del JWT.
|
|
4
|
+
* `providerModuleName` permite al marketplace rutear al publisher correcto
|
|
5
|
+
* sin tener que persistir el mapping (el wallet-app sabe el moduleName
|
|
6
|
+
* porque vino en la respuesta del authorize).
|
|
7
|
+
*/
|
|
8
|
+
export declare class CancelFundingRequest {
|
|
9
|
+
idempotencyKey: string;
|
|
10
|
+
providerModuleName: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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.CancelFundingRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
/**
|
|
15
|
+
* Request del cancel via Centro de Beneficios (spec 13 v2.0).
|
|
16
|
+
* `reference` viaja en el path, `directoryId` se resuelve del JWT.
|
|
17
|
+
* `providerModuleName` permite al marketplace rutear al publisher correcto
|
|
18
|
+
* sin tener que persistir el mapping (el wallet-app sabe el moduleName
|
|
19
|
+
* porque vino en la respuesta del authorize).
|
|
20
|
+
*/
|
|
21
|
+
class CancelFundingRequest {
|
|
22
|
+
}
|
|
23
|
+
exports.CancelFundingRequest = CancelFundingRequest;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
(0, class_validator_1.MaxLength)(64),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], CancelFundingRequest.prototype, "idempotencyKey", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, class_validator_1.IsString)(),
|
|
31
|
+
(0, class_validator_1.MaxLength)(128),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], CancelFundingRequest.prototype, "providerModuleName", void 0);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
|
|
2
|
+
import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
|
|
3
|
+
/**
|
|
4
|
+
* Response del cancel via Centro de Beneficios (spec 13 v2.0).
|
|
5
|
+
* `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
|
|
6
|
+
* REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
|
|
7
|
+
* (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CancelFundingResponse {
|
|
10
|
+
reference: string;
|
|
11
|
+
status: BenefitPaymentStatusEnum;
|
|
12
|
+
errorCode?: WalletFundingErrorCodeEnum;
|
|
13
|
+
message?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CancelFundingResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Response del cancel via Centro de Beneficios (spec 13 v2.0).
|
|
6
|
+
* `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
|
|
7
|
+
* REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
|
|
8
|
+
* (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
|
|
9
|
+
*/
|
|
10
|
+
class CancelFundingResponse {
|
|
11
|
+
}
|
|
12
|
+
exports.CancelFundingResponse = CancelFundingResponse;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.CancelWalletFundingRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CancelWalletFundingRequest {
|
|
15
|
+
}
|
|
16
|
+
exports.CancelWalletFundingRequest = CancelWalletFundingRequest;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
19
|
+
(0, class_validator_1.MaxLength)(64),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], CancelWalletFundingRequest.prototype, "idempotencyKey", void 0);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
|
|
2
|
+
import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
|
|
3
|
+
export declare class CancelWalletFundingResponse {
|
|
4
|
+
status: BenefitPaymentStatusEnum;
|
|
5
|
+
errorCode?: WalletFundingErrorCodeEnum;
|
|
6
|
+
reference?: string;
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IsString, IsInt, IsArray, IsBoolean, ValidateNested } from 'class-validator';
|
|
2
|
+
import { Type } from 'class-transformer';
|
|
3
|
+
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
4
|
+
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
5
|
+
|
|
6
|
+
export class CollectionProductConfigDto {
|
|
7
|
+
@IsString() tenantId!: string;
|
|
8
|
+
@IsString() productId!: string;
|
|
9
|
+
@IsInt() version!: number;
|
|
10
|
+
@IsArray() @ValidateNested({ each: true }) @Type(() => CollectionSourceDto) sources!: CollectionSourceDto[];
|
|
11
|
+
@IsBoolean() allowPartial!: boolean;
|
|
12
|
+
@ValidateNested() @Type(() => RetryPolicyDto) retryPolicy!: RetryPolicyDto;
|
|
13
|
+
@IsArray() @IsString({ each: true }) reportTargets!: string[];
|
|
14
|
+
@IsString() createdBy!: string;
|
|
15
|
+
@IsString() updatedBy!: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IsString, IsInt, IsEnum, IsOptional } from 'class-validator';
|
|
2
|
+
import { MechanismType } from '../enums/MechanismType';
|
|
3
|
+
import { CurrencyId } from '../../currency/enums/CurrencyId';
|
|
4
|
+
|
|
5
|
+
export class CollectionSourceDto {
|
|
6
|
+
@IsInt() order!: number;
|
|
7
|
+
@IsString() wallet!: string;
|
|
8
|
+
@IsEnum(CurrencyId) currency!: CurrencyId;
|
|
9
|
+
@IsEnum(MechanismType) mechanism!: MechanismType;
|
|
10
|
+
@IsString() provider!: string;
|
|
11
|
+
@IsOptional() @IsString() fxPolicy?: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IsString, IsArray, IsBoolean, ValidateNested } from 'class-validator';
|
|
2
|
+
import { Type } from 'class-transformer';
|
|
3
|
+
import { CollectionSourceDto } from './CollectionSourceDto';
|
|
4
|
+
import { RetryPolicyDto } from './RetryPolicyDto';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Body de PUT /collection/products/:tenantId/:productId/config.
|
|
8
|
+
* tenantId/productId van en el path, no en el body.
|
|
9
|
+
*/
|
|
10
|
+
export class UpsertProductConfigRequest {
|
|
11
|
+
@IsArray() @ValidateNested({ each: true }) @Type(() => CollectionSourceDto) sources!: CollectionSourceDto[];
|
|
12
|
+
@IsBoolean() allowPartial!: boolean;
|
|
13
|
+
@ValidateNested() @Type(() => RetryPolicyDto) retryPolicy!: RetryPolicyDto;
|
|
14
|
+
@IsArray() @IsString({ each: true }) reportTargets!: string[];
|
|
15
|
+
}
|
package/src/collection/index.ts
CHANGED
|
@@ -12,3 +12,7 @@ export * from './dtos/RegisterCollectibleRequest';
|
|
|
12
12
|
export * from './dtos/CollectionResultEvent';
|
|
13
13
|
export * from './dtos/AuthorizeCollectionMovementRequest';
|
|
14
14
|
export * from './dtos/AuthorizeCollectionMovementResponse';
|
|
15
|
+
export * from './dtos/RetryPolicyDto';
|
|
16
|
+
export * from './dtos/CollectionSourceDto';
|
|
17
|
+
export * from './dtos/CollectionProductConfigDto';
|
|
18
|
+
export * from './dtos/UpsertProductConfigRequest';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SalesReportRun } from '../SalesReportRun';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* POST /backoffice/reports/{reportId}/run — el reporte generado, SÍNCRONO.
|
|
5
|
+
* SureKeep Fase 3 — pista Retail.
|
|
6
|
+
*
|
|
7
|
+
* El archivo viaja **en la respuesta**, no por una URL de descarga: el más grande del catálogo son
|
|
8
|
+
* ~96 KB, muy por debajo del límite de 6 MB de payload de Lambda. Eso evita bucket, URL prefirmada y
|
|
9
|
+
* endpoint de descarga para algo que se arma en milisegundos.
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ El contenido puede traer **PII** (nombre del cliente en el reporte por período). Su lectura queda
|
|
12
|
+
* registrada en `PiiAccessLog` igual que las demás pantallas del BO. **Nunca loguear `content`.**
|
|
13
|
+
*
|
|
14
|
+
* Si algún reporte creciera hasta no entrar en la respuesta, el camino es S3 + `downloadUrl` (que ya
|
|
15
|
+
* está en `SalesReportRun`) + estado `QUEUED`: el contrato NO hay que romperlo, ya lo contempla.
|
|
16
|
+
*/
|
|
17
|
+
export interface RunSalesReportResponse {
|
|
18
|
+
/** La corrida registrada en el log, con su estado final y el conteo de filas. */
|
|
19
|
+
run: SalesReportRun;
|
|
20
|
+
/** Nombre sugerido del archivo, ej. `RVL-01_2026-08-03.csv`. */
|
|
21
|
+
filename: string;
|
|
22
|
+
/** Tipo MIME, ej. `text/csv`. */
|
|
23
|
+
contentType: string;
|
|
24
|
+
/** El archivo completo. El front lo baja con un `Blob`. */
|
|
25
|
+
content: string;
|
|
26
|
+
}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Estado de una corrida de reporte.
|
|
3
|
-
* el front poletea el listado. SureKeep Fase 3 — pista Retail.
|
|
2
|
+
* Estado de una corrida de reporte. SureKeep Fase 3 — pista Retail.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* El ciclo real es **`RUNNING → READY | FAILED`, todo dentro de la MISMA llamada**: la generación es
|
|
5
|
+
* SÍNCRONA. Es el mismo patrón del reporte SIC de `credit-worker-business`, que abre la fila en
|
|
6
|
+
* `RUNNING` antes de procesar (`createMetadata`) y la cierra al terminar (`finalizeMetadata`).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* Es síncrono porque los volúmenes lo permiten: el reporte más grande del catálogo son **320 filas
|
|
9
|
+
* (~96 KB)** — el propio mockup lo declara. Encolarlo sería infraestructura (worker + cola + bucket)
|
|
10
|
+
* para un archivo que se arma en milisegundos.
|
|
11
|
+
*
|
|
12
|
+
* RUNNING - Generándose. La fila se escribe ANTES de procesar, para que una corrida que muera a
|
|
13
|
+
* mitad deje rastro en vez de desaparecer.
|
|
14
|
+
* READY - Terminó bien. `rowCount` trae las filas generadas.
|
|
11
15
|
* FAILED - Falló; `failureReason` explica por qué.
|
|
16
|
+
* QUEUED - **RESERVADO, hoy no se emite.** Existe para poder volver a asíncrono si algún reporte
|
|
17
|
+
* crece de verdad, **sin romper el contrato del front**: la pantalla ya sabe que un estado
|
|
18
|
+
* intermedio es posible. Sacarlo del enum ahora obligaría a versionar el DTO después.
|
|
12
19
|
*/
|
|
13
20
|
export enum ReportRunStatusEnum {
|
|
14
21
|
QUEUED = 'QUEUED',
|
|
@@ -112,6 +112,7 @@ export * from './dtos/requests/BackofficeCancelSaleRequest';
|
|
|
112
112
|
export * from './dtos/responses/BackofficeSalesStatsResponse';
|
|
113
113
|
export * from './dtos/responses/BackofficeSalesKpisResponse';
|
|
114
114
|
export * from './dtos/responses/BackofficeReportsResponse';
|
|
115
|
+
export * from './dtos/responses/RunSalesReportResponse';
|
|
115
116
|
// A1-A4 · agregados del portal (D17)
|
|
116
117
|
export * from './dtos/RetailCustomerListItem';
|
|
117
118
|
export * from './dtos/responses/BackofficeCustomersResponse';
|