@fiado/type-kit 3.643.0 → 3.645.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 (75) hide show
  1. package/_test_/unit/collection/disburseRequest.test.ts +30 -0
  2. package/_test_/unit/collection/disbursementType.test.ts +7 -1
  3. package/_test_/unit/loanCredit/creditLifecycleEnums.test.ts +1 -1
  4. package/_test_/unit/loanCredit/dtos/creditLifecycleRequests.test.ts +9 -0
  5. package/_test_/unit/productCatalog/rewardTopupEnums.test.ts +16 -0
  6. package/_test_/unit/rewards/mobileTopup.test.ts +78 -0
  7. package/_test_/unit/rewards/waitingLimit.test.ts +3 -3
  8. package/_test_/unit/transactionProcessor/authorizeRewardTopupRequest.test.ts +59 -0
  9. package/_test_/unit/transactionProcessor/rewardTopupCodes.test.ts +17 -0
  10. package/bin/collection/dtos/DisburseRequest.d.ts +3 -0
  11. package/bin/collection/dtos/DisburseRequest.js +9 -0
  12. package/bin/collection/dtos/DisburseTopupDetail.d.ts +9 -0
  13. package/bin/collection/dtos/DisburseTopupDetail.js +46 -0
  14. package/bin/collection/enums/DisbursementType.d.ts +3 -1
  15. package/bin/collection/enums/DisbursementType.js +2 -0
  16. package/bin/collection/index.d.ts +1 -0
  17. package/bin/collection/index.js +1 -0
  18. package/bin/loanCredit/dtos/requests/BackofficeCancelRestructureRequest.d.ts +8 -0
  19. package/bin/loanCredit/dtos/requests/BackofficeCancelRestructureRequest.js +29 -0
  20. package/bin/loanCredit/enums/LoanRestructureStatusEnum.d.ts +3 -1
  21. package/bin/loanCredit/enums/LoanRestructureStatusEnum.js +2 -0
  22. package/bin/loanCredit/index.d.ts +1 -0
  23. package/bin/loanCredit/index.js +1 -0
  24. package/bin/productCatalog/enums/ProductSubtypeEnum.d.ts +1 -0
  25. package/bin/productCatalog/enums/ProductSubtypeEnum.js +2 -0
  26. package/bin/rewards/dtos/backoffice/BackofficeGrantItemResponse.d.ts +2 -0
  27. package/bin/rewards/dtos/backoffice/MobileTopupConfigRequest.d.ts +10 -0
  28. package/bin/rewards/dtos/backoffice/MobileTopupConfigRequest.js +59 -0
  29. package/bin/rewards/dtos/backoffice/MobileTopupConfigResponse.d.ts +15 -0
  30. package/bin/rewards/dtos/backoffice/MobileTopupConfigResponse.js +2 -0
  31. package/bin/rewards/dtos/backoffice/MobileTopupContributionResponse.d.ts +9 -0
  32. package/bin/rewards/dtos/backoffice/MobileTopupContributionResponse.js +2 -0
  33. package/bin/rewards/dtos/backoffice/MobileTopupPlanListResponse.d.ts +5 -0
  34. package/bin/rewards/dtos/backoffice/MobileTopupPlanListResponse.js +2 -0
  35. package/bin/rewards/dtos/backoffice/MobileTopupPlanResponse.d.ts +22 -0
  36. package/bin/rewards/dtos/backoffice/MobileTopupPlanResponse.js +2 -0
  37. package/bin/rewards/dtos/backoffice/MobileTopupRechargeResponse.d.ts +8 -0
  38. package/bin/rewards/dtos/backoffice/MobileTopupRechargeResponse.js +2 -0
  39. package/bin/rewards/enums/MobileTopupPlanStatusEnum.d.ts +6 -0
  40. package/bin/rewards/enums/MobileTopupPlanStatusEnum.js +10 -0
  41. package/bin/rewards/enums/MobileTopupRechargeStatusEnum.d.ts +7 -0
  42. package/bin/rewards/enums/MobileTopupRechargeStatusEnum.js +11 -0
  43. package/bin/rewards/enums/RewardItemCodeEnum.d.ts +5 -1
  44. package/bin/rewards/enums/RewardItemCodeEnum.js +4 -0
  45. package/bin/rewards/index.d.ts +8 -0
  46. package/bin/rewards/index.js +8 -0
  47. package/bin/transactionProcessor/dtos/AuthorizeRewardTopupRequest.d.ts +21 -0
  48. package/bin/transactionProcessor/dtos/AuthorizeRewardTopupRequest.js +74 -0
  49. package/bin/transactionProcessor/enums/TransactionProcessorCodesEnum.d.ts +9 -1
  50. package/bin/transactionProcessor/enums/TransactionProcessorCodesEnum.js +8 -0
  51. package/bin/transactionProcessor/index.d.ts +1 -0
  52. package/bin/transactionProcessor/index.js +1 -0
  53. package/package.json +1 -1
  54. package/src/collection/dtos/DisburseRequest.ts +10 -1
  55. package/src/collection/dtos/DisburseTopupDetail.ts +15 -0
  56. package/src/collection/enums/DisbursementType.ts +2 -0
  57. package/src/collection/index.ts +1 -0
  58. package/src/loanCredit/dtos/requests/BackofficeCancelRestructureRequest.ts +16 -0
  59. package/src/loanCredit/enums/LoanRestructureStatusEnum.ts +2 -0
  60. package/src/loanCredit/index.ts +1 -0
  61. package/src/productCatalog/enums/ProductSubtypeEnum.ts +2 -0
  62. package/src/rewards/dtos/backoffice/BackofficeGrantItemResponse.ts +2 -0
  63. package/src/rewards/dtos/backoffice/MobileTopupConfigRequest.ts +41 -0
  64. package/src/rewards/dtos/backoffice/MobileTopupConfigResponse.ts +15 -0
  65. package/src/rewards/dtos/backoffice/MobileTopupContributionResponse.ts +9 -0
  66. package/src/rewards/dtos/backoffice/MobileTopupPlanListResponse.ts +6 -0
  67. package/src/rewards/dtos/backoffice/MobileTopupPlanResponse.ts +23 -0
  68. package/src/rewards/dtos/backoffice/MobileTopupRechargeResponse.ts +9 -0
  69. package/src/rewards/enums/MobileTopupPlanStatusEnum.ts +6 -0
  70. package/src/rewards/enums/MobileTopupRechargeStatusEnum.ts +7 -0
  71. package/src/rewards/enums/RewardItemCodeEnum.ts +4 -0
  72. package/src/rewards/index.ts +8 -0
  73. package/src/transactionProcessor/dtos/AuthorizeRewardTopupRequest.ts +44 -0
  74. package/src/transactionProcessor/enums/TransactionProcessorCodesEnum.ts +8 -0
  75. package/src/transactionProcessor/index.ts +1 -0
