@fiado/type-kit 3.578.0 → 3.580.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.
- package/_test_/unit/platformRbac/dtos/levelEntityAdminDtos.test.ts +14 -0
- package/_test_/unit/retailCatalog/catalogEnums.test.ts +2 -2
- package/_test_/unit/retailCatalog/centralSaleAccepted.test.ts +54 -0
- package/_test_/unit/retailCatalog/renewedReservationLine.test.ts +23 -0
- package/_test_/unit/retailCatalog/sellInventoryRequest.test.ts +25 -0
- package/_test_/unit/retailCatalog/stockRequests.test.ts +14 -4
- package/_test_/unit/retailCatalog/ventaSaga.test.ts +7 -0
- package/_test_/unit/retailIntegration/reconciliationContracts.test.ts +121 -0
- package/_test_/unit/retailIntegration/retailIntegrationErrorCodes.test.ts +37 -0
- package/_test_/unit/retailIntegration/retailOutboundRequests.test.ts +46 -15
- package/_test_/unit/retailIntegration/retailSaleContracts.test.ts +160 -0
- package/_test_/unit/retailIntegration/retailSystemEnums.test.ts +1 -1
- package/_test_/unit/retailOrg/dtos/retailerIntegration.test.ts +92 -0
- package/_test_/unit/retailWizard/centralOutboundAndLiveCheck.test.ts +63 -0
- package/_test_/unit/retailWizard/centralSaleStatus.test.ts +49 -0
- package/_test_/unit/retailWizard/multiItemShapes.test.ts +2 -2
- package/bin/platformRbac/dtos/UpdateLevelEntityRequest.d.ts +3 -1
- package/bin/platformRbac/dtos/UpdateLevelEntityRequest.js +8 -1
- package/bin/retailCatalog/dtos/requests/ReturnStockRequest.d.ts +2 -0
- package/bin/retailCatalog/dtos/requests/ReturnStockRequest.js +5 -0
- package/bin/retailCatalog/dtos/requests/SellInventoryRequest.d.ts +9 -0
- package/bin/retailCatalog/dtos/requests/SellInventoryRequest.js +32 -0
- package/bin/retailCatalog/dtos/requests/SellStockRequest.d.ts +2 -2
- package/bin/retailCatalog/dtos/requests/SellStockRequest.js +1 -1
- package/bin/retailCatalog/dtos/responses/RenewReservationsResponse.d.ts +6 -0
- package/bin/retailCatalog/enums/InventoryInboundMessageTypeEnum.d.ts +2 -1
- package/bin/retailCatalog/enums/InventoryInboundMessageTypeEnum.js +1 -0
- package/bin/retailCatalog/enums/InventoryItemStatusEnum.d.ts +3 -1
- package/bin/retailCatalog/enums/InventoryItemStatusEnum.js +2 -0
- package/bin/retailCatalog/events/InventoryCentralSaleAcceptedMessage.d.ts +13 -0
- package/bin/retailCatalog/events/InventoryCentralSaleAcceptedMessage.js +55 -0
- package/bin/retailCatalog/events/InventoryInboundMessage.d.ts +2 -1
- package/bin/retailCatalog/events/InventorySaleAppliedMessage.d.ts +0 -2
- package/bin/retailCatalog/events/InventorySaleAppliedMessage.js +0 -6
- package/bin/retailCatalog/index.d.ts +2 -0
- package/bin/retailCatalog/index.js +2 -0
- package/bin/retailIntegration/constants/retailIntegrationErrorHttpStatus.d.ts +3 -0
- package/bin/retailIntegration/constants/retailIntegrationErrorHttpStatus.js +19 -0
- package/bin/retailIntegration/constants/retailIntegrationLimits.d.ts +2 -0
- package/bin/retailIntegration/constants/retailIntegrationLimits.js +3 -1
- package/bin/retailIntegration/dtos/CancelRetailSaleRequest.d.ts +6 -0
- package/bin/retailIntegration/dtos/CancelRetailSaleRequest.js +32 -0
- package/bin/retailIntegration/dtos/CheckRetailInventoryRequest.d.ts +7 -0
- package/bin/retailIntegration/dtos/CheckRetailInventoryRequest.js +43 -0
- package/bin/retailIntegration/dtos/GetReconciliationResponses.d.ts +35 -0
- package/bin/retailIntegration/dtos/GetReconciliationResponses.js +2 -0
- package/bin/retailIntegration/dtos/GetRetailInventoryRequest.d.ts +2 -2
- package/bin/retailIntegration/dtos/GetRetailInventoryRequest.js +2 -2
- package/bin/retailIntegration/dtos/ReconciliationPageMessage.d.ts +13 -0
- package/bin/retailIntegration/dtos/ReconciliationPageMessage.js +48 -0
- package/bin/retailIntegration/dtos/ReconciliationRunCounts.d.ts +9 -0
- package/bin/retailIntegration/dtos/ReconciliationRunCounts.js +2 -0
- package/bin/retailIntegration/dtos/RetailListQuery.d.ts +5 -0
- package/bin/retailIntegration/dtos/RetailListQuery.js +24 -0
- package/bin/retailIntegration/dtos/RetailOutboundResponses.d.ts +9 -0
- package/bin/retailIntegration/dtos/RetailPagedQuery.d.ts +2 -2
- package/bin/retailIntegration/dtos/RetailPagedQuery.js +2 -2
- package/bin/retailIntegration/dtos/RetailTenantQuery.d.ts +2 -1
- package/bin/retailIntegration/dtos/RetailTenantQuery.js +6 -1
- package/bin/retailIntegration/dtos/StartCatalogReconciliationRequest.d.ts +11 -0
- package/bin/retailIntegration/dtos/StartCatalogReconciliationRequest.js +28 -0
- package/bin/retailIntegration/dtos/StartOrgReconciliationRequest.d.ts +9 -0
- package/bin/retailIntegration/dtos/StartOrgReconciliationRequest.js +22 -0
- package/bin/retailIntegration/enums/InactiveReasonEnum.d.ts +5 -0
- package/bin/retailIntegration/enums/InactiveReasonEnum.js +9 -0
- package/bin/retailIntegration/enums/ReconciliationEntityEnum.d.ts +7 -0
- package/bin/retailIntegration/enums/ReconciliationEntityEnum.js +11 -0
- package/bin/retailIntegration/enums/ReconciliationRunStatusEnum.d.ts +7 -0
- package/bin/retailIntegration/enums/ReconciliationRunStatusEnum.js +11 -0
- package/bin/retailIntegration/enums/ReconciliationTriggerEnum.d.ts +6 -0
- package/bin/retailIntegration/enums/ReconciliationTriggerEnum.js +10 -0
- package/bin/retailIntegration/enums/RetailEventRejectCodeEnum.d.ts +3 -1
- package/bin/retailIntegration/enums/RetailEventRejectCodeEnum.js +2 -0
- package/bin/retailIntegration/enums/RetailIntegrationErrorCodeEnum.d.ts +23 -0
- package/bin/retailIntegration/enums/RetailIntegrationErrorCodeEnum.js +27 -0
- package/bin/retailIntegration/enums/RetailSaleLineRoleEnum.d.ts +4 -0
- package/bin/retailIntegration/enums/RetailSaleLineRoleEnum.js +8 -0
- package/bin/retailIntegration/enums/index.d.ts +6 -0
- package/bin/retailIntegration/enums/index.js +6 -0
- package/bin/retailIntegration/index.d.ts +9 -0
- package/bin/retailIntegration/index.js +9 -0
- package/bin/retailIntegration/models/RetailSystemSale.d.ts +8 -7
- package/bin/retailIntegration/models/RetailSystemSale.js +186 -0
- package/bin/retailOrg/dtos/Retailer.d.ts +5 -0
- package/bin/retailOrg/dtos/Retailer.js +20 -0
- package/bin/retailOrg/dtos/requests/ActivateRetailerIntegrationRequest.d.ts +5 -0
- package/bin/retailOrg/dtos/requests/ActivateRetailerIntegrationRequest.js +24 -0
- package/bin/retailOrg/dtos/responses/ActivateRetailerIntegrationResponse.d.ts +3 -0
- package/bin/retailOrg/dtos/responses/ActivateRetailerIntegrationResponse.js +2 -0
- package/bin/retailOrg/dtos/validation/RetailerValidationDto.d.ts +4 -0
- package/bin/retailOrg/enums/RetailIntegrationSystemEnum.d.ts +4 -0
- package/bin/retailOrg/enums/RetailIntegrationSystemEnum.js +8 -0
- package/bin/retailOrg/index.d.ts +3 -0
- package/bin/retailOrg/index.js +3 -0
- package/bin/retailWizard/dtos/Sale.d.ts +25 -0
- package/bin/retailWizard/dtos/WizardReservedLine.d.ts +3 -0
- package/bin/retailWizard/dtos/WizardSession.d.ts +3 -0
- package/bin/retailWizard/enums/CentralCancelStatusEnum.d.ts +18 -0
- package/bin/retailWizard/enums/CentralCancelStatusEnum.js +22 -0
- package/bin/retailWizard/enums/CentralLiveCheckEnum.d.ts +10 -0
- package/bin/retailWizard/enums/CentralLiveCheckEnum.js +14 -0
- package/bin/retailWizard/enums/CentralSyncStatusEnum.d.ts +8 -2
- package/bin/retailWizard/enums/CentralSyncStatusEnum.js +7 -1
- package/bin/retailWizard/enums/RetailCentralOutboundMessageTypeEnum.d.ts +5 -0
- package/bin/retailWizard/enums/RetailCentralOutboundMessageTypeEnum.js +9 -0
- package/bin/retailWizard/enums/WizardLineStatusEnum.d.ts +3 -1
- package/bin/retailWizard/enums/WizardLineStatusEnum.js +2 -0
- package/bin/retailWizard/events/RetailCentralOutboundMessage.d.ts +9 -0
- package/bin/retailWizard/events/RetailCentralOutboundMessage.js +42 -0
- package/bin/retailWizard/index.d.ts +4 -0
- package/bin/retailWizard/index.js +4 -0
- package/package.json +1 -1
- package/src/platformRbac/dtos/UpdateLevelEntityRequest.ts +3 -1
- package/src/retailCatalog/dtos/requests/ReturnStockRequest.ts +6 -1
- package/src/retailCatalog/dtos/requests/SellInventoryRequest.ts +19 -0
- package/src/retailCatalog/dtos/requests/SellStockRequest.ts +4 -4
- package/src/retailCatalog/dtos/responses/RenewReservationsResponse.ts +7 -0
- package/src/retailCatalog/enums/InventoryInboundMessageTypeEnum.ts +1 -0
- package/src/retailCatalog/enums/InventoryItemStatusEnum.ts +2 -0
- package/src/retailCatalog/events/InventoryCentralSaleAcceptedMessage.ts +36 -0
- package/src/retailCatalog/events/InventoryInboundMessage.ts +5 -1
- package/src/retailCatalog/events/InventorySaleAppliedMessage.ts +1 -7
- package/src/retailCatalog/index.ts +2 -0
- package/src/retailIntegration/constants/retailIntegrationErrorHttpStatus.ts +17 -0
- package/src/retailIntegration/constants/retailIntegrationLimits.ts +3 -0
- package/src/retailIntegration/dtos/CancelRetailSaleRequest.ts +9 -0
- package/src/retailIntegration/dtos/CheckRetailInventoryRequest.ts +20 -0
- package/src/retailIntegration/dtos/GetReconciliationResponses.ts +37 -0
- package/src/retailIntegration/dtos/GetRetailInventoryRequest.ts +2 -2
- package/src/retailIntegration/dtos/ReconciliationPageMessage.ts +32 -0
- package/src/retailIntegration/dtos/ReconciliationRunCounts.ts +9 -0
- package/src/retailIntegration/dtos/RetailListQuery.ts +10 -0
- package/src/retailIntegration/dtos/RetailOutboundResponses.ts +11 -0
- package/src/retailIntegration/dtos/RetailPagedQuery.ts +2 -2
- package/src/retailIntegration/dtos/RetailTenantQuery.ts +5 -1
- package/src/retailIntegration/dtos/StartCatalogReconciliationRequest.ts +19 -0
- package/src/retailIntegration/dtos/StartOrgReconciliationRequest.ts +13 -0
- package/src/retailIntegration/enums/InactiveReasonEnum.ts +5 -0
- package/src/retailIntegration/enums/ReconciliationEntityEnum.ts +7 -0
- package/src/retailIntegration/enums/ReconciliationRunStatusEnum.ts +7 -0
- package/src/retailIntegration/enums/ReconciliationTriggerEnum.ts +6 -0
- package/src/retailIntegration/enums/RetailEventRejectCodeEnum.ts +2 -0
- package/src/retailIntegration/enums/RetailIntegrationErrorCodeEnum.ts +23 -0
- package/src/retailIntegration/enums/RetailSaleLineRoleEnum.ts +4 -0
- package/src/retailIntegration/enums/index.ts +6 -0
- package/src/retailIntegration/index.ts +9 -0
- package/src/retailIntegration/models/RetailSystemSale.ts +45 -37
- package/src/retailOrg/dtos/Retailer.ts +19 -1
- package/src/retailOrg/dtos/requests/ActivateRetailerIntegrationRequest.ts +10 -0
- package/src/retailOrg/dtos/responses/ActivateRetailerIntegrationResponse.ts +5 -0
- package/src/retailOrg/dtos/validation/RetailerValidationDto.ts +4 -0
- package/src/retailOrg/enums/RetailIntegrationSystemEnum.ts +4 -0
- package/src/retailOrg/index.ts +3 -0
- package/src/retailWizard/dtos/Sale.ts +25 -0
- package/src/retailWizard/dtos/WizardReservedLine.ts +3 -0
- package/src/retailWizard/dtos/WizardSession.ts +3 -0
- package/src/retailWizard/enums/CentralCancelStatusEnum.ts +18 -0
- package/src/retailWizard/enums/CentralLiveCheckEnum.ts +10 -0
- package/src/retailWizard/enums/CentralSyncStatusEnum.ts +7 -1
- package/src/retailWizard/enums/RetailCentralOutboundMessageTypeEnum.ts +5 -0
- package/src/retailWizard/enums/WizardLineStatusEnum.ts +2 -0
- package/src/retailWizard/events/RetailCentralOutboundMessage.ts +24 -0
- package/src/retailWizard/index.ts +4 -0
|
@@ -0,0 +1,42 @@
|
|
|
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.RetailCentralOutboundMessage = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const RetailCentralOutboundMessageTypeEnum_1 = require("../enums/RetailCentralOutboundMessageTypeEnum");
|
|
15
|
+
/** Aviso a Central de una venta por registrar o cancelar; el consumidor lee la venta por saleId. */
|
|
16
|
+
class RetailCentralOutboundMessage {
|
|
17
|
+
}
|
|
18
|
+
exports.RetailCentralOutboundMessage = RetailCentralOutboundMessage;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsEnum)(RetailCentralOutboundMessageTypeEnum_1.RetailCentralOutboundMessageTypeEnum),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], RetailCentralOutboundMessage.prototype, "messageType", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], RetailCentralOutboundMessage.prototype, "tenantId", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], RetailCentralOutboundMessage.prototype, "retailerId", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], RetailCentralOutboundMessage.prototype, "storeId", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], RetailCentralOutboundMessage.prototype, "saleId", void 0);
|
|
@@ -10,6 +10,8 @@ export * from './enums/SalePaymentMethodEnum';
|
|
|
10
10
|
export * from './enums/RefundStatusEnum';
|
|
11
11
|
export * from './enums/SaleStatusEnum';
|
|
12
12
|
export * from './enums/CentralSyncStatusEnum';
|
|
13
|
+
export * from './enums/CentralCancelStatusEnum';
|
|
14
|
+
export * from './enums/CentralLiveCheckEnum';
|
|
13
15
|
export * from './enums/ProspectStatusEnum';
|
|
14
16
|
export * from './enums/PendingReasonEnum';
|
|
15
17
|
export * from './enums/OccupationEnum';
|
|
@@ -172,11 +174,13 @@ export * from './events/SaleCancelledV2';
|
|
|
172
174
|
export * from './events/SessionExpiredV1';
|
|
173
175
|
export * from './enums/RetailPromotionInboundMessageTypeEnum';
|
|
174
176
|
export * from './enums/RetailCommissionInboundMessageTypeEnum';
|
|
177
|
+
export * from './enums/RetailCentralOutboundMessageTypeEnum';
|
|
175
178
|
export * from './events/RetailPromotionInboundMessage';
|
|
176
179
|
export * from './events/RetailPromotionAccountOpenedMessage';
|
|
177
180
|
export * from './events/RetailPromotionInstallmentPaidMessage';
|
|
178
181
|
export * from './events/RetailPromotionQueueMessage';
|
|
179
182
|
export * from './events/RetailCommissionInboundMessage';
|
|
183
|
+
export * from './events/RetailCentralOutboundMessage';
|
|
180
184
|
export * from './enums/WizardSessionLookupStatusEnum';
|
|
181
185
|
export * from './dtos/WizardSessionLookupEntry';
|
|
182
186
|
export * from './dtos/responses/WizardSessionLookupResponse';
|
|
@@ -29,6 +29,8 @@ __exportStar(require("./enums/SalePaymentMethodEnum"), exports);
|
|
|
29
29
|
__exportStar(require("./enums/RefundStatusEnum"), exports);
|
|
30
30
|
__exportStar(require("./enums/SaleStatusEnum"), exports);
|
|
31
31
|
__exportStar(require("./enums/CentralSyncStatusEnum"), exports);
|
|
32
|
+
__exportStar(require("./enums/CentralCancelStatusEnum"), exports);
|
|
33
|
+
__exportStar(require("./enums/CentralLiveCheckEnum"), exports);
|
|
32
34
|
__exportStar(require("./enums/ProspectStatusEnum"), exports);
|
|
33
35
|
__exportStar(require("./enums/PendingReasonEnum"), exports);
|
|
34
36
|
__exportStar(require("./enums/OccupationEnum"), exports);
|
|
@@ -206,11 +208,13 @@ __exportStar(require("./events/SaleCancelledV2"), exports);
|
|
|
206
208
|
__exportStar(require("./events/SessionExpiredV1"), exports);
|
|
207
209
|
__exportStar(require("./enums/RetailPromotionInboundMessageTypeEnum"), exports);
|
|
208
210
|
__exportStar(require("./enums/RetailCommissionInboundMessageTypeEnum"), exports);
|
|
211
|
+
__exportStar(require("./enums/RetailCentralOutboundMessageTypeEnum"), exports);
|
|
209
212
|
__exportStar(require("./events/RetailPromotionInboundMessage"), exports);
|
|
210
213
|
__exportStar(require("./events/RetailPromotionAccountOpenedMessage"), exports);
|
|
211
214
|
__exportStar(require("./events/RetailPromotionInstallmentPaidMessage"), exports);
|
|
212
215
|
__exportStar(require("./events/RetailPromotionQueueMessage"), exports);
|
|
213
216
|
__exportStar(require("./events/RetailCommissionInboundMessage"), exports);
|
|
217
|
+
__exportStar(require("./events/RetailCentralOutboundMessage"), exports);
|
|
214
218
|
// Lookup privado por lote (GET /private/wizard-sessions/batch)
|
|
215
219
|
__exportStar(require("./enums/WizardSessionLookupStatusEnum"), exports);
|
|
216
220
|
__exportStar(require("./dtos/WizardSessionLookupEntry"), exports);
|
package/package.json
CHANGED
|
@@ -2,10 +2,12 @@ import { Expose } from 'class-transformer';
|
|
|
2
2
|
import { IsNotEmpty, IsOptional, IsString, MaxLength } from 'class-validator';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Body del PUT que renombra un grupo. `tenantId`, `level` y el id del grupo viajan en el path.
|
|
5
|
+
* Body del PUT que renombra un grupo o lo mueve de padre. `tenantId`, `level` y el id del grupo viajan en el path.
|
|
6
6
|
* `actedBy` es el cognitoSub de quien accionó en el backoffice — es lo único que queda en la auditoría.
|
|
7
7
|
*/
|
|
8
8
|
export class UpdateLevelEntityRequest {
|
|
9
9
|
@Expose() @IsOptional() @IsString() @IsNotEmpty() @MaxLength(120) displayName?: string;
|
|
10
|
+
/** Nuevo padre del grupo; el manager lo valida igual que en el alta. */
|
|
11
|
+
@Expose() @IsOptional() @IsString() @IsNotEmpty() parentId?: string;
|
|
10
12
|
@Expose() @IsString() @IsNotEmpty() actedBy!: string;
|
|
11
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Type } from 'class-transformer';
|
|
2
|
-
import { ArrayMinSize, IsArray, IsISO8601, IsString, ValidateNested } from 'class-validator';
|
|
2
|
+
import { ArrayMinSize, IsArray, IsISO8601, IsOptional, IsString, ValidateNested } from 'class-validator';
|
|
3
3
|
import { ReturnStockLine } from './ReturnStockLine';
|
|
4
4
|
|
|
5
5
|
/** Body de PUT /private/stores/{storeId}/returns (privateReturnStock); componentes guardados en la venta. */
|
|
@@ -19,4 +19,9 @@ export class ReturnStockRequest {
|
|
|
19
19
|
@ValidateNested({ each: true })
|
|
20
20
|
@Type(() => ReturnStockLine)
|
|
21
21
|
lines!: ReturnStockLine[];
|
|
22
|
+
|
|
23
|
+
/** Primer intento de cancelar en Central; si viene, la pieza se libera por las dos mitades. */
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsISO8601()
|
|
26
|
+
centralCancelFirstAttemptAt?: string;
|
|
22
27
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IsNotEmpty, IsString } from 'class-validator';
|
|
2
|
+
|
|
3
|
+
/** Body de PUT /private/inventory/{imei}/sell (privateSellInventory); venta de una pieza por IMEI. */
|
|
4
|
+
export class SellInventoryRequest {
|
|
5
|
+
/** Sesión del wizard titular de la reserva activa. */
|
|
6
|
+
@IsString()
|
|
7
|
+
@IsNotEmpty()
|
|
8
|
+
sessionId!: string;
|
|
9
|
+
|
|
10
|
+
/** Comprador al que se vende la pieza. */
|
|
11
|
+
@IsString()
|
|
12
|
+
@IsNotEmpty()
|
|
13
|
+
customerId!: string;
|
|
14
|
+
|
|
15
|
+
/** Venta a la que pertenece; sella la pieza con ella. */
|
|
16
|
+
@IsString()
|
|
17
|
+
@IsNotEmpty()
|
|
18
|
+
saleId!: string;
|
|
19
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Type } from 'class-transformer';
|
|
2
|
-
import { ArrayMinSize, IsArray,
|
|
2
|
+
import { ArrayMinSize, IsArray, IsNotEmpty, IsString, ValidateNested } from 'class-validator';
|
|
3
3
|
import { StockLine } from './StockLine';
|
|
4
4
|
|
|
5
5
|
/** Body de PUT /private/stores/{storeId}/sales (privateSellStock); una TX de venta. */
|
|
@@ -16,8 +16,8 @@ export class SellStockRequest {
|
|
|
16
16
|
@Type(() => StockLine)
|
|
17
17
|
lines!: StockLine[];
|
|
18
18
|
|
|
19
|
-
/** Venta a la que pertenece; liga los MOV# de la TX con ella. */
|
|
20
|
-
@IsOptional()
|
|
19
|
+
/** Venta a la que pertenece; sella las piezas y liga los MOV# de la TX con ella. */
|
|
21
20
|
@IsString()
|
|
22
|
-
|
|
21
|
+
@IsNotEmpty()
|
|
22
|
+
saleId!: string;
|
|
23
23
|
}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import type { WizardLineStatusEnum } from '../../../retailWizard/enums/WizardLineStatusEnum';
|
|
2
|
+
import type { InventoryItemStatusEnum } from '../../enums/InventoryItemStatusEnum';
|
|
3
|
+
|
|
1
4
|
/** Vencimiento nuevo de una línea renovada. */
|
|
2
5
|
export interface RenewedReservationLine {
|
|
3
6
|
lineId: string;
|
|
4
7
|
reservationId: string;
|
|
5
8
|
expiresAt: string;
|
|
9
|
+
/** Solo presente si la renovación no pudo sostener la pieza (LOST). */
|
|
10
|
+
status?: WizardLineStatusEnum;
|
|
11
|
+
/** Solo en LOST: estado en que Central dejó la pieza (SOLD, IN_TRANSIT o DAMAGED). */
|
|
12
|
+
lostReason?: InventoryItemStatusEnum;
|
|
6
13
|
}
|
|
7
14
|
|
|
8
15
|
/** Response de privateRenewReservations. */
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @property {string} DAMAGED - Dañada, fuera de stock vendible.
|
|
11
11
|
* @property {string} IN_TRANSIT - En traspaso entre tiendas, fuera de stock vendible.
|
|
12
12
|
* @property {string} HELD - Capturada por una sesión de venta; no vence hasta venderse o soltarse.
|
|
13
|
+
* @property {string} INACTIVE - Baja suave; fuera de stock vendible.
|
|
13
14
|
*/
|
|
14
15
|
export enum InventoryItemStatusEnum {
|
|
15
16
|
AVAILABLE = 'AVAILABLE',
|
|
@@ -19,4 +20,5 @@ export enum InventoryItemStatusEnum {
|
|
|
19
20
|
DAMAGED = 'DAMAGED',
|
|
20
21
|
IN_TRANSIT = 'IN_TRANSIT',
|
|
21
22
|
HELD = 'HELD',
|
|
23
|
+
INACTIVE = 'INACTIVE',
|
|
22
24
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Type } from 'class-transformer';
|
|
2
|
+
import { ArrayMinSize, Equals, IsArray, IsISO8601, IsNotEmpty, IsString, ValidateNested } from 'class-validator';
|
|
3
|
+
import { InventoryInboundMessageTypeEnum } from '../enums/InventoryInboundMessageTypeEnum';
|
|
4
|
+
import { StockLine } from '../dtos/requests/StockLine';
|
|
5
|
+
|
|
6
|
+
/** Aviso de que Central registró la venta; el catálogo confirma sus accesorios pendientes. */
|
|
7
|
+
export class InventoryCentralSaleAcceptedMessage {
|
|
8
|
+
@Equals(InventoryInboundMessageTypeEnum.CENTRAL_SALE_ACCEPTED)
|
|
9
|
+
type!: InventoryInboundMessageTypeEnum.CENTRAL_SALE_ACCEPTED;
|
|
10
|
+
|
|
11
|
+
@IsString()
|
|
12
|
+
@IsNotEmpty()
|
|
13
|
+
tenantId!: string;
|
|
14
|
+
|
|
15
|
+
@IsString()
|
|
16
|
+
@IsNotEmpty()
|
|
17
|
+
retailerId!: string;
|
|
18
|
+
|
|
19
|
+
@IsString()
|
|
20
|
+
@IsNotEmpty()
|
|
21
|
+
storeId!: string;
|
|
22
|
+
|
|
23
|
+
@IsString()
|
|
24
|
+
@IsNotEmpty()
|
|
25
|
+
saleId!: string;
|
|
26
|
+
|
|
27
|
+
@IsArray()
|
|
28
|
+
@ArrayMinSize(1)
|
|
29
|
+
@ValidateNested({ each: true })
|
|
30
|
+
@Type(() => StockLine)
|
|
31
|
+
lines!: StockLine[];
|
|
32
|
+
|
|
33
|
+
/** Fecha en que Central aceptó la venta; es el acceptedAt del SKPEND#. */
|
|
34
|
+
@IsISO8601()
|
|
35
|
+
acceptedAt!: string;
|
|
36
|
+
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import type { InventoryCentralSaleAcceptedMessage } from './InventoryCentralSaleAcceptedMessage';
|
|
1
2
|
import type { InventoryReturnMessage } from './InventoryReturnMessage';
|
|
2
3
|
import type { InventorySaleAppliedMessage } from './InventorySaleAppliedMessage';
|
|
3
4
|
|
|
4
5
|
/** Cualquier aviso de la cola de inventario; se discrimina por `type`. */
|
|
5
|
-
export type InventoryInboundMessage =
|
|
6
|
+
export type InventoryInboundMessage =
|
|
7
|
+
| InventorySaleAppliedMessage
|
|
8
|
+
| InventoryReturnMessage
|
|
9
|
+
| InventoryCentralSaleAcceptedMessage;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Equals, IsISO8601, IsNotEmpty, IsString
|
|
1
|
+
import { Equals, IsISO8601, IsNotEmpty, IsString } from 'class-validator';
|
|
2
2
|
import { InventoryInboundMessageTypeEnum } from '../enums/InventoryInboundMessageTypeEnum';
|
|
3
3
|
import { SellStockRequest } from '../dtos/requests/SellStockRequest';
|
|
4
4
|
|
|
@@ -16,12 +16,6 @@ export class InventorySaleAppliedMessage extends SellStockRequest {
|
|
|
16
16
|
@IsNotEmpty()
|
|
17
17
|
storeId!: string;
|
|
18
18
|
|
|
19
|
-
/** El ValidateIf anula el @IsOptional que hereda de SellStockRequest: aquí saleId es obligatorio. */
|
|
20
|
-
@ValidateIf(() => true)
|
|
21
|
-
@IsString()
|
|
22
|
-
@IsNotEmpty()
|
|
23
|
-
saleId!: string;
|
|
24
|
-
|
|
25
19
|
/** Fecha de la venta; fecha el DAY# y el MOV#. */
|
|
26
20
|
@IsISO8601()
|
|
27
21
|
soldAt!: string;
|
|
@@ -62,6 +62,7 @@ export * from './dtos/requests/ReserveStockRequest';
|
|
|
62
62
|
export * from './dtos/requests/RenewReservationsRequest';
|
|
63
63
|
export * from './dtos/requests/SuggestPiecesQuery';
|
|
64
64
|
export * from './dtos/requests/SellStockRequest';
|
|
65
|
+
export * from './dtos/requests/SellInventoryRequest';
|
|
65
66
|
export * from './dtos/requests/ReleaseStockRequest';
|
|
66
67
|
export * from './dtos/requests/ReturnStockRequest';
|
|
67
68
|
export * from './dtos/requests/SyncInventoryRequest';
|
|
@@ -102,4 +103,5 @@ export * from './dtos/requests/HoldStockRequest';
|
|
|
102
103
|
export * from './dtos/responses/HoldStockResponse';
|
|
103
104
|
export * from './events/InventorySaleAppliedMessage';
|
|
104
105
|
export * from './events/InventoryReturnMessage';
|
|
106
|
+
export * from './events/InventoryCentralSaleAcceptedMessage';
|
|
105
107
|
export * from './events/InventoryInboundMessage';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RetailIntegrationErrorCodeEnum } from '../enums/RetailIntegrationErrorCodeEnum';
|
|
2
|
+
|
|
3
|
+
/** Status HTTP de cada code: 404 no existe · 409 conflicto de estado · 422 regla de negocio. */
|
|
4
|
+
export const RETAIL_INTEGRATION_ERROR_HTTP_STATUS: Readonly<Record<RetailIntegrationErrorCodeEnum, 404 | 409 | 422>> = {
|
|
5
|
+
[RetailIntegrationErrorCodeEnum.ENTITY_MANAGED_BY_INTEGRATION]: 422,
|
|
6
|
+
[RetailIntegrationErrorCodeEnum.RECONCILIATION_ALREADY_RUNNING]: 409,
|
|
7
|
+
[RetailIntegrationErrorCodeEnum.RECONCILIATION_NOT_FOUND]: 404,
|
|
8
|
+
[RetailIntegrationErrorCodeEnum.RESERVATION_LOST]: 409,
|
|
9
|
+
[RetailIntegrationErrorCodeEnum.PRODUCT_NO_LONGER_SELLABLE]: 409,
|
|
10
|
+
[RetailIntegrationErrorCodeEnum.STORE_NOT_OPERATIONAL]: 422,
|
|
11
|
+
[RetailIntegrationErrorCodeEnum.CENTRAL_SYNC_NOT_RESENDABLE]: 409,
|
|
12
|
+
[RetailIntegrationErrorCodeEnum.SALE_NOT_FOUND]: 404,
|
|
13
|
+
[RetailIntegrationErrorCodeEnum.RETAILER_ALREADY_INTEGRATED]: 409,
|
|
14
|
+
[RetailIntegrationErrorCodeEnum.RETAILER_NOT_INTEGRATED]: 422,
|
|
15
|
+
[RetailIntegrationErrorCodeEnum.CREDIT_REQUIRES_MDM]: 422,
|
|
16
|
+
[RetailIntegrationErrorCodeEnum.RETAILER_INTEGRATION_MISMATCH]: 422,
|
|
17
|
+
};
|
|
@@ -26,3 +26,6 @@ export const RETAIL_SKU_PATTERN = /^(?=.{1,64}$)[A-Za-z0-9-]+(?: +[A-Za-z0-9-]+)
|
|
|
26
26
|
|
|
27
27
|
/** Decimal del contrato: string con dos decimales, nunca negativo. */
|
|
28
28
|
export const RETAIL_DECIMAL_PATTERN = /^\d+\.\d{2}$/;
|
|
29
|
+
|
|
30
|
+
/** Tope de identificadores por consulta de inventario en vivo. */
|
|
31
|
+
export const RETAIL_LIVE_CHECK_IDENTIFIERS_MAX = 50;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IsString, Matches, Validate } from 'class-validator';
|
|
2
|
+
import { IsIsoDateTimeWithZone } from '../validators/IsIsoDateTimeWithZone';
|
|
3
|
+
|
|
4
|
+
/** Cuerpo de `POST /private/retail/sales/cancel`; el `saleId` es el mismo del registro. */
|
|
5
|
+
export class CancelRetailSaleRequest {
|
|
6
|
+
@IsString() @Matches(/\S/) saleId!: string;
|
|
7
|
+
@Validate(IsIsoDateTimeWithZone) cancelledAt!: string;
|
|
8
|
+
@IsString() @Matches(/\S/) reason!: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Transform } from 'class-transformer';
|
|
2
|
+
import { ArrayMaxSize, ArrayNotEmpty, IsArray, IsString, Matches } from 'class-validator';
|
|
3
|
+
import { RETAIL_LIVE_CHECK_IDENTIFIERS_MAX } from '../constants/retailIntegrationLimits';
|
|
4
|
+
import { RetailTenantQuery } from './RetailTenantQuery';
|
|
5
|
+
|
|
6
|
+
/** Convierte el csv del query en arreglo; un arreglo ya armado pasa igual. */
|
|
7
|
+
function csvToArray({ value }: { value: unknown }): unknown {
|
|
8
|
+
return typeof value === 'string' ? value.split(',').map((item) => item.trim()) : value;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/** Query de `GET /private/retail/inventory/live-check`; `identifiers` llega como csv. */
|
|
12
|
+
export class CheckRetailInventoryRequest extends RetailTenantQuery {
|
|
13
|
+
@IsString() @Matches(/\S/) storeId!: string;
|
|
14
|
+
|
|
15
|
+
@Transform(csvToArray)
|
|
16
|
+
@IsArray() @ArrayNotEmpty() @ArrayMaxSize(RETAIL_LIVE_CHECK_IDENTIFIERS_MAX) @IsString({ each: true }) @Matches(/\S/, { each: true })
|
|
17
|
+
identifiers!: string[];
|
|
18
|
+
|
|
19
|
+
@IsString() @Matches(/\S/) sessionId!: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ReconciliationEntityEnum } from '../enums/ReconciliationEntityEnum';
|
|
2
|
+
import type { ReconciliationRunStatusEnum } from '../enums/ReconciliationRunStatusEnum';
|
|
3
|
+
import type { ReconciliationTriggerEnum } from '../enums/ReconciliationTriggerEnum';
|
|
4
|
+
import type { ReconciliationRunCounts } from './ReconciliationRunCounts';
|
|
5
|
+
|
|
6
|
+
/** Respuesta 200 de GET .../reconciliations/{runId} en org (backofficeGetOrgReconciliation). */
|
|
7
|
+
export interface GetOrgReconciliationResponse {
|
|
8
|
+
runId: string;
|
|
9
|
+
retailerId: string;
|
|
10
|
+
entity: ReconciliationEntityEnum.STORES | ReconciliationEntityEnum.USERS;
|
|
11
|
+
status: ReconciliationRunStatusEnum;
|
|
12
|
+
trigger: ReconciliationTriggerEnum;
|
|
13
|
+
/** cognitoSub de quien pulsó «Actualizar»; ausente en el reloj. */
|
|
14
|
+
triggeredBy?: string;
|
|
15
|
+
startedAt: string;
|
|
16
|
+
finishedAt?: string;
|
|
17
|
+
pagesProcessed: number;
|
|
18
|
+
counts: ReconciliationRunCounts;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Respuesta 200 de GET .../reconciliations/{runId} en catalog (backofficeGetCatalogReconciliation). */
|
|
22
|
+
export interface GetCatalogReconciliationResponse {
|
|
23
|
+
runId: string;
|
|
24
|
+
retailerId: string;
|
|
25
|
+
entity: ReconciliationEntityEnum.CATALOG | ReconciliationEntityEnum.INVENTORY;
|
|
26
|
+
status: ReconciliationRunStatusEnum;
|
|
27
|
+
trigger: ReconciliationTriggerEnum;
|
|
28
|
+
triggeredBy?: string;
|
|
29
|
+
startedAt: string;
|
|
30
|
+
finishedAt?: string;
|
|
31
|
+
pagesProcessed: number;
|
|
32
|
+
/** Tienda pedida en inventario. */
|
|
33
|
+
storeId?: string;
|
|
34
|
+
/** Tiendas de inventario que faltan por cerrar. */
|
|
35
|
+
storesPending?: number;
|
|
36
|
+
counts: ReconciliationRunCounts;
|
|
37
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IsString, Matches } from 'class-validator';
|
|
2
|
-
import {
|
|
2
|
+
import { RetailListQuery } from './RetailListQuery';
|
|
3
3
|
|
|
4
4
|
/** Query de `GET /private/retail/inventory`; el inventario es por tienda y no pagina. */
|
|
5
|
-
export class GetRetailInventoryRequest extends
|
|
5
|
+
export class GetRetailInventoryRequest extends RetailListQuery {
|
|
6
6
|
@IsString()
|
|
7
7
|
@Matches(/\S/)
|
|
8
8
|
storeId!: string;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IsEnum, IsInt, IsNotEmpty, IsOptional, IsString, Min } from 'class-validator';
|
|
2
|
+
import { ReconciliationEntityEnum } from '../enums/ReconciliationEntityEnum';
|
|
3
|
+
|
|
4
|
+
/** Mensaje de la cola de revisión: una página, o una tienda completa en inventario. */
|
|
5
|
+
export class ReconciliationPageMessage {
|
|
6
|
+
@IsString()
|
|
7
|
+
@IsNotEmpty()
|
|
8
|
+
tenantId!: string;
|
|
9
|
+
|
|
10
|
+
@IsString()
|
|
11
|
+
@IsNotEmpty()
|
|
12
|
+
retailerId!: string;
|
|
13
|
+
|
|
14
|
+
@IsEnum(ReconciliationEntityEnum)
|
|
15
|
+
entity!: ReconciliationEntityEnum;
|
|
16
|
+
|
|
17
|
+
/** Corrida dueña del lease; otro runId en el LEASE vuelve el mensaje NOOP. */
|
|
18
|
+
@IsString()
|
|
19
|
+
@IsNotEmpty()
|
|
20
|
+
runId!: string;
|
|
21
|
+
|
|
22
|
+
/** Índice de la página que se pide; al re-encolar el resto lleva el índice siguiente. */
|
|
23
|
+
@IsInt()
|
|
24
|
+
@Min(0)
|
|
25
|
+
pageIndex!: number;
|
|
26
|
+
|
|
27
|
+
/** Tienda del mensaje en inventario. */
|
|
28
|
+
@IsOptional()
|
|
29
|
+
@IsString()
|
|
30
|
+
@IsNotEmpty()
|
|
31
|
+
storeId?: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IsOptional, IsString, Matches } from 'class-validator';
|
|
2
|
+
import { RetailTenantQuery } from './RetailTenantQuery';
|
|
3
|
+
|
|
4
|
+
/** Base de los listados hacia el retailer; `runId` liga la llamada con la corrida de revisión. */
|
|
5
|
+
export class RetailListQuery extends RetailTenantQuery {
|
|
6
|
+
@IsOptional()
|
|
7
|
+
@IsString()
|
|
8
|
+
@Matches(/\S/)
|
|
9
|
+
runId?: string;
|
|
10
|
+
}
|
|
@@ -33,3 +33,14 @@ export interface ListRetailUsersResponse {
|
|
|
33
33
|
export interface RegisterRetailSaleResponse {
|
|
34
34
|
externalSaleId: string;
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
/** `data` de `POST /private/retail/sales/cancel`. */
|
|
38
|
+
export interface CancelRetailSaleResponse {
|
|
39
|
+
saleId: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** `data` de `GET /private/retail/inventory/live-check`: los identificadores que el retailer lista en la tienda. */
|
|
43
|
+
export interface CheckRetailInventoryResponse {
|
|
44
|
+
listed: string[];
|
|
45
|
+
generatedAt: string;
|
|
46
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Type } from 'class-transformer';
|
|
2
2
|
import { IsInt, IsOptional, IsString, Matches, Max, Min } from 'class-validator';
|
|
3
3
|
import { RETAIL_LIST_LIMIT_MAX, RETAIL_LIST_LIMIT_MIN } from '../constants/retailIntegrationLimits';
|
|
4
|
-
import {
|
|
4
|
+
import { RetailListQuery } from './RetailListQuery';
|
|
5
5
|
|
|
6
6
|
/** Base de las listas paginadas; `nextToken` es opaco y viaja tal cual. */
|
|
7
|
-
export class RetailPagedQuery extends
|
|
7
|
+
export class RetailPagedQuery extends RetailListQuery {
|
|
8
8
|
@IsOptional()
|
|
9
9
|
@Type(() => Number)
|
|
10
10
|
@IsInt()
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { IsString, Matches } from 'class-validator';
|
|
2
2
|
import { RETAIL_TENANT_ID_PATTERN } from '../constants/retailIntegrationLimits';
|
|
3
3
|
|
|
4
|
-
/** Base de toda llamada de salida: el tenant
|
|
4
|
+
/** Base de toda llamada de salida: el tenant y el retailer que el connector coteja con el secreto. */
|
|
5
5
|
export class RetailTenantQuery {
|
|
6
6
|
@IsString()
|
|
7
7
|
@Matches(RETAIL_TENANT_ID_PATTERN)
|
|
8
8
|
tenantId!: string;
|
|
9
|
+
|
|
10
|
+
@IsString()
|
|
11
|
+
@Matches(/\S/)
|
|
12
|
+
retailerId!: string;
|
|
9
13
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IsIn, IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
2
|
+
import { ReconciliationEntityEnum } from '../enums/ReconciliationEntityEnum';
|
|
3
|
+
|
|
4
|
+
/** Body de POST /backoffice/retailers/{retailerId}/reconciliations en catalog (backofficeStartCatalogReconciliation). */
|
|
5
|
+
export class StartCatalogReconciliationRequest {
|
|
6
|
+
@IsIn([ReconciliationEntityEnum.CATALOG, ReconciliationEntityEnum.INVENTORY])
|
|
7
|
+
entity!: ReconciliationEntityEnum.CATALOG | ReconciliationEntityEnum.INVENTORY;
|
|
8
|
+
|
|
9
|
+
/** Tienda a revisar en inventario; sin ella se revisan todas las del padrón. */
|
|
10
|
+
@IsOptional()
|
|
11
|
+
@IsString()
|
|
12
|
+
@IsNotEmpty()
|
|
13
|
+
storeId?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Respuesta 202 del arranque en catalog. */
|
|
17
|
+
export interface StartCatalogReconciliationResponse {
|
|
18
|
+
runId: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IsIn } from 'class-validator';
|
|
2
|
+
import { ReconciliationEntityEnum } from '../enums/ReconciliationEntityEnum';
|
|
3
|
+
|
|
4
|
+
/** Body de POST /backoffice/retailers/{retailerId}/reconciliations en org (backofficeStartOrgReconciliation). */
|
|
5
|
+
export class StartOrgReconciliationRequest {
|
|
6
|
+
@IsIn([ReconciliationEntityEnum.STORES, ReconciliationEntityEnum.USERS])
|
|
7
|
+
entity!: ReconciliationEntityEnum.STORES | ReconciliationEntityEnum.USERS;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Respuesta 202 del arranque en org. */
|
|
11
|
+
export interface StartOrgReconciliationResponse {
|
|
12
|
+
runId: string;
|
|
13
|
+
}
|
|
@@ -13,4 +13,6 @@ export enum RetailEventRejectCodeEnum {
|
|
|
13
13
|
TRACKING_MODE_MISMATCH = 'TRACKING_MODE_MISMATCH',
|
|
14
14
|
INVALID_IMEI = 'INVALID_IMEI',
|
|
15
15
|
IDENTIFIER_CONFLICT = 'IDENTIFIER_CONFLICT',
|
|
16
|
+
/** El evento trae una fecha posterior a la hora del servidor. */
|
|
17
|
+
EVENT_IN_FUTURE = 'EVENT_IN_FUTURE',
|
|
16
18
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codes HTTP de la integración con el sistema del retailer (org, catalog, wizard y connector).
|
|
3
|
+
* El status de cada uno está en `RETAIL_INTEGRATION_ERROR_HTTP_STATUS`; las clases `DomainError` viven en el lambda.
|
|
4
|
+
* @enum {string}
|
|
5
|
+
*/
|
|
6
|
+
export enum RetailIntegrationErrorCodeEnum {
|
|
7
|
+
/** La entidad la administra la integración y no se edita desde SK. */
|
|
8
|
+
ENTITY_MANAGED_BY_INTEGRATION = 'ENTITY_MANAGED_BY_INTEGRATION',
|
|
9
|
+
RECONCILIATION_ALREADY_RUNNING = 'RECONCILIATION_ALREADY_RUNNING',
|
|
10
|
+
RECONCILIATION_NOT_FOUND = 'RECONCILIATION_NOT_FOUND',
|
|
11
|
+
/** El apartado de la pieza se perdió antes del cierre. */
|
|
12
|
+
RESERVATION_LOST = 'RESERVATION_LOST',
|
|
13
|
+
PRODUCT_NO_LONGER_SELLABLE = 'PRODUCT_NO_LONGER_SELLABLE',
|
|
14
|
+
STORE_NOT_OPERATIONAL = 'STORE_NOT_OPERATIONAL',
|
|
15
|
+
/** La venta no está en un estado de sincronización con Central que admita reenvío. */
|
|
16
|
+
CENTRAL_SYNC_NOT_RESENDABLE = 'CENTRAL_SYNC_NOT_RESENDABLE',
|
|
17
|
+
SALE_NOT_FOUND = 'SALE_NOT_FOUND',
|
|
18
|
+
RETAILER_ALREADY_INTEGRATED = 'RETAILER_ALREADY_INTEGRATED',
|
|
19
|
+
RETAILER_NOT_INTEGRATED = 'RETAILER_NOT_INTEGRATED',
|
|
20
|
+
/** El producto no tiene MDM y solo se vende de contado. */
|
|
21
|
+
CREDIT_REQUIRES_MDM = 'CREDIT_REQUIRES_MDM',
|
|
22
|
+
RETAILER_INTEGRATION_MISMATCH = 'RETAILER_INTEGRATION_MISMATCH',
|
|
23
|
+
}
|
|
@@ -19,5 +19,11 @@ export * from './RetailSaleTypeEnum';
|
|
|
19
19
|
export * from './RetailSaleFinancierEnum';
|
|
20
20
|
export * from './RetailPaymentMethodEnum';
|
|
21
21
|
export * from './RetailLinePaymentTypeEnum';
|
|
22
|
+
export * from './RetailSaleLineRoleEnum';
|
|
22
23
|
export * from './RetailEventRejectCodeEnum';
|
|
23
24
|
export * from './RetailMovementTypeEnum';
|
|
25
|
+
export * from './RetailIntegrationErrorCodeEnum';
|
|
26
|
+
export * from './ReconciliationEntityEnum';
|
|
27
|
+
export * from './ReconciliationRunStatusEnum';
|
|
28
|
+
export * from './ReconciliationTriggerEnum';
|
|
29
|
+
export * from './InactiveReasonEnum';
|