@fiado/type-kit 3.144.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.
Files changed (66) hide show
  1. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +7 -0
  2. package/bin/{platformRbac/dtos/ResendSelfRegisterOtpRequest.js → cognitoBackofficeConnector/dtos/MfaPoolConfig.js} +18 -18
  3. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +20 -0
  4. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +11 -0
  5. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +4 -0
  6. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +6 -0
  7. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +17 -0
  8. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +39 -0
  9. package/bin/group/dtos/GroupCountsResponse.d.ts +11 -0
  10. package/bin/group/dtos/GroupCountsResponse.js +11 -0
  11. package/bin/group/index.d.ts +1 -0
  12. package/bin/group/index.js +2 -0
  13. package/bin/index.d.ts +1 -0
  14. package/bin/index.js +3 -2
  15. package/bin/rbac/enums/PoolKind.d.ts +16 -0
  16. package/bin/rbac/enums/PoolKind.js +20 -0
  17. package/bin/rbac/index.d.ts +1 -0
  18. package/bin/rbac/index.js +17 -0
  19. package/bin/remittance/dtos/RemittanceSegment.d.ts +80 -0
  20. package/bin/remittance/dtos/RemittanceSegment.js +122 -0
  21. package/bin/remittance/dtos/index.d.ts +1 -0
  22. package/bin/remittance/dtos/index.js +1 -0
  23. package/bin/remittance/dtos/internal/RemittanceSegmentMetrics.d.ts +17 -0
  24. package/bin/remittance/dtos/internal/RemittanceSegmentMetrics.js +31 -0
  25. package/bin/remittance/enums/SegmentMemberType.d.ts +8 -0
  26. package/bin/remittance/enums/SegmentMemberType.js +12 -0
  27. package/bin/remittance/enums/index.d.ts +1 -0
  28. package/bin/remittance/enums/index.js +1 -0
  29. package/bin/remittance/index.d.ts +1 -0
  30. package/bin/remittance/index.js +1 -0
  31. package/bin/userTags/dtos/TagsByDirectoriesRequest.d.ts +4 -0
  32. package/bin/userTags/dtos/TagsByDirectoriesRequest.js +22 -0
  33. package/bin/userTags/dtos/TagsByDirectoriesResponse.d.ts +7 -0
  34. package/bin/userTags/dtos/TagsByDirectoriesResponse.js +10 -0
  35. package/bin/userTags/dtos/TagsSummaryResponse.d.ts +9 -0
  36. package/bin/userTags/dtos/TagsSummaryResponse.js +11 -0
  37. package/bin/userTags/index.d.ts +3 -0
  38. package/bin/userTags/index.js +20 -0
  39. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +5 -0
  40. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +31 -0
  41. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +7 -0
  42. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +6 -0
  43. package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +11 -0
  44. package/bin/{platformRbac/dtos/ResendOtpRequest.js → walletFunding/dtos/CancelFundingRequest.js} +13 -16
  45. package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +14 -0
  46. package/bin/walletFunding/dtos/CancelFundingResponse.js +12 -0
  47. package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +3 -0
  48. package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +21 -0
  49. package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +7 -0
  50. package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +6 -0
  51. package/package.json +1 -1
  52. package/src/group/dtos/GroupCountsResponse.ts +12 -0
  53. package/src/group/index.ts +3 -0
  54. package/src/index.ts +1 -0
  55. package/src/remittance/dtos/RemittanceSegment.ts +132 -0
  56. package/src/remittance/dtos/index.ts +1 -0
  57. package/src/remittance/dtos/internal/RemittanceSegmentMetrics.ts +22 -0
  58. package/src/remittance/enums/SegmentMemberType.ts +8 -0
  59. package/src/remittance/enums/index.ts +1 -0
  60. package/src/remittance/index.ts +1 -0
  61. package/src/userTags/dtos/TagsByDirectoriesRequest.ts +8 -0
  62. package/src/userTags/dtos/TagsByDirectoriesResponse.ts +7 -0
  63. package/src/userTags/dtos/TagsSummaryResponse.ts +10 -0
  64. package/src/userTags/index.ts +4 -0
  65. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
  66. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