@@ -0,0 +1,9 @@
1
+ export interface MobileTopupContributionResponse {
2
+ grantId: string;
3
+ itemKey: string;
4
+ months: number;
5
+ sourceService: string;
6
+ sourceReference: string;
7
+ campaignId?: string;
8
+ addedAt: number;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import { MobileTopupPlanResponse } from './MobileTopupPlanResponse';
2
+ export interface MobileTopupPlanListResponse {
3
+ items: MobileTopupPlanResponse[];
4
+ truncated: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,22 @@
1
+ import { MobileTopupPlanStatusEnum } from '../../enums/MobileTopupPlanStatusEnum';
2
+ import { MobileTopupContributionResponse } from './MobileTopupContributionResponse';
3
+ import { MobileTopupRechargeResponse } from './MobileTopupRechargeResponse';
4
+ /** Calendario de recargas Bait de un número. */
5
+ export interface MobileTopupPlanResponse {
6
+ phone: string;
7
+ status: MobileTopupPlanStatusEnum;
8
+ promised: number;
9
+ done: number;
10
+ pending: number;
11
+ nextDueAt?: number;
12
+ lastRechargeAt?: number;
13
+ lastFolio?: string;
14
+ failedAttempts: number;
15
+ lastError?: string;
16
+ closedUndelivered?: number;
17
+ closedBy?: string;
18
+ closedAt?: number;
19
+ contributions: MobileTopupContributionResponse[];
20
+ recharges?: MobileTopupRechargeResponse[];
21
+ updatedAt: number;
22
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { MobileTopupRechargeStatusEnum } from '../../enums/MobileTopupRechargeStatusEnum';
2
+ export interface MobileTopupRechargeResponse {
3
+ folio: string;
4
+ rechargeNumber: number;
5
+ status: MobileTopupRechargeStatusEnum;
6
+ at: number;
7
+ summary?: string;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ /** Estado del calendario de recargas Bait de un número. */
2
+ export declare enum MobileTopupPlanStatusEnum {
3
+ ACTIVE = "ACTIVE",
4
+ NEEDS_ATTENTION = "NEEDS_ATTENTION",
5
+ DONE = "DONE"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MobileTopupPlanStatusEnum = void 0;
4
+ /** Estado del calendario de recargas Bait de un número. */
5
+ var MobileTopupPlanStatusEnum;
6
+ (function (MobileTopupPlanStatusEnum) {
7
+ MobileTopupPlanStatusEnum["ACTIVE"] = "ACTIVE";
8
+ MobileTopupPlanStatusEnum["NEEDS_ATTENTION"] = "NEEDS_ATTENTION";
9
+ MobileTopupPlanStatusEnum["DONE"] = "DONE";
10
+ })(MobileTopupPlanStatusEnum || (exports.MobileTopupPlanStatusEnum = MobileTopupPlanStatusEnum = {}));
@@ -0,0 +1,7 @@
1
+ /** Resultado de una recarga mensual del calendario. */
2
+ export declare enum MobileTopupRechargeStatusEnum {
3
+ PAID = "PAID",
4
+ REJECTED = "REJECTED",
5
+ UNCONFIRMED = "UNCONFIRMED",
6
+ NOT_DELIVERED = "NOT_DELIVERED"
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MobileTopupRechargeStatusEnum = void 0;
4
+ /** Resultado de una recarga mensual del calendario. */
5
+ var MobileTopupRechargeStatusEnum;
6
+ (function (MobileTopupRechargeStatusEnum) {
7
+ MobileTopupRechargeStatusEnum["PAID"] = "PAID";
8
+ MobileTopupRechargeStatusEnum["REJECTED"] = "REJECTED";
9
+ MobileTopupRechargeStatusEnum["UNCONFIRMED"] = "UNCONFIRMED";
10
+ MobileTopupRechargeStatusEnum["NOT_DELIVERED"] = "NOT_DELIVERED";
11
+ })(MobileTopupRechargeStatusEnum || (exports.MobileTopupRechargeStatusEnum = MobileTopupRechargeStatusEnum = {}));
@@ -5,5 +5,9 @@ export declare enum RewardItemCodeEnum {
5
5
  /** Venció la espera por tope (30 días desde `waitingSince`). */
6
6
  LIMIT_WAIT_EXPIRED = "LIMIT_WAIT_EXPIRED",
7
7
  /** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
8
- OUTCOME_UNKNOWN = "OUTCOME_UNKNOWN"
8
+ OUTCOME_UNKNOWN = "OUTCOME_UNKNOWN",
9
+ /** Bait rechazó la recarga de forma permanente: queda en atención del operador. */
10
+ TOPUP_REJECTED = "TOPUP_REJECTED",
11
+ /** Un operador dio el ítem por fallido. */
12
+ ITEM_DISMISSED = "ITEM_DISMISSED"
9
13
  }
@@ -10,4 +10,8 @@ var RewardItemCodeEnum;
10
10
  RewardItemCodeEnum["LIMIT_WAIT_EXPIRED"] = "LIMIT_WAIT_EXPIRED";
11
11
  /** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
12
12
  RewardItemCodeEnum["OUTCOME_UNKNOWN"] = "OUTCOME_UNKNOWN";
13
+ /** Bait rechazó la recarga de forma permanente: queda en atención del operador. */
14
+ RewardItemCodeEnum["TOPUP_REJECTED"] = "TOPUP_REJECTED";
15
+ /** Un operador dio el ítem por fallido. */
16
+ RewardItemCodeEnum["ITEM_DISMISSED"] = "ITEM_DISMISSED";
13
17
  })(RewardItemCodeEnum || (exports.RewardItemCodeEnum = RewardItemCodeEnum = {}));
@@ -12,6 +12,8 @@ export * from './enums/RewardsErrorCodeEnum';
12
12
  export * from './enums/DeliveryDimensionEnum';
13
13
  export * from './enums/DeliveryTopDimensionEnum';
14
14
  export * from './enums/DeliveryTopByEnum';
15
+ export * from './enums/MobileTopupPlanStatusEnum';
16
+ export * from './enums/MobileTopupRechargeStatusEnum';
15
17
  export * from './types/RewardInputs';
16
18
  export * from './dtos/RewardCost';
17
19
  export * from './dtos/RewardChargeTo';
@@ -56,3 +58,9 @@ export * from './dtos/backoffice/DeliveryMetricsQuery';
56
58
  export * from './dtos/backoffice/DeliveryTopQuery';
57
59
  export * from './dtos/backoffice/DeliveryMetricsPoint';
58
60
  export * from './dtos/backoffice/DeliveryTopEntry';
61
+ export * from './dtos/backoffice/MobileTopupConfigRequest';
62
+ export * from './dtos/backoffice/MobileTopupConfigResponse';
63
+ export * from './dtos/backoffice/MobileTopupContributionResponse';
64
+ export * from './dtos/backoffice/MobileTopupRechargeResponse';
65
+ export * from './dtos/backoffice/MobileTopupPlanResponse';
66
+ export * from './dtos/backoffice/MobileTopupPlanListResponse';
@@ -29,6 +29,8 @@ __exportStar(require("./enums/RewardsErrorCodeEnum"), exports);
29
29
  __exportStar(require("./enums/DeliveryDimensionEnum"), exports);
30
30
  __exportStar(require("./enums/DeliveryTopDimensionEnum"), exports);
31
31
  __exportStar(require("./enums/DeliveryTopByEnum"), exports);
32
+ __exportStar(require("./enums/MobileTopupPlanStatusEnum"), exports);
33
+ __exportStar(require("./enums/MobileTopupRechargeStatusEnum"), exports);
32
34
  //Types
33
35
  __exportStar(require("./types/RewardInputs"), exports);
34
36
  //DTOs
@@ -81,3 +83,9 @@ __exportStar(require("./dtos/backoffice/DeliveryMetricsQuery"), exports);
81
83
  __exportStar(require("./dtos/backoffice/DeliveryTopQuery"), exports);
82
84
  __exportStar(require("./dtos/backoffice/DeliveryMetricsPoint"), exports);
83
85
  __exportStar(require("./dtos/backoffice/DeliveryTopEntry"), exports);
86
+ __exportStar(require("./dtos/backoffice/MobileTopupConfigRequest"), exports);
87
+ __exportStar(require("./dtos/backoffice/MobileTopupConfigResponse"), exports);
88
+ __exportStar(require("./dtos/backoffice/MobileTopupContributionResponse"), exports);
89
+ __exportStar(require("./dtos/backoffice/MobileTopupRechargeResponse"), exports);
90
+ __exportStar(require("./dtos/backoffice/MobileTopupPlanResponse"), exports);
91
+ __exportStar(require("./dtos/backoffice/MobileTopupPlanListResponse"), exports);
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Pago de una recarga Bait de recompensa (`MEX_REWARD_TOPUP`). No toca ninguna wallet.
3
+ *
4
+ * `idempotencyKey` ≤ 60: el folio del proveedor admite 64 y se reservan 4 caracteres para el
5
+ * sufijo `-{k}` del folio por intento.
6
+ */
7
+ export declare class AuthorizeRewardTopupRequest {
8
+ idempotencyKey: string;
9
+ /** Titular beneficiario de la recompensa. */
10
+ directoryId: string;
11
+ /** Celular MX normalizado a 10 dígitos. */
12
+ phone: string;
13
+ moduleName: string;
14
+ benefitId: string;
15
+ leafId: string;
16
+ productId: string;
17
+ /** En PESOS, no centavos. */
18
+ amount: number;
19
+ concept: string;
20
+ }
21
+ export default AuthorizeRewardTopupRequest;
@@ -0,0 +1,74 @@
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.AuthorizeRewardTopupRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Pago de una recarga Bait de recompensa (`MEX_REWARD_TOPUP`). No toca ninguna wallet.
16
+ *
17
+ * `idempotencyKey` ≤ 60: el folio del proveedor admite 64 y se reservan 4 caracteres para el
18
+ * sufijo `-{k}` del folio por intento.
19
+ */
20
+ class AuthorizeRewardTopupRequest {
21
+ }
22
+ exports.AuthorizeRewardTopupRequest = AuthorizeRewardTopupRequest;
23
+ __decorate([
24
+ (0, class_validator_1.IsString)(),
25
+ (0, class_validator_1.IsNotEmpty)(),
26
+ (0, class_validator_1.MaxLength)(60),
27
+ (0, class_validator_1.Matches)(/^[^#]+$/),
28
+ __metadata("design:type", String)
29
+ ], AuthorizeRewardTopupRequest.prototype, "idempotencyKey", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.IsNotEmpty)(),
33
+ __metadata("design:type", String)
34
+ ], AuthorizeRewardTopupRequest.prototype, "directoryId", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.Matches)(/^[0-9]{10}$/),
38
+ __metadata("design:type", String)
39
+ ], AuthorizeRewardTopupRequest.prototype, "phone", void 0);
40
+ __decorate([
41
+ (0, class_validator_1.IsString)(),
42
+ (0, class_validator_1.IsNotEmpty)(),
43
+ (0, class_validator_1.MaxLength)(64),
44
+ __metadata("design:type", String)
45
+ ], AuthorizeRewardTopupRequest.prototype, "moduleName", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsString)(),
48
+ (0, class_validator_1.IsNotEmpty)(),
49
+ (0, class_validator_1.MaxLength)(64),
50
+ __metadata("design:type", String)
51
+ ], AuthorizeRewardTopupRequest.prototype, "benefitId", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.IsString)(),
54
+ (0, class_validator_1.IsNotEmpty)(),
55
+ (0, class_validator_1.MaxLength)(256),
56
+ __metadata("design:type", String)
57
+ ], AuthorizeRewardTopupRequest.prototype, "leafId", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsString)(),
60
+ (0, class_validator_1.IsNotEmpty)(),
61
+ (0, class_validator_1.MaxLength)(64),
62
+ __metadata("design:type", String)
63
+ ], AuthorizeRewardTopupRequest.prototype, "productId", void 0);
64
+ __decorate([
65
+ (0, class_validator_1.IsNumber)({ maxDecimalPlaces: 2 }),
66
+ (0, class_validator_1.IsPositive)(),
67
+ __metadata("design:type", Number)
68
+ ], AuthorizeRewardTopupRequest.prototype, "amount", void 0);
69
+ __decorate([
70
+ (0, class_validator_1.IsString)(),
71
+ (0, class_validator_1.MaxLength)(120),
72
+ __metadata("design:type", String)
73
+ ], AuthorizeRewardTopupRequest.prototype, "concept", void 0);
74
+ exports.default = AuthorizeRewardTopupRequest;
@@ -19,5 +19,13 @@ export declare enum TransactionProcessorCodesEnum {
19
19
  BLOCKED_SECRET_NUMBER = "BLOCKED_SECRET_NUMBER",
20
20
  PROVIDER_NOT_FOUND = "PROVIDER_NOT_FOUND",
21
21
  /** El request no cumple el contrato del DTO. Nada tocó saldo. */
22
- INVALID_REQUEST = "INVALID_REQUEST"
22
+ INVALID_REQUEST = "INVALID_REQUEST",
23
+ /** Recarga de recompensa: el proveedor la rechazó de forma permanente (o se agotaron los intentos de folio). */
24
+ REWARD_TOPUP_PROVIDER_REJECTED = "REWARD_TOPUP_PROVIDER_REJECTED",
25
+ /** Recarga de recompensa: rechazo transitorio del proveedor; reintentable con la misma llave. */
26
+ REWARD_TOPUP_UNAVAILABLE = "REWARD_TOPUP_UNAVAILABLE",
27
+ /** Recarga de recompensa: resultado desconocido (timeout/PENDING); no se repaga. */
28
+ REWARD_TOPUP_OUTCOME_UNKNOWN = "REWARD_TOPUP_OUTCOME_UNKNOWN",
29
+ /** Recarga de recompensa: la llave de idempotencia sigue en vuelo. */
30
+ REWARD_TOPUP_IN_FLIGHT = "REWARD_TOPUP_IN_FLIGHT"
23
31
  }
