@fiado/type-kit 3.627.0 → 3.629.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 (212) hide show
  1. package/_test_/unit/collection/collectionCallbackRequests.test.ts +96 -0
  2. package/_test_/unit/gsfConnector/gsfMessages.test.ts +20 -0
  3. package/_test_/unit/loanCollectorAssignment/collectorAssignmentRequests.test.ts +65 -0
  4. package/_test_/unit/loanConfig/parameterWriteRequests.test.ts +62 -0
  5. package/_test_/unit/loanCredit/dtos/loanCreditInputLimits.test.ts +168 -0
  6. package/_test_/unit/loanCredit/signLoanCreditRequest.test.ts +61 -2
  7. package/_test_/unit/loanOfferings/offeringsInputRules.test.ts +254 -0
  8. package/_test_/unit/loanOfferings/promotionRequests.test.ts +1 -1
  9. package/_test_/unit/loanRetailAudit/auditInputLimits.test.ts +114 -0
  10. package/_test_/unit/loanScoring/evaluateSciRequest.test.ts +49 -0
  11. package/bin/collection/constants/CollectionResultLimits.d.ts +16 -0
  12. package/bin/collection/constants/CollectionResultLimits.js +19 -0
  13. package/bin/collection/dtos/ApplyCollectionResultRequest.d.ts +5 -0
  14. package/bin/collection/dtos/ApplyCollectionResultRequest.js +22 -0
  15. package/bin/collection/dtos/ResolvePendingChargesRequest.d.ts +2 -0
  16. package/bin/collection/dtos/ResolvePendingChargesRequest.js +9 -0
  17. package/bin/collection/index.d.ts +2 -0
  18. package/bin/collection/index.js +3 -0
  19. package/bin/collection/validators/IsCentPrecision.d.ts +11 -0
  20. package/bin/collection/validators/IsCentPrecision.js +32 -0
  21. package/bin/gsfConnector/dtos/GsfCreditTerms.d.ts +7 -2
  22. package/bin/gsfConnector/dtos/GsfCreditTerms.js +9 -0
  23. package/bin/loanCollectorAssignment/constants/CollectorAssignmentLimits.d.ts +12 -0
  24. package/bin/loanCollectorAssignment/constants/CollectorAssignmentLimits.js +15 -0
  25. package/bin/loanCollectorAssignment/dtos/requests/AutoAssignRequest.d.ts +1 -0
  26. package/bin/loanCollectorAssignment/dtos/requests/AutoAssignRequest.js +8 -0
  27. package/bin/loanCollectorAssignment/dtos/requests/ListCollectorAssignmentsRequest.d.ts +14 -0
  28. package/bin/loanCollectorAssignment/dtos/requests/ListCollectorAssignmentsRequest.js +62 -0
  29. package/bin/loanCollectorAssignment/dtos/requests/ReassignRequest.d.ts +1 -0
  30. package/bin/loanCollectorAssignment/dtos/requests/ReassignRequest.js +4 -0
  31. package/bin/loanCollectorAssignment/dtos/requests/RedistributeRequest.d.ts +1 -0
  32. package/bin/loanCollectorAssignment/dtos/requests/RedistributeRequest.js +4 -0
  33. package/bin/loanCollectorAssignment/dtos/responses/ListCollectorAssignmentsResponse.d.ts +9 -0
  34. package/bin/loanCollectorAssignment/dtos/responses/ListCollectorAssignmentsResponse.js +2 -0
  35. package/bin/loanCollectorAssignment/index.d.ts +3 -0
  36. package/bin/loanCollectorAssignment/index.js +4 -0
  37. package/bin/loanConfig/constants/ParameterRequestLimits.d.ts +8 -0
  38. package/bin/loanConfig/constants/ParameterRequestLimits.js +11 -0
  39. package/bin/loanConfig/dtos/requests/BulkGetParametersRequest.d.ts +1 -1
  40. package/bin/loanConfig/dtos/requests/BulkGetParametersRequest.js +3 -1
  41. package/bin/loanConfig/dtos/requests/BulkUpdateParametersRequest.d.ts +5 -2
  42. package/bin/loanConfig/dtos/requests/BulkUpdateParametersRequest.js +8 -4
  43. package/bin/loanConfig/dtos/requests/UpdateParameterRequest.d.ts +6 -3
  44. package/bin/loanConfig/dtos/requests/UpdateParameterRequest.js +10 -5
  45. package/bin/loanConfig/index.d.ts +1 -0
  46. package/bin/loanConfig/index.js +1 -0
  47. package/bin/loanCredit/constants/LoanInputLimits.d.ts +24 -0
  48. package/bin/loanCredit/constants/LoanInputLimits.js +27 -0
  49. package/bin/loanCredit/dtos/LoanBeneficiary.d.ts +1 -0
  50. package/bin/loanCredit/dtos/LoanBeneficiary.js +9 -0
  51. package/bin/loanCredit/dtos/LoanContractDetails.d.ts +18 -1
  52. package/bin/loanCredit/dtos/LoanContractDetails.js +2 -1
  53. package/bin/loanCredit/dtos/LoanDeviceNotifyItem.d.ts +5 -0
  54. package/bin/loanCredit/dtos/LoanDeviceNotifyItem.js +12 -3
  55. package/bin/loanCredit/dtos/RestructureTerms.d.ts +1 -1
  56. package/bin/loanCredit/dtos/RestructureTerms.js +2 -0
  57. package/bin/loanCredit/dtos/SignatureContext.d.ts +5 -1
  58. package/bin/loanCredit/dtos/requests/ActivationCheckRequest.d.ts +1 -1
  59. package/bin/loanCredit/dtos/requests/ActivationCheckRequest.js +4 -0
  60. package/bin/loanCredit/dtos/requests/BackofficeApproveRestructureRequest.js +2 -0
  61. package/bin/loanCredit/dtos/requests/BackofficeProposeRestructureRequest.js +2 -0
  62. package/bin/loanCredit/dtos/requests/BackofficeRejectRestructureRequest.js +2 -0
  63. package/bin/loanCredit/dtos/requests/BackofficeWriteOffCreditRequest.js +2 -0
  64. package/bin/loanCredit/dtos/requests/CreateCustomerPaymentRequest.d.ts +5 -0
  65. package/bin/loanCredit/dtos/requests/CreateCustomerPaymentRequest.js +6 -0
  66. package/bin/loanCredit/dtos/requests/CreateSellerPaymentRequest.d.ts +5 -0
  67. package/bin/loanCredit/dtos/requests/CreateSellerPaymentRequest.js +6 -0
  68. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.d.ts +1 -0
  69. package/bin/loanCredit/dtos/requests/OriginateLoanCreditRequest.js +7 -1
  70. package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.d.ts +1 -1
  71. package/bin/loanCredit/dtos/requests/SegmentFactsBatchRequest.js +3 -1
  72. package/bin/loanCredit/dtos/requests/SignLoanCreditRequest.d.ts +2 -0
  73. package/bin/loanCredit/dtos/requests/SignLoanCreditRequest.js +3 -0
  74. package/bin/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.d.ts +1 -0
  75. package/bin/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.js +2 -0
  76. package/bin/loanCredit/index.d.ts +2 -0
  77. package/bin/loanCredit/index.js +2 -0
  78. package/bin/loanCredit/validators/IsContractBirthDate.d.ts +11 -0
  79. package/bin/loanCredit/validators/IsContractBirthDate.js +41 -0
  80. package/bin/loanOfferings/constants/offeringsInputLimits.d.ts +35 -0
  81. package/bin/loanOfferings/constants/offeringsInputLimits.js +38 -0
  82. package/bin/loanOfferings/dtos/requests/ChangeCreditPlanStatusRequest.d.ts +2 -0
  83. package/bin/loanOfferings/dtos/requests/ChangeCreditPlanStatusRequest.js +8 -0
  84. package/bin/loanOfferings/dtos/requests/ChangePromotionStatusRequest.js +2 -0
  85. package/bin/loanOfferings/dtos/requests/ComputeAmortizationScheduleRequest.d.ts +4 -1
  86. package/bin/loanOfferings/dtos/requests/ComputeAmortizationScheduleRequest.js +3 -1
  87. package/bin/loanOfferings/dtos/requests/ConsumePromotionRequest.d.ts +1 -0
  88. package/bin/loanOfferings/dtos/requests/ConsumePromotionRequest.js +3 -0
  89. package/bin/loanOfferings/dtos/requests/CreateCreditPlanRequest.d.ts +3 -0
  90. package/bin/loanOfferings/dtos/requests/CreateCreditPlanRequest.js +11 -2
  91. package/bin/loanOfferings/dtos/requests/CreateFinancierRequest.d.ts +5 -0
  92. package/bin/loanOfferings/dtos/requests/CreateFinancierRequest.js +11 -0
  93. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.d.ts +2 -2
  94. package/bin/loanOfferings/dtos/requests/CreatePromotionRequest.js +9 -0
  95. package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.d.ts +1 -1
  96. package/bin/loanOfferings/dtos/requests/CreateSegmentRequest.js +3 -0
  97. package/bin/loanOfferings/dtos/requests/CreateStorePolicyRequest.d.ts +1 -1
  98. package/bin/loanOfferings/dtos/requests/CreateStorePolicyRequest.js +3 -0
  99. package/bin/loanOfferings/dtos/requests/ReleasePromotionRequest.d.ts +8 -0
  100. package/bin/loanOfferings/dtos/requests/ReleasePromotionRequest.js +30 -0
  101. package/bin/loanOfferings/dtos/requests/ReservePromotionBonusRequest.d.ts +1 -0
  102. package/bin/loanOfferings/dtos/requests/ReservePromotionBonusRequest.js +3 -0
  103. package/bin/loanOfferings/dtos/requests/SettlePromotionBonusRequest.d.ts +1 -0
  104. package/bin/loanOfferings/dtos/requests/SettlePromotionBonusRequest.js +3 -0
  105. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.d.ts +1 -0
  106. package/bin/loanOfferings/dtos/requests/SimulateCreditPlanRequest.js +3 -0
  107. package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.d.ts +3 -1
  108. package/bin/loanOfferings/dtos/requests/UpdateCohortRequest.js +5 -2
  109. package/bin/loanOfferings/dtos/requests/UpdateCreditPlanRequest.d.ts +8 -0
  110. package/bin/loanOfferings/dtos/requests/UpdateCreditPlanRequest.js +30 -12
  111. package/bin/loanOfferings/dtos/requests/UpdateFinancierRequest.d.ts +6 -0
  112. package/bin/loanOfferings/dtos/requests/UpdateFinancierRequest.js +13 -2
  113. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.d.ts +7 -1
  114. package/bin/loanOfferings/dtos/requests/UpdatePromotionRequest.js +25 -5
  115. package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.d.ts +5 -2
  116. package/bin/loanOfferings/dtos/requests/UpdateSegmentRequest.js +12 -5
  117. package/bin/loanOfferings/dtos/requests/UpdateStorePolicyRequest.d.ts +18 -9
  118. package/bin/loanOfferings/dtos/requests/UpdateStorePolicyRequest.js +12 -4
  119. package/bin/loanOfferings/dtos/responses/ReleasePromotionResponse.d.ts +11 -0
  120. package/bin/loanOfferings/dtos/responses/ReleasePromotionResponse.js +2 -0
  121. package/bin/loanOfferings/index.d.ts +5 -0
  122. package/bin/loanOfferings/index.js +6 -0
  123. package/bin/loanOfferings/validators/IsOptionalNonNull.d.ts +9 -0
  124. package/bin/loanOfferings/validators/IsOptionalNonNull.js +14 -0
  125. package/bin/loanOfferings/validators/MaxJsonBytes.d.ts +5 -0
  126. package/bin/loanOfferings/validators/MaxJsonBytes.js +28 -0
  127. package/bin/loanRetailAudit/constants/auditInputLimits.d.ts +16 -0
  128. package/bin/loanRetailAudit/constants/auditInputLimits.js +19 -0
  129. package/bin/loanRetailAudit/dtos/AuditTrailChange.js +4 -0
  130. package/bin/loanRetailAudit/dtos/AuditTrailContextEntry.js +3 -0
  131. package/bin/loanRetailAudit/dtos/requests/CreatePiiAccessLogRequest.d.ts +7 -1
  132. package/bin/loanRetailAudit/dtos/requests/CreatePiiAccessLogRequest.js +8 -1
  133. package/bin/loanRetailAudit/events/AuditTrailRecordedV1.d.ts +1 -0
  134. package/bin/loanRetailAudit/events/AuditTrailRecordedV1.js +5 -1
  135. package/bin/loanRetailAudit/index.d.ts +2 -0
  136. package/bin/loanRetailAudit/index.js +3 -0
  137. package/bin/loanRetailAudit/validators/IsIsoDateTime.d.ts +13 -0
  138. package/bin/loanRetailAudit/validators/IsIsoDateTime.js +29 -0
  139. package/bin/loanScoring/dtos/ScoringOffer.d.ts +8 -6
  140. package/bin/loanScoring/dtos/requests/EvaluateSciRequest.d.ts +14 -3
  141. package/bin/loanScoring/dtos/requests/EvaluateSciRequest.js +15 -0
  142. package/package.json +1 -1
  143. package/src/collection/constants/CollectionResultLimits.ts +18 -0
  144. package/src/collection/dtos/ApplyCollectionResultRequest.ts +15 -8
  145. package/src/collection/dtos/ResolvePendingChargesRequest.ts +7 -4
  146. package/src/collection/index.ts +4 -0
  147. package/src/collection/validators/IsCentPrecision.ts +33 -0
  148. package/src/gsfConnector/dtos/GsfCreditTerms.ts +15 -3
  149. package/src/loanCollectorAssignment/constants/CollectorAssignmentLimits.ts +16 -0
  150. package/src/loanCollectorAssignment/dtos/requests/AutoAssignRequest.ts +13 -1
  151. package/src/loanCollectorAssignment/dtos/requests/ListCollectorAssignmentsRequest.ts +52 -0
  152. package/src/loanCollectorAssignment/dtos/requests/ReassignRequest.ts +8 -1
  153. package/src/loanCollectorAssignment/dtos/requests/RedistributeRequest.ts +8 -1
  154. package/src/loanCollectorAssignment/dtos/responses/ListCollectorAssignmentsResponse.ts +10 -0
  155. package/src/loanCollectorAssignment/index.ts +5 -0
  156. package/src/loanConfig/constants/ParameterRequestLimits.ts +11 -0
  157. package/src/loanConfig/dtos/requests/BulkGetParametersRequest.ts +4 -2
  158. package/src/loanConfig/dtos/requests/BulkUpdateParametersRequest.ts +26 -6
  159. package/src/loanConfig/dtos/requests/UpdateParameterRequest.ts +15 -7
  160. package/src/loanConfig/index.ts +1 -0
  161. package/src/loanCredit/constants/LoanInputLimits.ts +29 -0
  162. package/src/loanCredit/dtos/LoanBeneficiary.ts +11 -1
  163. package/src/loanCredit/dtos/LoanContractDetails.ts +26 -3
  164. package/src/loanCredit/dtos/LoanDeviceNotifyItem.ts +17 -3
  165. package/src/loanCredit/dtos/RestructureTerms.ts +4 -2
  166. package/src/loanCredit/dtos/SignatureContext.ts +5 -1
  167. package/src/loanCredit/dtos/requests/ActivationCheckRequest.ts +12 -2
  168. package/src/loanCredit/dtos/requests/BackofficeApproveRestructureRequest.ts +3 -1
  169. package/src/loanCredit/dtos/requests/BackofficeProposeRestructureRequest.ts +3 -1
  170. package/src/loanCredit/dtos/requests/BackofficeRejectRestructureRequest.ts +3 -1
  171. package/src/loanCredit/dtos/requests/BackofficeWriteOffCreditRequest.ts +3 -1
  172. package/src/loanCredit/dtos/requests/CreateCustomerPaymentRequest.ts +10 -1
  173. package/src/loanCredit/dtos/requests/CreateSellerPaymentRequest.ts +10 -1
  174. package/src/loanCredit/dtos/requests/OriginateLoanCreditRequest.ts +10 -1
  175. package/src/loanCredit/dtos/requests/SegmentFactsBatchRequest.ts +4 -2
  176. package/src/loanCredit/dtos/requests/SignLoanCreditRequest.ts +6 -1
  177. package/src/loanCredit/dtos/requests/UpsertLoanBorrowerRequest.ts +4 -1
  178. package/src/loanCredit/index.ts +2 -0
  179. package/src/loanCredit/validators/IsContractBirthDate.ts +41 -0
  180. package/src/loanOfferings/constants/offeringsInputLimits.ts +47 -0
  181. package/src/loanOfferings/dtos/requests/ChangeCreditPlanStatusRequest.ts +9 -1
  182. package/src/loanOfferings/dtos/requests/ChangePromotionStatusRequest.ts +3 -1
  183. package/src/loanOfferings/dtos/requests/ComputeAmortizationScheduleRequest.ts +7 -2
  184. package/src/loanOfferings/dtos/requests/ConsumePromotionRequest.ts +5 -1
  185. package/src/loanOfferings/dtos/requests/CreateCreditPlanRequest.ts +24 -2
  186. package/src/loanOfferings/dtos/requests/CreateFinancierRequest.ts +25 -0
  187. package/src/loanOfferings/dtos/requests/CreatePromotionRequest.ts +17 -2
  188. package/src/loanOfferings/dtos/requests/CreateSegmentRequest.ts +4 -1
  189. package/src/loanOfferings/dtos/requests/CreateStorePolicyRequest.ts +6 -1
  190. package/src/loanOfferings/dtos/requests/ReleasePromotionRequest.ts +16 -0
  191. package/src/loanOfferings/dtos/requests/ReservePromotionBonusRequest.ts +5 -1
  192. package/src/loanOfferings/dtos/requests/SettlePromotionBonusRequest.ts +5 -1
  193. package/src/loanOfferings/dtos/requests/SimulateCreditPlanRequest.ts +5 -1
  194. package/src/loanOfferings/dtos/requests/UpdateCohortRequest.ts +6 -3
  195. package/src/loanOfferings/dtos/requests/UpdateCreditPlanRequest.ts +43 -12
  196. package/src/loanOfferings/dtos/requests/UpdateFinancierRequest.ts +26 -2
  197. package/src/loanOfferings/dtos/requests/UpdatePromotionRequest.ts +34 -6
  198. package/src/loanOfferings/dtos/requests/UpdateSegmentRequest.ts +14 -7
  199. package/src/loanOfferings/dtos/requests/UpdateStorePolicyRequest.ts +28 -13
  200. package/src/loanOfferings/dtos/responses/ReleasePromotionResponse.ts +11 -0
  201. package/src/loanOfferings/index.ts +7 -0
  202. package/src/loanOfferings/validators/IsOptionalNonNull.ts +12 -0
  203. package/src/loanOfferings/validators/MaxJsonBytes.ts +28 -0
  204. package/src/loanRetailAudit/constants/auditInputLimits.ts +20 -0
  205. package/src/loanRetailAudit/dtos/AuditTrailChange.ts +5 -1
  206. package/src/loanRetailAudit/dtos/AuditTrailContextEntry.ts +4 -1
  207. package/src/loanRetailAudit/dtos/requests/CreatePiiAccessLogRequest.ts +20 -3
  208. package/src/loanRetailAudit/events/AuditTrailRecordedV1.ts +7 -2
  209. package/src/loanRetailAudit/index.ts +4 -0
  210. package/src/loanRetailAudit/validators/IsIsoDateTime.ts +33 -0
  211. package/src/loanScoring/dtos/ScoringOffer.ts +8 -6
  212. package/src/loanScoring/dtos/requests/EvaluateSciRequest.ts +26 -4
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ComputeAmortizationScheduleRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  /** Body de `POST /private/amortization/schedule` (loan-offerings-business). Tabla francesa semanal sin fechas. */
16
17
  class ComputeAmortizationScheduleRequest {
17
18
  }