@@ -0,0 +1,7 @@
1
+ declare const ALLOWED_MFA_TYPES: readonly ["SOFTWARE_TOKEN_MFA"];
2
+ export type AllowedMfaType = (typeof ALLOWED_MFA_TYPES)[number];
3
+ export declare class MfaPoolConfig {
4
+ requireMfa: boolean;
5
+ mfaTypes: AllowedMfaType[];
6
+ }
7
+ export {};
@@ -9,28 +9,28 @@ 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.ResendSelfRegisterOtpRequest = void 0;
12
+ exports.MfaPoolConfig = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
- /**
16
- * Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
17
- * Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
18
- * `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
19
- * server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
20
- * scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
21
- */
22
- class ResendSelfRegisterOtpRequest {
15
+ const MfaTypesRequiresOne_1 = require("../validators/MfaTypesRequiresOne");
16
+ // EMAIL_OTP removido (3.41.0): el cognito-backoffice-connector no provisiona
17
+ // EmailMfaConfiguration a nivel pool (requiere infra SES que no está montada
18
+ // y la integración con messages-lambda aún no tiene diseño). Ver TD-020 +
19
+ // DEC-001 en cognito-backoffice-connector/docs/. Si se reintroduce, agregar
20
+ // 'EMAIL_OTP' a este array.
21
+ const ALLOWED_MFA_TYPES = ['SOFTWARE_TOKEN_MFA'];
22
+ class MfaPoolConfig {
23
23
  }
24
- exports.ResendSelfRegisterOtpRequest = ResendSelfRegisterOtpRequest;
24
+ exports.MfaPoolConfig = MfaPoolConfig;
25
25
  __decorate([
26
26
  (0, class_transformer_1.Expose)(),
27
- (0, class_validator_1.IsString)(),
28
- (0, class_validator_1.IsNotEmpty)(),
29
- __metadata("design:type", String)
30
- ], ResendSelfRegisterOtpRequest.prototype, "tenantId", void 0);
27
+ (0, class_validator_1.IsBoolean)(),
28
+ __metadata("design:type", Boolean)
29
+ ], MfaPoolConfig.prototype, "requireMfa", void 0);
31
30
  __decorate([
32
31
  (0, class_transformer_1.Expose)(),
33
- (0, class_validator_1.IsEmail)(),
34
- (0, class_validator_1.IsNotEmpty)(),
35
- __metadata("design:type", String)
36
- ], ResendSelfRegisterOtpRequest.prototype, "email", void 0);
32
+ (0, class_validator_1.IsArray)(),
33
+ (0, class_validator_1.IsIn)(ALLOWED_MFA_TYPES, { each: true }),
34
+ (0, class_validator_1.Validate)(MfaTypesRequiresOne_1.MfaTypesRequiresOne),
35
+ __metadata("design:type", Array)
36
+ ], MfaPoolConfig.prototype, "mfaTypes", void 0);
@@ -0,0 +1,20 @@
1
+ import { PoolKind } from '../../rbac/enums/PoolKind';
2
+ /**
3
+ * Shape del `PoolConfigRow` expuesto al caller (BFF M18 / otros lambdas Fiado).
4
+ * Refleja la configuración de un Cognito User Pool registrado en la tabla
5
+ * `PoolConfigs_GT` del lambda `cognito-backoffice-connector`.
6
+ */
7
+ export declare class PoolConfigResponse {
8
+ userPoolId: string;
9
+ userPoolArn: string;
10
+ region: string;
11
+ poolKind: PoolKind;
12
+ displayName: string;
13
+ appClients: Record<string, {
14
+ clientId: string;
15
+ clientName: string;
16
+ }>;
17
+ status: 'active' | 'deprecated';
18
+ createdAt: number;
19
+ updatedAt: number;
20
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolConfigResponse = void 0;
4
+ /**
5
+ * Shape del `PoolConfigRow` expuesto al caller (BFF M18 / otros lambdas Fiado).
6
+ * Refleja la configuración de un Cognito User Pool registrado en la tabla
7
+ * `PoolConfigs_GT` del lambda `cognito-backoffice-connector`.
8
+ */
9
+ class PoolConfigResponse {
10
+ }
11
+ exports.PoolConfigResponse = PoolConfigResponse;
@@ -0,0 +1,4 @@
1
+ import { PoolConfigResponse } from './PoolConfigResponse';
2
+ export declare class PoolsListResponse {
3
+ pools: PoolConfigResponse[];
4
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolsListResponse = void 0;
4
+ class PoolsListResponse {
5
+ }
6
+ exports.PoolsListResponse = PoolsListResponse;
@@ -0,0 +1,17 @@
1
+ import { ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+ /**
3
+ * Cross-field validator: si `requireMfa: true`, entonces `mfaTypes` debe tener
4
+ * al menos 1 elemento. Si `requireMfa: false`, `mfaTypes` puede ser vacío.
5
+ *
6
+ * Razón: cuando el pool nace con MFA habilitado, el connector llama
7
+ * `SetUserPoolMfaConfigCommand` con la lista de tipos del DTO. Si el array
8
+ * llega vacío con `requireMfa: true`, el SDK rechaza con InvalidParameterException
9
+ * y el pool queda en estado inconsistente (MfaConfiguration:'ON' sin tipos).
10
+ * Mejor rechazar en validación del DTO antes de tocar AWS.
11
+ *
12
+ * Ver pivote v1.4.1 TD-017 cerrado + spec doc §1 R3.
13
+ */
14
+ export declare class MfaTypesRequiresOne implements ValidatorConstraintInterface {
15
+ validate(mfaTypes: unknown, args: ValidationArguments): boolean;
16
+ defaultMessage(): string;
17
+ }
@@ -0,0 +1,39 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MfaTypesRequiresOne = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ /**
12
+ * Cross-field validator: si `requireMfa: true`, entonces `mfaTypes` debe tener
13
+ * al menos 1 elemento. Si `requireMfa: false`, `mfaTypes` puede ser vacío.
14
+ *
15
+ * Razón: cuando el pool nace con MFA habilitado, el connector llama
16
+ * `SetUserPoolMfaConfigCommand` con la lista de tipos del DTO. Si el array
17
+ * llega vacío con `requireMfa: true`, el SDK rechaza con InvalidParameterException
18
+ * y el pool queda en estado inconsistente (MfaConfiguration:'ON' sin tipos).
19
+ * Mejor rechazar en validación del DTO antes de tocar AWS.
20
+ *
21
+ * Ver pivote v1.4.1 TD-017 cerrado + spec doc §1 R3.
22
+ */
23
+ let MfaTypesRequiresOne = class MfaTypesRequiresOne {
24
+ validate(mfaTypes, args) {
25
+ const obj = args.object;
26
+ if (obj.requireMfa === true) {
27
+ return Array.isArray(mfaTypes) && mfaTypes.length >= 1;
28
+ }
29
+ // requireMfa: false → cualquier mfaTypes pasa.
30
+ return true;
31
+ }
32
+ defaultMessage() {
33
+ return 'mfaTypes requiere al menos un tipo cuando requireMfa=true';
34
+ }
35
+ };
36
+ exports.MfaTypesRequiresOne = MfaTypesRequiresOne;
37
+ exports.MfaTypesRequiresOne = MfaTypesRequiresOne = __decorate([
38
+ (0, class_validator_1.ValidatorConstraint)({ name: 'MfaTypesRequiresOneWhenMfaRequired', async: false })
39
+ ], MfaTypesRequiresOne);
@@ -0,0 +1,11 @@
1
+ /** Grupo con su # de miembros (relaciones DIRECTORY en GroupDirectoryRelations_GT). */
2
+ export declare class GroupCountItem {
3
+ id: string;
4
+ name: string;
5
+ status: string;
6
+ memberCount: number;
7
+ }
8
+ /** Response de GET groups/counts (privado, fiado-group-business). */
9
+ export declare class GroupCountsResponse {
10
+ items: GroupCountItem[];
11
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GroupCountsResponse = exports.GroupCountItem = void 0;
4
+ /** Grupo con su # de miembros (relaciones DIRECTORY en GroupDirectoryRelations_GT). */
5
+ class GroupCountItem {
6
+ }
7
+ exports.GroupCountItem = GroupCountItem;
8
+ /** Response de GET groups/counts (privado, fiado-group-business). */
9
+ class GroupCountsResponse {
10
+ }
11
+ exports.GroupCountsResponse = GroupCountsResponse;
@@ -8,3 +8,4 @@ export * from './enums/GroupStatus';
8
8
  export * from './enums/RelationType';
9
9
  export * from './enums/RelationStatus';
10
10
  export * from './enums/GroupAction';
11
+ export * from './dtos/GroupCountsResponse';
@@ -26,3 +26,5 @@ __exportStar(require("./enums/GroupStatus"), exports);
26
26
  __exportStar(require("./enums/RelationType"), exports);
27
27
  __exportStar(require("./enums/RelationStatus"), exports);
28
28
  __exportStar(require("./enums/GroupAction"), exports);
29
+ //dtos
30
+ __exportStar(require("./dtos/GroupCountsResponse"), exports);
package/bin/index.d.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';
package/bin/index.js CHANGED
@@ -36,8 +36,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
- exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = void 0;
39
+ exports.AppSelectionData = exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
+ exports.EmailVerification = exports.NetworkConnector = exports.TotpSecurity = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = void 0;
41
41
  exports.Crypto = __importStar(require("./crypto"));
42
42
  exports.Account = __importStar(require("./account"));
43
43
  exports.Activity = __importStar(require("./activity"));
@@ -54,6 +54,7 @@ exports.Directory = __importStar(require("./directory"));
54
54
  exports.ExchangeRate = __importStar(require("./exchangeRate"));
55
55
  exports.File = __importStar(require("./identity"));
56
56
  exports.Group = __importStar(require("./group"));
57
+ exports.UserTags = __importStar(require("./userTags"));
57
58
  exports.Identity = __importStar(require("./provider"));
58
59
  exports.Header = __importStar(require("./header"));
59
60
  exports.ServicePayment = __importStar(require("./servicePayment"));
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tipo de User Pool de Cognito desde la perspectiva del modelo RBAC Fiado.
3
+ *
4
+ * Origen: spec del proyecto `cognito-backoffice-connector` (Fase 0, componente 01
5
+ * documento `docs/superpowers/specs/2026-05-26-cognito-connector-decisiones-pendientes-design.md`).
6
+ *
7
+ * Decisión (TD-003): el proyecto converge en estos 2 valores. El documento componente 03
8
+ * lista 3 valores (incluyendo una variante adicional) pero queda como outlier — la
9
+ * decisión vigente en los 6 docs restantes y en el plan de implementación es 2 valores:
10
+ * - BACKOFFICE_PLATFORM — pool del backoffice de plataforma (cross-tenant)
11
+ * - BACKOFFICE_TENANT — pool por tenant (multi-tenant isolation)
12
+ */
13
+ export declare enum PoolKind {
14
+ BACKOFFICE_PLATFORM = "BACKOFFICE_PLATFORM",
15
+ BACKOFFICE_TENANT = "BACKOFFICE_TENANT"
16
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolKind = void 0;
4
+ /**
5
+ * Tipo de User Pool de Cognito desde la perspectiva del modelo RBAC Fiado.
6
+ *
7
+ * Origen: spec del proyecto `cognito-backoffice-connector` (Fase 0, componente 01
8
+ * documento `docs/superpowers/specs/2026-05-26-cognito-connector-decisiones-pendientes-design.md`).
9
+ *
10
+ * Decisión (TD-003): el proyecto converge en estos 2 valores. El documento componente 03
11
+ * lista 3 valores (incluyendo una variante adicional) pero queda como outlier — la
12
+ * decisión vigente en los 6 docs restantes y en el plan de implementación es 2 valores:
13
+ * - BACKOFFICE_PLATFORM — pool del backoffice de plataforma (cross-tenant)
14
+ * - BACKOFFICE_TENANT — pool por tenant (multi-tenant isolation)
15
+ */
16
+ var PoolKind;
17
+ (function (PoolKind) {
18
+ PoolKind["BACKOFFICE_PLATFORM"] = "BACKOFFICE_PLATFORM";
19
+ PoolKind["BACKOFFICE_TENANT"] = "BACKOFFICE_TENANT";
20
+ })(PoolKind || (exports.PoolKind = PoolKind = {}));
@@ -0,0 +1 @@
1
+ export * from './enums/PoolKind';
@@ -0,0 +1,17 @@
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
+ __exportStar(require("./enums/PoolKind"), exports);
@@ -0,0 +1,80 @@
1
+ import { SegmentMemberType } from "../enums/SegmentMemberType";
2
+ /**
3
+ * DTOs de Segmentos (Dashboard Ops · Configuración §2, EP-22..25 + catalog + search).
4
+ *
5
+ * Un segmento es una colección EXPLÍCITA de clientes: referencias a grupos
6
+ * (Group_GT) y tags (UserTags_GT) por id + individuos (override por cliente).
7
+ * Dueño de la tabla: remittance-business (RemittanceSegments_GT).
8
+ *
9
+ * "Clientes" del segmento = intersección con RemittanceUsers_GT (usuarios de
10
+ * remesas que caen en el segmento), NO la membresía Fiado-wide del picker.
11
+ */
12
+ /** Referencia de composición: un grupo (Group_GT.id) o un tag (UserTags_GT.tag). */
13
+ export declare class SegmentMember {
14
+ type: SegmentMemberType;
15
+ /** Group_GT.id (p. ej. "CELULARES") o el tag (p. ej. "VIPS"). */
16
+ id: string;
17
+ }
18
+ /** Individuo agregado explícitamente (la llave es directoryId; peopleId informativo). */
19
+ export declare class SegmentIndividual {
20
+ directoryId: string;
21
+ peopleId?: string;
22
+ /** Snapshot de display (se pinta sin lookup). */
23
+ name: string;
24
+ }
25
+ /** Body de EP-23 POST /backoffice/config/segments. */
26
+ export declare class CreateSegmentRequest {
27
+ name: string;
28
+ members: SegmentMember[];
29
+ individuals: SegmentIndividual[];
30
+ }
31
+ /** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
32
+ export declare class UpdateSegmentRequest {
33
+ name: string;
34
+ members: SegmentMember[];
35
+ individuals: SegmentIndividual[];
36
+ }
37
+ /** Segmento completo (response). Métricas null = nunca calculadas. */
38
+ export declare class Segment {
39
+ id: string;
40
+ name: string;
41
+ /** true solo en ESTANDAR (catch-all: composición bloqueada, no eliminable). */
42
+ isDefault: boolean;
43
+ members: SegmentMember[];
44
+ individuals: SegmentIndividual[];
45
+ /** # de RemittanceUsers en el segmento (intersección con remesas). */
46
+ clientCount: number | null;
47
+ /** Σ amountUSD del mes calendario de esos users (sin CANCELLED/REFUND). */
48
+ volMonthUSD: number | null;
49
+ lastCalculatedAt: string | null;
50
+ createdAt: string;
51
+ updatedAt: string;
52
+ createdBy: string;
53
+ updatedBy: string;
54
+ }
55
+ /** Response de EP-22 GET /backoffice/config/segments. */
56
+ export declare class SegmentListResponse {
57
+ items: Segment[];
58
+ }
59
+ /** Response de POST /backoffice/config/segments/{id}/recalcular. */
60
+ export declare class RecalculateSegmentResponse {
61
+ id: string;
62
+ clientCount: number;
63
+ volMonthUSD: number;
64
+ lastCalculatedAt: string;
65
+ }
66
+ /** Item del picker DISPONIBLES (EP-32 catalog). `count` = membresía Fiado-wide. */
67
+ export declare class SegmentCatalogItem {
68
+ type: SegmentMemberType;
69
+ id: string;
70
+ name: string;
71
+ count: number;
72
+ }
73
+ /** Response de GET /backoffice/config/segments/catalog. */
74
+ export declare class SegmentCatalogResponse {
75
+ items: SegmentCatalogItem[];
76
+ }
77
+ /** Response de GET /backoffice/config/segments/search-individual?q= (cap 20). */
78
+ export declare class SearchIndividualResponse {
79
+ items: SegmentIndividual[];
80
+ }
@@ -0,0 +1,122 @@
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.SearchIndividualResponse = exports.SegmentCatalogResponse = exports.SegmentCatalogItem = exports.RecalculateSegmentResponse = exports.SegmentListResponse = exports.Segment = exports.UpdateSegmentRequest = exports.CreateSegmentRequest = exports.SegmentIndividual = exports.SegmentMember = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const SegmentMemberType_1 = require("../enums/SegmentMemberType");
16
+ /**
17
+ * DTOs de Segmentos (Dashboard Ops · Configuración §2, EP-22..25 + catalog + search).
18
+ *
19
+ * Un segmento es una colección EXPLÍCITA de clientes: referencias a grupos
20
+ * (Group_GT) y tags (UserTags_GT) por id + individuos (override por cliente).
21
+ * Dueño de la tabla: remittance-business (RemittanceSegments_GT).
22
+ *
23
+ * "Clientes" del segmento = intersección con RemittanceUsers_GT (usuarios de
24
+ * remesas que caen en el segmento), NO la membresía Fiado-wide del picker.
25
+ */
26
+ /** Referencia de composición: un grupo (Group_GT.id) o un tag (UserTags_GT.tag). */
27
+ class SegmentMember {
28
+ }
29
+ exports.SegmentMember = SegmentMember;
30
+ __decorate([
31
+ (0, class_validator_1.IsEnum)(SegmentMemberType_1.SegmentMemberType),
32
+ __metadata("design:type", String)
33
+ ], SegmentMember.prototype, "type", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.Length)(1, 100),
37
+ __metadata("design:type", String)
38
+ ], SegmentMember.prototype, "id", void 0);
39
+ /** Individuo agregado explícitamente (la llave es directoryId; peopleId informativo). */
40
+ class SegmentIndividual {
41
+ }
42
+ exports.SegmentIndividual = SegmentIndividual;
43
+ __decorate([
44
+ (0, class_validator_1.IsUUID)("4"),
45
+ __metadata("design:type", String)
46
+ ], SegmentIndividual.prototype, "directoryId", void 0);
47
+ __decorate([
48
+ (0, class_validator_1.IsOptional)(),
49
+ (0, class_validator_1.IsUUID)("4"),
50
+ __metadata("design:type", String)
51
+ ], SegmentIndividual.prototype, "peopleId", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.IsString)(),
54
+ (0, class_validator_1.Length)(1, 200),
55
+ __metadata("design:type", String)
56
+ ], SegmentIndividual.prototype, "name", void 0);
57
+ /** Body de EP-23 POST /backoffice/config/segments. */
58
+ class CreateSegmentRequest {
59
+ }
60
+ exports.CreateSegmentRequest = CreateSegmentRequest;
61
+ __decorate([
62
+ (0, class_validator_1.IsString)(),
63
+ (0, class_validator_1.Length)(3, 100),
64
+ __metadata("design:type", String)
65
+ ], CreateSegmentRequest.prototype, "name", void 0);
66
+ __decorate([
67
+ (0, class_validator_1.IsArray)(),
68
+ (0, class_validator_1.ValidateNested)({ each: true }),
69
+ (0, class_transformer_1.Type)(() => SegmentMember),
70
+ __metadata("design:type", Array)
71
+ ], CreateSegmentRequest.prototype, "members", void 0);
72
+ __decorate([
73
+ (0, class_validator_1.IsArray)(),
74
+ (0, class_validator_1.ValidateNested)({ each: true }),
75
+ (0, class_transformer_1.Type)(() => SegmentIndividual),
76
+ __metadata("design:type", Array)
77
+ ], CreateSegmentRequest.prototype, "individuals", void 0);
78
+ /** Body de EP-24 PUT /backoffice/config/segments/{id} (reemplazo completo). */
79
+ class UpdateSegmentRequest {
80
+ }
81
+ exports.UpdateSegmentRequest = UpdateSegmentRequest;
82
+ __decorate([
83
+ (0, class_validator_1.IsString)(),
84
+ (0, class_validator_1.Length)(3, 100),
85
+ __metadata("design:type", String)
86
+ ], UpdateSegmentRequest.prototype, "name", void 0);
87
+ __decorate([
88
+ (0, class_validator_1.IsArray)(),
89
+ (0, class_validator_1.ValidateNested)({ each: true }),
90
+ (0, class_transformer_1.Type)(() => SegmentMember),
91
+ __metadata("design:type", Array)
92
+ ], UpdateSegmentRequest.prototype, "members", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsArray)(),
95
+ (0, class_validator_1.ValidateNested)({ each: true }),
96
+ (0, class_transformer_1.Type)(() => SegmentIndividual),
97
+ __metadata("design:type", Array)
98
+ ], UpdateSegmentRequest.prototype, "individuals", void 0);
99
+ /** Segmento completo (response). Métricas null = nunca calculadas. */
100
+ class Segment {
101
+ }
102
+ exports.Segment = Segment;
103
+ /** Response de EP-22 GET /backoffice/config/segments. */
104
+ class SegmentListResponse {
105
+ }
106
+ exports.SegmentListResponse = SegmentListResponse;
107
+ /** Response de POST /backoffice/config/segments/{id}/recalcular. */
108
+ class RecalculateSegmentResponse {
109
+ }
110
+ exports.RecalculateSegmentResponse = RecalculateSegmentResponse;
111
+ /** Item del picker DISPONIBLES (EP-32 catalog). `count` = membresía Fiado-wide. */
112
+ class SegmentCatalogItem {
113
+ }
114
+ exports.SegmentCatalogItem = SegmentCatalogItem;
115
+ /** Response de GET /backoffice/config/segments/catalog. */
116
+ class SegmentCatalogResponse {
117
+ }
118
+ exports.SegmentCatalogResponse = SegmentCatalogResponse;
119
+ /** Response de GET /backoffice/config/segments/search-individual?q= (cap 20). */
120
+ class SearchIndividualResponse {
121
+ }
122
+ exports.SearchIndividualResponse = SearchIndividualResponse;
@@ -38,3 +38,4 @@ export * from "./RemittanceUserLimits";
38
38
  export * from "./RemittanceKyc";
