@fiado/type-kit 3.186.0 → 3.188.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 (71) hide show
  1. package/_test_/unit/retailOrg/enums/ZoneStatusEnum.test.ts +14 -1
  2. package/bin/index.d.ts +1 -0
  3. package/bin/index.js +4 -1
  4. package/bin/loanCollectorAssignment/dtos/PriorityWeights.d.ts +10 -0
  5. package/bin/loanCollectorAssignment/dtos/PriorityWeights.js +43 -0
  6. package/bin/loanCollectorAssignment/dtos/requests/AutoAssignRequest.d.ts +9 -0
  7. package/bin/{walletFunding/dtos/CancelFundingReferenceRequest.js → loanCollectorAssignment/dtos/requests/AutoAssignRequest.js} +17 -9
  8. package/bin/loanCollectorAssignment/dtos/requests/CreateAssignmentRuleRequest.d.ts +12 -0
  9. package/bin/loanCollectorAssignment/dtos/requests/CreateAssignmentRuleRequest.js +46 -0
  10. package/bin/loanCollectorAssignment/dtos/requests/ReassignRequest.d.ts +7 -0
  11. package/bin/{walletFunding/dtos/CancelWalletFundingRequest.js → loanCollectorAssignment/dtos/requests/ReassignRequest.js} +11 -5
  12. package/bin/loanCollectorAssignment/dtos/requests/RedistributeRequest.d.ts +7 -0
  13. package/bin/{walletFunding/dtos/CancelFundingRequest.js → loanCollectorAssignment/dtos/requests/RedistributeRequest.js} +9 -15
  14. package/bin/loanCollectorAssignment/dtos/requests/UpdateAssignmentRuleRequest.d.ts +12 -0
  15. package/bin/loanCollectorAssignment/dtos/requests/UpdateAssignmentRuleRequest.js +49 -0
  16. package/bin/loanCollectorAssignment/dtos/responses/AssignmentRuleResponse.d.ts +15 -0
  17. package/bin/loanCollectorAssignment/dtos/responses/AssignmentRuleResponse.js +2 -0
  18. package/bin/loanCollectorAssignment/dtos/responses/CollectorAssignmentResponse.d.ts +16 -0
  19. package/bin/loanCollectorAssignment/dtos/responses/CollectorAssignmentResponse.js +2 -0
  20. package/bin/loanCollectorAssignment/dtos/responses/CollectorLoadResponse.d.ts +11 -0
  21. package/bin/loanCollectorAssignment/dtos/responses/CollectorLoadResponse.js +2 -0
  22. package/bin/loanCollectorAssignment/dtos/responses/RedistributeSummaryResponse.d.ts +9 -0
  23. package/bin/loanCollectorAssignment/dtos/responses/RedistributeSummaryResponse.js +2 -0
  24. package/bin/loanCollectorAssignment/enums/AssignmentStatusEnum.d.ts +10 -0
  25. package/bin/loanCollectorAssignment/enums/AssignmentStatusEnum.js +14 -0
  26. package/bin/loanCollectorAssignment/enums/AssignmentStrategyEnum.d.ts +12 -0
  27. package/bin/loanCollectorAssignment/enums/AssignmentStrategyEnum.js +16 -0
  28. package/bin/loanCollectorAssignment/index.d.ts +12 -0
  29. package/bin/loanCollectorAssignment/index.js +32 -0
  30. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +22 -0
  31. package/bin/{cognitoBackofficeConnector/dtos/MfaPoolConfig.js → platformRbac/dtos/ResendOtpRequest.js} +18 -18
  32. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +11 -0
  33. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +36 -0
  34. package/bin/retailOrg/enums/ZoneStatusEnum.d.ts +13 -1
  35. package/bin/retailOrg/enums/ZoneStatusEnum.js +13 -1
  36. package/package.json +1 -1
  37. package/src/index.ts +3 -0
  38. package/src/loanCollectorAssignment/dtos/PriorityWeights.ts +27 -0
  39. package/src/loanCollectorAssignment/dtos/requests/AutoAssignRequest.ts +23 -0
  40. package/src/loanCollectorAssignment/dtos/requests/CreateAssignmentRuleRequest.ts +29 -0
  41. package/src/loanCollectorAssignment/dtos/requests/ReassignRequest.ts +13 -0
  42. package/src/loanCollectorAssignment/dtos/requests/RedistributeRequest.ts +13 -0
  43. package/src/loanCollectorAssignment/dtos/requests/UpdateAssignmentRuleRequest.ts +32 -0
  44. package/src/loanCollectorAssignment/dtos/responses/AssignmentRuleResponse.ts +16 -0
  45. package/src/loanCollectorAssignment/dtos/responses/CollectorAssignmentResponse.ts +17 -0
  46. package/src/loanCollectorAssignment/dtos/responses/CollectorLoadResponse.ts +11 -0
  47. package/src/loanCollectorAssignment/dtos/responses/RedistributeSummaryResponse.ts +10 -0
  48. package/src/loanCollectorAssignment/enums/AssignmentStatusEnum.ts +10 -0
  49. package/src/loanCollectorAssignment/enums/AssignmentStrategyEnum.ts +12 -0
  50. package/src/loanCollectorAssignment/index.ts +19 -0
  51. package/src/retailOrg/enums/ZoneStatusEnum.ts +13 -1
  52. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +0 -7
  53. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +0 -20
  54. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +0 -11
  55. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +0 -4
  56. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +0 -6
  57. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +0 -17
  58. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +0 -39
  59. package/bin/rbac/enums/PoolKind.d.ts +0 -16
  60. package/bin/rbac/enums/PoolKind.js +0 -20
  61. package/bin/rbac/index.d.ts +0 -1
  62. package/bin/rbac/index.js +0 -17
  63. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +0 -5
  64. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +0 -7
  65. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +0 -6
  66. package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +0 -11
  67. package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +0 -14
  68. package/bin/walletFunding/dtos/CancelFundingResponse.js +0 -12
  69. package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +0 -3
  70. package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +0 -7
  71. package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +0 -6