@@ -26,13 +27,14 @@ __decorate([
26
27
  (0, class_transformer_1.Expose)(),
27
28
  (0, class_validator_1.IsNumber)(),
28
29
  (0, class_validator_1.Min)(0),
30
+ (0, class_validator_1.Max)(offeringsInputLimits_1.AMORTIZATION_TNA_ANNUAL_TECHNICAL_MAX),
29
31
  __metadata("design:type", Number)
30
32
  ], ComputeAmortizationScheduleRequest.prototype, "tnaAnnual", void 0);
31
33
  __decorate([
32
34
  (0, class_transformer_1.Expose)(),
33
35
  (0, class_validator_1.IsInt)(),
34
36
  (0, class_validator_1.Min)(1),
35
- (0, class_validator_1.Max)(104),
37
+ (0, class_validator_1.Max)(offeringsInputLimits_1.CREDIT_PLAN_MAX_TERM_WEEKS),
36
38
  __metadata("design:type", Number)
37
39
  ], ComputeAmortizationScheduleRequest.prototype, "termWeeks", void 0);
38
40
  __decorate([
@@ -3,5 +3,6 @@
3
3
  * esta promoción. `creditId` es la llave de idempotencia: reenviarlo NO vuelve a contar.
4
4
  */
5
5
  export declare class ConsumePromotionRequest {
6
+ /** Llave de idempotencia: vacía colapsaría todos los créditos en una sola fila (L-104). */
6
7
  creditId: string;
7
8
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ConsumePromotionRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  /**
16
17
  * Body de POST /private/promotions/:promotionId/consume — el crédito que acaba de activarse bajo
17
18
  * esta promoción. `creditId` es la llave de idempotencia: reenviarlo NO vuelve a contar.
@@ -22,5 +23,7 @@ exports.ConsumePromotionRequest = ConsumePromotionRequest;
22
23
  __decorate([
23
24
  (0, class_transformer_1.Expose)(),
24
25
  (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsNotEmpty)(),
27
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.PROMOTION_CREDIT_ID_MAX_LENGTH),
25
28
  __metadata("design:type", String)
26
29
  ], ConsumePromotionRequest.prototype, "creditId", void 0);
@@ -16,6 +16,7 @@ export declare class CreateCreditPlanRequest {
16
16
  eligibleTiers?: ProductTierEnum[] | null;
17
17
  minDownPaymentPct: number;
18
18
  maxDownPaymentPct?: number | null;
19
+ /** Plazos ofrecidos, en semanas: de 1 a 104 cada uno. */
19
20
  termWeeksOptions: number[];
20
21
  maxFinancedAmountCents: number;
21
22
  tnaAnnual: number;
@@ -23,7 +24,9 @@ export declare class CreateCreditPlanRequest {
23
24
  paymentShift?: boolean;
24
25
  minSciScore?: number | null;
25
26
  maxSciScore?: number | null;
27
+ /** Inicio de vigencia en ISO-8601; ausente o `null` = sin inicio. */
26
28
  validFrom?: string | null;
29
+ /** Fin de vigencia en ISO-8601; ausente o `null` = sin fin. */
27
30
  validUntil?: string | null;
28
31
  /** Mínimo del abono a capital; ausente = sin cambios (en el alta: `ANY`). */
29
32
  prepaymentMinimum?: PrepaymentMinimum;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreateCreditPlanRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
16
17
  const ProductTierEnum_1 = require("../../enums/ProductTierEnum");
17
18
  const SaleTypeEnum_1 = require("../../enums/SaleTypeEnum");
@@ -27,16 +28,22 @@ exports.CreateCreditPlanRequest = CreateCreditPlanRequest;
27
28
  __decorate([
28
29
  (0, class_transformer_1.Expose)(),
29
30
  (0, class_validator_1.IsString)(),
31
+ (0, class_validator_1.IsNotEmpty)(),
32
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_CODE_MAX_LENGTH),
30
33
  __metadata("design:type", String)
31
34
  ], CreateCreditPlanRequest.prototype, "code", void 0);
32
35
  __decorate([
33
36
  (0, class_transformer_1.Expose)(),
34
37
  (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.IsNotEmpty)(),
39
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_NAME_MAX_LENGTH),
35
40
  __metadata("design:type", String)
36
41
  ], CreateCreditPlanRequest.prototype, "name", void 0);
37
42
  __decorate([
38
43
  (0, class_transformer_1.Expose)(),
39
44
  (0, class_validator_1.IsString)(),
45
+ (0, class_validator_1.IsNotEmpty)(),
46
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_DESCRIPTION_MAX_LENGTH),
40
47
  __metadata("design:type", String)
41
48
  ], CreateCreditPlanRequest.prototype, "description", void 0);
42
49
  __decorate([
@@ -77,8 +84,10 @@ __decorate([
77
84
  (0, class_transformer_1.Expose)(),
78
85
  (0, class_validator_1.IsArray)(),
79
86
  (0, class_validator_1.ArrayNotEmpty)(),
87
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.CREDIT_PLAN_TERM_OPTIONS_MAX_ITEMS),
80
88
  (0, class_validator_1.IsInt)({ each: true }),
81
89
  (0, class_validator_1.Min)(1, { each: true }),
90
+ (0, class_validator_1.Max)(offeringsInputLimits_1.CREDIT_PLAN_MAX_TERM_WEEKS, { each: true }),
82
91
  __metadata("design:type", Array)
83
92
  ], CreateCreditPlanRequest.prototype, "termWeeksOptions", void 0);
84
93
  __decorate([
@@ -127,13 +136,13 @@ __decorate([
127
136
  __decorate([
128
137
  (0, class_transformer_1.Expose)(),
129
138
  (0, class_validator_1.IsOptional)(),
130
- (0, class_validator_1.IsString)(),
139
+ (0, class_validator_1.IsISO8601)(),
131
140
  __metadata("design:type", String)
132
141
  ], CreateCreditPlanRequest.prototype, "validFrom", void 0);
133
142
  __decorate([
134
143
  (0, class_transformer_1.Expose)(),
135
144
  (0, class_validator_1.IsOptional)(),
136
- (0, class_validator_1.IsString)(),
145
+ (0, class_validator_1.IsISO8601)(),
137
146
  __metadata("design:type", String)
138
147
  ], CreateCreditPlanRequest.prototype, "validUntil", void 0);
139
148
  __decorate([
@@ -11,7 +11,12 @@ export declare class CreateFinancierRequest {
11
11
  type: FinancierTypeEnum;
12
12
  displayOrder?: number;
13
13
  label: string;
14
+ /** URL https a la que se redirige al cliente; `null` = sin redirección. */
14
15
  externalRedirectUrl?: string | null;
15
16
  eligibleTiers?: ProductTierEnum[] | null;
17
+ /**
18
+ * @deprecated Ningún consumidor lo lee (TD-019 de loan-offerings) y se va a eliminar (decisión
19
+ * D-9). Mientras tanto, a lo más 4 KB serializado.
20
+ */
16
21
  config?: Record<string, unknown> | null;
17
22
  }
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreateFinancierRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
16
+ const MaxJsonBytes_1 = require("../../validators/MaxJsonBytes");
15
17
  const FinancierTypeEnum_1 = require("../../enums/FinancierTypeEnum");
16
18
  const ProductTierEnum_1 = require("../../enums/ProductTierEnum");
17
19
  /**
@@ -25,11 +27,15 @@ exports.CreateFinancierRequest = CreateFinancierRequest;
25
27
  __decorate([
26
28
  (0, class_transformer_1.Expose)(),
27
29
  (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.IsNotEmpty)(),
31
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_CODE_MAX_LENGTH),
28
32
  __metadata("design:type", String)
29
33
  ], CreateFinancierRequest.prototype, "code", void 0);
30
34
  __decorate([
31
35
  (0, class_transformer_1.Expose)(),
32
36
  (0, class_validator_1.IsString)(),
37
+ (0, class_validator_1.IsNotEmpty)(),
38
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_NAME_MAX_LENGTH),
33
39
  __metadata("design:type", String)
34
40
  ], CreateFinancierRequest.prototype, "name", void 0);
35
41
  __decorate([
@@ -47,12 +53,16 @@ __decorate([
47
53
  __decorate([
48
54
  (0, class_transformer_1.Expose)(),
49
55
  (0, class_validator_1.IsString)(),
56
+ (0, class_validator_1.IsNotEmpty)(),
57
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_LABEL_MAX_LENGTH),
50
58
  __metadata("design:type", String)
51
59
  ], CreateFinancierRequest.prototype, "label", void 0);
52
60
  __decorate([
53
61
  (0, class_transformer_1.Expose)(),
54
62
  (0, class_validator_1.IsOptional)(),
55
63
  (0, class_validator_1.IsString)(),
64
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.FINANCIER_REDIRECT_URL_MAX_LENGTH),
65
+ (0, class_validator_1.IsUrl)({ protocols: ['https'], require_protocol: true }),
56
66
  __metadata("design:type", String)
57
67
  ], CreateFinancierRequest.prototype, "externalRedirectUrl", void 0);
58
68
  __decorate([
@@ -66,5 +76,6 @@ __decorate([
66
76
  (0, class_transformer_1.Expose)(),
67
77
  (0, class_validator_1.IsOptional)(),
68
78
  (0, class_validator_1.IsObject)(),
79
+ (0, MaxJsonBytes_1.MaxJsonBytes)(offeringsInputLimits_1.FINANCIER_CONFIG_MAX_BYTES),
69
80
  __metadata("design:type", Object)
70
81
  ], CreateFinancierRequest.prototype, "config", void 0);
@@ -14,7 +14,7 @@ export declare class CreatePromotionRequest {
14
14
  /** Segmento de clientes al que apunta la promoción. */
15
15
  segmentId: string;
16
16
  targetLevels: CreditPlanLevelEnum[];
17
- /** SKUs alcanzados; ausente o `null` = todos los productos. */
17
+ /** SKUs alcanzados; ausente o `null` = todos los productos. Hasta 2 000. */
18
18
  productSkus?: string[] | null;
19
19
  /** Tipos de producto alcanzados; ausente o `null` = todos los tipos. */
20
20
  productCategories?: ProductCategoryEnum[] | null;
@@ -22,7 +22,7 @@ export declare class CreatePromotionRequest {
22
22
  tiers?: ProductTierEnum[] | null;
23
23
  /** Cadenas alcanzadas; ausente, `null` o vacío = todas las cadenas. */
24
24
  retailerIds?: string[] | null;
25
- /** Tiendas alcanzadas. `null` o ausente = todas. */
25
+ /** Tiendas alcanzadas. `null` o ausente = todas. Hasta 1 000. */
26
26
  storeIds?: string[] | null;
27
27
  validFrom?: string | null;
28
28
  validUntil?: string | null;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreatePromotionRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const promotionRetailerScope_1 = require("../../constants/promotionRetailerScope");
16
17
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
17
18
  const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
@@ -28,11 +29,15 @@ exports.CreatePromotionRequest = CreatePromotionRequest;
28
29
  __decorate([
29
30
  (0, class_transformer_1.Expose)(),
30
31
  (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.IsNotEmpty)(),
33
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_NAME_MAX_LENGTH),
31
34
  __metadata("design:type", String)
32
35
  ], CreatePromotionRequest.prototype, "name", void 0);
33
36
  __decorate([
34
37
  (0, class_transformer_1.Expose)(),
35
38
  (0, class_validator_1.IsString)(),
39
+ (0, class_validator_1.IsNotEmpty)(),
40
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_DESCRIPTION_MAX_LENGTH),
36
41
  __metadata("design:type", String)
37
42
  ], CreatePromotionRequest.prototype, "description", void 0);
38
43
  __decorate([
@@ -57,7 +62,9 @@ __decorate([
57
62
  (0, class_transformer_1.Expose)(),
58
63
  (0, class_validator_1.IsOptional)(),
59
64
  (0, class_validator_1.IsArray)(),
65
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.PROMOTION_PRODUCT_SKUS_MAX_ITEMS),
60
66
  (0, class_validator_1.IsString)({ each: true }),
67
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
61
68
  __metadata("design:type", Array)
62
69
  ], CreatePromotionRequest.prototype, "productSkus", void 0);
63
70
  __decorate([
@@ -87,7 +94,9 @@ __decorate([
87
94
  (0, class_transformer_1.Expose)(),
88
95
  (0, class_validator_1.IsOptional)(),
89
96
  (0, class_validator_1.IsArray)(),
97
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.SCOPE_STORE_IDS_MAX_ITEMS),
90
98
  (0, class_validator_1.IsString)({ each: true }),
99
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
91
100
  __metadata("design:type", Array)
92
101
  ], CreatePromotionRequest.prototype, "storeIds", void 0);
93
102
  __decorate([
@@ -19,7 +19,7 @@ export declare class CreateSegmentRequest {
19
19
  filterIds?: string[];
20
20
  /**
21
21
  * Clientes agregados a mano por `retailCustomerId`. Ganan siempre, cumplan o no un cohort.
22
- * Un segmento puede nacer SOLO con esta lista, sin ningún cohort.
22
+ * Un segmento puede nacer SOLO con esta lista, sin ningún cohort. Hasta 5 000, sin ids vacíos.
23
23
  */
24
24
  memberIds?: string[];
25
25
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreateSegmentRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const SegmentColorSlotEnum_1 = require("../../enums/SegmentColorSlotEnum");
16
17
  /**
17
18
  * Body de POST /segments — alta de un segmento de clientes.
@@ -61,6 +62,8 @@ __decorate([
61
62
  (0, class_transformer_1.Expose)(),
62
63
  (0, class_validator_1.IsOptional)(),
63
64
  (0, class_validator_1.IsArray)(),
65
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.SEGMENT_MEMBER_IDS_MAX_ITEMS),
64
66
  (0, class_validator_1.IsString)({ each: true }),
67
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
65
68
  __metadata("design:type", Array)
66
69
  ], CreateSegmentRequest.prototype, "memberIds", void 0);
@@ -28,7 +28,7 @@ export declare class CreateStorePolicyRequest {
28
28
  suspended?: boolean;
29
29
  /** Compuerta: SKUs habilitados. Ausente = sin restricción. */
30
30
  allowedSkus?: string[];
31
- /** Alcance: tiendas alcanzadas. Ausente = toda la red. */
31
+ /** Alcance: tiendas alcanzadas. Ausente = toda la red. Hasta 1 000. */
32
32
  storeIds?: string[];
33
33
  /** Alcance: niveles alcanzados. Ausente = todos los niveles. */
34
34
  targetLevels?: CreditPlanLevelEnum[];
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreateStorePolicyRequest = exports.StorePolicyEasingDto = exports.StorePolicyHardeningDto = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const CreditPlanLevelEnum_1 = require("../../enums/CreditPlanLevelEnum");
16
17
  /** Grupo de palancas que ENDURECEN las condiciones del plan. */
17
18
  class StorePolicyHardeningDto {
@@ -129,7 +130,9 @@ __decorate([
129
130
  (0, class_validator_1.IsOptional)(),
130
131
  (0, class_validator_1.IsArray)(),
131
132
  (0, class_validator_1.ArrayNotEmpty)(),
133
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.SCOPE_STORE_IDS_MAX_ITEMS),
132
134
  (0, class_validator_1.IsString)({ each: true }),
135
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
133
136
  __metadata("design:type", Array)
134
137
  ], CreateStorePolicyRequest.prototype, "storeIds", void 0);
135
138
  __decorate([
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Body de POST /private/promotions/:promotionId/release — el crédito con promoción que se canceló.
3
+ * Baja `creditsGenerated` una sola vez por crédito: `creditId` es la llave de idempotencia, así que
4
+ * reenviarlo no vuelve a restar. El bono PCF no vuelve al presupuesto: es irreversible (L-052, D-2).
5
+ */
6
+ export declare class ReleasePromotionRequest {
7
+ creditId: string;
8
+ }
@@ -0,0 +1,30 @@
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.ReleasePromotionRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
16
+ /**
17
+ * Body de POST /private/promotions/:promotionId/release — el crédito con promoción que se canceló.
18
+ * Baja `creditsGenerated` una sola vez por crédito: `creditId` es la llave de idempotencia, así que
19
+ * reenviarlo no vuelve a restar. El bono PCF no vuelve al presupuesto: es irreversible (L-052, D-2).
20
+ */
21
+ class ReleasePromotionRequest {
22
+ }
23
+ exports.ReleasePromotionRequest = ReleasePromotionRequest;
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.PROMOTION_CREDIT_ID_MAX_LENGTH),
29
+ __metadata("design:type", String)
30
+ ], ReleasePromotionRequest.prototype, "creditId", void 0);
@@ -3,5 +3,6 @@
3
3
  * cobrar el bono. `creditId` es el candado: reenviarlo devuelve `reserved: false`, no un segundo pago.
4
4
  */
5
5
  export declare class ReservePromotionBonusRequest {
6
+ /** Llave de idempotencia: vacía colapsaría todos los créditos en una sola fila (L-104). */
6
7
  creditId: string;
7
8
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ReservePromotionBonusRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  /**
16
17
  * Body de POST /private/promotions/:promotionId/bonus-payment — el crédito recién activado que va a
17
18
  * cobrar el bono. `creditId` es el candado: reenviarlo devuelve `reserved: false`, no un segundo pago.
@@ -22,5 +23,7 @@ exports.ReservePromotionBonusRequest = ReservePromotionBonusRequest;
22
23
  __decorate([
23
24
  (0, class_transformer_1.Expose)(),
24
25
  (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsNotEmpty)(),
27
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.PROMOTION_CREDIT_ID_MAX_LENGTH),
25
28
  __metadata("design:type", String)
26
29
  ], ReservePromotionBonusRequest.prototype, "creditId", void 0);
@@ -4,6 +4,7 @@ import { PromotionBonusStatusEnum } from '../../enums/PromotionBonusStatusEnum';
4
4
  * contestó el processor. `RESERVED` no se acepta: es el estado del que se sale, no al que se llega.
5
5
  */
6
6
  export declare class SettlePromotionBonusRequest {
7
+ /** Llave de idempotencia: vacía colapsaría todos los créditos en una sola fila (L-104). */
7
8
  bonusId: string;
8
9
  status: PromotionBonusStatusEnum;
9
10
  /** Folio del processor. Ausente cuando aprobó sin darlo, o cuando el pago falló. */
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SettlePromotionBonusRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const PromotionBonusStatusEnum_1 = require("../../enums/PromotionBonusStatusEnum");
16
17
  /**
17
18
  * Body de PUT /private/promotions/:promotionId/bonus-payment/result — cierra el asiento con lo que
@@ -23,6 +24,8 @@ exports.SettlePromotionBonusRequest = SettlePromotionBonusRequest;
23
24
  __decorate([
24
25
  (0, class_transformer_1.Expose)(),
25
26
  (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.PROMOTION_CREDIT_ID_MAX_LENGTH),
26
29
  __metadata("design:type", String)
27
30
  ], SettlePromotionBonusRequest.prototype, "bonusId", void 0);
28
31
  __decorate([
@@ -27,6 +27,7 @@ export declare class SimulateCreditPlanRequest {
27
27
  /**
28
28
  * Segmentos del cliente, los que devolvió `POST /private/segments/resolve`. Un arreglo vacío
29
29
  * declara que el cliente no está en ninguno; ausente declara que el caller no lo consultó.
30
+ * Hasta 50, sin ids vacíos.
30
31
  */
31
32
  customerSegmentIds?: string[];
32
33
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SimulateCreditPlanRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const ProductCategoryEnum_1 = require("../../../retailCatalog/enums/ProductCategoryEnum");
16
17
  const ProductTierEnum_1 = require("../../../retailCatalog/enums/ProductTierEnum");
17
18
  /**
@@ -88,6 +89,8 @@ __decorate([
88
89
  (0, class_transformer_1.Expose)(),
89
90
  (0, class_validator_1.IsOptional)(),
90
91
  (0, class_validator_1.IsArray)(),
92
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.CUSTOMER_SEGMENT_IDS_MAX_ITEMS),
91
93
  (0, class_validator_1.IsString)({ each: true }),
94
+ (0, class_validator_1.IsNotEmpty)({ each: true }),
92
95
  __metadata("design:type", Array)
93
96
  ], SimulateCreditPlanRequest.prototype, "customerSegmentIds", void 0);
@@ -2,10 +2,12 @@ import { CohortCondition } from './CohortCondition';
2
2
  /**
3
3
  * Body de PUT /cohorts/:cohortId — edición parcial; ausente deja el campo como está. Sube
4
4
  * `version`. El cambio de estado va por su endpoint dedicado.
5
+ *
6
+ * `null` solo se acepta en `description`, donde la borra; en `name` y `conditions` da 400.
5
7
  */
6
8
  export declare class UpdateCohortRequest {
7
9
  name?: string;
8
- description?: string;
10
+ description?: string | null;
9
11
  /** Reemplaza todas las condiciones. */
10
12
  conditions?: CohortCondition[];
11
13
  reason?: string;
@@ -12,17 +12,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateCohortRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const IsOptionalNonNull_1 = require("../../validators/IsOptionalNonNull");
15
16
  const CohortCondition_1 = require("./CohortCondition");
16
17
  /**
17
18
  * Body de PUT /cohorts/:cohortId — edición parcial; ausente deja el campo como está. Sube
18
19
  * `version`. El cambio de estado va por su endpoint dedicado.
20
+ *
21
+ * `null` solo se acepta en `description`, donde la borra; en `name` y `conditions` da 400.
19
22
  */
20
23
  class UpdateCohortRequest {
21
24
  }
22
25
  exports.UpdateCohortRequest = UpdateCohortRequest;
23
26
  __decorate([
24
27
  (0, class_transformer_1.Expose)(),
25
- (0, class_validator_1.IsOptional)(),
28
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
26
29
  (0, class_validator_1.IsString)(),
27
30
  (0, class_validator_1.MaxLength)(120),
28
31
  __metadata("design:type", String)
@@ -36,7 +39,7 @@ __decorate([
36
39
  ], UpdateCohortRequest.prototype, "description", void 0);
37
40
  __decorate([
38
41
  (0, class_transformer_1.Expose)(),
39
- (0, class_validator_1.IsOptional)(),
42
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
40
43
  (0, class_validator_1.IsArray)(),
41
44
  (0, class_validator_1.ArrayMinSize)(1),
42
45
  (0, class_validator_1.ArrayMaxSize)(10),
@@ -6,6 +6,9 @@ import { PrepaymentMinimum } from '../PrepaymentMinimum';
6
6
  * En F1 el PUT puede editar `min/maxSciScore` por-plan (DEC-004); el guard atómico anti-huecos
7
7
  * entre planes (21-100) es F2/F3. El cambio de `status` va por su endpoint dedicado.
8
8
  * `code` y `level` no se editan aquí (identidad/segmentación del plan).
9
+ *
10
+ * Ausente deja el campo como está. `null` solo se acepta en los campos que lo declaran
11
+ * (`eligibleTiers`, `maxDownPaymentPct`, `min/maxSciScore`, `validFrom/Until`); en el resto da 400.
9
12
  */
10
13
  export declare class UpdateCreditPlanRequest {
11
14
  name?: string;
@@ -14,6 +17,7 @@ export declare class UpdateCreditPlanRequest {
14
17
  eligibleTiers?: ProductTierEnum[] | null;
15
18
  minDownPaymentPct?: number;
16
19
  maxDownPaymentPct?: number | null;
20
+ /** Plazos ofrecidos, en semanas: de 1 a 104 cada uno. */
17
21
  termWeeksOptions?: number[];
18
22
  maxFinancedAmountCents?: number;
19
23
  tnaAnnual?: number;
@@ -21,8 +25,12 @@ export declare class UpdateCreditPlanRequest {
21
25
  paymentShift?: boolean;
22
26
  minSciScore?: number | null;
23
27
  maxSciScore?: number | null;
28
+ /** Inicio de vigencia en ISO-8601; `null` la quita. */
24
29
  validFrom?: string | null;
30
+ /** Fin de vigencia en ISO-8601; `null` la quita. */
25
31
  validUntil?: string | null;
26
32
  /** Mínimo del abono a capital; ausente = sin cambios (en el alta: `ANY`). */
27
33
  prepaymentMinimum?: PrepaymentMinimum;
34
+ /** Motivo del cambio; queda en la bitácora del plan. */
35
+ reason?: string;
28
36
  }
@@ -12,33 +12,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateCreditPlanRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
+ const offeringsInputLimits_1 = require("../../constants/offeringsInputLimits");
15
16
  const ProductTierEnum_1 = require("../../enums/ProductTierEnum");
16
17
  const SaleTypeEnum_1 = require("../../enums/SaleTypeEnum");
18
+ const IsOptionalNonNull_1 = require("../../validators/IsOptionalNonNull");
17
19
  const PrepaymentMinimum_1 = require("../PrepaymentMinimum");
18
20
  /**
19
21
  * Body de PUT /credit-plans/:planId — edición parcial de parámetros del plan (todos opcionales).
20
22
  * En F1 el PUT puede editar `min/maxSciScore` por-plan (DEC-004); el guard atómico anti-huecos
21
23
  * entre planes (21-100) es F2/F3. El cambio de `status` va por su endpoint dedicado.
22
24
  * `code` y `level` no se editan aquí (identidad/segmentación del plan).
25
+ *
26
+ * Ausente deja el campo como está. `null` solo se acepta en los campos que lo declaran
27
+ * (`eligibleTiers`, `maxDownPaymentPct`, `min/maxSciScore`, `validFrom/Until`); en el resto da 400.
23
28
  */
24
29
  class UpdateCreditPlanRequest {
25
30
  }
26
31
  exports.UpdateCreditPlanRequest = UpdateCreditPlanRequest;
27
32
  __decorate([
28
33
  (0, class_transformer_1.Expose)(),
29
- (0, class_validator_1.IsOptional)(),
34
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
30
35
  (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_NAME_MAX_LENGTH),
31
38
  __metadata("design:type", String)
32
39
  ], UpdateCreditPlanRequest.prototype, "name", void 0);
33
40
  __decorate([
34
41
  (0, class_transformer_1.Expose)(),
35
- (0, class_validator_1.IsOptional)(),
42
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
36
43
  (0, class_validator_1.IsString)(),
44
+ (0, class_validator_1.IsNotEmpty)(),
45
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_DESCRIPTION_MAX_LENGTH),
37
46
  __metadata("design:type", String)
38
47
  ], UpdateCreditPlanRequest.prototype, "description", void 0);
39
48
  __decorate([
40
49
  (0, class_transformer_1.Expose)(),
41
- (0, class_validator_1.IsOptional)(),
50
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
42
51
  (0, class_validator_1.IsArray)(),
43
52
  (0, class_validator_1.ArrayNotEmpty)(),
44
53
  (0, class_validator_1.IsEnum)(SaleTypeEnum_1.SaleTypeEnum, { each: true }),
@@ -53,7 +62,7 @@ __decorate([
53
62
  ], UpdateCreditPlanRequest.prototype, "eligibleTiers", void 0);
54
63
  __decorate([
55
64
  (0, class_transformer_1.Expose)(),
56
- (0, class_validator_1.IsOptional)(),
65
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
57
66
  (0, class_validator_1.IsNumber)(),
58
67
  (0, class_validator_1.Min)(0),
59
68
  (0, class_validator_1.Max)(1),
@@ -69,23 +78,25 @@ __decorate([
69
78
  ], UpdateCreditPlanRequest.prototype, "maxDownPaymentPct", void 0);
70
79
  __decorate([
71
80
  (0, class_transformer_1.Expose)(),
72
- (0, class_validator_1.IsOptional)(),
81
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
73
82
  (0, class_validator_1.IsArray)(),
74
83
  (0, class_validator_1.ArrayNotEmpty)(),
84
+ (0, class_validator_1.ArrayMaxSize)(offeringsInputLimits_1.CREDIT_PLAN_TERM_OPTIONS_MAX_ITEMS),
75
85
  (0, class_validator_1.IsInt)({ each: true }),
76
86
  (0, class_validator_1.Min)(1, { each: true }),
87
+ (0, class_validator_1.Max)(offeringsInputLimits_1.CREDIT_PLAN_MAX_TERM_WEEKS, { each: true }),
77
88
  __metadata("design:type", Array)
78
89
  ], UpdateCreditPlanRequest.prototype, "termWeeksOptions", void 0);
79
90
  __decorate([
80
91
  (0, class_transformer_1.Expose)(),
81
- (0, class_validator_1.IsOptional)(),
92
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
82
93
  (0, class_validator_1.IsInt)(),
83
94
  (0, class_validator_1.Min)(0),
84
95
  __metadata("design:type", Number)
85
96
  ], UpdateCreditPlanRequest.prototype, "maxFinancedAmountCents", void 0);
86
97
  __decorate([
87
98
  (0, class_transformer_1.Expose)(),
88
- (0, class_validator_1.IsOptional)(),
99
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
89
100
  (0, class_validator_1.IsNumber)(),
90
101
  (0, class_validator_1.Min)(2.0),
91
102
  (0, class_validator_1.Max)(2.6),
@@ -93,7 +104,7 @@ __decorate([
93
104
  ], UpdateCreditPlanRequest.prototype, "tnaAnnual", void 0);
94
105
  __decorate([
95
106
  (0, class_transformer_1.Expose)(),
96
- (0, class_validator_1.IsOptional)(),
107
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
97
108
  (0, class_validator_1.IsNumber)(),
98
109
  (0, class_validator_1.Min)(0),
99
110
  (0, class_validator_1.Max)(1),
@@ -101,7 +112,7 @@ __decorate([
101
112
  ], UpdateCreditPlanRequest.prototype, "openingCommissionPct", void 0);
102
113
  __decorate([
103
114
  (0, class_transformer_1.Expose)(),
104
- (0, class_validator_1.IsOptional)(),
115
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
105
116
  (0, class_validator_1.IsBoolean)(),
106
117
  __metadata("design:type", Boolean)
107
118
  ], UpdateCreditPlanRequest.prototype, "paymentShift", void 0);
@@ -124,19 +135,26 @@ __decorate([
124
135
  __decorate([
125
136
  (0, class_transformer_1.Expose)(),
126
137
  (0, class_validator_1.IsOptional)(),
127
- (0, class_validator_1.IsString)(),
138
+ (0, class_validator_1.IsISO8601)(),
128
139
  __metadata("design:type", String)
129
140
  ], UpdateCreditPlanRequest.prototype, "validFrom", void 0);
130
141
  __decorate([
131
142
  (0, class_transformer_1.Expose)(),
132
143
  (0, class_validator_1.IsOptional)(),
133
- (0, class_validator_1.IsString)(),
144
+ (0, class_validator_1.IsISO8601)(),
134
145
  __metadata("design:type", String)
135
146
  ], UpdateCreditPlanRequest.prototype, "validUntil", void 0);
136
147
  __decorate([
137
148
  (0, class_transformer_1.Expose)(),
138
- (0, class_validator_1.IsOptional)(),
149
+ (0, IsOptionalNonNull_1.IsOptionalNonNull)(),
139
150
  (0, class_validator_1.ValidateNested)(),
140
151
  (0, class_transformer_1.Type)(() => PrepaymentMinimum_1.PrepaymentMinimum),
141
152
  __metadata("design:type", PrepaymentMinimum_1.PrepaymentMinimum)
142
153
  ], UpdateCreditPlanRequest.prototype, "prepaymentMinimum", void 0);
154
+ __decorate([
155
+ (0, class_transformer_1.Expose)(),
156
+ (0, class_validator_1.IsOptional)(),
157
+ (0, class_validator_1.IsString)(),
158
+ (0, class_validator_1.MaxLength)(offeringsInputLimits_1.OFFERINGS_AUDIT_REASON_MAX_LENGTH),
159
+ __metadata("design:type", String)
160
+ ], UpdateCreditPlanRequest.prototype, "reason", void 0);