39
39
  export * from "./RemittanceCohort";
40
40
  export * from "./RemittanceAuditLog";
41
+ export * from "./RemittanceSegment";
@@ -54,3 +54,4 @@ __exportStar(require("./RemittanceUserLimits"), exports);
54
54
  __exportStar(require("./RemittanceKyc"), exports);
55
55
  __exportStar(require("./RemittanceCohort"), exports);
56
56
  __exportStar(require("./RemittanceAuditLog"), exports);
57
+ __exportStar(require("./RemittanceSegment"), exports);
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Contrato interno de métricas de un segmento (puente Opción A):
3
+ * remittance-business resuelve la membresía (subconjunto de RemittanceUsers que
4
+ * caen en el segmento) y el uniteller-connector (dueño de las tx) devuelve el
5
+ * conteo validado + volumen del mes. Vía api-invoker →
6
+ * POST /backoffice/config/segments/metrics (privado).
7
+ */
8
+ export declare class SegmentMetricsRequest {
9
+ /** Subconjunto ya resuelto por rb. `[]` → { clientCount: 0, volMonthUSD: 0 }. */
10
+ directoryIds: string[];
11
+ }
12
+ export declare class SegmentMetricsResponse {
13
+ /** ids del request que SÍ existen en RemittanceUsers_GT. */
14
+ clientCount: number;
15
+ /** Σ amountUSD del mes calendario corriente (UTC) de esos users, sin CANCELLED/REFUND. */
16
+ volMonthUSD: number;
17
+ }
@@ -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.SegmentMetricsResponse = exports.SegmentMetricsRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Contrato interno de métricas de un segmento (puente Opción A):
16
+ * remittance-business resuelve la membresía (subconjunto de RemittanceUsers que
17
+ * caen en el segmento) y el uniteller-connector (dueño de las tx) devuelve el
18
+ * conteo validado + volumen del mes. Vía api-invoker →
19
+ * POST /backoffice/config/segments/metrics (privado).
20
+ */
21
+ class SegmentMetricsRequest {
22
+ }
23
+ exports.SegmentMetricsRequest = SegmentMetricsRequest;
24
+ __decorate([
25
+ (0, class_validator_1.IsArray)(),
26
+ (0, class_validator_1.IsUUID)("4", { each: true }),
27
+ __metadata("design:type", Array)
28
+ ], SegmentMetricsRequest.prototype, "directoryIds", void 0);
29
+ class SegmentMetricsResponse {
30
+ }
31
+ exports.SegmentMetricsResponse = SegmentMetricsResponse;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tipo de miembro de la composición de un segmento (Dashboard Ops · Configuración §2).
3
+ * Los valores son los del mockup (pills GRUPO/TAG del dual-list).
4
+ */
5
+ export declare enum SegmentMemberType {
6
+ GROUP = "group",
7
+ TAG = "tag"
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SegmentMemberType = void 0;
4
+ /**
5
+ * Tipo de miembro de la composición de un segmento (Dashboard Ops · Configuración §2).
6
+ * Los valores son los del mockup (pills GRUPO/TAG del dual-list).
7
+ */
8
+ var SegmentMemberType;
9
+ (function (SegmentMemberType) {
10
+ SegmentMemberType["GROUP"] = "group";
11
+ SegmentMemberType["TAG"] = "tag";
12
+ })(SegmentMemberType || (exports.SegmentMemberType = SegmentMemberType = {}));
@@ -10,3 +10,4 @@ export * from "./CohortOperator";
10
10
  export * from "./CohortRefresh";
11
11
  export * from "./AuditAction";
12
12
  export * from "./AuditEntityType";
13
+ export * from "./SegmentMemberType";
@@ -26,3 +26,4 @@ __exportStar(require("./CohortOperator"), exports);
26
26
  __exportStar(require("./CohortRefresh"), exports);
27
27
  __exportStar(require("./AuditAction"), exports);
28
28
  __exportStar(require("./AuditEntityType"), exports);
29
+ __exportStar(require("./SegmentMemberType"), exports);
@@ -3,3 +3,4 @@ export * from "./dtos";
3
3
  export * from "./dtos/internal/RemittanceCreditBackRequest";
4
4
  export * from "./dtos/internal/RemittanceCreditBackResponse";
5
5
  export * from "./dtos/internal/RemittanceCohortCount";
6
+ export * from "./dtos/internal/RemittanceSegmentMetrics";
@@ -21,3 +21,4 @@ __exportStar(require("./dtos"), exports);
21
21
  __exportStar(require("./dtos/internal/RemittanceCreditBackRequest"), exports);
22
22
  __exportStar(require("./dtos/internal/RemittanceCreditBackResponse"), exports);
23
23
  __exportStar(require("./dtos/internal/RemittanceCohortCount"), exports);
24
+ __exportStar(require("./dtos/internal/RemittanceSegmentMetrics"), exports);
@@ -0,0 +1,4 @@
1
+ /** Request de POST tags/by-directories (privado, onboarding-business). */
2
+ export declare class TagsByDirectoriesRequest {
3
+ directoryIds: string[];
4
+ }