@fiado/type-kit 3.460.0 → 3.461.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 (149) hide show
  1. package/_test_/unit/retailCatalog/catalogEnums.test.ts +34 -0
  2. package/_test_/unit/retailCatalog/stockRequests.test.ts +156 -0
  3. package/_test_/unit/retailWizard/multiItemRequests.test.ts +114 -0
  4. package/_test_/unit/retailWizard/multiItemShapes.test.ts +126 -0
  5. package/bin/retailCatalog/dtos/Product.d.ts +15 -1
  6. package/bin/retailCatalog/dtos/ProductComponent.d.ts +5 -0
  7. package/bin/retailCatalog/dtos/ProductComponent.js +29 -0
  8. package/bin/retailCatalog/dtos/requests/GetInventorySkuQuery.d.ts +10 -0
  9. package/bin/retailCatalog/dtos/requests/GetInventorySkuQuery.js +42 -0
  10. package/bin/retailCatalog/dtos/requests/InventoryLensQuery.d.ts +5 -0
  11. package/bin/retailCatalog/dtos/requests/InventoryLensQuery.js +11 -0
  12. package/bin/retailCatalog/dtos/requests/ReleaseStockRequest.d.ts +8 -0
  13. package/bin/retailCatalog/dtos/requests/ReleaseStockRequest.js +34 -0
  14. package/bin/retailCatalog/dtos/requests/RenewReservationsRequest.d.ts +6 -0
  15. package/bin/retailCatalog/dtos/requests/RenewReservationsRequest.js +30 -0
  16. package/bin/retailCatalog/dtos/requests/ReservationLineRef.d.ts +5 -0
  17. package/bin/retailCatalog/dtos/requests/ReservationLineRef.js +25 -0
  18. package/bin/retailCatalog/dtos/requests/ReserveStockRequest.d.ts +10 -0
  19. package/bin/retailCatalog/dtos/requests/ReserveStockRequest.js +42 -0
  20. package/bin/retailCatalog/dtos/requests/ReturnStockRequest.d.ts +9 -0
  21. package/bin/retailCatalog/dtos/requests/ReturnStockRequest.js +38 -0
  22. package/bin/retailCatalog/dtos/requests/SellStockRequest.d.ts +7 -0
  23. package/bin/retailCatalog/dtos/requests/SellStockRequest.js +34 -0
  24. package/bin/retailCatalog/dtos/requests/StockLine.d.ts +14 -0
  25. package/bin/retailCatalog/dtos/requests/StockLine.js +56 -0
  26. package/bin/retailCatalog/dtos/requests/SuggestPiecesQuery.d.ts +5 -0
  27. package/bin/retailCatalog/dtos/requests/SuggestPiecesQuery.js +26 -0
  28. package/bin/retailCatalog/dtos/requests/SyncInventoryRequest.d.ts +47 -0
  29. package/bin/retailCatalog/dtos/requests/SyncInventoryRequest.js +173 -0
  30. package/bin/retailCatalog/dtos/responses/GetInventorySkuResponse.d.ts +34 -0
  31. package/bin/retailCatalog/dtos/responses/GetInventorySkuResponse.js +2 -0
  32. package/bin/retailCatalog/dtos/responses/InventoryLensResponse.d.ts +43 -2
  33. package/bin/retailCatalog/dtos/responses/ListSkuPricesResponse.d.ts +6 -0
  34. package/bin/retailCatalog/dtos/responses/ListSkuPricesResponse.js +2 -0
  35. package/bin/retailCatalog/dtos/responses/ReleaseStockResponse.d.ts +10 -0
  36. package/bin/retailCatalog/dtos/responses/ReleaseStockResponse.js +2 -0
  37. package/bin/retailCatalog/dtos/responses/RenewReservationsResponse.d.ts +10 -0
  38. package/bin/retailCatalog/dtos/responses/RenewReservationsResponse.js +2 -0
  39. package/bin/retailCatalog/dtos/responses/ReserveStockResponse.d.ts +25 -0
  40. package/bin/retailCatalog/dtos/responses/ReserveStockResponse.js +2 -0
  41. package/bin/retailCatalog/dtos/responses/ReturnStockResponse.d.ts +4 -0
  42. package/bin/retailCatalog/dtos/responses/ReturnStockResponse.js +2 -0
  43. package/bin/retailCatalog/dtos/responses/SellStockResponse.d.ts +18 -0
  44. package/bin/retailCatalog/dtos/responses/SellStockResponse.js +2 -0
  45. package/bin/retailCatalog/dtos/responses/SkuPriceEntry.d.ts +9 -0
  46. package/bin/retailCatalog/dtos/responses/SkuPriceEntry.js +2 -0
  47. package/bin/retailCatalog/dtos/responses/StoreCatalogItem.d.ts +29 -0
  48. package/bin/retailCatalog/dtos/responses/StoreCatalogItem.js +2 -0
  49. package/bin/retailCatalog/dtos/responses/SuggestPiecesResponse.d.ts +6 -0
  50. package/bin/retailCatalog/dtos/responses/SuggestPiecesResponse.js +2 -0
  51. package/bin/retailCatalog/dtos/responses/SyncInventoryResponse.d.ts +13 -0
  52. package/bin/retailCatalog/dtos/responses/SyncInventoryResponse.js +2 -0
  53. package/bin/retailCatalog/dtos/validation/ValidateProductResponse.d.ts +6 -1
  54. package/bin/retailCatalog/enums/InventoryLensFilterEnum.d.ts +3 -1
  55. package/bin/retailCatalog/enums/InventoryLensFilterEnum.js +2 -0
  56. package/bin/retailCatalog/enums/InventoryLensPeriodEnum.d.ts +7 -0
  57. package/bin/retailCatalog/enums/InventoryLensPeriodEnum.js +11 -0
  58. package/bin/retailCatalog/enums/InventoryMovementTypeEnum.d.ts +9 -0
  59. package/bin/retailCatalog/enums/InventoryMovementTypeEnum.js +13 -0
  60. package/bin/retailCatalog/enums/InventorySyncRejectionCodeEnum.d.ts +9 -0
  61. package/bin/retailCatalog/enums/InventorySyncRejectionCodeEnum.js +13 -0
  62. package/bin/retailCatalog/enums/InventorySyncResultStatusEnum.d.ts +6 -0
  63. package/bin/retailCatalog/enums/InventorySyncResultStatusEnum.js +10 -0
  64. package/bin/retailCatalog/enums/PriceSourceEnum.d.ts +4 -0
  65. package/bin/retailCatalog/enums/PriceSourceEnum.js +8 -0
  66. package/bin/retailCatalog/enums/ProductCategoryEnum.d.ts +9 -0
  67. package/bin/retailCatalog/enums/ProductCategoryEnum.js +13 -0
  68. package/bin/retailCatalog/enums/TrackingModeEnum.d.ts +6 -0
  69. package/bin/retailCatalog/enums/TrackingModeEnum.js +10 -0
  70. package/bin/retailCatalog/index.d.ts +29 -0
  71. package/bin/retailCatalog/index.js +30 -0
  72. package/bin/retailWizard/dtos/Sale.d.ts +7 -0
  73. package/bin/retailWizard/dtos/SaleLine.d.ts +16 -0
  74. package/bin/retailWizard/dtos/SaleLine.js +2 -0
  75. package/bin/retailWizard/dtos/WizardLineIdentifiers.d.ts +5 -0
  76. package/bin/retailWizard/dtos/WizardLineIdentifiers.js +2 -0
  77. package/bin/retailWizard/dtos/WizardLineProduct.d.ts +15 -0
  78. package/bin/retailWizard/dtos/WizardLineProduct.js +2 -0
  79. package/bin/retailWizard/dtos/WizardProduct.d.ts +6 -0
  80. package/bin/retailWizard/dtos/WizardReservedLine.d.ts +35 -0
  81. package/bin/retailWizard/dtos/WizardReservedLine.js +2 -0
  82. package/bin/retailWizard/dtos/WizardSession.d.ts +5 -0
  83. package/bin/retailWizard/dtos/requests/AddProductRequest.d.ts +4 -8
  84. package/bin/retailWizard/dtos/requests/AddProductRequest.js +9 -8
  85. package/bin/retailWizard/dtos/requests/CompleteSaleRequest.d.ts +16 -0
  86. package/bin/retailWizard/dtos/requests/CompleteSaleRequest.js +59 -0
  87. package/bin/retailWizard/dtos/requests/DeleteProductRequest.d.ts +3 -1
  88. package/bin/retailWizard/dtos/requests/DeleteProductRequest.js +7 -1
  89. package/bin/retailWizard/dtos/requests/QuoteRequest.d.ts +2 -0
  90. package/bin/retailWizard/dtos/requests/QuoteRequest.js +7 -0
  91. package/bin/retailWizard/dtos/requests/SuggestIdentifiersQuery.d.ts +5 -0
  92. package/bin/retailWizard/dtos/requests/SuggestIdentifiersQuery.js +30 -0
  93. package/bin/retailWizard/enums/LinePaymentTypeEnum.d.ts +7 -0
  94. package/bin/retailWizard/enums/LinePaymentTypeEnum.js +11 -0
  95. package/bin/retailWizard/enums/WizardLineStatusEnum.d.ts +9 -0
  96. package/bin/retailWizard/enums/WizardLineStatusEnum.js +13 -0
  97. package/bin/retailWizard/index.d.ts +8 -0
  98. package/bin/retailWizard/index.js +8 -0
  99. package/package.json +1 -1
  100. package/src/retailCatalog/dtos/Product.ts +17 -1
  101. package/src/retailCatalog/dtos/ProductComponent.ts +14 -0
  102. package/src/retailCatalog/dtos/requests/GetInventorySkuQuery.ts +27 -0
  103. package/src/retailCatalog/dtos/requests/InventoryLensQuery.ts +12 -1
  104. package/src/retailCatalog/dtos/requests/ReleaseStockRequest.ts +19 -0
  105. package/src/retailCatalog/dtos/requests/RenewReservationsRequest.ts +15 -0
  106. package/src/retailCatalog/dtos/requests/ReservationLineRef.ts +10 -0
  107. package/src/retailCatalog/dtos/requests/ReserveStockRequest.ts +24 -0
  108. package/src/retailCatalog/dtos/requests/ReturnStockRequest.ts +22 -0
  109. package/src/retailCatalog/dtos/requests/SellStockRequest.ts +18 -0
  110. package/src/retailCatalog/dtos/requests/StockLine.ts +36 -0
  111. package/src/retailCatalog/dtos/requests/SuggestPiecesQuery.ts +11 -0
  112. package/src/retailCatalog/dtos/requests/SyncInventoryRequest.ts +145 -0
  113. package/src/retailCatalog/dtos/responses/GetInventorySkuResponse.ts +38 -0
  114. package/src/retailCatalog/dtos/responses/InventoryLensResponse.ts +48 -2
  115. package/src/retailCatalog/dtos/responses/ListSkuPricesResponse.ts +7 -0
  116. package/src/retailCatalog/dtos/responses/ReleaseStockResponse.ts +11 -0
  117. package/src/retailCatalog/dtos/responses/RenewReservationsResponse.ts +11 -0
  118. package/src/retailCatalog/dtos/responses/ReserveStockResponse.ts +27 -0
  119. package/src/retailCatalog/dtos/responses/ReturnStockResponse.ts +4 -0
  120. package/src/retailCatalog/dtos/responses/SellStockResponse.ts +20 -0
  121. package/src/retailCatalog/dtos/responses/SkuPriceEntry.ts +10 -0
  122. package/src/retailCatalog/dtos/responses/StoreCatalogItem.ts +31 -0
  123. package/src/retailCatalog/dtos/responses/SuggestPiecesResponse.ts +7 -0
  124. package/src/retailCatalog/dtos/responses/SyncInventoryResponse.ts +15 -0
  125. package/src/retailCatalog/dtos/validation/ValidateProductResponse.ts +6 -1
  126. package/src/retailCatalog/enums/InventoryLensFilterEnum.ts +2 -0
  127. package/src/retailCatalog/enums/InventoryLensPeriodEnum.ts +7 -0
  128. package/src/retailCatalog/enums/InventoryMovementTypeEnum.ts +9 -0
  129. package/src/retailCatalog/enums/InventorySyncRejectionCodeEnum.ts +9 -0
  130. package/src/retailCatalog/enums/InventorySyncResultStatusEnum.ts +6 -0
  131. package/src/retailCatalog/enums/PriceSourceEnum.ts +4 -0
  132. package/src/retailCatalog/enums/ProductCategoryEnum.ts +9 -0
  133. package/src/retailCatalog/enums/TrackingModeEnum.ts +6 -0
  134. package/src/retailCatalog/index.ts +31 -0
  135. package/src/retailWizard/dtos/Sale.ts +7 -0
  136. package/src/retailWizard/dtos/SaleLine.ts +17 -0
  137. package/src/retailWizard/dtos/WizardLineIdentifiers.ts +5 -0
  138. package/src/retailWizard/dtos/WizardLineProduct.ts +16 -0
  139. package/src/retailWizard/dtos/WizardProduct.ts +7 -0
  140. package/src/retailWizard/dtos/WizardReservedLine.ts +36 -0
  141. package/src/retailWizard/dtos/WizardSession.ts +5 -0
  142. package/src/retailWizard/dtos/requests/AddProductRequest.ts +9 -8
  143. package/src/retailWizard/dtos/requests/CompleteSaleRequest.ts +41 -0
  144. package/src/retailWizard/dtos/requests/DeleteProductRequest.ts +7 -1
  145. package/src/retailWizard/dtos/requests/QuoteRequest.ts +8 -1
  146. package/src/retailWizard/dtos/requests/SuggestIdentifiersQuery.ts +15 -0
  147. package/src/retailWizard/enums/LinePaymentTypeEnum.ts +7 -0
  148. package/src/retailWizard/enums/WizardLineStatusEnum.ts +9 -0
  149. package/src/retailWizard/index.ts +8 -0