@@ -24,4 +24,12 @@ var TransactionProcessorCodesEnum;
24
24
  TransactionProcessorCodesEnum["PROVIDER_NOT_FOUND"] = "PROVIDER_NOT_FOUND";
25
25
  /** El request no cumple el contrato del DTO. Nada tocó saldo. */
26
26
  TransactionProcessorCodesEnum["INVALID_REQUEST"] = "INVALID_REQUEST";
27
+ /** Recarga de recompensa: el proveedor la rechazó de forma permanente (o se agotaron los intentos de folio). */
28
+ TransactionProcessorCodesEnum["REWARD_TOPUP_PROVIDER_REJECTED"] = "REWARD_TOPUP_PROVIDER_REJECTED";
29
+ /** Recarga de recompensa: rechazo transitorio del proveedor; reintentable con la misma llave. */
30
+ TransactionProcessorCodesEnum["REWARD_TOPUP_UNAVAILABLE"] = "REWARD_TOPUP_UNAVAILABLE";
31
+ /** Recarga de recompensa: resultado desconocido (timeout/PENDING); no se repaga. */
32
+ TransactionProcessorCodesEnum["REWARD_TOPUP_OUTCOME_UNKNOWN"] = "REWARD_TOPUP_OUTCOME_UNKNOWN";
33
+ /** Recarga de recompensa: la llave de idempotencia sigue en vuelo. */
34
+ TransactionProcessorCodesEnum["REWARD_TOPUP_IN_FLIGHT"] = "REWARD_TOPUP_IN_FLIGHT";
27
35
  })(TransactionProcessorCodesEnum || (exports.TransactionProcessorCodesEnum = TransactionProcessorCodesEnum = {}));