@@ -3,12 +3,25 @@ import { ZoneStatusEnum } from '../../../../src/retailOrg/enums/ZoneStatusEnum';
3
3
  describe('ZoneStatusEnum', () => {
4
4
  it('contiene exactamente los estados del contrato con value === key', () => {
5
5
  expect(ZoneStatusEnum.ACTIVE).toBe('ACTIVE');
6
+ expect(ZoneStatusEnum.SUSPENDED).toBe('SUSPENDED');
6
7
  expect(ZoneStatusEnum.INACTIVE).toBe('INACTIVE');
7
8
  });
8
9
 
9
10
  it('no tiene estados de más', () => {
10
11
  expect(Object.values(ZoneStatusEnum).sort()).toEqual(
11
- ['ACTIVE', 'INACTIVE'],
12
+ ['ACTIVE', 'INACTIVE', 'SUSPENDED'],
12
13
  );
13
14
  });
15
+
16
+ // F1 2026-07-16: `SUSPENDED` se agregó para poder expresar la SUSPENSIÓN POR CASCADA que el spec
17
+ // exige en dos lugares (componente 04 §Lógica: "suspender un retailer SUSPENDE efectivamente a sus
18
+ // zonas/stores/users por lectura, auto-reversible"; flow 03 §118: "cascade: las queries de zonas/
19
+ // stores/users filtran por retailer.status='ACTIVE'"). Sin él, la zona solo podía reportar INACTIVE
20
+ // — que significa soft-delete — y una zona suspendida por su padre aparecía BORRADA.
21
+ // Verificado en dev: con el retailer SUSPENDED, los stores reportaban SUSPENDED y las zonas ACTIVE.
22
+ it('está alineado con los otros status del dominio (ACTIVE|SUSPENDED|INACTIVE)', () => {
23
+ // SUSPENDED = suspensión reversible por cascada del padre. INACTIVE = baja (soft-delete).
24
+ // Son semánticamente distintos: no se pueden colapsar en uno solo.
25
+ expect(ZoneStatusEnum.SUSPENDED).not.toBe(ZoneStatusEnum.INACTIVE);
26
+ });
14
27
  });