@@ -0,0 +1,10 @@
1
+ /** Resultado de liberar una línea; `released=false` si onlyExpired y aún no vence. */
2
+ export interface ReleasedReservationLine {
3
+ lineId: string;
4
+ reservationId: string;
5
+ released: boolean;
6
+ }
7
+ /** Response de privateReleaseStock. */
8
+ export interface ReleaseStockResponse {
9
+ lines: ReleasedReservationLine[];
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ /** Vencimiento nuevo de una línea renovada. */
2
+ export interface RenewedReservationLine {
3
+ lineId: string;
4
+ reservationId: string;
5
+ expiresAt: string;
6
+ }
7
+ /** Response de privateRenewReservations. */
8
+ export interface RenewReservationsResponse {
9
+ lines: RenewedReservationLine[];
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
1
+ import type { MdmProviderEnum } from '../../enums/MdmProviderEnum';
2
+ import type { ProductCategoryEnum } from '../../enums/ProductCategoryEnum';
3
+ import type { TrackingModeEnum } from '../../enums/TrackingModeEnum';
4
+ /** Componente reservado de un kit. */
5
+ export interface ReservedComponent {
6
+ sku: string;
7
+ qty: number;
8
+ category: ProductCategoryEnum;
9
+ trackingMode: TrackingModeEnum;
10
+ }
11
+ /** Response de privateReserveStock; el precio de la línea es `basePriceCents`. */
12
+ export interface ReserveStockResponse {
13
+ expiresAt: string;
14
+ basePriceCents: number;
15
+ listPriceCents: number | null;
16
+ /** Llave del registro PRICE# del que salió el precio fijado. */
17
+ priceSk: string;
18
+ eligibleFinanciers: string[];
19
+ /** Ítems que la línea suma al tope de la venta. */
20
+ sellItemCost: number;
21
+ mdmEnabled: boolean;
22
+ mdmProvider: MdmProviderEnum | null;
23
+ /** Solo si la línea es un kit. */
24
+ components?: ReservedComponent[];
25
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ /** Response de privateReturnStock; una repetición también responde 200. */
2
+ export interface ReturnStockResponse {
3
+ saleId: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ /** Componente vendido con las piezas que salieron. */
2
+ export interface SoldLineComponent {
3
+ sku: string;
4
+ qty: number;
5
+ identifiers: string[];
6
+ }
7
+ /** Línea vendida. */
8
+ export interface SoldLine {
9
+ lineId: string;
10
+ sku: string;
11
+ qty: number;
12
+ components: SoldLineComponent[];
13
+ }
14
+ /** Response de privateSellStock; una repetición devuelve el mismo resultado. */
15
+ export interface SellStockResponse {
16
+ soldAt: string;
17
+ lines: SoldLine[];
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import type { PriceSourceEnum } from '../../enums/PriceSourceEnum';
2
+ /** Un registro del historial de precios PRICE# de un SKU. */
3
+ export interface SkuPriceEntry {
4
+ effectiveFrom: string;
5
+ listPriceCents: number | null;
6
+ basePriceCents: number;
7
+ source: PriceSourceEnum;
8
+ createdBy: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,29 @@
1
+ import type { MdmLockModeEnum } from '../../enums/MdmLockModeEnum';
2
+ import type { MdmProviderEnum } from '../../enums/MdmProviderEnum';
3
+ import type { ProductCategoryEnum } from '../../enums/ProductCategoryEnum';
4
+ import type { ProductTierEnum } from '../../enums/ProductTierEnum';
5
+ import type { TrackingModeEnum } from '../../enums/TrackingModeEnum';
6
+ import type { ProductComponent } from '../ProductComponent';
7
+ /** Fila por SKU del catálogo de venta de una tienda (privateGetStoreStockCatalog). */
8
+ export interface StoreCatalogItem {
9
+ sku: string;
10
+ /** Piezas disponibles; en un kit, el mínimo que alcanzan sus componentes. */
11
+ available: number;
12
+ basePriceCents: number;
13
+ category: ProductCategoryEnum;
14
+ trackingMode: TrackingModeEnum;
15
+ brand: string;
16
+ model: string;
17
+ capacity: string;
18
+ color: string;
19
+ imageUrl: string | null;
20
+ tier: ProductTierEnum | null;
21
+ eligibleFinanciers: string[];
22
+ mdmEnabled: boolean;
23
+ mdmProvider: MdmProviderEnum | null;
24
+ mdmLockMode: MdmLockModeEnum | null;
25
+ /** Solo si es kit. */
26
+ components?: ProductComponent[];
27
+ }
28
+ /** Response de privateGetStoreStockCatalog. */
29
+ export type GetStoreStockCatalogResponse = StoreCatalogItem[];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ /** Pieza AVAILABLE sugerida por prefijo. */
2
+ export interface SuggestedPiece {
3
+ identifier: string;
4
+ }
5
+ /** Response de privateSuggestPieces, con tope de resultados. */
6
+ export type SuggestPiecesResponse = SuggestedPiece[];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import type { InventorySyncRejectionCodeEnum } from '../../enums/InventorySyncRejectionCodeEnum';
2
+ import type { InventorySyncResultStatusEnum } from '../../enums/InventorySyncResultStatusEnum';
3
+ /** Resultado de un ítem del lote; `code` solo viene con REJECTED. */
4
+ export interface InventorySyncResult {
5
+ /** Identifica el ítem del lote (SKU, o tienda + SKU + identificador). */
6
+ key: string;
7
+ status: InventorySyncResultStatusEnum;
8
+ code?: InventorySyncRejectionCodeEnum;
9
+ }
10
+ /** Response de privateSyncInventory: siempre 200, con resultado por ítem. */
11
+ export interface SyncInventoryResponse {
12
+ results: InventorySyncResult[];
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,6 +2,8 @@ import { MdmLockModeEnum } from '../../enums/MdmLockModeEnum';
2
2
  import { MdmProviderEnum } from '../../enums/MdmProviderEnum';
3
3
  import { ProductStatusEnum } from '../../enums/ProductStatusEnum';
4
4
  import { ProductTierEnum } from '../../enums/ProductTierEnum';
5
+ import { ProductCategoryEnum } from '../../enums/ProductCategoryEnum';
6
+ import { TrackingModeEnum } from '../../enums/TrackingModeEnum';
5
7
  /**
6
8
  * Response de GET /private/products/:retailerId/:sku — validar que el producto existe + status.
7
9
  * Incluye los campos que los downstream consumen: `eligibleFinanciers` (wizard F2 paso 4)
@@ -12,9 +14,12 @@ export declare class ValidateProductResponse {
12
14
  retailerId: string;
13
15
  sku: string;
14
16
  status: ProductStatusEnum;
15
- tier: ProductTierEnum;
17
+ /** `null` = Sin gama. */
18
+ tier: ProductTierEnum | null;
16
19
  eligibleFinanciers: string[];
17
20
  mdmEnabled: boolean;
18
21
  mdmProvider: MdmProviderEnum | null;
19
22
  mdmLockMode: MdmLockModeEnum | null;
23
+ category?: ProductCategoryEnum;
24
+ trackingMode?: TrackingModeEnum;
20
25
  }
@@ -17,5 +17,7 @@ export declare enum InventoryLensFilterEnum {
17
17
  /** Top vendidos en LUGA que SureKeep no financia. **No disponible** (INT6). */
18
18
  GAP = "gap",
19
19
  /** Desbalance de stock del mismo SKU entre tiendas. */
20
- TRANSFERS = "transfers"
20
+ TRANSFERS = "transfers",
21
+ /** Lista por SKU del Inventario v3, con stock, ventas del periodo, cobertura y alertas. */
22
+ LIST = "list"
21
23
  }
@@ -22,4 +22,6 @@ var InventoryLensFilterEnum;
22
22
  InventoryLensFilterEnum["GAP"] = "gap";
23
23
  /** Desbalance de stock del mismo SKU entre tiendas. */
24
24
  InventoryLensFilterEnum["TRANSFERS"] = "transfers";
25
+ /** Lista por SKU del Inventario v3, con stock, ventas del periodo, cobertura y alertas. */
26
+ InventoryLensFilterEnum["LIST"] = "list";
25
27
  })(InventoryLensFilterEnum || (exports.InventoryLensFilterEnum = InventoryLensFilterEnum = {}));
@@ -0,0 +1,7 @@
1
+ /** Periodo de ventas y cobertura del Inventario v3; viaja en query string. `all` cuenta como 90 días. */
2
+ export declare enum InventoryLensPeriodEnum {
3
+ DAYS_7 = "7d",
4
+ DAYS_30 = "30d",
5
+ DAYS_90 = "90d",
6
+ ALL = "all"
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InventoryLensPeriodEnum = void 0;
4
+ /** Periodo de ventas y cobertura del Inventario v3; viaja en query string. `all` cuenta como 90 días. */
5
+ var InventoryLensPeriodEnum;
6
+ (function (InventoryLensPeriodEnum) {
7
+ InventoryLensPeriodEnum["DAYS_7"] = "7d";
8
+ InventoryLensPeriodEnum["DAYS_30"] = "30d";
9
+ InventoryLensPeriodEnum["DAYS_90"] = "90d";
10
+ InventoryLensPeriodEnum["ALL"] = "all";
11
+ })(InventoryLensPeriodEnum || (exports.InventoryLensPeriodEnum = InventoryLensPeriodEnum = {}));
@@ -0,0 +1,9 @@
1
+ /** Tipo de movimiento del libro de inventario (MOV#) de una tienda. */
2
+ export declare enum InventoryMovementTypeEnum {
3
+ ENTRY = "ENTRY",
4
+ RESERVATION = "RESERVATION",
5
+ RELEASE = "RELEASE",
6
+ SALE = "SALE",
7
+ RETURN = "RETURN",
8
+ ADJUSTMENT = "ADJUSTMENT"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InventoryMovementTypeEnum = void 0;
4
+ /** Tipo de movimiento del libro de inventario (MOV#) de una tienda. */
5
+ var InventoryMovementTypeEnum;
6
+ (function (InventoryMovementTypeEnum) {
7
+ InventoryMovementTypeEnum["ENTRY"] = "ENTRY";
8
+ InventoryMovementTypeEnum["RESERVATION"] = "RESERVATION";
9
+ InventoryMovementTypeEnum["RELEASE"] = "RELEASE";
10
+ InventoryMovementTypeEnum["SALE"] = "SALE";
11
+ InventoryMovementTypeEnum["RETURN"] = "RETURN";
12
+ InventoryMovementTypeEnum["ADJUSTMENT"] = "ADJUSTMENT";
13
+ })(InventoryMovementTypeEnum || (exports.InventoryMovementTypeEnum = InventoryMovementTypeEnum = {}));
@@ -0,0 +1,9 @@
1
+ /** Motivo por el que la puerta de entrada rechaza un ítem; el resto del lote sí se aplica. */
2
+ export declare enum InventorySyncRejectionCodeEnum {
3
+ /** El identificador ya existe en otra tienda o SKU del tenant. */
4
+ DUPLICATE_IDENTIFIER = "DUPLICATE_IDENTIFIER",
5
+ /** El ajuste de un SKU por cantidad deja el saldo por debajo de lo reservado. */
6
+ ADJUSTMENT_EXCEEDS_AVAILABLE = "ADJUSTMENT_EXCEEDS_AVAILABLE",
7
+ /** El precio trae una vigencia futura, que este ciclo no se admite. */
8
+ FUTURE_PRICE_NOT_SUPPORTED = "FUTURE_PRICE_NOT_SUPPORTED"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InventorySyncRejectionCodeEnum = void 0;
4
+ /** Motivo por el que la puerta de entrada rechaza un ítem; el resto del lote sí se aplica. */
5
+ var InventorySyncRejectionCodeEnum;
6
+ (function (InventorySyncRejectionCodeEnum) {
7
+ /** El identificador ya existe en otra tienda o SKU del tenant. */
8
+ InventorySyncRejectionCodeEnum["DUPLICATE_IDENTIFIER"] = "DUPLICATE_IDENTIFIER";
9
+ /** El ajuste de un SKU por cantidad deja el saldo por debajo de lo reservado. */
10
+ InventorySyncRejectionCodeEnum["ADJUSTMENT_EXCEEDS_AVAILABLE"] = "ADJUSTMENT_EXCEEDS_AVAILABLE";
11
+ /** El precio trae una vigencia futura, que este ciclo no se admite. */
12
+ InventorySyncRejectionCodeEnum["FUTURE_PRICE_NOT_SUPPORTED"] = "FUTURE_PRICE_NOT_SUPPORTED";
13
+ })(InventorySyncRejectionCodeEnum || (exports.InventorySyncRejectionCodeEnum = InventorySyncRejectionCodeEnum = {}));
@@ -0,0 +1,6 @@
1
+ /** Resultado por ítem de la puerta de entrada (sync): aplicado, sin cambios o rechazado. */
2
+ export declare enum InventorySyncResultStatusEnum {
3
+ APPLIED = "APPLIED",
4
+ NOOP = "NOOP",
5
+ REJECTED = "REJECTED"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InventorySyncResultStatusEnum = void 0;
4
+ /** Resultado por ítem de la puerta de entrada (sync): aplicado, sin cambios o rechazado. */
5
+ var InventorySyncResultStatusEnum;
6
+ (function (InventorySyncResultStatusEnum) {
7
+ InventorySyncResultStatusEnum["APPLIED"] = "APPLIED";
8
+ InventorySyncResultStatusEnum["NOOP"] = "NOOP";
9
+ InventorySyncResultStatusEnum["REJECTED"] = "REJECTED";
10
+ })(InventorySyncResultStatusEnum || (exports.InventorySyncResultStatusEnum = InventorySyncResultStatusEnum = {}));
@@ -0,0 +1,4 @@
1
+ /** Origen de un registro del historial de precios (PRICE#). */
2
+ export declare enum PriceSourceEnum {
3
+ ZENTRAL_SYNC = "ZENTRAL_SYNC"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PriceSourceEnum = void 0;
4
+ /** Origen de un registro del historial de precios (PRICE#). */
5
+ var PriceSourceEnum;
6
+ (function (PriceSourceEnum) {
7
+ PriceSourceEnum["ZENTRAL_SYNC"] = "ZENTRAL_SYNC";
8
+ })(PriceSourceEnum || (exports.PriceSourceEnum = PriceSourceEnum = {}));
@@ -0,0 +1,9 @@
1
+ /** Categoría del producto tal como llega de Zentral; solo PHONE lleva configuración MDM. */
2
+ export declare enum ProductCategoryEnum {
3
+ PHONE = "PHONE",
4
+ SIM = "SIM",
5
+ MODEM = "MODEM",
6
+ ACCESSORY = "ACCESSORY",
7
+ /** Kit: se vende como una línea y consume el stock de sus componentes. */
8
+ BUNDLE = "BUNDLE"
9
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProductCategoryEnum = void 0;
4
+ /** Categoría del producto tal como llega de Zentral; solo PHONE lleva configuración MDM. */
5
+ var ProductCategoryEnum;
6
+ (function (ProductCategoryEnum) {
7
+ ProductCategoryEnum["PHONE"] = "PHONE";
8
+ ProductCategoryEnum["SIM"] = "SIM";
9
+ ProductCategoryEnum["MODEM"] = "MODEM";
10
+ ProductCategoryEnum["ACCESSORY"] = "ACCESSORY";
11
+ /** Kit: se vende como una línea y consume el stock de sus componentes. */
12
+ ProductCategoryEnum["BUNDLE"] = "BUNDLE";
13
+ })(ProductCategoryEnum || (exports.ProductCategoryEnum = ProductCategoryEnum = {}));
@@ -0,0 +1,6 @@
1
+ /** Cómo se rastrea el stock de un producto: por pieza (IMEI o serie) o solo por cantidad. */
2
+ export declare enum TrackingModeEnum {
3
+ IMEI = "IMEI",
4
+ SERIAL = "SERIAL",
5
+ QUANTITY = "QUANTITY"
6
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackingModeEnum = void 0;
4
+ /** Cómo se rastrea el stock de un producto: por pieza (IMEI o serie) o solo por cantidad. */
5
+ var TrackingModeEnum;
6
+ (function (TrackingModeEnum) {
7
+ TrackingModeEnum["IMEI"] = "IMEI";
8
+ TrackingModeEnum["SERIAL"] = "SERIAL";
9
+ TrackingModeEnum["QUANTITY"] = "QUANTITY";
10
+ })(TrackingModeEnum || (exports.TrackingModeEnum = TrackingModeEnum = {}));
@@ -25,3 +25,32 @@ export * from './dtos/responses/ImportCsvResult';
25
25
  export * from './dtos/responses/InventoryLensResponse';
26
26
  export * from './dtos/validation/ValidateProductResponse';
27
27
  export * from './dtos/validation/ValidateInventoryResponse';
28
+ export * from './enums/ProductCategoryEnum';
29
+ export * from './enums/TrackingModeEnum';
30
+ export * from './enums/InventoryMovementTypeEnum';
31
+ export * from './enums/InventorySyncResultStatusEnum';
32
+ export * from './enums/InventorySyncRejectionCodeEnum';
33
+ export * from './enums/PriceSourceEnum';
34
+ export * from './enums/InventoryLensPeriodEnum';
35
+ export * from './dtos/ProductComponent';
36
+ export * from './dtos/requests/ReservationLineRef';
37
+ export * from './dtos/requests/StockLine';
38
+ export * from './dtos/requests/ReserveStockRequest';
39
+ export * from './dtos/requests/RenewReservationsRequest';
40
+ export * from './dtos/requests/SuggestPiecesQuery';
41
+ export * from './dtos/requests/SellStockRequest';
42
+ export * from './dtos/requests/ReleaseStockRequest';
43
+ export * from './dtos/requests/ReturnStockRequest';
44
+ export * from './dtos/requests/SyncInventoryRequest';
45
+ export * from './dtos/requests/GetInventorySkuQuery';
46
+ export * from './dtos/responses/ReserveStockResponse';
47
+ export * from './dtos/responses/RenewReservationsResponse';
48
+ export * from './dtos/responses/SuggestPiecesResponse';
49
+ export * from './dtos/responses/SellStockResponse';
50
+ export * from './dtos/responses/ReleaseStockResponse';
51
+ export * from './dtos/responses/ReturnStockResponse';
52
+ export * from './dtos/responses/SyncInventoryResponse';
53
+ export * from './dtos/responses/StoreCatalogItem';
54
+ export * from './dtos/responses/SkuPriceEntry';
55
+ export * from './dtos/responses/GetInventorySkuResponse';
56
+ export * from './dtos/responses/ListSkuPricesResponse';
@@ -48,3 +48,33 @@ __exportStar(require("./dtos/responses/InventoryLensResponse"), exports);
48
48
  // Validation DTOs (shapes de endpoints privados)
49
49
  __exportStar(require("./dtos/validation/ValidateProductResponse"), exports);
50
50
  __exportStar(require("./dtos/validation/ValidateInventoryResponse"), exports);
51
+ // Inventario multi-item (ciclo 1)
52
+ __exportStar(require("./enums/ProductCategoryEnum"), exports);
53
+ __exportStar(require("./enums/TrackingModeEnum"), exports);
54
+ __exportStar(require("./enums/InventoryMovementTypeEnum"), exports);
55
+ __exportStar(require("./enums/InventorySyncResultStatusEnum"), exports);
56
+ __exportStar(require("./enums/InventorySyncRejectionCodeEnum"), exports);
57
+ __exportStar(require("./enums/PriceSourceEnum"), exports);
58
+ __exportStar(require("./enums/InventoryLensPeriodEnum"), exports);
59
+ __exportStar(require("./dtos/ProductComponent"), exports);
60
+ __exportStar(require("./dtos/requests/ReservationLineRef"), exports);
61
+ __exportStar(require("./dtos/requests/StockLine"), exports);
62
+ __exportStar(require("./dtos/requests/ReserveStockRequest"), exports);
63
+ __exportStar(require("./dtos/requests/RenewReservationsRequest"), exports);
64
+ __exportStar(require("./dtos/requests/SuggestPiecesQuery"), exports);
65
+ __exportStar(require("./dtos/requests/SellStockRequest"), exports);
66
+ __exportStar(require("./dtos/requests/ReleaseStockRequest"), exports);
67
+ __exportStar(require("./dtos/requests/ReturnStockRequest"), exports);
68
+ __exportStar(require("./dtos/requests/SyncInventoryRequest"), exports);
69
+ __exportStar(require("./dtos/requests/GetInventorySkuQuery"), exports);
70
+ __exportStar(require("./dtos/responses/ReserveStockResponse"), exports);
71
+ __exportStar(require("./dtos/responses/RenewReservationsResponse"), exports);
72
+ __exportStar(require("./dtos/responses/SuggestPiecesResponse"), exports);
73
+ __exportStar(require("./dtos/responses/SellStockResponse"), exports);
74
+ __exportStar(require("./dtos/responses/ReleaseStockResponse"), exports);
75
+ __exportStar(require("./dtos/responses/ReturnStockResponse"), exports);
76
+ __exportStar(require("./dtos/responses/SyncInventoryResponse"), exports);
77
+ __exportStar(require("./dtos/responses/StoreCatalogItem"), exports);
78
+ __exportStar(require("./dtos/responses/SkuPriceEntry"), exports);
79
+ __exportStar(require("./dtos/responses/GetInventorySkuResponse"), exports);
80
+ __exportStar(require("./dtos/responses/ListSkuPricesResponse"), exports);
@@ -4,6 +4,7 @@ import type { SalePaymentMethodEnum } from '../enums/SalePaymentMethodEnum';
4
4
  import type { ExternalProviderEnum } from '../enums/ExternalProviderEnum';
5
5
  import type { CentralSyncStatusEnum } from '../enums/CentralSyncStatusEnum';
6
6
  import type { SalePaymentDetail } from './SalePaymentDetail';
7
+ import type { SaleLine } from './SaleLine';
7
8
  /**
8
9
  * Venta (modelo-datos §3). pk `SALE#<saleId>` · sk `META` · 4 GSIs (`retailerId-soldAt-index`,
9
10
  * `storeId-soldAt-index`, `seller-soldAt-index`, `customerId-soldAt-index`). Unicidad de folio vía
@@ -19,6 +20,12 @@ export interface Sale {
19
20
  type: SaleTypeEnum;
20
21
  externalProvider: ExternalProviderEnum | null;
21
22
  sku: string;
23
+ /** Líneas vendidas; `sku` e `imei` siguen siendo los del teléfono financiado o de la línea principal. */
24
+ lines?: SaleLine[];
25
+ /** SKUs de líneas y componentes, para filtrar ventas por SKU. */
26
+ skus?: string[];
27
+ /** La cancelación aún no confirma la devolución al inventario. */
28
+ inventoryReturnPending?: boolean;
22
29
  /** IMEI consumido del silo también en contado (local-first); null en EXTERNAL_REFERRAL (D15). */
23
30
  imei: string | null;
24
31
  /**
@@ -0,0 +1,16 @@
1
+ import type { SoldLineComponent } from '../../retailCatalog/dtos/responses/SellStockResponse';
2
+ import type { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
3
+ import type { WizardLineProduct } from './WizardLineProduct';
4
+ /** Línea de una venta cerrada; un producto suelto es un solo componente. */
5
+ export interface SaleLine {
6
+ lineId: string;
7
+ sku: string;
8
+ qty: number;
9
+ basePriceCents: number;
10
+ listPriceCents: number | null;
11
+ /** Llave del registro PRICE# del que salió el precio. */
12
+ priceSk: string;
13
+ paymentType: LinePaymentTypeEnum;
14
+ components: SoldLineComponent[];
15
+ product?: WizardLineProduct | null;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ /** Identificadores (IMEI o serie) capturados para un SKU de la línea; un producto suelto es un solo SKU. */
2
+ export interface WizardLineIdentifiers {
3
+ sku: string;
4
+ identifiers: string[];
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
2
+ import type { ProductTierEnum } from '../../retailCatalog/enums/ProductTierEnum';
3
+ import type { TrackingModeEnum } from '../../retailCatalog/enums/TrackingModeEnum';
4
+ /** Ficha comercial de una línea, congelada al reservar para pintarla sin volver al catálogo. */
5
+ export interface WizardLineProduct {
6
+ brand: string;
7
+ model: string;
8
+ capacity: string | null;
9
+ color: string | null;
10
+ imageUrl: string | null;
11
+ /** `null` = Sin gama. */
12
+ tier: ProductTierEnum | null;
13
+ category: ProductCategoryEnum;
14
+ trackingMode: TrackingModeEnum;
15
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,5 @@
1
+ import type { ProductCategoryEnum } from '../../retailCatalog/enums/ProductCategoryEnum';
2
+ import type { TrackingModeEnum } from '../../retailCatalog/enums/TrackingModeEnum';
1
3
  /**
2
4
  * Ficha COMERCIAL del equipo reservado, congelada en la sesión al momento de reservarlo (S03).
3
5
  *
@@ -38,4 +40,8 @@ export interface WizardProduct {
38
40
  * Mismo nombre que en `retail-catalog`: es su dato, no se renombra al cruzar la frontera.
39
41
  */
40
42
  eligibleFinanciers: string[];
43
+ /** Línea de `reservedLines` que espeja esta ficha. */
44
+ lineId?: string;
45
+ category?: ProductCategoryEnum;
46
+ trackingMode?: TrackingModeEnum;
41
47
  }
@@ -0,0 +1,35 @@
1
+ import type { MdmProviderEnum } from '../../retailCatalog/enums/MdmProviderEnum';
2
+ import type { ReservedComponent } from '../../retailCatalog/dtos/responses/ReserveStockResponse';
3
+ import type { LinePaymentTypeEnum } from '../enums/LinePaymentTypeEnum';
4
+ import type { WizardLineStatusEnum } from '../enums/WizardLineStatusEnum';
5
+ import type { WizardLineIdentifiers } from './WizardLineIdentifiers';
6
+ import type { WizardLineProduct } from './WizardLineProduct';
7
+ /** Línea de la venta en curso; los campos de precio son `null` mientras la línea está PENDING. */
8
+ export interface WizardReservedLine {
9
+ lineId: string;
10
+ sku: string;
11
+ qty: number;
12
+ status: WizardLineStatusEnum;
13
+ /** Llave de idempotencia de la reserva; una nueva por cada intento. */
14
+ reservationId: string;
15
+ /** Vencimiento de la reserva; una línea PENDING nace con ahora + 30 min. */
16
+ expiresAt: string;
17
+ /** Precio fijado de la línea (el del kit si es kit). */
18
+ basePriceCents: number | null;
19
+ listPriceCents: number | null;
20
+ /** Llave del registro PRICE# del que salió el precio. */
21
+ priceSk: string | null;
22
+ eligibleFinanciers: string[];
23
+ /** SureKeep está en `eligibleFinanciers`. */
24
+ financeable: boolean;
25
+ /** `null` mientras no se decide qué línea se financia. */
26
+ paymentType: LinePaymentTypeEnum | null;
27
+ /** Ítems que la línea suma al tope de 100 de la venta. */
28
+ sellItemCost: number | null;
29
+ mdmEnabled?: boolean;
30
+ mdmProvider?: MdmProviderEnum | null;
31
+ /** Solo si la línea es un kit. */
32
+ components?: ReservedComponent[];
33
+ identifiers?: WizardLineIdentifiers[];
34
+ product?: WizardLineProduct | null;
35
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -9,6 +9,7 @@ import type { WizardConsents } from './WizardConsents';
9
9
  import type { WizardLoan } from './WizardLoan';
10
10
  import type { WizardPayment } from './WizardPayment';
11
11
  import type { WizardProduct } from './WizardProduct';
12
+ import type { WizardReservedLine } from './WizardReservedLine';
12
13
  import type { WizardResumeTarget } from './WizardResumeTarget';
13
14
  import type { WizardWelcome } from './WizardWelcome';
14
15
  /** Modalidad de captura del KYC (M1 §213-329). */
@@ -108,6 +109,10 @@ export interface WizardSession {
108
109
  */
109
110
  product: WizardProduct | null;
110
111
  reservationExpiresAt: string | null;
112
+ /** Líneas de la venta; `reservedSku`, `reservedImei` y `product` espejan la financiada o la principal. */
113
+ reservedLines?: WizardReservedLine[];
114
+ /** Línea elegida para financiar; `null` si la venta es de contado o aún no se elige. */
115
+ financedLineId?: string | null;
111
116
  paymentMethod: PaymentMethodEnum | null;
112
117
  externalProvider: ExternalProviderEnum | null;
113
118
  /** Folio de cobro server-side (D11), idempotente, sobrevive al volver atrás. */
@@ -1,15 +1,11 @@
1
1
  /**
2
- * POST /wizard/sessions/:id/product — reserva un equipo del catálogo (paso 03). Reserva 30 min en
3
- * RetailInventory F1 (condición atómica H2).
4
- *
5
- * `imei` y `cashPriceCents` son OPCIONALES a propósito: la unidad física y el precio son AUTORIDAD DEL
6
- * SERVIDOR. Con solo el `sku`, el wizard elige una unidad disponible del catálogo y toma su precio (el
7
- * cliente NUNCA dicta el monto a cobrar — `cashPriceCents` ancla el cobro con `amountCents == cashPrice`).
8
- * Si el caller manda `imei`, el server puede honrar esa unidad, pero el precio SIEMPRE sale del catálogo.
9
- * SureKeep Fase 2 — pista Retail.
2
+ * POST /wizard/sessions/:id/product — agrega una línea a la venta y reserva sus piezas en el catálogo.
3
+ * `imei` y `cashPriceCents` son opcionales: la pieza y el precio los decide el servidor.
10
4
  */
11
5
  export declare class AddProductRequest {
12
6
  sku: string;
13
7
  imei?: string;
14
8
  cashPriceCents?: number;
9
+ /** Piezas de la línea; ausente = 1. */
10
+ qty?: number;
15
11
  }