@@ -11,6 +11,7 @@ export * from './dtos/AuthorizeSpeiBankTransferNcRequest';
11
11
  export * from './dtos/AuthorizeCollectorTransactionRequest';
12
12
  export * from './dtos/AuthorizeDisputeTransactionRequest';
13
13
  export * from './dtos/AuthorizeBonusRequest';
14
+ export * from './dtos/AuthorizeRewardTopupRequest';
14
15
  export * from './dtos/CardInfo';
15
16
  export * from './dtos/InstallmentsInfo';
16
17
  export * from './dtos/MerchantInfo';
@@ -27,6 +27,7 @@ __exportStar(require("./dtos/AuthorizeSpeiBankTransferNcRequest"), exports);
27
27
  __exportStar(require("./dtos/AuthorizeCollectorTransactionRequest"), exports);
28
28
  __exportStar(require("./dtos/AuthorizeDisputeTransactionRequest"), exports);
29
29
  __exportStar(require("./dtos/AuthorizeBonusRequest"), exports);
30
+ __exportStar(require("./dtos/AuthorizeRewardTopupRequest"), exports);
30
31
  __exportStar(require("./dtos/CardInfo"), exports);
31
32
  __exportStar(require("./dtos/InstallmentsInfo"), exports);
32
33
  __exportStar(require("./dtos/MerchantInfo"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.643.0",
3
+ "version": "3.645.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,6 +1,8 @@
1
- import { IsEnum, IsIn, IsNotEmpty, IsNumber, IsOptional, IsPositive, IsString, Matches, MaxLength } from 'class-validator';
1
+ import { Type } from 'class-transformer';
2
+ import { IsDefined, IsEnum, IsIn, IsNotEmpty, IsNumber, IsOptional, IsPositive, IsString, Matches, MaxLength, ValidateIf, ValidateNested } from 'class-validator';
2
3
  import { CurrencyId } from '../../currency/enums/CurrencyId';
3
4
  import { DisbursementType } from '../enums/DisbursementType';
5
+ import { DisburseTopupDetail } from './DisburseTopupDetail';
4
6
 
5
7
  /** Dispersión síncrona: el motor deposita `amount` pesos al titular por el riel de `disbursementType`. */
6
8
  export class DisburseRequest {
@@ -27,4 +29,11 @@ export class DisburseRequest {
27
29
 
28
30
  /** Id del llamador para rastreo: asiento, crédito. */
29
31
  @IsOptional() @IsString() reference?: string;
32
+
33
+ /** Datos de la recarga. Obligatorio si `disbursementType` es `MEX_REWARD_TOPUP`; en otros tipos se ignora. */
34
+ @ValidateIf((o: DisburseRequest) => o.disbursementType === DisbursementType.MEX_REWARD_TOPUP)
35
+ @IsDefined()
36
+ @ValidateNested()
37
+ @Type(() => DisburseTopupDetail)
38
+ topup?: DisburseTopupDetail;
30
39
  }
@@ -0,0 +1,15 @@
1
+ import { IsNotEmpty, IsString, Matches, MaxLength } from 'class-validator';
2
+
3
+ /** Datos de la recarga Bait de una dispersión `MEX_REWARD_TOPUP`. */
4
+ export class DisburseTopupDetail {
5
+ /** Celular MX normalizado a 10 dígitos. */
6
+ @IsString() @Matches(/^[0-9]{10}$/) phone!: string;
7
+
8
+ @IsString() @IsNotEmpty() @MaxLength(64) moduleName!: string;
9
+
10
+ @IsString() @IsNotEmpty() @MaxLength(64) benefitId!: string;
11
+
12
+ @IsString() @IsNotEmpty() @MaxLength(256) leafId!: string;
13
+
14
+ @IsString() @IsNotEmpty() @MaxLength(64) productId!: string;
15
+ }
@@ -9,4 +9,6 @@ export enum DisbursementType {
9
9
  MEX_SELLER_COMMISSION = 'MEX_SELLER_COMMISSION',
10
10
  /** Abono de recompensas de `rewards-business`. */
11
11
  MEX_REWARD = 'MEX_REWARD',
12
+ /** Recarga Bait de recompensas de `rewards-business`. */
13
+ MEX_REWARD_TOPUP = 'MEX_REWARD_TOPUP',
12
14
  }
@@ -35,6 +35,7 @@ export * from './dtos/RegisterCollectibleResponse';
35
35
  export * from './dtos/CollectionPricingDto';
36
36
  export * from './dtos/ResolvePendingChargesRequest';
37
37
  export * from './dtos/MoneyInEvent';
38
+ export * from './dtos/DisburseTopupDetail';
38
39
  export * from './dtos/DisburseRequest';
39
40
  export * from './dtos/DisburseResponse';
40
41
 
@@ -0,0 +1,16 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsString, MaxLength, MinLength } from 'class-validator';
3
+ import { LOAN_FREE_TEXT_MAX_LENGTH } from '../../constants/LoanInputLimits';
4
+
5
+ /**
6
+ * Body de `POST /backoffice/credits/:creditId/restructures/:restructureId/cancel` (loan-credit-business). Cierra
7
+ * una propuesta o una aprobada que el cliente todavía no acepta.
8
+ */
9
+ export class BackofficeCancelRestructureRequest {
10
+ /** Motivo de la cancelación. Va a la auditoría y no se loguea. */
11
+ @Expose()
12
+ @IsString()
13
+ @MinLength(1)
14
+ @MaxLength(LOAN_FREE_TEXT_MAX_LENGTH)
15
+ reason!: string;
16
+ }
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Estado de la reestructura. `PENDING_REGISTRATION`: el plan nuevo está escrito y falta confirmar el alta de sus cargos.
3
+ * `CANCELLED`: la propuesta o la aprobada sin aceptar se cerró, a mano o porque el crédito se cerró; no gasta el cupo.
3
4
  * @enum {string}
4
5
  */
5
6
  export enum LoanRestructureStatusEnum {
@@ -8,4 +9,5 @@ export enum LoanRestructureStatusEnum {
8
9
  REJECTED = 'REJECTED',
9
10
  PENDING_REGISTRATION = 'PENDING_REGISTRATION',
10
11
  EXECUTED = 'EXECUTED',
12
+ CANCELLED = 'CANCELLED',
11
13
  }
@@ -150,6 +150,7 @@ export * from './dtos/requests/BackofficeCollectWrittenOffCreditRequest';
150
150
  export * from './dtos/requests/BackofficeProposeRestructureRequest';
151
151
  export * from './dtos/requests/BackofficeApproveRestructureRequest';
152
152
  export * from './dtos/requests/BackofficeRejectRestructureRequest';
153
+ export * from './dtos/requests/BackofficeCancelRestructureRequest';
153
154
  export * from './dtos/requests/BackofficeAcceptRestructureRequest';
154
155
  export * from './dtos/requests/BackofficeApplyPrepaymentRequest';
155
156
  export * from './dtos/requests/BackofficeApplyAdvanceRequest';
@@ -89,6 +89,8 @@ export enum ProductSubtypeEnum {
89
89
  //REWARDS
90
90
  // Abono de recompensas de `rewards-business`.
91
91
  REWARD_MX = "REWARD_MX",
92
+ // Recarga Bait de recompensas de `rewards-business`.
93
+ REWARD_TOPUP_MX = "REWARD_TOPUP_MX",
92
94
 
93
95
  //STORE
94
96
  STORE_PHONE = "PHONE",
@@ -5,6 +5,8 @@ import { BackofficeGrantAttemptResponse } from './BackofficeGrantAttemptResponse
5
5
  export class BackofficeGrantItemResponse extends GrantItemResponse {
6
6
  /** Nombre de la recompensa congelada en la entrega. */
7
7
  name: string;
8
+ /** Tipo de recompensa congelado en la entrega (ej. `'MOBILE_TOPUP'`). */
9
+ type?: string;
8
10
  attempts: BackofficeGrantAttemptResponse[];
9
11
  /** Motivo de la espera por tope; solo cuando el ítem está en `WAITING_LIMIT`. */
10
12
  waitReason?: LimitWaitReasonEnum;
@@ -0,0 +1,41 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsInt, IsNotEmpty, IsNumber, IsOptional, IsPositive, IsString, MaxLength, Min } from 'class-validator';
3
+
4
+ /** Guarda la configuración de la recarga Bait (producto en Multicenter y precio mensual). */
5
+ export class MobileTopupConfigRequest {
6
+ @Expose()
7
+ @IsString()
8
+ @IsNotEmpty()
9
+ @MaxLength(100)
10
+ moduleName: string;
11
+
12
+ @Expose()
13
+ @IsString()
14
+ @IsNotEmpty()
15
+ @MaxLength(100)
16
+ benefitId: string;
17
+
18
+ @Expose()
19
+ @IsString()
20
+ @IsNotEmpty()
21
+ @MaxLength(100)
22
+ leafId: string;
23
+
24
+ @Expose()
25
+ @IsString()
26
+ @IsNotEmpty()
27
+ @MaxLength(100)
28
+ productId: string;
29
+
30
+ @Expose()
31
+ @IsNumber({ maxDecimalPlaces: 2 })
32
+ @IsPositive()
33
+ monthlyPrice: number;
34
+
35
+ /** Candado optimista: versión que el operador vio al editar. */
36
+ @Expose()
37
+ @IsOptional()
38
+ @IsInt()
39
+ @Min(1)
40
+ expectedVersion?: number;
41
+ }
@@ -0,0 +1,15 @@
1
+ export interface MobileTopupConfigResponse {
2
+ moduleName: string;
3
+ benefitId: string;
4
+ leafId: string;
5
+ productId: string;
6
+ monthlyPrice: number;
7
+ currency: 'MXN';
8
+ version: number;
9
+ updatedBy: string;
10
+ updatedAt: number;
11
+ /** Ítems del catálogo `MOBILE_TOPUP` recalculados al guardar. */
12
+ repricedItems?: number;
13
+ /** Ítems omitidos por conflicto de versión. */
14
+ skippedItems?: number;
15
+ }
@@ -0,0 +1,9 @@
1
+ export interface MobileTopupContributionResponse {
2
+ grantId: string;
3
+ itemKey: string;
4
+ months: number;
5
+ sourceService: string;
6
+ sourceReference: string;
7
+ campaignId?: string;
8
+ addedAt: number;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { MobileTopupPlanResponse } from './MobileTopupPlanResponse';
2
+
3
+ export interface MobileTopupPlanListResponse {
4
+ items: MobileTopupPlanResponse[];
5
+ truncated: boolean;
6
+ }
@@ -0,0 +1,23 @@
1
+ import { MobileTopupPlanStatusEnum } from '../../enums/MobileTopupPlanStatusEnum';
2
+ import { MobileTopupContributionResponse } from './MobileTopupContributionResponse';
3
+ import { MobileTopupRechargeResponse } from './MobileTopupRechargeResponse';
4
+
5
+ /** Calendario de recargas Bait de un número. */
6
+ export interface MobileTopupPlanResponse {
7
+ phone: string;
8
+ status: MobileTopupPlanStatusEnum;
9
+ promised: number;
10
+ done: number;
11
+ pending: number;
12
+ nextDueAt?: number;
13
+ lastRechargeAt?: number;
14
+ lastFolio?: string;
15
+ failedAttempts: number;
16
+ lastError?: string;
17
+ closedUndelivered?: number;
18
+ closedBy?: string;
19
+ closedAt?: number;
20
+ contributions: MobileTopupContributionResponse[];
21
+ recharges?: MobileTopupRechargeResponse[];
22
+ updatedAt: number;
23
+ }
@@ -0,0 +1,9 @@
1
+ import { MobileTopupRechargeStatusEnum } from '../../enums/MobileTopupRechargeStatusEnum';
2
+
3
+ export interface MobileTopupRechargeResponse {
4
+ folio: string;
5
+ rechargeNumber: number;
6
+ status: MobileTopupRechargeStatusEnum;
7
+ at: number;
8
+ summary?: string;
9
+ }
@@ -0,0 +1,6 @@
1
+ /** Estado del calendario de recargas Bait de un número. */
2
+ export enum MobileTopupPlanStatusEnum {
3
+ ACTIVE = 'ACTIVE',
4
+ NEEDS_ATTENTION = 'NEEDS_ATTENTION',
5
+ DONE = 'DONE',
6
+ }
@@ -0,0 +1,7 @@
1
+ /** Resultado de una recarga mensual del calendario. */
2
+ export enum MobileTopupRechargeStatusEnum {
3
+ PAID = 'PAID',
4
+ REJECTED = 'REJECTED',
5
+ UNCONFIRMED = 'UNCONFIRMED',
6
+ NOT_DELIVERED = 'NOT_DELIVERED',
7
+ }
@@ -6,4 +6,8 @@ export enum RewardItemCodeEnum {
6
6
  LIMIT_WAIT_EXPIRED = 'LIMIT_WAIT_EXPIRED',
7
7
  /** Resultado desconocido agotado: no se puede asegurar si el abono ocurrió. */
8
8
  OUTCOME_UNKNOWN = 'OUTCOME_UNKNOWN',
9
+ /** Bait rechazó la recarga de forma permanente: queda en atención del operador. */
10
+ TOPUP_REJECTED = 'TOPUP_REJECTED',
11
+ /** Un operador dio el ítem por fallido. */
12
+ ITEM_DISMISSED = 'ITEM_DISMISSED',
9
13
  }
@@ -13,6 +13,8 @@ export * from './enums/RewardsErrorCodeEnum';
13
13
  export * from './enums/DeliveryDimensionEnum';
14
14
  export * from './enums/DeliveryTopDimensionEnum';
15
15
  export * from './enums/DeliveryTopByEnum';
16
+ export * from './enums/MobileTopupPlanStatusEnum';
17
+ export * from './enums/MobileTopupRechargeStatusEnum';
16
18
 
17
19
  //Types
18
20
  export * from './types/RewardInputs';
@@ -73,3 +75,9 @@ export * from './dtos/backoffice/DeliveryMetricsQuery';
73
75
  export * from './dtos/backoffice/DeliveryTopQuery';
74
76
  export * from './dtos/backoffice/DeliveryMetricsPoint';
75
77
  export * from './dtos/backoffice/DeliveryTopEntry';
78
+ export * from './dtos/backoffice/MobileTopupConfigRequest';
79
+ export * from './dtos/backoffice/MobileTopupConfigResponse';
80
+ export * from './dtos/backoffice/MobileTopupContributionResponse';
81
+ export * from './dtos/backoffice/MobileTopupRechargeResponse';
82
+ export * from './dtos/backoffice/MobileTopupPlanResponse';
83
+ export * from './dtos/backoffice/MobileTopupPlanListResponse';