@fiado/type-kit 3.471.0 → 3.473.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 (278) hide show
  1. package/_test_/unit/common/IsStringValueRecord.test.ts +25 -0
  2. package/_test_/unit/platformRbac/dtos/tenantUserCustomFields.test.ts +55 -0
  3. package/_test_/unit/retailCatalog/catalogDebt.test.ts +123 -0
  4. package/_test_/unit/retailCatalog/catalogEnums.test.ts +2 -2
  5. package/_test_/unit/retailCatalog/ventaSaga.test.ts +152 -0
  6. package/_test_/unit/retailPromotions/computeBudgetUsedBps.test.ts +30 -0
  7. package/_test_/unit/retailPromotions/constants.test.ts +71 -0
  8. package/_test_/unit/retailPromotions/discountCodeAndWizardRequests.test.ts +84 -0
  9. package/_test_/unit/retailPromotions/salePromotionRequests.test.ts +151 -0
  10. package/_test_/unit/retailWizard/promotionM2mRequests.test.ts +189 -0
  11. package/_test_/unit/retailWizard/ventaSagaMessages.test.ts +163 -0
  12. package/_test_/unit/retailWizard/ventaSagaRequests.test.ts +59 -0
  13. package/_test_/unit/retailWizard/ventaSagaShapes.test.ts +99 -0
  14. package/bin/common/index.d.ts +1 -0
  15. package/bin/common/index.js +2 -0
  16. package/bin/common/validators/IsStringValueRecord.d.ts +5 -0
  17. package/bin/common/validators/IsStringValueRecord.js +25 -0
  18. package/bin/index.d.ts +1 -0
  19. package/bin/index.js +5 -2
  20. package/bin/messagesConnector/validators/IsStringValueRecord.d.ts +1 -5
  21. package/bin/messagesConnector/validators/IsStringValueRecord.js +3 -21
  22. package/bin/platformRbac/dtos/CreateTenantUserRequest.d.ts +4 -0
  23. package/bin/platformRbac/dtos/CreateTenantUserRequest.js +9 -0
  24. package/bin/platformRbac/dtos/UpdateTenantUserRequest.d.ts +5 -2
  25. package/bin/platformRbac/dtos/UpdateTenantUserRequest.js +10 -2
  26. package/bin/retailCatalog/dtos/Product.d.ts +6 -0
  27. package/bin/retailCatalog/dtos/requests/BackofficeCreateProductRequest.d.ts +9 -0
  28. package/bin/retailCatalog/dtos/requests/BackofficeCreateProductRequest.js +30 -0
  29. package/bin/retailCatalog/dtos/requests/BackofficeRegisterAdjustmentRequest.d.ts +2 -0
  30. package/bin/retailCatalog/dtos/requests/BackofficeRegisterAdjustmentRequest.js +6 -0
  31. package/bin/retailCatalog/dtos/requests/BackofficeUpdateProductRequest.d.ts +9 -0
  32. package/bin/retailCatalog/dtos/requests/BackofficeUpdateProductRequest.js +30 -0
  33. package/bin/retailCatalog/dtos/requests/HoldStockRequest.d.ts +12 -0
  34. package/bin/retailCatalog/dtos/requests/HoldStockRequest.js +47 -0
  35. package/bin/retailCatalog/dtos/requests/ReserveStockRequest.d.ts +3 -0
  36. package/bin/retailCatalog/dtos/requests/ReserveStockRequest.js +6 -0
  37. package/bin/retailCatalog/dtos/requests/SuggestPiecesQuery.d.ts +2 -0
  38. package/bin/retailCatalog/dtos/requests/SuggestPiecesQuery.js +6 -0
  39. package/bin/retailCatalog/dtos/responses/GetInventorySkuResponse.d.ts +3 -0
  40. package/bin/retailCatalog/dtos/responses/HoldStockResponse.d.ts +8 -0
  41. package/bin/retailCatalog/dtos/responses/HoldStockResponse.js +2 -0
  42. package/bin/retailCatalog/dtos/responses/StoreCatalogItem.d.ts +5 -1
  43. package/bin/retailCatalog/enums/InventoryInboundMessageTypeEnum.d.ts +5 -0
  44. package/bin/retailCatalog/enums/InventoryInboundMessageTypeEnum.js +9 -0
  45. package/bin/retailCatalog/enums/InventoryItemStatusEnum.d.ts +4 -2
  46. package/bin/retailCatalog/enums/InventoryItemStatusEnum.js +3 -1
  47. package/bin/retailCatalog/enums/ReservePurposeEnum.d.ts +4 -0
  48. package/bin/retailCatalog/enums/ReservePurposeEnum.js +8 -0
  49. package/bin/retailCatalog/events/InventoryInboundMessage.d.ts +4 -0
  50. package/bin/retailCatalog/events/InventoryInboundMessage.js +2 -0
  51. package/bin/retailCatalog/events/InventoryReturnMessage.d.ts +12 -0
  52. package/bin/retailCatalog/events/InventoryReturnMessage.js +42 -0
  53. package/bin/retailCatalog/events/InventorySaleAppliedMessage.d.ts +12 -0
  54. package/bin/retailCatalog/events/InventorySaleAppliedMessage.js +42 -0
  55. package/bin/retailCatalog/index.d.ts +7 -0
  56. package/bin/retailCatalog/index.js +8 -0
  57. package/bin/retailPromotions/constants/bonusPreMoney.d.ts +7 -0
  58. package/bin/retailPromotions/constants/bonusPreMoney.js +21 -0
  59. package/bin/retailPromotions/constants/retailPromotionsErrorHttpStatus.d.ts +3 -0
  60. package/bin/retailPromotions/constants/retailPromotionsErrorHttpStatus.js +23 -0
  61. package/bin/retailPromotions/constants/salePromotionTransitions.d.ts +7 -0
  62. package/bin/retailPromotions/constants/salePromotionTransitions.js +13 -0
  63. package/bin/retailPromotions/dtos/DiscountCode.d.ts +35 -0
  64. package/bin/retailPromotions/dtos/DiscountCode.js +2 -0
  65. package/bin/retailPromotions/dtos/DiscountValue.d.ts +7 -0
  66. package/bin/retailPromotions/dtos/DiscountValue.js +2 -0
  67. package/bin/retailPromotions/dtos/LinePromotionDiscount.d.ts +10 -0
  68. package/bin/retailPromotions/dtos/LinePromotionDiscount.js +2 -0
  69. package/bin/retailPromotions/dtos/SalePromotion.d.ts +35 -0
  70. package/bin/retailPromotions/dtos/SalePromotion.js +2 -0
  71. package/bin/retailPromotions/dtos/SalePromotionLevers.d.ts +58 -0
  72. package/bin/retailPromotions/dtos/SalePromotionLevers.js +2 -0
  73. package/bin/retailPromotions/dtos/SalePromotionLogEntry.d.ts +18 -0
  74. package/bin/retailPromotions/dtos/SalePromotionLogEntry.js +2 -0
  75. package/bin/retailPromotions/dtos/requests/ChangeDiscountCodeStatusRequest.d.ts +6 -0
  76. package/bin/retailPromotions/dtos/requests/ChangeDiscountCodeStatusRequest.js +30 -0
  77. package/bin/retailPromotions/dtos/requests/ChangeSalePromotionStatusRequest.d.ts +6 -0
  78. package/bin/retailPromotions/dtos/requests/ChangeSalePromotionStatusRequest.js +30 -0
  79. package/bin/retailPromotions/dtos/requests/CreateDiscountCodeRequest.d.ts +17 -0
  80. package/bin/retailPromotions/dtos/requests/CreateDiscountCodeRequest.js +78 -0
  81. package/bin/retailPromotions/dtos/requests/CreateSalePromotionRequest.d.ts +19 -0
  82. package/bin/retailPromotions/dtos/requests/CreateSalePromotionRequest.js +83 -0
  83. package/bin/retailPromotions/dtos/requests/DiscountValueInput.d.ts +8 -0
  84. package/bin/retailPromotions/dtos/requests/DiscountValueInput.js +36 -0
  85. package/bin/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.d.ts +5 -0
  86. package/bin/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.js +31 -0
  87. package/bin/retailPromotions/dtos/requests/HoldSalePromotionRequest.d.ts +11 -0
  88. package/bin/retailPromotions/dtos/requests/HoldSalePromotionRequest.js +48 -0
  89. package/bin/retailPromotions/dtos/requests/ListDiscountCodesQuery.d.ts +10 -0
  90. package/bin/retailPromotions/dtos/requests/ListDiscountCodesQuery.js +49 -0
  91. package/bin/retailPromotions/dtos/requests/ListSalePromotionLogQuery.d.ts +8 -0
  92. package/bin/retailPromotions/dtos/requests/ListSalePromotionLogQuery.js +46 -0
  93. package/bin/retailPromotions/dtos/requests/ListSalePromotionsQuery.d.ts +7 -0
  94. package/bin/retailPromotions/dtos/requests/ListSalePromotionsQuery.js +40 -0
  95. package/bin/retailPromotions/dtos/requests/ListStoreSalePromotionsQuery.d.ts +4 -0
  96. package/bin/retailPromotions/dtos/requests/ListStoreSalePromotionsQuery.js +24 -0
  97. package/bin/retailPromotions/dtos/requests/SalePromotionLeversInput.d.ts +40 -0
  98. package/bin/retailPromotions/dtos/requests/SalePromotionLeversInput.js +166 -0
  99. package/bin/retailPromotions/dtos/requests/SalePromotionScopeInput.d.ts +14 -0
  100. package/bin/retailPromotions/dtos/requests/SalePromotionScopeInput.js +65 -0
  101. package/bin/retailPromotions/dtos/requests/UpdateSalePromotionRequest.d.ts +19 -0
  102. package/bin/retailPromotions/dtos/requests/UpdateSalePromotionRequest.js +85 -0
  103. package/bin/retailPromotions/dtos/responses/DiscountCodeResponses.d.ts +7 -0
  104. package/bin/retailPromotions/dtos/responses/DiscountCodeResponses.js +2 -0
  105. package/bin/retailPromotions/dtos/responses/SalePromotionCrudResponses.d.ts +30 -0
  106. package/bin/retailPromotions/dtos/responses/SalePromotionCrudResponses.js +2 -0
  107. package/bin/retailPromotions/dtos/responses/WizardSalePromotionResponses.d.ts +102 -0
  108. package/bin/retailPromotions/dtos/responses/WizardSalePromotionResponses.js +2 -0
  109. package/bin/retailPromotions/enums/CouponScopeEnum.d.ts +11 -0
  110. package/bin/retailPromotions/enums/CouponScopeEnum.js +15 -0
  111. package/bin/retailPromotions/enums/CouponStatusEnum.d.ts +11 -0
  112. package/bin/retailPromotions/enums/CouponStatusEnum.js +15 -0
  113. package/bin/retailPromotions/enums/DiscountCodeOriginEnum.d.ts +8 -0
  114. package/bin/retailPromotions/enums/DiscountCodeOriginEnum.js +12 -0
  115. package/bin/retailPromotions/enums/DiscountCodeStatusEnum.d.ts +11 -0
  116. package/bin/retailPromotions/enums/DiscountCodeStatusEnum.js +15 -0
  117. package/bin/retailPromotions/enums/DiscountCodeTransitionEnum.d.ts +7 -0
  118. package/bin/retailPromotions/enums/DiscountCodeTransitionEnum.js +11 -0
  119. package/bin/retailPromotions/enums/DiscountTypeEnum.d.ts +8 -0
  120. package/bin/retailPromotions/enums/DiscountTypeEnum.js +12 -0
  121. package/bin/retailPromotions/enums/EntitlementKindEnum.d.ts +9 -0
  122. package/bin/retailPromotions/enums/EntitlementKindEnum.js +13 -0
  123. package/bin/retailPromotions/enums/EntitlementStateEnum.d.ts +13 -0
  124. package/bin/retailPromotions/enums/EntitlementStateEnum.js +17 -0
  125. package/bin/retailPromotions/enums/GiftModeEnum.d.ts +8 -0
  126. package/bin/retailPromotions/enums/GiftModeEnum.js +12 -0
  127. package/bin/retailPromotions/enums/PromotionAppliesToEnum.d.ts +9 -0
  128. package/bin/retailPromotions/enums/PromotionAppliesToEnum.js +13 -0
  129. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.d.ts +23 -0
  130. package/bin/retailPromotions/enums/RetailPromotionsErrorCodeEnum.js +27 -0
  131. package/bin/retailPromotions/enums/SaleCouponAvailabilityEnum.d.ts +10 -0
  132. package/bin/retailPromotions/enums/SaleCouponAvailabilityEnum.js +14 -0
  133. package/bin/retailPromotions/enums/SalePromotionLeverEnum.d.ts +13 -0
  134. package/bin/retailPromotions/enums/SalePromotionLeverEnum.js +17 -0
  135. package/bin/retailPromotions/enums/SalePromotionLogEventEnum.d.ts +14 -0
  136. package/bin/retailPromotions/enums/SalePromotionLogEventEnum.js +18 -0
  137. package/bin/retailPromotions/enums/SalePromotionLogFormatEnum.d.ts +5 -0
  138. package/bin/retailPromotions/enums/SalePromotionLogFormatEnum.js +9 -0
  139. package/bin/retailPromotions/enums/SalePromotionPhaseEnum.d.ts +11 -0
  140. package/bin/retailPromotions/enums/SalePromotionPhaseEnum.js +15 -0
  141. package/bin/retailPromotions/enums/SalePromotionStatusEnum.d.ts +12 -0
  142. package/bin/retailPromotions/enums/SalePromotionStatusEnum.js +16 -0
  143. package/bin/retailPromotions/enums/SalePromotionTransitionEnum.d.ts +13 -0
  144. package/bin/retailPromotions/enums/SalePromotionTransitionEnum.js +17 -0
  145. package/bin/retailPromotions/helpers/computeBudgetUsedBps.d.ts +3 -0
  146. package/bin/retailPromotions/helpers/computeBudgetUsedBps.js +15 -0
  147. package/bin/retailPromotions/helpers/resolveSalePromotionTransition.d.ts +4 -0
  148. package/bin/retailPromotions/helpers/resolveSalePromotionTransition.js +9 -0
  149. package/bin/retailPromotions/index.d.ts +46 -0
  150. package/bin/retailPromotions/index.js +67 -0
  151. package/bin/retailWizard/dtos/Sale.d.ts +8 -8
  152. package/bin/retailWizard/dtos/SaleLine.d.ts +4 -1
  153. package/bin/retailWizard/dtos/WizardFinancingPreview.d.ts +11 -0
  154. package/bin/retailWizard/dtos/WizardFinancingPreview.js +2 -0
  155. package/bin/retailWizard/dtos/WizardGiftLine.d.ts +8 -0
  156. package/bin/retailWizard/dtos/WizardGiftLine.js +2 -0
  157. package/bin/retailWizard/dtos/WizardLinePromotionFields.d.ts +15 -0
  158. package/bin/retailWizard/dtos/WizardLinePromotionFields.js +2 -0
  159. package/bin/retailWizard/dtos/WizardReservedLine.d.ts +4 -1
  160. package/bin/retailWizard/dtos/WizardSession.d.ts +10 -0
  161. package/bin/retailWizard/dtos/requests/AddProductRequest.d.ts +2 -0
  162. package/bin/retailWizard/dtos/requests/AddProductRequest.js +7 -0
  163. package/bin/retailWizard/dtos/requests/ApplyLinePromotionRequest.d.ts +15 -0
  164. package/bin/retailWizard/dtos/requests/ApplyLinePromotionRequest.js +58 -0
  165. package/bin/retailWizard/dtos/requests/ApplySalePromotionRequest.d.ts +9 -0
  166. package/bin/retailWizard/dtos/requests/ApplySalePromotionRequest.js +36 -0
  167. package/bin/retailWizard/dtos/requests/PinSessionPiecesRequest.d.ts +14 -0
  168. package/bin/retailWizard/dtos/requests/PinSessionPiecesRequest.js +60 -0
  169. package/bin/retailWizard/dtos/requests/QuoteRequest.d.ts +1 -1
  170. package/bin/retailWizard/dtos/requests/SetAnchorGiftsRequest.d.ts +14 -0
  171. package/bin/retailWizard/dtos/requests/SetAnchorGiftsRequest.js +56 -0
  172. package/bin/retailWizard/dtos/responses/PrivateWizardSessionResponse.d.ts +29 -0
  173. package/bin/retailWizard/dtos/responses/PrivateWizardSessionResponse.js +2 -0
  174. package/bin/retailWizard/dtos/responses/SetAnchorGiftsResponse.d.ts +5 -0
  175. package/bin/retailWizard/dtos/responses/SetAnchorGiftsResponse.js +2 -0
  176. package/bin/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.d.ts +5 -0
  177. package/bin/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.js +9 -0
  178. package/bin/retailWizard/enums/WizardLineRoleEnum.d.ts +4 -0
  179. package/bin/retailWizard/enums/WizardLineRoleEnum.js +8 -0
  180. package/bin/retailWizard/events/RetailCommissionInboundMessage.d.ts +19 -0
  181. package/bin/retailWizard/events/RetailCommissionInboundMessage.js +78 -0
  182. package/bin/retailWizard/events/RetailPromotionInboundMessage.d.ts +40 -0
  183. package/bin/retailWizard/events/RetailPromotionInboundMessage.js +160 -0
  184. package/bin/retailWizard/events/SaleCompletedV1.d.ts +2 -3
  185. package/bin/retailWizard/index.d.ts +13 -0
  186. package/bin/retailWizard/index.js +14 -0
  187. package/package.json +1 -1
  188. package/src/common/index.ts +3 -0
  189. package/src/common/validators/IsStringValueRecord.ts +13 -0
  190. package/src/index.ts +3 -0
  191. package/src/messagesConnector/validators/IsStringValueRecord.ts +2 -12
  192. package/src/platformRbac/dtos/CreateTenantUserRequest.ts +8 -1
  193. package/src/platformRbac/dtos/UpdateTenantUserRequest.ts +9 -3
  194. package/src/retailCatalog/dtos/Product.ts +6 -0
  195. package/src/retailCatalog/dtos/requests/BackofficeCreateProductRequest.ts +30 -1
  196. package/src/retailCatalog/dtos/requests/BackofficeRegisterAdjustmentRequest.ts +6 -0
  197. package/src/retailCatalog/dtos/requests/BackofficeUpdateProductRequest.ts +30 -1
  198. package/src/retailCatalog/dtos/requests/HoldStockRequest.ts +28 -0
  199. package/src/retailCatalog/dtos/requests/ReserveStockRequest.ts +7 -1
  200. package/src/retailCatalog/dtos/requests/SuggestPiecesQuery.ts +7 -1
  201. package/src/retailCatalog/dtos/responses/GetInventorySkuResponse.ts +3 -0
  202. package/src/retailCatalog/dtos/responses/HoldStockResponse.ts +9 -0
  203. package/src/retailCatalog/dtos/responses/StoreCatalogItem.ts +6 -1
  204. package/src/retailCatalog/enums/InventoryInboundMessageTypeEnum.ts +5 -0
  205. package/src/retailCatalog/enums/InventoryItemStatusEnum.ts +3 -1
  206. package/src/retailCatalog/enums/ReservePurposeEnum.ts +4 -0
  207. package/src/retailCatalog/events/InventoryInboundMessage.ts +5 -0
  208. package/src/retailCatalog/events/InventoryReturnMessage.ts +26 -0
  209. package/src/retailCatalog/events/InventorySaleAppliedMessage.ts +26 -0
  210. package/src/retailCatalog/index.ts +9 -0
  211. package/src/retailPromotions/constants/bonusPreMoney.ts +19 -0
  212. package/src/retailPromotions/constants/retailPromotionsErrorHttpStatus.ts +21 -0
  213. package/src/retailPromotions/constants/salePromotionTransitions.ts +11 -0
  214. package/src/retailPromotions/dtos/DiscountCode.ts +36 -0
  215. package/src/retailPromotions/dtos/DiscountValue.ts +8 -0
  216. package/src/retailPromotions/dtos/LinePromotionDiscount.ts +10 -0
  217. package/src/retailPromotions/dtos/SalePromotion.ts +36 -0
  218. package/src/retailPromotions/dtos/SalePromotionLevers.ts +67 -0
  219. package/src/retailPromotions/dtos/SalePromotionLogEntry.ts +19 -0
  220. package/src/retailPromotions/dtos/requests/ChangeDiscountCodeStatusRequest.ts +15 -0
  221. package/src/retailPromotions/dtos/requests/ChangeSalePromotionStatusRequest.ts +15 -0
  222. package/src/retailPromotions/dtos/requests/CreateDiscountCodeRequest.ts +71 -0
  223. package/src/retailPromotions/dtos/requests/CreateSalePromotionRequest.ts +73 -0
  224. package/src/retailPromotions/dtos/requests/DiscountValueInput.ts +21 -0
  225. package/src/retailPromotions/dtos/requests/EvaluateSalePromotionsRequest.ts +16 -0
  226. package/src/retailPromotions/dtos/requests/HoldSalePromotionRequest.ts +32 -0
  227. package/src/retailPromotions/dtos/requests/ListDiscountCodesQuery.ts +33 -0
  228. package/src/retailPromotions/dtos/requests/ListSalePromotionLogQuery.ts +29 -0
  229. package/src/retailPromotions/dtos/requests/ListSalePromotionsQuery.ts +24 -0
  230. package/src/retailPromotions/dtos/requests/ListStoreSalePromotionsQuery.ts +10 -0
  231. package/src/retailPromotions/dtos/requests/SalePromotionLeversInput.ts +136 -0
  232. package/src/retailPromotions/dtos/requests/SalePromotionScopeInput.ts +45 -0
  233. package/src/retailPromotions/dtos/requests/UpdateSalePromotionRequest.ts +74 -0
  234. package/src/retailPromotions/dtos/responses/DiscountCodeResponses.ts +9 -0
  235. package/src/retailPromotions/dtos/responses/SalePromotionCrudResponses.ts +35 -0
  236. package/src/retailPromotions/dtos/responses/WizardSalePromotionResponses.ts +115 -0
  237. package/src/retailPromotions/enums/CouponScopeEnum.ts +11 -0
  238. package/src/retailPromotions/enums/CouponStatusEnum.ts +11 -0
  239. package/src/retailPromotions/enums/DiscountCodeOriginEnum.ts +8 -0
  240. package/src/retailPromotions/enums/DiscountCodeStatusEnum.ts +11 -0
  241. package/src/retailPromotions/enums/DiscountCodeTransitionEnum.ts +7 -0
  242. package/src/retailPromotions/enums/DiscountTypeEnum.ts +8 -0
  243. package/src/retailPromotions/enums/EntitlementKindEnum.ts +9 -0
  244. package/src/retailPromotions/enums/EntitlementStateEnum.ts +13 -0
  245. package/src/retailPromotions/enums/GiftModeEnum.ts +8 -0
  246. package/src/retailPromotions/enums/PromotionAppliesToEnum.ts +9 -0
  247. package/src/retailPromotions/enums/RetailPromotionsErrorCodeEnum.ts +23 -0
  248. package/src/retailPromotions/enums/SaleCouponAvailabilityEnum.ts +10 -0
  249. package/src/retailPromotions/enums/SalePromotionLeverEnum.ts +13 -0
  250. package/src/retailPromotions/enums/SalePromotionLogEventEnum.ts +14 -0
  251. package/src/retailPromotions/enums/SalePromotionLogFormatEnum.ts +5 -0
  252. package/src/retailPromotions/enums/SalePromotionPhaseEnum.ts +11 -0
  253. package/src/retailPromotions/enums/SalePromotionStatusEnum.ts +12 -0
  254. package/src/retailPromotions/enums/SalePromotionTransitionEnum.ts +13 -0
  255. package/src/retailPromotions/helpers/computeBudgetUsedBps.ts +15 -0
  256. package/src/retailPromotions/helpers/resolveSalePromotionTransition.ts +12 -0
  257. package/src/retailPromotions/index.ts +55 -0
  258. package/src/retailWizard/dtos/Sale.ts +8 -8
  259. package/src/retailWizard/dtos/SaleLine.ts +4 -1
  260. package/src/retailWizard/dtos/WizardFinancingPreview.ts +12 -0
  261. package/src/retailWizard/dtos/WizardGiftLine.ts +9 -0
  262. package/src/retailWizard/dtos/WizardLinePromotionFields.ts +16 -0
  263. package/src/retailWizard/dtos/WizardReservedLine.ts +4 -1
  264. package/src/retailWizard/dtos/WizardSession.ts +10 -0
  265. package/src/retailWizard/dtos/requests/AddProductRequest.ts +8 -1
  266. package/src/retailWizard/dtos/requests/ApplyLinePromotionRequest.ts +45 -0
  267. package/src/retailWizard/dtos/requests/ApplySalePromotionRequest.ts +24 -0
  268. package/src/retailWizard/dtos/requests/PinSessionPiecesRequest.ts +40 -0
  269. package/src/retailWizard/dtos/requests/QuoteRequest.ts +1 -1
  270. package/src/retailWizard/dtos/requests/SetAnchorGiftsRequest.ts +40 -0
  271. package/src/retailWizard/dtos/responses/PrivateWizardSessionResponse.ts +30 -0
  272. package/src/retailWizard/dtos/responses/SetAnchorGiftsResponse.ts +6 -0
  273. package/src/retailWizard/enums/RetailPromotionInboundMessageTypeEnum.ts +5 -0
  274. package/src/retailWizard/enums/WizardLineRoleEnum.ts +4 -0
  275. package/src/retailWizard/events/RetailCommissionInboundMessage.ts +54 -0
  276. package/src/retailWizard/events/RetailPromotionInboundMessage.ts +138 -0
  277. package/src/retailWizard/events/SaleCompletedV1.ts +2 -3
  278. package/src/retailWizard/index.ts +15 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Si la venta cerrada ya tiene su cupón: `GENERATING` mientras la cola no lo emite.
