@fiado/type-kit 3.143.0 → 3.145.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/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +7 -0
- package/bin/{platformRbac/dtos/ResendSelfRegisterOtpRequest.js → cognitoBackofficeConnector/dtos/MfaPoolConfig.js} +18 -18
- package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +20 -0
- package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +11 -0
- package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +4 -0
- package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +6 -0
- package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +17 -0
- package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +39 -0
- package/bin/group/dtos/GroupCountsResponse.d.ts +11 -0
- package/bin/group/dtos/GroupCountsResponse.js +11 -0
- package/bin/group/index.d.ts +1 -0
- package/bin/group/index.js +2 -0
- package/bin/index.d.ts +1 -0
- package/bin/index.js +3 -2
- package/bin/rbac/enums/PoolKind.d.ts +16 -0
- package/bin/rbac/enums/PoolKind.js +20 -0
- package/bin/rbac/index.d.ts +1 -0
- package/bin/rbac/index.js +17 -0
- package/bin/remittance/dtos/RemittanceSegment.d.ts +80 -0
- package/bin/remittance/dtos/RemittanceSegment.js +122 -0
- package/bin/remittance/dtos/index.d.ts +1 -0
- package/bin/remittance/dtos/index.js +1 -0
- package/bin/remittance/dtos/internal/RemittanceSegmentMetrics.d.ts +17 -0
- package/bin/remittance/dtos/internal/RemittanceSegmentMetrics.js +31 -0
- package/bin/remittance/enums/SegmentMemberType.d.ts +8 -0
- package/bin/remittance/enums/SegmentMemberType.js +12 -0
- package/bin/remittance/enums/index.d.ts +1 -0
- package/bin/remittance/enums/index.js +1 -0
- package/bin/remittance/index.d.ts +1 -0
- package/bin/remittance/index.js +1 -0
- package/bin/userTags/dtos/TagsByDirectoriesRequest.d.ts +4 -0
- package/bin/userTags/dtos/TagsByDirectoriesRequest.js +22 -0
- package/bin/userTags/dtos/TagsByDirectoriesResponse.d.ts +7 -0
- package/bin/userTags/dtos/TagsByDirectoriesResponse.js +10 -0
- package/bin/userTags/dtos/TagsSummaryResponse.d.ts +9 -0
- package/bin/userTags/dtos/TagsSummaryResponse.js +11 -0
- package/bin/userTags/index.d.ts +3 -0
- package/bin/userTags/index.js +20 -0
- package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +5 -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/{platformRbac/dtos/ResendOtpRequest.js → walletFunding/dtos/CancelFundingRequest.js} +13 -16
- 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/group/dtos/GroupCountsResponse.ts +12 -0
- package/src/group/index.ts +3 -0
- package/src/index.ts +1 -0
- package/src/remittance/dtos/RemittanceSegment.ts +132 -0
- package/src/remittance/dtos/index.ts +1 -0
- package/src/remittance/dtos/internal/RemittanceSegmentMetrics.ts +22 -0
- package/src/remittance/enums/SegmentMemberType.ts +8 -0
- package/src/remittance/enums/index.ts +1 -0
- package/src/remittance/index.ts +1 -0
- package/src/userTags/dtos/TagsByDirectoriesRequest.ts +8 -0
- package/src/userTags/dtos/TagsByDirectoriesResponse.ts +7 -0
- package/src/userTags/dtos/TagsSummaryResponse.ts +10 -0
- package/src/userTags/index.ts +4 -0
- package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
|
@@ -0,0 +1,22 @@
|
|
|
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.TagsByDirectoriesRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
/** Request de POST tags/by-directories (privado, onboarding-business). */
|
|
15
|
+
class TagsByDirectoriesRequest {
|
|
16
|
+
}
|
|
17
|
+
exports.TagsByDirectoriesRequest = TagsByDirectoriesRequest;
|
|
18
|
+
__decorate([
|
|
19
|
+
(0, class_validator_1.IsArray)(),
|
|
20
|
+
(0, class_validator_1.IsUUID)("4", { each: true }),
|
|
21
|
+
__metadata("design:type", Array)
|
|
22
|
+
], TagsByDirectoriesRequest.prototype, "directoryIds", void 0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagsByDirectoriesResponse = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tags por usuario para un batch de directoryIds. Ids sin tags → `[]`
|
|
6
|
+
* (siempre presentes en el mapa, para que el consumidor no distinga ausencia).
|
|
7
|
+
*/
|
|
8
|
+
class TagsByDirectoriesResponse {
|
|
9
|
+
}
|
|
10
|
+
exports.TagsByDirectoriesResponse = TagsByDirectoriesResponse;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Un tag operativo con su # de asignaciones en UserTags_GT (membresía Fiado-wide). */
|
|
2
|
+
export declare class TagSummaryItem {
|
|
3
|
+
tag: string;
|
|
4
|
+
count: number;
|
|
5
|
+
}
|
|
6
|
+
/** Response de GET tags/summary (privado, onboarding-business). Orden: count desc. */
|
|
7
|
+
export declare class TagsSummaryResponse {
|
|
8
|
+
items: TagSummaryItem[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagsSummaryResponse = exports.TagSummaryItem = void 0;
|
|
4
|
+
/** Un tag operativo con su # de asignaciones en UserTags_GT (membresía Fiado-wide). */
|
|
5
|
+
class TagSummaryItem {
|
|
6
|
+
}
|
|
7
|
+
exports.TagSummaryItem = TagSummaryItem;
|
|
8
|
+
/** Response de GET tags/summary (privado, onboarding-business). Orden: count desc. */
|
|
9
|
+
class TagsSummaryResponse {
|
|
10
|
+
}
|
|
11
|
+
exports.TagsSummaryResponse = TagsSummaryResponse;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
//dtos
|
|
18
|
+
__exportStar(require("./dtos/TagsSummaryResponse"), exports);
|
|
19
|
+
__exportStar(require("./dtos/TagsByDirectoriesRequest"), exports);
|
|
20
|
+
__exportStar(require("./dtos/TagsByDirectoriesResponse"), 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, "fundingId", 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
|
+
fundingId: 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
|
+
* `fundingId` 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
|
+
}
|
package/bin/{platformRbac/dtos/ResendOtpRequest.js → walletFunding/dtos/CancelFundingRequest.js}
RENAMED
|
@@ -9,28 +9,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
12
|
+
exports.CancelFundingRequest = void 0;
|
|
14
13
|
const class_validator_1 = require("class-validator");
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
15
|
+
* Request del cancel via Centro de Beneficios (spec 13 v2.0).
|
|
16
|
+
* `fundingId` 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).
|
|
21
20
|
*/
|
|
22
|
-
class
|
|
21
|
+
class CancelFundingRequest {
|
|
23
22
|
}
|
|
24
|
-
exports.
|
|
23
|
+
exports.CancelFundingRequest = CancelFundingRequest;
|
|
25
24
|
__decorate([
|
|
26
|
-
(0,
|
|
27
|
-
(0, class_validator_1.
|
|
28
|
-
(0, class_validator_1.IsNotEmpty)(),
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
(0, class_validator_1.MaxLength)(64),
|
|
29
27
|
__metadata("design:type", String)
|
|
30
|
-
],
|
|
28
|
+
], CancelFundingRequest.prototype, "idempotencyKey", void 0);
|
|
31
29
|
__decorate([
|
|
32
|
-
(0, class_transformer_1.Expose)(),
|
|
33
30
|
(0, class_validator_1.IsString)(),
|
|
34
|
-
(0, class_validator_1.
|
|
31
|
+
(0, class_validator_1.MaxLength)(128),
|
|
35
32
|
__metadata("design:type", String)
|
|
36
|
-
],
|
|
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
|
+
fundingId: 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
|
+
fundingId?: string;
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Grupo con su # de miembros (relaciones DIRECTORY en GroupDirectoryRelations_GT). */
|
|
2
|
+
export class GroupCountItem {
|
|
3
|
+
id!: string;
|
|
4
|
+
name!: string;
|
|
5
|
+
status!: string;
|
|
6
|
+
memberCount!: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** Response de GET groups/counts (privado, fiado-group-business). */
|
|
10
|
+
export class GroupCountsResponse {
|
|
11
|
+
items!: GroupCountItem[];
|
|
12
|
+
}
|
package/src/group/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * as Directory from './directory';
|
|
|
14
14
|
export * as ExchangeRate from './exchangeRate';
|
|
15
15
|
export * as File from './identity';
|
|
16
16
|
export * as Group from './group';
|
|
17
|
+
export * as UserTags from './userTags';
|
|
17
18
|
export * as Identity from './provider';
|
|
18
19
|
export * as Header from './header';
|
|
19
20
|
export * as ServicePayment from './servicePayment';
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Type } from "class-transformer";
|
|
2
|
+
import {
|
|
3
|
+
IsArray,
|
|
4
|
+
IsEnum,
|
|
5
|
+
IsOptional,
|
|
6
|
+
IsString,
|
|
7
|
+
IsUUID,
|
|
8
|
+
Length,
|
|
9
|
+
ValidateNested,
|
|
10
|
+
} from "class-validator";
|
|
11
|
+
import { SegmentMemberType } from "../enums/SegmentMemberType";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* DTOs de Segmentos (Dashboard Ops · Configuración §2, EP-22..25 + catalog + search).
|
|
15
|
+
*
|
|
16
|
+
* Un segmento es una colección EXPLÍCITA de clientes: referencias a grupos
|
|
17
|
+
* (Group_GT) y tags (UserTags_GT) por id + individuos (override por cliente).
|
|
18
|
+
* Dueño de la tabla: remittance-business (RemittanceSegments_GT).
|
|
19
|
+
*
|
|
20
|
+
* "Clientes" del segmento = intersección con RemittanceUsers_GT (usuarios de
|
|
21
|
+
* remesas que caen en el segmento), NO la membresía Fiado-wide del picker.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/** Referencia de composición: un grupo (Group_GT.id) o un tag (UserTags_GT.tag). */
|
|
25
|
+
export class SegmentMember {
|
|
26
|
+
@IsEnum(SegmentMemberType)
|
|
27
|
+
type!: SegmentMemberType;
|
|
28
|
+
|
|
29
|
+
/** Group_GT.id (p. ej. "CELULARES") o el tag (p. ej. "VIPS"). */
|
|
30
|
+
@IsString()
|
|
31
|
+
@Length(1, 100)
|
|
32
|
+
id!: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Individuo agregado explícitamente (la llave es directoryId; peopleId informativo). */
|
|
36
|
+
export class SegmentIndividual {
|
|
37
|
+
@IsUUID("4")
|
|
38
|
+
directoryId!: string;
|
|
39
|
+
|
|
40
|
+
@IsOptional()
|
|
41
|
+
@IsUUID("4")
|
|
42
|
+
peopleId?: string;
|
|
43
|
+
|
|
44
|
+
/** Snapshot de display (se pinta sin lookup). */
|
|
45
|
+
@IsString()
|
|
46
|
+
@Length(1, 200)
|
|
47
|
+
name!: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Body de EP-23 POST /backoffice/config/segments. */
|
|
51
|
+
export class CreateSegmentRequest {
|
|
52
|
+
@IsString()
|
|
53
|
+
@Length(3, 100)
|
|
54
|
+
name!: string;
|
|
55
|
+
|
|
56
|
+
@IsArray()
|
|
57
|
+
@ValidateNested({ each: true })
|
|
58
|
+
@Type(() => SegmentMember)
|
|
59
|
+
members!: SegmentMember[];
|
|
60
|
+
|
|
61
|
+
@IsArray()
|
|
62
|
+
@ValidateNested({ each: true })
|
|
63
|
+
@Type(() => SegmentIndividual)
|
|
64
|
+
individuals!: SegmentIndividual[];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
|
|
68
|
+
export class UpdateSegmentRequest {
|
|
69
|
+
@IsString()
|
|
70
|
+
@Length(3, 100)
|
|
71
|
+
name!: string;
|
|
72
|
+
|
|
73
|
+
@IsArray()
|
|
74
|
+
@ValidateNested({ each: true })
|
|
75
|
+
@Type(() => SegmentMember)
|
|
76
|
+
members!: SegmentMember[];
|
|
77
|
+
|
|
78
|
+
@IsArray()
|
|
79
|
+
@ValidateNested({ each: true })
|
|
80
|
+
@Type(() => SegmentIndividual)
|
|
81
|
+
individuals!: SegmentIndividual[];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Segmento completo (response). Métricas null = nunca calculadas. */
|
|
85
|
+
export class Segment {
|
|
86
|
+
id!: string;
|
|
87
|
+
name!: string;
|
|
88
|
+
/** true solo en ESTANDAR (catch-all: composición bloqueada, no eliminable). */
|
|
89
|
+
isDefault!: boolean;
|
|
90
|
+
members!: SegmentMember[];
|
|
91
|
+
individuals!: SegmentIndividual[];
|
|
92
|
+
/** # de RemittanceUsers en el segmento (intersección con remesas). */
|
|
93
|
+
clientCount!: number | null;
|
|
94
|
+
/** Σ amountUSD del mes calendario de esos users (sin CANCELLED/REFUND). */
|
|
95
|
+
volMonthUSD!: number | null;
|
|
96
|
+
lastCalculatedAt!: string | null;
|
|
97
|
+
createdAt!: string;
|
|
98
|
+
updatedAt!: string;
|
|
99
|
+
createdBy!: string;
|
|
100
|
+
updatedBy!: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Response de EP-22 GET /backoffice/config/segments. */
|
|
104
|
+
export class SegmentListResponse {
|
|
105
|
+
items!: Segment[];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Response de POST /backoffice/config/segments/{id}/recalcular. */
|
|
109
|
+
export class RecalculateSegmentResponse {
|
|
110
|
+
id!: string;
|
|
111
|
+
clientCount!: number;
|
|
112
|
+
volMonthUSD!: number;
|
|
113
|
+
lastCalculatedAt!: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Item del picker DISPONIBLES (EP-32 catalog). `count` = membresía Fiado-wide. */
|
|
117
|
+
export class SegmentCatalogItem {
|
|
118
|
+
type!: SegmentMemberType;
|
|
119
|
+
id!: string;
|
|
120
|
+
name!: string;
|
|
121
|
+
count!: number;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** Response de GET /backoffice/config/segments/catalog. */
|
|
125
|
+
export class SegmentCatalogResponse {
|
|
126
|
+
items!: SegmentCatalogItem[];
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/** Response de GET /backoffice/config/segments/search-individual?q= (cap 20). */
|
|
130
|
+
export class SearchIndividualResponse {
|
|
131
|
+
items!: SegmentIndividual[];
|
|
132
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IsArray, IsUUID } from "class-validator";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Contrato interno de métricas de un segmento (puente Opción A):
|
|
5
|
+
* remittance-business resuelve la membresía (subconjunto de RemittanceUsers que
|
|
6
|
+
* caen en el segmento) y el uniteller-connector (dueño de las tx) devuelve el
|
|
7
|
+
* conteo validado + volumen del mes. Vía api-invoker →
|
|
8
|
+
* POST /backoffice/config/segments/metrics (privado).
|
|
9
|
+
*/
|
|
10
|
+
export class SegmentMetricsRequest {
|
|
11
|
+
/** Subconjunto ya resuelto por rb. `[]` → { clientCount: 0, volMonthUSD: 0 }. */
|
|
12
|
+
@IsArray()
|
|
13
|
+
@IsUUID("4", { each: true })
|
|
14
|
+
directoryIds!: string[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class SegmentMetricsResponse {
|
|
18
|
+
/** ids del request que SÍ existen en RemittanceUsers_GT. */
|
|
19
|
+
clientCount!: number;
|
|
20
|
+
/** Σ amountUSD del mes calendario corriente (UTC) de esos users, sin CANCELLED/REFUND. */
|
|
21
|
+
volMonthUSD!: number;
|
|
22
|
+
}
|
package/src/remittance/index.ts
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Un tag operativo con su # de asignaciones en UserTags_GT (membresía Fiado-wide). */
|
|
2
|
+
export class TagSummaryItem {
|
|
3
|
+
tag!: string;
|
|
4
|
+
count!: number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/** Response de GET tags/summary (privado, onboarding-business). Orden: count desc. */
|
|
8
|
+
export class TagsSummaryResponse {
|
|
9
|
+
items!: TagSummaryItem[];
|
|
10
|
+
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { MfaMethodEnum } from '../enums/MfaMethodEnum';
|
|
2
|
-
/**
|
|
3
|
-
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
4
|
-
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
5
|
-
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
6
|
-
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
7
|
-
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
8
|
-
*/
|
|
9
|
-
export declare class ResendOtpRequest {
|
|
10
|
-
email: string;
|
|
11
|
-
tenantId: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Respuesta del resend-otp. `session`/`mfaMethod` frescos del nuevo challenge CUSTOM_AUTH.
|
|
15
|
-
* Plain sin validators (no validamos lo que mandamos al cliente — fiado-validation-and-dtos § 7).
|
|
16
|
-
* Ambos opcionales: en los caminos de rechazo silencioso (anti-enumeración) o ramas sin CUSTOM_AUTH
|
|
17
|
-
* el server responde 200 genérico sin session ni método.
|
|
18
|
-
*/
|
|
19
|
-
export interface ResendOtpResponse {
|
|
20
|
-
session?: string;
|
|
21
|
-
mfaMethod?: MfaMethodEnum;
|
|
22
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
3
|
-
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
4
|
-
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
5
|
-
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
6
|
-
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
7
|
-
*/
|
|
8
|
-
export declare class ResendSelfRegisterOtpRequest {
|
|
9
|
-
tenantId: string;
|
|
10
|
-
email: string;
|
|
11
|
-
}
|