package/bin/index.d.ts CHANGED
@@ -91,5 +91,6 @@ export * as EmailVerification from './emailVerification';
91
91
  export * as RetailOrg from './retailOrg';
92
92
  export * as LoanConfig from './loanConfig';
93
93
  export * as LoanOfferings from './loanOfferings';
94
+ export * as LoanCollectorAssignment from './loanCollectorAssignment';
94
95
  export * from './messaging';
95
96
  export * from './complaint';
package/bin/index.js CHANGED
@@ -37,7 +37,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  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.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
- exports.LoanOfferings = exports.LoanConfig = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = 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 = exports.AppSelectionData = void 0;
40
+ exports.LoanCollectorAssignment = exports.LoanOfferings = exports.LoanConfig = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = 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 = exports.AppSelectionData = void 0;
41
41
  exports.Crypto = __importStar(require("./crypto"));
42
42
  exports.Account = __importStar(require("./account"));
43
43
  exports.Activity = __importStar(require("./activity"));
@@ -148,5 +148,8 @@ exports.LoanConfig = __importStar(require("./loanConfig"));
148
148
  // LoanOfferings: DTOs/enums del lambda loan-offerings-business (comp 07 — planes de crédito,
149
149
  // financieras, M:N retailer↔plan y simulador de cuota; SureKeep Fase 1 — pista Loan).
150
150
  exports.LoanOfferings = __importStar(require("./loanOfferings"));
151
+ // LoanCollectorAssignment: DTOs/enums del lambda loan-collector-assignment-business (comp 08 — reglas de
152
+ // asignación de cartera de cobranza + asignaciones crédito↔cobrador; SureKeep Fase 1 — pista Loan).
153
+ exports.LoanCollectorAssignment = __importStar(require("./loanCollectorAssignment"));
151
154
  __exportStar(require("./messaging"), exports);
152
155
  __exportStar(require("./complaint"), exports);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pesos del ranking ponderado del algoritmo (modelo-datos §7.1). Cada peso es 0..100; la regla
3
+ * cross-campo `storeMatch + loadAvailable + seniority === 100` la valida el manager del lambda
4
+ * (WeightsSumInvalidError) — class-validator no cubre validaciones entre campos.
5
+ */
6
+ export declare class PriorityWeights {
7
+ storeMatch: number;
8
+ loadAvailable: number;
9
+ seniority: number;
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.PriorityWeights = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Pesos del ranking ponderado del algoritmo (modelo-datos §7.1). Cada peso es 0..100; la regla
17
+ * cross-campo `storeMatch + loadAvailable + seniority === 100` la valida el manager del lambda
18
+ * (WeightsSumInvalidError) — class-validator no cubre validaciones entre campos.
19
+ */
20
+ class PriorityWeights {
21
+ }
22
+ exports.PriorityWeights = PriorityWeights;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, class_validator_1.IsInt)(),
26
+ (0, class_validator_1.Min)(0),
27
+ (0, class_validator_1.Max)(100),
28
+ __metadata("design:type", Number)
29
+ ], PriorityWeights.prototype, "storeMatch", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)(),
32
+ (0, class_validator_1.IsInt)(),
33
+ (0, class_validator_1.Min)(0),
34
+ (0, class_validator_1.Max)(100),
35
+ __metadata("design:type", Number)
36
+ ], PriorityWeights.prototype, "loadAvailable", void 0);
37
+ __decorate([
38
+ (0, class_transformer_1.Expose)(),
39
+ (0, class_validator_1.IsInt)(),
40
+ (0, class_validator_1.Min)(0),
41
+ (0, class_validator_1.Max)(100),
42
+ __metadata("design:type", Number)
43
+ ], PriorityWeights.prototype, "seniority", void 0);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Body de POST /private/collector-assignments/auto-assign (hot path). Lo invoca loan-credit-business
3
+ * al crearse un crédito (F3+); en F1 se prueba con `creditId` dummy. Elige cobrador y persiste ACTIVE.
4
+ */
5
+ export declare class AutoAssignRequest {
6
+ retailerId: string;
7
+ creditId: string;
8
+ storeId: string;
9
+ }
@@ -9,23 +9,31 @@ 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.CancelFundingReferenceRequest = void 0;
12
+ exports.AutoAssignRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
13
14
  const class_validator_1 = require("class-validator");