3
+ * @enum {string}
4
+ */
5
+ export declare enum SaleCouponAvailabilityEnum {
6
+ GENERATING = "GENERATING",
7
+ READY = "READY",
8
+ /** La venta no da cupón. */
9
+ NONE = "NONE"
10
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SaleCouponAvailabilityEnum = void 0;
4
+ /**
5
+ * Si la venta cerrada ya tiene su cupón: `GENERATING` mientras la cola no lo emite.
6
+ * @enum {string}
7
+ */
8
+ var SaleCouponAvailabilityEnum;
9
+ (function (SaleCouponAvailabilityEnum) {
10
+ SaleCouponAvailabilityEnum["GENERATING"] = "GENERATING";
11
+ SaleCouponAvailabilityEnum["READY"] = "READY";
12
+ /** La venta no da cupón. */
13
+ SaleCouponAvailabilityEnum["NONE"] = "NONE";
14
+ })(SaleCouponAvailabilityEnum || (exports.SaleCouponAvailabilityEnum = SaleCouponAvailabilityEnum = {}));
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Las 7 palancas combinables de una promo de venta.
3
+ * @enum {string}
4
+ */
5
+ export declare enum SalePromotionLeverEnum {
6
+ DEVICE_DISCOUNT = "DEVICE_DISCOUNT",
7
+ ACCESSORY_DISCOUNT = "ACCESSORY_DISCOUNT",
8
+ GIFT = "GIFT",
9
+ COUPON = "COUPON",
10
+ AIRTIME = "AIRTIME",
11
+ EXTENDED_WARRANTY = "EXTENDED_WARRANTY",
12
+ WALLET_BONUS = "WALLET_BONUS"
13
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionLeverEnum = void 0;
4
+ /**
5
+ * Las 7 palancas combinables de una promo de venta.
6
+ * @enum {string}
7
+ */
8
+ var SalePromotionLeverEnum;
9
+ (function (SalePromotionLeverEnum) {
10
+ SalePromotionLeverEnum["DEVICE_DISCOUNT"] = "DEVICE_DISCOUNT";
11
+ SalePromotionLeverEnum["ACCESSORY_DISCOUNT"] = "ACCESSORY_DISCOUNT";
12
+ SalePromotionLeverEnum["GIFT"] = "GIFT";
13
+ SalePromotionLeverEnum["COUPON"] = "COUPON";
14
+ SalePromotionLeverEnum["AIRTIME"] = "AIRTIME";
15
+ SalePromotionLeverEnum["EXTENDED_WARRANTY"] = "EXTENDED_WARRANTY";
16
+ SalePromotionLeverEnum["WALLET_BONUS"] = "WALLET_BONUS";
17
+ })(SalePromotionLeverEnum || (exports.SalePromotionLeverEnum = SalePromotionLeverEnum = {}));
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Evento del historial de promos de venta. Los automáticos (autopausa, reanudación, vencimiento)
3
+ * usan el mismo evento con autor `system`.
4
+ * @enum {string}
5
+ */
6
+ export declare enum SalePromotionLogEventEnum {
7
+ CREATE = "CREATE",
8
+ UPDATE = "UPDATE",
9
+ PUBLISH = "PUBLISH",
10
+ PAUSE = "PAUSE",
11
+ RESUME = "RESUME",
12
+ EXPIRE = "EXPIRE",
13
+ ARCHIVE = "ARCHIVE"
14
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionLogEventEnum = void 0;
4
+ /**
5
+ * Evento del historial de promos de venta. Los automáticos (autopausa, reanudación, vencimiento)
6
+ * usan el mismo evento con autor `system`.
7
+ * @enum {string}
8
+ */
9
+ var SalePromotionLogEventEnum;
10
+ (function (SalePromotionLogEventEnum) {
11
+ SalePromotionLogEventEnum["CREATE"] = "CREATE";
12
+ SalePromotionLogEventEnum["UPDATE"] = "UPDATE";
13
+ SalePromotionLogEventEnum["PUBLISH"] = "PUBLISH";
14
+ SalePromotionLogEventEnum["PAUSE"] = "PAUSE";
15
+ SalePromotionLogEventEnum["RESUME"] = "RESUME";
16
+ SalePromotionLogEventEnum["EXPIRE"] = "EXPIRE";
17
+ SalePromotionLogEventEnum["ARCHIVE"] = "ARCHIVE";
18
+ })(SalePromotionLogEventEnum || (exports.SalePromotionLogEventEnum = SalePromotionLogEventEnum = {}));
@@ -0,0 +1,5 @@
1
+ /** Formato de salida del historial: página JSON o exportación CSV. */
2
+ export declare enum SalePromotionLogFormatEnum {
3
+ JSON = "JSON",
4
+ CSV = "CSV"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionLogFormatEnum = void 0;
4
+ /** Formato de salida del historial: página JSON o exportación CSV. */
5
+ var SalePromotionLogFormatEnum;
6
+ (function (SalePromotionLogFormatEnum) {
7
+ SalePromotionLogFormatEnum["JSON"] = "JSON";
8
+ SalePromotionLogFormatEnum["CSV"] = "CSV";
9
+ })(SalePromotionLogFormatEnum || (exports.SalePromotionLogFormatEnum = SalePromotionLogFormatEnum = {}));
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Fase derivada de la vigencia (hora CDMX) de una promo `ACTIVE`; no se persiste.
3
+ * @enum {string}
4
+ */
5
+ export declare enum SalePromotionPhaseEnum {
6
+ /** Activa con inicio futuro. */
7
+ SCHEDULED = "SCHEDULED",
8
+ LIVE = "LIVE",
9
+ /** Vigente y termina en los próximos 7 días. */
10
+ EXPIRING_SOON = "EXPIRING_SOON"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionPhaseEnum = void 0;
4
+ /**
5
+ * Fase derivada de la vigencia (hora CDMX) de una promo `ACTIVE`; no se persiste.
6
+ * @enum {string}
7
+ */
8
+ var SalePromotionPhaseEnum;
9
+ (function (SalePromotionPhaseEnum) {
10
+ /** Activa con inicio futuro. */
11
+ SalePromotionPhaseEnum["SCHEDULED"] = "SCHEDULED";
12
+ SalePromotionPhaseEnum["LIVE"] = "LIVE";
13
+ /** Vigente y termina en los próximos 7 días. */
14
+ SalePromotionPhaseEnum["EXPIRING_SOON"] = "EXPIRING_SOON";
15
+ })(SalePromotionPhaseEnum || (exports.SalePromotionPhaseEnum = SalePromotionPhaseEnum = {}));
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Estado persistido de una promo de venta. Programada, permanente y vencida-por-fecha se derivan
3
+ * de la vigencia; `ARCHIVED` la oculta del listado salvo en el filtro «Archivadas».
4
+ * @enum {string}
5
+ */
6
+ export declare enum SalePromotionStatusEnum {
7
+ DRAFT = "DRAFT",
8
+ ACTIVE = "ACTIVE",
9
+ PAUSED = "PAUSED",
10
+ EXPIRED = "EXPIRED",
11
+ ARCHIVED = "ARCHIVED"
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionStatusEnum = void 0;
4
+ /**
5
+ * Estado persistido de una promo de venta. Programada, permanente y vencida-por-fecha se derivan
6
+ * de la vigencia; `ARCHIVED` la oculta del listado salvo en el filtro «Archivadas».
7
+ * @enum {string}
8
+ */
9
+ var SalePromotionStatusEnum;
10
+ (function (SalePromotionStatusEnum) {
11
+ SalePromotionStatusEnum["DRAFT"] = "DRAFT";
12
+ SalePromotionStatusEnum["ACTIVE"] = "ACTIVE";
13
+ SalePromotionStatusEnum["PAUSED"] = "PAUSED";
14
+ SalePromotionStatusEnum["EXPIRED"] = "EXPIRED";
15
+ SalePromotionStatusEnum["ARCHIVED"] = "ARCHIVED";
16
+ })(SalePromotionStatusEnum || (exports.SalePromotionStatusEnum = SalePromotionStatusEnum = {}));
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Acción que pide Admin VL sobre una promo de venta. El destino lo resuelve
3
+ * `resolveSalePromotionTransition`; una transición no permitida es `INVALID_PROMOTION_TRANSITION`.
4
+ * @enum {string}
5
+ */
6
+ export declare enum SalePromotionTransitionEnum {
7
+ PUBLISH = "PUBLISH",
8
+ PAUSE = "PAUSE",
9
+ RESUME = "RESUME",
10
+ /** Fin ahora. Que no aplique a una promo permanente lo valida el lambda. */
11
+ EXPIRE = "EXPIRE",
12
+ ARCHIVE = "ARCHIVE"
13
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SalePromotionTransitionEnum = void 0;
4
+ /**
5
+ * Acción que pide Admin VL sobre una promo de venta. El destino lo resuelve
6
+ * `resolveSalePromotionTransition`; una transición no permitida es `INVALID_PROMOTION_TRANSITION`.
7
+ * @enum {string}
8
+ */
9
+ var SalePromotionTransitionEnum;
10
+ (function (SalePromotionTransitionEnum) {
11
+ SalePromotionTransitionEnum["PUBLISH"] = "PUBLISH";
12
+ SalePromotionTransitionEnum["PAUSE"] = "PAUSE";
13
+ SalePromotionTransitionEnum["RESUME"] = "RESUME";
14
+ /** Fin ahora. Que no aplique a una promo permanente lo valida el lambda. */
15
+ SalePromotionTransitionEnum["EXPIRE"] = "EXPIRE";
16
+ SalePromotionTransitionEnum["ARCHIVE"] = "ARCHIVE";
17
+ })(SalePromotionTransitionEnum || (exports.SalePromotionTransitionEnum = SalePromotionTransitionEnum = {}));
@@ -0,0 +1,3 @@
1
+ import { SalePromotion } from '../dtos/SalePromotion';
2
+ /** % de presupuesto consumido en puntos base sobre las promos con tope; `null` si ninguna tiene tope. */
3
+ export declare function computeBudgetUsedBps(promotions: Pick<SalePromotion, 'budgetMaxCents' | 'budgetConsumedCents'>[]): number | null;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeBudgetUsedBps = computeBudgetUsedBps;
4
+ /** % de presupuesto consumido en puntos base sobre las promos con tope; `null` si ninguna tiene tope. */
5
+ function computeBudgetUsedBps(promotions) {
6
+ let maxCents = 0;
7
+ let consumedCents = 0;
8
+ for (const { budgetMaxCents, budgetConsumedCents } of promotions) {
9
+ if (budgetMaxCents === null)
10
+ continue;
11
+ maxCents += budgetMaxCents;
12
+ consumedCents += budgetConsumedCents;
13
+ }
14
+ return maxCents > 0 ? Math.floor((consumedCents * 10000) / maxCents) : null;
15
+ }
@@ -0,0 +1,4 @@
1
+ import { SalePromotionStatusEnum } from '../enums/SalePromotionStatusEnum';
2
+ import { SalePromotionTransitionEnum } from '../enums/SalePromotionTransitionEnum';
3
+ /** Estado destino de aplicar la transición, o `null` si no se permite desde `from`. */
4
+ export declare function resolveSalePromotionTransition(from: SalePromotionStatusEnum, transition: SalePromotionTransitionEnum): SalePromotionStatusEnum | null;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveSalePromotionTransition = resolveSalePromotionTransition;
4
+ const salePromotionTransitions_1 = require("../constants/salePromotionTransitions");
5
+ /** Estado destino de aplicar la transición, o `null` si no se permite desde `from`. */
6
+ function resolveSalePromotionTransition(from, transition) {
7
+ const rule = salePromotionTransitions_1.SALE_PROMOTION_TRANSITIONS[transition];
8
+ return rule.from.includes(from) ? rule.to : null;
9
+ }
@@ -0,0 +1,46 @@
1
+ export * from './enums/SalePromotionStatusEnum';
2
+ export * from './enums/SalePromotionTransitionEnum';
3
+ export * from './enums/SalePromotionPhaseEnum';
4
+ export * from './enums/SalePromotionLeverEnum';
5
+ export * from './enums/SalePromotionLogEventEnum';
6
+ export * from './enums/SalePromotionLogFormatEnum';
7
+ export * from './enums/DiscountTypeEnum';
8
+ export * from './enums/GiftModeEnum';
9
+ export * from './enums/PromotionAppliesToEnum';
10
+ export * from './enums/CouponScopeEnum';
11
+ export * from './enums/CouponStatusEnum';
12
+ export * from './enums/DiscountCodeStatusEnum';
13
+ export * from './enums/DiscountCodeOriginEnum';
14
+ export * from './enums/DiscountCodeTransitionEnum';
15
+ export * from './enums/EntitlementStateEnum';
16
+ export * from './enums/EntitlementKindEnum';
17
+ export * from './enums/SaleCouponAvailabilityEnum';
18
+ export * from './enums/RetailPromotionsErrorCodeEnum';
19
+ export * from './constants/retailPromotionsErrorHttpStatus';
20
+ export * from './constants/salePromotionTransitions';
21
+ export * from './constants/bonusPreMoney';
22
+ export * from './helpers/resolveSalePromotionTransition';
23
+ export * from './helpers/computeBudgetUsedBps';
24
+ export * from './dtos/DiscountValue';
25
+ export * from './dtos/SalePromotionLevers';
26
+ export * from './dtos/SalePromotion';
27
+ export * from './dtos/SalePromotionLogEntry';
28
+ export * from './dtos/DiscountCode';
29
+ export * from './dtos/LinePromotionDiscount';
30
+ export * from './dtos/requests/DiscountValueInput';
31
+ export * from './dtos/requests/SalePromotionLeversInput';
32
+ export * from './dtos/requests/SalePromotionScopeInput';
33
+ export * from './dtos/requests/CreateSalePromotionRequest';
34
+ export * from './dtos/requests/UpdateSalePromotionRequest';
35
+ export * from './dtos/requests/ChangeSalePromotionStatusRequest';
36
+ export * from './dtos/requests/ListSalePromotionsQuery';
37
+ export * from './dtos/requests/ListSalePromotionLogQuery';
38
+ export * from './dtos/requests/CreateDiscountCodeRequest';
39
+ export * from './dtos/requests/ListDiscountCodesQuery';
40
+ export * from './dtos/requests/ChangeDiscountCodeStatusRequest';
41
+ export * from './dtos/requests/ListStoreSalePromotionsQuery';
42
+ export * from './dtos/requests/EvaluateSalePromotionsRequest';
43
+ export * from './dtos/requests/HoldSalePromotionRequest';
44
+ export * from './dtos/responses/SalePromotionCrudResponses';
45
+ export * from './dtos/responses/DiscountCodeResponses';
46
+ export * from './dtos/responses/WizardSalePromotionResponses';
@@ -0,0 +1,67 @@
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/SalePromotionStatusEnum"), exports);
19
+ __exportStar(require("./enums/SalePromotionTransitionEnum"), exports);
20
+ __exportStar(require("./enums/SalePromotionPhaseEnum"), exports);
21
+ __exportStar(require("./enums/SalePromotionLeverEnum"), exports);
22
+ __exportStar(require("./enums/SalePromotionLogEventEnum"), exports);
23
+ __exportStar(require("./enums/SalePromotionLogFormatEnum"), exports);
24
+ __exportStar(require("./enums/DiscountTypeEnum"), exports);
25
+ __exportStar(require("./enums/GiftModeEnum"), exports);
26
+ __exportStar(require("./enums/PromotionAppliesToEnum"), exports);
27
+ __exportStar(require("./enums/CouponScopeEnum"), exports);
28
+ __exportStar(require("./enums/CouponStatusEnum"), exports);
29
+ __exportStar(require("./enums/DiscountCodeStatusEnum"), exports);
30
+ __exportStar(require("./enums/DiscountCodeOriginEnum"), exports);
31
+ __exportStar(require("./enums/DiscountCodeTransitionEnum"), exports);
32
+ __exportStar(require("./enums/EntitlementStateEnum"), exports);
33
+ __exportStar(require("./enums/EntitlementKindEnum"), exports);
34
+ __exportStar(require("./enums/SaleCouponAvailabilityEnum"), exports);
35
+ __exportStar(require("./enums/RetailPromotionsErrorCodeEnum"), exports);
36
+ // Constantes y helpers puros
37
+ __exportStar(require("./constants/retailPromotionsErrorHttpStatus"), exports);
38
+ __exportStar(require("./constants/salePromotionTransitions"), exports);
39
+ __exportStar(require("./constants/bonusPreMoney"), exports);
40
+ __exportStar(require("./helpers/resolveSalePromotionTransition"), exports);
41
+ __exportStar(require("./helpers/computeBudgetUsedBps"), exports);
42
+ // Entidades del dominio
43
+ __exportStar(require("./dtos/DiscountValue"), exports);
44
+ __exportStar(require("./dtos/SalePromotionLevers"), exports);
45
+ __exportStar(require("./dtos/SalePromotion"), exports);
46
+ __exportStar(require("./dtos/SalePromotionLogEntry"), exports);
47
+ __exportStar(require("./dtos/DiscountCode"), exports);
48
+ __exportStar(require("./dtos/LinePromotionDiscount"), exports);
49
+ // Request DTOs
50
+ __exportStar(require("./dtos/requests/DiscountValueInput"), exports);
51
+ __exportStar(require("./dtos/requests/SalePromotionLeversInput"), exports);
52
+ __exportStar(require("./dtos/requests/SalePromotionScopeInput"), exports);
53
+ __exportStar(require("./dtos/requests/CreateSalePromotionRequest"), exports);
54
+ __exportStar(require("./dtos/requests/UpdateSalePromotionRequest"), exports);
55
+ __exportStar(require("./dtos/requests/ChangeSalePromotionStatusRequest"), exports);
56
+ __exportStar(require("./dtos/requests/ListSalePromotionsQuery"), exports);
57
+ __exportStar(require("./dtos/requests/ListSalePromotionLogQuery"), exports);
58
+ __exportStar(require("./dtos/requests/CreateDiscountCodeRequest"), exports);
59
+ __exportStar(require("./dtos/requests/ListDiscountCodesQuery"), exports);
60
+ __exportStar(require("./dtos/requests/ChangeDiscountCodeStatusRequest"), exports);
61
+ __exportStar(require("./dtos/requests/ListStoreSalePromotionsQuery"), exports);
62
+ __exportStar(require("./dtos/requests/EvaluateSalePromotionsRequest"), exports);
63
+ __exportStar(require("./dtos/requests/HoldSalePromotionRequest"), exports);
64
+ // Response DTOs
65
+ __exportStar(require("./dtos/responses/SalePromotionCrudResponses"), exports);
66
+ __exportStar(require("./dtos/responses/DiscountCodeResponses"), exports);
67
+ __exportStar(require("./dtos/responses/WizardSalePromotionResponses"), exports);
@@ -26,18 +26,18 @@ export interface Sale {
26
26
  skus?: string[];
27
27
  /** La cancelación aún no confirma la devolución al inventario. */
28
28
  inventoryReturnPending?: boolean;
29
+ /** Venta de la saga: el inventario se aplica y se devuelve por la cola, no por HTTP. */
30
+ inventoryViaQueue?: boolean;
31
+ /** Promo de venta congelada al cerrar; `null` = ninguna. */
32
+ salePromotionId?: string | null;
33
+ salePromotionVersion?: number | null;
29
34
  /** IMEI consumido del silo también en contado (local-first); null en EXTERNAL_REFERRAL (D15). */
30
35
  imei: string | null;
31
- /**
32
- * Lo COBRADO en caja al cerrar. En contado == precio del equipo (lo garantiza `registerPayment`);
33
- * en crédito es SOLO el enganche. ⚠️ Su significado es contrato de `SaleCompletedV1` (La Central,
34
- * comisión F4): no redefinir — el precio del equipo viaja aparte en `equipmentPriceCents`. 0 en
35
- * EXTERNAL_REFERRAL.
36
- */
36
+ /** Lo cobrado en caja al cerrar: enganche + lo no financiado; 0 en EXTERNAL_REFERRAL. Contrato de `SaleCompletedV1`. */
37
37
  amountCents: number;
38
38
  /**
39
- * Precio de lista del equipo al cerrar (de la reserva de la sesión). En contado coincide con
40
- * `amountCents`; en crédito es el precio full financiado. `null` en ventas anteriores al campo.
39
+ * Ancla neta al cerrar (precio − discountCents de la ancla); base de comisión.
40
+ * `null` en ventas anteriores al campo.
41
41
  */
42
42
  equipmentPriceCents: number | null;
43
43
  /** Enganche cobrado (solo ventas CREDIT; `null` en contado/externa). */
@@ -1,8 +1,9 @@
1
1
  import type { SoldLineComponent } from '../../retailCatalog/dtos/responses/SellStockResponse';
2
2
  import type { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
3
3
  import type { WizardLineProduct } from './WizardLineProduct';
4
+ import type { WizardLinePromotionFields } from './WizardLinePromotionFields';
4
5
  /** Línea de una venta cerrada; un producto suelto es un solo componente. */
5
- export interface SaleLine {
6
+ export interface SaleLine extends WizardLinePromotionFields {
6
7
  lineId: string;
7
8
  sku: string;
8
9
  qty: number;
@@ -11,6 +12,8 @@ export interface SaleLine {
11
12
  /** Llave del registro PRICE# del que salió el precio. */
12
13
  priceSk: string;
13
14
  paymentType: LinePaymentTypeEnum;
15
+ /** Parte financiada de la línea, congelada en la venta. */
16
+ financedCents?: number;
14
17
  components: SoldLineComponent[];
15
18
  product?: WizardLineProduct | null;
16
19
  }
@@ -0,0 +1,11 @@
1
+ /** Parte financiada de una línea en el reparto provisional. */
2
+ export interface WizardFinancingPreviewLine {
3
+ lineId: string;
4
+ financedCents: number;
5
+ }
6
+ /** Reparto provisional de la sesión; se calcula al leer y no se persiste. */
7
+ export interface WizardFinancingPreview {
8
+ /** Tope de extras financiables: floor(30% × ancla neta). */
9
+ capCents: number;
10
+ lines: WizardFinancingPreviewLine[];
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import type { WizardLineRoleEnum } from '../enums/WizardLineRoleEnum';
2
+ import type { WizardReservedLine } from './WizardReservedLine';
3
+ /** Línea GIFT: siempre ligada a un ancla y con el precio de lista que se regala. */
4
+ export type WizardGiftLine = WizardReservedLine & {
5
+ role: WizardLineRoleEnum.GIFT;
6
+ linkedLineId: string;
7
+ originalPriceCents: number;
8
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import type { WizardLineRoleEnum } from '../enums/WizardLineRoleEnum';
2
+ /** Campos de Promociones en la línea de sesión y de venta; solo los escribe su endpoint M2M. */
3
+ export interface WizardLinePromotionFields {
4
+ role?: WizardLineRoleEnum;
5
+ promotionId?: string;
6
+ promotionVersion?: number;
7
+ /** Línea ancla a la que va ligado el regalo. */
8
+ linkedLineId?: string;
9
+ /** Solo en la línea ancla. */
10
+ discountCode?: string;
11
+ /** Descuento total de la línea; neto = basePriceCents × qty − discountCents. */
12
+ discountCents?: number;
13
+ /** Precio antes del descuento; en un regalo, el valor de lista con la línea a $0. */
14
+ originalPriceCents?: number;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,8 +4,9 @@ import type { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
4
4
  import type { WizardLineStatusEnum } from '../enums/WizardLineStatusEnum';
5
5
  import type { WizardLineIdentifiers } from './WizardLineIdentifiers';
6
6
  import type { WizardLineProduct } from './WizardLineProduct';
7
+ import type { WizardLinePromotionFields } from './WizardLinePromotionFields';
7
8
  /** Línea de la venta en curso; los campos de precio son `null` mientras la línea está PENDING. */
8
- export interface WizardReservedLine {
9
+ export interface WizardReservedLine extends WizardLinePromotionFields {
9
10
  lineId: string;
10
11
  sku: string;
11
12
  qty: number;
@@ -26,6 +27,8 @@ export interface WizardReservedLine {
26
27
  paymentType: LinePaymentTypeEnum | null;
27
28
  /** Ítems que la línea suma al tope de 100 de la venta. */
28
29
  sellItemCost: number | null;
30
+ /** Parte financiada de la línea; se escribe al cotizar y se congela con el crédito. */
31
+ financedCents?: number;
29
32
  mdmEnabled?: boolean;
30
33
  mdmProvider?: MdmProviderEnum | null;
31
34
  /** Solo si la línea es un kit. */
@@ -6,6 +6,7 @@ import type { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
6
6
  import type { OccupationEnum } from '../enums/OccupationEnum';
7
7
  import type { WizardBlockedSummary } from './WizardBlocked';
8
8
  import type { WizardConsents } from './WizardConsents';
9
+ import type { WizardFinancingPreview } from './WizardFinancingPreview';
9
10
  import type { WizardLoan } from './WizardLoan';
10
11
  import type { WizardPayment } from './WizardPayment';
11
12
  import type { WizardProduct } from './WizardProduct';
@@ -113,6 +114,15 @@ export interface WizardSession {
113
114
  reservedLines?: WizardReservedLine[];
114
115
  /** Línea elegida para financiar; `null` si la venta es de contado o aún no se elige. */
115
116
  financedLineId?: string | null;
117
+ /** Reparto provisional mientras haya líneas; se calcula al leer, no se persiste. */
118
+ financingPreview?: WizardFinancingPreview | null;
119
+ /** Marca de la saga: todas las piezas rastreadas de las líneas vivas quedaron HELD. */
120
+ piecesHeldAt?: string | null;
121
+ /** Promo de venta que fijó Promociones; `null` = ninguna. */
122
+ salePromotionId?: string | null;
123
+ salePromotionVersion?: number | null;
124
+ /** Enganche cobrado que queda por reembolsar tras cancelar. */
125
+ refundPendingCents?: number;
116
126
  paymentMethod: PaymentMethodEnum | null;
117
127
  externalProvider: ExternalProviderEnum | null;
118
128
  /** Folio de cobro server-side (D11), idempotente, sobrevive al volver atrás. */
@@ -8,4 +8,6 @@ export declare class AddProductRequest {
8
8
  cashPriceCents?: number;
9
9
  /** Piezas de la línea; ausente = 1. */
10
10
  qty?: number;
11
+ /** Línea viva que este kit reemplaza («Cambiar por el kit»). */
12
+ replacesLineId?: string;
11
13
  }
@@ -44,3 +44,10 @@ __decorate([
44
44
  (0, class_validator_1.Min)(1),
45
45
  __metadata("design:type", Number)
46
46
  ], AddProductRequest.prototype, "qty", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_validator_1.IsString)(),
51
+ (0, class_validator_1.MinLength)(1),
52
+ __metadata("design:type", String)
53
+ ], AddProductRequest.prototype, "replacesLineId", void 0);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * PUT /private/wizard/sessions/{id}/lines/{lineId}/promotion (privateApplyLinePromotion, M2M de Promociones).
3
+ * Reemplaza la promo de la línea por valor: un campo ausente queda borrado. `tenantId` va en el query.
4
+ * Nunca toca role ni linkedLineId: los GIFT los gestiona el PUT …/gifts. Responde 204 sin body.
5
+ */
6
+ export declare class ApplyLinePromotionRequest {
7
+ promotionId?: string;
8
+ /** Va junto con promotionId; las versiones de Promociones empiezan en 1. */
9
+ promotionVersion?: number;
10
+ /** Solo en la línea ancla. */
11
+ discountCode?: string;
12
+ /** Descuento total de la línea; 0 mientras el código espera revalidarse. */
13
+ discountCents?: number;
14
+ originalPriceCents?: number;
15
+ }
@@ -0,0 +1,58 @@
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.ApplyLinePromotionRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const hasPromotion = (o) => o.promotionId !== undefined || o.promotionVersion !== undefined;
16
+ /**
17
+ * PUT /private/wizard/sessions/{id}/lines/{lineId}/promotion (privateApplyLinePromotion, M2M de Promociones).
18
+ * Reemplaza la promo de la línea por valor: un campo ausente queda borrado. `tenantId` va en el query.
19
+ * Nunca toca role ni linkedLineId: los GIFT los gestiona el PUT …/gifts. Responde 204 sin body.
20
+ */
21
+ class ApplyLinePromotionRequest {
22
+ }
23
+ exports.ApplyLinePromotionRequest = ApplyLinePromotionRequest;
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.ValidateIf)(hasPromotion),
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ __metadata("design:type", String)
30
+ ], ApplyLinePromotionRequest.prototype, "promotionId", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.ValidateIf)(hasPromotion),
34
+ (0, class_validator_1.IsInt)(),
35
+ (0, class_validator_1.Min)(1),
36
+ __metadata("design:type", Number)
37
+ ], ApplyLinePromotionRequest.prototype, "promotionVersion", void 0);
38
+ __decorate([
39
+ (0, class_transformer_1.Expose)(),
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_validator_1.IsString)(),
42
+ (0, class_validator_1.IsNotEmpty)(),
43
+ __metadata("design:type", String)
44
+ ], ApplyLinePromotionRequest.prototype, "discountCode", void 0);
45
+ __decorate([
46
+ (0, class_transformer_1.Expose)(),
47
+ (0, class_validator_1.IsOptional)(),
48
+ (0, class_validator_1.IsInt)(),
49
+ (0, class_validator_1.Min)(0),
50
+ __metadata("design:type", Number)
51
+ ], ApplyLinePromotionRequest.prototype, "discountCents", void 0);
52
+ __decorate([
53
+ (0, class_transformer_1.Expose)(),
54
+ (0, class_validator_1.IsOptional)(),
55
+ (0, class_validator_1.IsInt)(),
56
+ (0, class_validator_1.Min)(0),
57
+ __metadata("design:type", Number)
58
+ ], ApplyLinePromotionRequest.prototype, "originalPriceCents", void 0);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * PUT /private/wizard/sessions/{id}/sale-promotion (privateApplySalePromotion, M2M de Promociones).
3
+ * Ambos en `null` = «Ninguna»; la versión va solo con la promo. `tenantId` va en el query.
4
+ * Responde 204 sin body.
5
+ */
6
+ export declare class ApplySalePromotionRequest {
7
+ salePromotionId: string | null;
8
+ salePromotionVersion: number | null;
9
+ }