14
- class CancelFundingReferenceRequest {
15
+ /**
16
+ * Body de POST /private/collector-assignments/auto-assign (hot path). Lo invoca loan-credit-business
17
+ * al crearse un crédito (F3+); en F1 se prueba con `creditId` dummy. Elige cobrador y persiste ACTIVE.
18
+ */
19
+ class AutoAssignRequest {
15
20
  }
16
- exports.CancelFundingReferenceRequest = CancelFundingReferenceRequest;
21
+ exports.AutoAssignRequest = AutoAssignRequest;
17
22
  __decorate([
23
+ (0, class_transformer_1.Expose)(),
18
24
  (0, class_validator_1.IsString)(),
19
- (0, class_validator_1.MaxLength)(64),
25
+ (0, class_validator_1.IsNotEmpty)(),
20
26
  __metadata("design:type", String)
21
- ], CancelFundingReferenceRequest.prototype, "fundingId", void 0);
27
+ ], AutoAssignRequest.prototype, "retailerId", void 0);
22
28
  __decorate([
29
+ (0, class_transformer_1.Expose)(),
23
30
  (0, class_validator_1.IsString)(),
24
- (0, class_validator_1.MaxLength)(64),
31
+ (0, class_validator_1.IsNotEmpty)(),
25
32
  __metadata("design:type", String)
26
- ], CancelFundingReferenceRequest.prototype, "directoryId", void 0);
33
+ ], AutoAssignRequest.prototype, "creditId", void 0);
27
34
  __decorate([
35
+ (0, class_transformer_1.Expose)(),
28
36
  (0, class_validator_1.IsString)(),
29
- (0, class_validator_1.MaxLength)(64),
37
+ (0, class_validator_1.IsNotEmpty)(),
30
38
  __metadata("design:type", String)
31
- ], CancelFundingReferenceRequest.prototype, "idempotencyKey", void 0);
39
+ ], AutoAssignRequest.prototype, "storeId", void 0);
@@ -0,0 +1,12 @@
1
+ import { AssignmentStrategyEnum } from '../../enums/AssignmentStrategyEnum';
2
+ import { PriorityWeights } from '../PriorityWeights';
3
+ /**
4
+ * Body de POST /retailers/:retailerId/assignment-rules. Crea una regla de asignación.
5
+ * Los pesos deben sumar 100 (lo valida el manager). `active: true` desactiva la regla activa anterior.
6
+ */
7
+ export declare class CreateAssignmentRuleRequest {
8
+ strategy: AssignmentStrategyEnum;
9
+ maxLoadPerCollector?: number | null;
10
+ priorityWeights: PriorityWeights;
11
+ active: boolean;
12
+ }
@@ -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.CreateAssignmentRuleRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const AssignmentStrategyEnum_1 = require("../../enums/AssignmentStrategyEnum");
16
+ const PriorityWeights_1 = require("../PriorityWeights");
17
+ /**
18
+ * Body de POST /retailers/:retailerId/assignment-rules. Crea una regla de asignación.
19
+ * Los pesos deben sumar 100 (lo valida el manager). `active: true` desactiva la regla activa anterior.
20
+ */
21
+ class CreateAssignmentRuleRequest {
22
+ }
23
+ exports.CreateAssignmentRuleRequest = CreateAssignmentRuleRequest;
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsEnum)(AssignmentStrategyEnum_1.AssignmentStrategyEnum),
27
+ __metadata("design:type", String)
28
+ ], CreateAssignmentRuleRequest.prototype, "strategy", void 0);
29
+ __decorate([
30
+ (0, class_transformer_1.Expose)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsInt)(),
33
+ (0, class_validator_1.Min)(1),
34
+ __metadata("design:type", Number)
35
+ ], CreateAssignmentRuleRequest.prototype, "maxLoadPerCollector", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Expose)(),
38
+ (0, class_validator_1.ValidateNested)(),
39
+ (0, class_transformer_1.Type)(() => PriorityWeights_1.PriorityWeights),
40
+ __metadata("design:type", PriorityWeights_1.PriorityWeights)
41
+ ], CreateAssignmentRuleRequest.prototype, "priorityWeights", void 0);
42
+ __decorate([
43
+ (0, class_transformer_1.Expose)(),
44
+ (0, class_validator_1.IsBoolean)(),
45
+ __metadata("design:type", Boolean)
46
+ ], CreateAssignmentRuleRequest.prototype, "active", void 0);
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Body de POST /retailers/:retailerId/collector-assignments/:assignmentId/reassign (reasignación manual).
3
+ * `reason` obligatorio (auditoría de acción crítica — modelo-datos §10).
4
+ */
5
+ export declare class ReassignRequest {
6
+ reason: string;
7
+ }
@@ -9,13 +9,19 @@ 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.CancelWalletFundingRequest = void 0;
12
+ exports.ReassignRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
13
14
  const class_validator_1 = require("class-validator");
14
- class CancelWalletFundingRequest {
15
+ /**
16
+ * Body de POST /retailers/:retailerId/collector-assignments/:assignmentId/reassign (reasignación manual).
17
+ * `reason` obligatorio (auditoría de acción crítica — modelo-datos §10).
18
+ */
19
+ class ReassignRequest {
15
20
  }
16
- exports.CancelWalletFundingRequest = CancelWalletFundingRequest;
21
+ exports.ReassignRequest = ReassignRequest;
17
22
  __decorate([
23
+ (0, class_transformer_1.Expose)(),
18
24
  (0, class_validator_1.IsString)(),
19
- (0, class_validator_1.MaxLength)(64),
25
+ (0, class_validator_1.IsNotEmpty)(),
20
26
  __metadata("design:type", String)
21
- ], CancelWalletFundingRequest.prototype, "idempotencyKey", void 0);
27
+ ], ReassignRequest.prototype, "reason", void 0);
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Body de POST /retailers/:retailerId/collectors/:userId/redistribute. Redistribuye la cartera activa de
3
+ * un cobrador (ej. al desactivarlo). `reason` obligatorio (ej. `USER_INACTIVATED`) — auditoría §10.
4
+ */
5
+ export declare class RedistributeRequest {
6
+ reason: string;
7
+ }
@@ -9,25 +9,19 @@ 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.CancelFundingRequest = void 0;
12
+ exports.RedistributeRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
13
14
  const class_validator_1 = require("class-validator");
14
15
  /**
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).
16
+ * Body de POST /retailers/:retailerId/collectors/:userId/redistribute. Redistribuye la cartera activa de
17
+ * un cobrador (ej. al desactivarlo). `reason` obligatorio (ej. `USER_INACTIVATED`) — auditoría §10.
20
18
  */
21
- class CancelFundingRequest {
19
+ class RedistributeRequest {
22
20
  }
23
- exports.CancelFundingRequest = CancelFundingRequest;
21
+ exports.RedistributeRequest = RedistributeRequest;
24
22
  __decorate([
23
+ (0, class_transformer_1.Expose)(),
25
24
  (0, class_validator_1.IsString)(),
26
- (0, class_validator_1.MaxLength)(64),
25
+ (0, class_validator_1.IsNotEmpty)(),
27
26
  __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);
27
+ ], RedistributeRequest.prototype, "reason", void 0);
@@ -0,0 +1,12 @@
1
+ import { AssignmentStrategyEnum } from '../../enums/AssignmentStrategyEnum';
2
+ import { PriorityWeights } from '../PriorityWeights';
3
+ /**
4
+ * Body de PUT /retailers/:retailerId/assignment-rules/:ruleId. Update parcial: todos los campos opcionales.
5
+ * Si se envían `priorityWeights`, deben sumar 100 (lo valida el manager).
6
+ */
7
+ export declare class UpdateAssignmentRuleRequest {
8
+ strategy?: AssignmentStrategyEnum;
9
+ maxLoadPerCollector?: number | null;
10
+ priorityWeights?: PriorityWeights;
11
+ active?: boolean;
12
+ }
@@ -0,0 +1,49 @@
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.UpdateAssignmentRuleRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const AssignmentStrategyEnum_1 = require("../../enums/AssignmentStrategyEnum");
16
+ const PriorityWeights_1 = require("../PriorityWeights");
17
+ /**
18
+ * Body de PUT /retailers/:retailerId/assignment-rules/:ruleId. Update parcial: todos los campos opcionales.
19
+ * Si se envían `priorityWeights`, deben sumar 100 (lo valida el manager).
20
+ */
21
+ class UpdateAssignmentRuleRequest {
22
+ }
23
+ exports.UpdateAssignmentRuleRequest = UpdateAssignmentRuleRequest;
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsOptional)(),
27
+ (0, class_validator_1.IsEnum)(AssignmentStrategyEnum_1.AssignmentStrategyEnum),
28
+ __metadata("design:type", String)
29
+ ], UpdateAssignmentRuleRequest.prototype, "strategy", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)(),
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsInt)(),
34
+ (0, class_validator_1.Min)(1),
35
+ __metadata("design:type", Number)
36
+ ], UpdateAssignmentRuleRequest.prototype, "maxLoadPerCollector", void 0);
37
+ __decorate([
38
+ (0, class_transformer_1.Expose)(),
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.ValidateNested)(),
41
+ (0, class_transformer_1.Type)(() => PriorityWeights_1.PriorityWeights),
42
+ __metadata("design:type", PriorityWeights_1.PriorityWeights)
43
+ ], UpdateAssignmentRuleRequest.prototype, "priorityWeights", void 0);
44
+ __decorate([
45
+ (0, class_transformer_1.Expose)(),
46
+ (0, class_validator_1.IsOptional)(),
47
+ (0, class_validator_1.IsBoolean)(),
48
+ __metadata("design:type", Boolean)
49
+ ], UpdateAssignmentRuleRequest.prototype, "active", void 0);
@@ -0,0 +1,15 @@
1
+ import { AssignmentStrategyEnum } from '../../enums/AssignmentStrategyEnum';
2
+ import { PriorityWeights } from '../PriorityWeights';
3
+ /** Shape de salida de una regla de asignación (modelo-datos §7.1). */
4
+ export interface AssignmentRuleResponse {
5
+ ruleId: string;
6
+ retailerId: string;
7
+ strategy: AssignmentStrategyEnum;
8
+ maxLoadPerCollector: number | null;
9
+ priorityWeights: PriorityWeights;
10
+ active: boolean;
11
+ createdBy: string;
12
+ updatedBy: string;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ import { AssignmentStatusEnum } from '../../enums/AssignmentStatusEnum';
2
+ /** Shape de salida de una asignación crédito↔cobrador (modelo-datos §7.2). */
3
+ export interface CollectorAssignmentResponse {
4
+ assignmentId: string;
5
+ retailerId: string;
6
+ creditId: string;
7
+ storeId: string;
8
+ collectorUserId: string;
9
+ assignedAt: string;
10
+ status: AssignmentStatusEnum;
11
+ reassignedFromUserId: string | null;
12
+ createdBy: string;
13
+ updatedBy: string;
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Carga actual de un cobrador (flow 07.2 / GET /retailers/:retailerId/collector-loads).
3
+ * `activeAssignments` = COUNT de asignaciones ACTIVE (GSI collectorUserId-assignedAt-index).
4
+ * `threshold` = maxLoadPerCollector de la regla activa (null si no hay tope).
5
+ */
6
+ export interface CollectorLoadResponse {
7
+ collectorUserId: string;
8
+ activeAssignments: number;
9
+ threshold: number | null;
10
+ storeIds: string[];
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ /** Resultado de redistribuir la cartera activa de un cobrador (flow 07.4). */
2
+ export interface RedistributeSummaryResponse {
3
+ reassignedCount: number;
4
+ errors: RedistributeError[];
5
+ }
6
+ export interface RedistributeError {
7
+ creditId: string;
8
+ reason: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Estado de una asignación crédito↔cobrador (modelo-datos §7.2). Historial append-only:
3
+ * 1 crédito = 1 `ACTIVE`; reasignación → row vieja `REASSIGNED`; release/liquidado → `INACTIVE`.
4
+ * @enum {string}
5
+ */
6
+ export declare enum AssignmentStatusEnum {
7
+ ACTIVE = "ACTIVE",
8
+ INACTIVE = "INACTIVE",
9
+ REASSIGNED = "REASSIGNED"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssignmentStatusEnum = void 0;
4
+ /**
5
+ * Estado de una asignación crédito↔cobrador (modelo-datos §7.2). Historial append-only:
6
+ * 1 crédito = 1 `ACTIVE`; reasignación → row vieja `REASSIGNED`; release/liquidado → `INACTIVE`.
7
+ * @enum {string}
8
+ */
9
+ var AssignmentStatusEnum;
10
+ (function (AssignmentStatusEnum) {
11
+ AssignmentStatusEnum["ACTIVE"] = "ACTIVE";
12
+ AssignmentStatusEnum["INACTIVE"] = "INACTIVE";
13
+ AssignmentStatusEnum["REASSIGNED"] = "REASSIGNED";
14
+ })(AssignmentStatusEnum || (exports.AssignmentStatusEnum = AssignmentStatusEnum = {}));
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Estrategia de asignación de cartera de cobranza (modelo-datos §7.1 / M6 §7.5).
3
+ * DEC-008 (loan-collector-assignment): se soportan las 4 + ranking híbrido (strategy + priorityWeights).
4
+ * A RATIFICAR con Jaime/senior: M6 §7.5 solo respalda 3 — `ROUND_ROBIN` es adición del spec 08.
5
+ * @enum {string}
6
+ */
7
+ export declare enum AssignmentStrategyEnum {
8
+ BY_STORE = "BY_STORE",
9
+ BY_LOAD = "BY_LOAD",
10
+ BY_SENIORITY = "BY_SENIORITY",
11
+ ROUND_ROBIN = "ROUND_ROBIN"
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssignmentStrategyEnum = void 0;
4
+ /**
5
+ * Estrategia de asignación de cartera de cobranza (modelo-datos §7.1 / M6 §7.5).
6
+ * DEC-008 (loan-collector-assignment): se soportan las 4 + ranking híbrido (strategy + priorityWeights).
7
+ * A RATIFICAR con Jaime/senior: M6 §7.5 solo respalda 3 — `ROUND_ROBIN` es adición del spec 08.
8
+ * @enum {string}
9
+ */
10
+ var AssignmentStrategyEnum;
11
+ (function (AssignmentStrategyEnum) {
12
+ AssignmentStrategyEnum["BY_STORE"] = "BY_STORE";
13
+ AssignmentStrategyEnum["BY_LOAD"] = "BY_LOAD";
14
+ AssignmentStrategyEnum["BY_SENIORITY"] = "BY_SENIORITY";
15
+ AssignmentStrategyEnum["ROUND_ROBIN"] = "ROUND_ROBIN";
16
+ })(AssignmentStrategyEnum || (exports.AssignmentStrategyEnum = AssignmentStrategyEnum = {}));
@@ -0,0 +1,12 @@
1
+ export * from './enums/AssignmentStrategyEnum';
2
+ export * from './enums/AssignmentStatusEnum';
3
+ export * from './dtos/PriorityWeights';
4
+ export * from './dtos/requests/CreateAssignmentRuleRequest';
5
+ export * from './dtos/requests/UpdateAssignmentRuleRequest';
6
+ export * from './dtos/requests/AutoAssignRequest';
7
+ export * from './dtos/requests/ReassignRequest';
8
+ export * from './dtos/requests/RedistributeRequest';
9
+ export * from './dtos/responses/AssignmentRuleResponse';
10
+ export * from './dtos/responses/CollectorAssignmentResponse';
11
+ export * from './dtos/responses/CollectorLoadResponse';
12
+ export * from './dtos/responses/RedistributeSummaryResponse';
@@ -0,0 +1,32 @@
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
+ // Enums
18
+ __exportStar(require("./enums/AssignmentStrategyEnum"), exports);
19
+ __exportStar(require("./enums/AssignmentStatusEnum"), exports);
20
+ // Shared DTOs
21
+ __exportStar(require("./dtos/PriorityWeights"), exports);
22
+ // Request DTOs
23
+ __exportStar(require("./dtos/requests/CreateAssignmentRuleRequest"), exports);
24
+ __exportStar(require("./dtos/requests/UpdateAssignmentRuleRequest"), exports);
25
+ __exportStar(require("./dtos/requests/AutoAssignRequest"), exports);
26
+ __exportStar(require("./dtos/requests/ReassignRequest"), exports);
27
+ __exportStar(require("./dtos/requests/RedistributeRequest"), exports);
28
+ // Response DTOs
29
+ __exportStar(require("./dtos/responses/AssignmentRuleResponse"), exports);
30
+ __exportStar(require("./dtos/responses/CollectorAssignmentResponse"), exports);
31
+ __exportStar(require("./dtos/responses/CollectorLoadResponse"), exports);
32
+ __exportStar(require("./dtos/responses/RedistributeSummaryResponse"), exports);
@@ -0,0 +1,22 @@
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
+ }
@@ -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.MfaPoolConfig = void 0;
12
+ exports.ResendOtpRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
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 {
15
+ /**
16
+ * Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
17
+ * Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
18
+ * identidad SIN password. `tenantId` obligatorio (DEC-064 el picker ya lo resolvió, NO "solo email").
19
+ * El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
20
+ * siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
21
+ */
22
+ class ResendOtpRequest {
23
23
  }
24
- exports.MfaPoolConfig = MfaPoolConfig;
24
+ exports.ResendOtpRequest = ResendOtpRequest;
25
25
  __decorate([
26
26
  (0, class_transformer_1.Expose)(),
27
- (0, class_validator_1.IsBoolean)(),
28
- __metadata("design:type", Boolean)
29
- ], MfaPoolConfig.prototype, "requireMfa", void 0);
27
+ (0, class_validator_1.IsEmail)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ __metadata("design:type", String)
30
+ ], ResendOtpRequest.prototype, "email", void 0);
30
31
  __decorate([
31
32
  (0, class_transformer_1.Expose)(),
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);
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ __metadata("design:type", String)
36
+ ], ResendOtpRequest.prototype, "tenantId", void 0);