@fiado/type-kit 3.233.0 → 3.235.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/shipping/CreateShippingRequest.validation.test.ts +71 -0
- package/bin/identity/enums/SelfieSourceEnum.d.ts +10 -0
- package/bin/identity/enums/SelfieSourceEnum.js +14 -0
- package/bin/index.d.ts +1 -0
- package/bin/index.js +5 -1
- package/bin/retailWizard/enums/WizardStateEnum.d.ts +4 -0
- package/bin/retailWizard/enums/WizardStateEnum.js +4 -0
- package/bin/shipping/dtos/CreateShippingRequest.d.ts +25 -0
- package/bin/shipping/dtos/CreateShippingRequest.js +76 -0
- package/bin/shipping/dtos/CreateShippingResponse.d.ts +5 -0
- package/bin/shipping/dtos/CreateShippingResponse.js +6 -0
- package/bin/shipping/dtos/ShippingDestinationAddress.d.ts +8 -0
- package/bin/{platformRbac/dtos/ResendSelfRegisterOtpRequest.js → shipping/dtos/ShippingDestinationAddress.js} +26 -16
- package/bin/shipping/dtos/ShippingRecipient.d.ts +6 -0
- package/bin/{platformRbac/dtos/ResendOtpRequest.js → shipping/dtos/ShippingRecipient.js} +16 -16
- package/bin/shipping/dtos/UpdateShippingStatusRequest.d.ts +15 -0
- package/bin/shipping/dtos/UpdateShippingStatusRequest.js +55 -0
- package/bin/shipping/enums/DeliveryTypeEnum.d.ts +4 -0
- package/bin/shipping/enums/DeliveryTypeEnum.js +8 -0
- package/bin/shipping/enums/ShippingContentType.d.ts +9 -0
- package/bin/shipping/enums/ShippingContentType.js +13 -0
- package/bin/shipping/index.d.ts +8 -0
- package/bin/shipping/index.js +31 -0
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/retailWizard/enums/WizardStateEnum.ts +4 -0
- package/src/shipping/dtos/CreateShippingRequest.ts +60 -0
- package/src/shipping/dtos/CreateShippingResponse.ts +6 -0
- package/src/shipping/dtos/ShippingDestinationAddress.ts +27 -0
- package/src/shipping/dtos/ShippingRecipient.ts +19 -0
- package/src/shipping/dtos/UpdateShippingStatusRequest.ts +35 -0
- package/src/shipping/enums/DeliveryTypeEnum.ts +4 -0
- package/src/shipping/enums/ShippingContentType.ts +9 -0
- package/src/shipping/index.ts +15 -0
- package/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +0 -11
- package/bin/benefitCenter/enums/BenefitFlowEnum.js +0 -15
- package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +0 -11
- package/bin/loanConfig/enums/ModifiableByRoleEnum.js +0 -15
- package/bin/places/dtos/CashInFeeDto.d.ts +0 -17
- package/bin/places/dtos/CashInFeeDto.js +0 -12
- package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
- package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { describe, it, expect } from '@jest/globals';
|
|
3
|
+
import { plainToInstance } from 'class-transformer';
|
|
4
|
+
import { validate } from 'class-validator';
|
|
5
|
+
import { CreateShippingRequest } from '../../../src/shipping/dtos/CreateShippingRequest';
|
|
6
|
+
import { ShippingContentType } from '../../../src/shipping/enums/ShippingContentType';
|
|
7
|
+
import { DeliveryTypeEnum } from '../../../src/shipping/enums/DeliveryTypeEnum';
|
|
8
|
+
|
|
9
|
+
const BASE = {
|
|
10
|
+
sourceSystem: 'CARD_BUSINESS',
|
|
11
|
+
originReference: 'POMELO#card_9f3c1e',
|
|
12
|
+
fiadoReference: 'POMELO#card_9f3c1e',
|
|
13
|
+
contentType: ShippingContentType.CARD,
|
|
14
|
+
deliveryType: DeliveryTypeEnum.OFFICE,
|
|
15
|
+
recipient: { firstName: 'Maria', lastName: 'Gomez', phoneNumber: '5511110000' },
|
|
16
|
+
destinationAddress: {
|
|
17
|
+
street: 'Avenida Insurgentes',
|
|
18
|
+
addressNumber: '1234',
|
|
19
|
+
neighborhood: 'Del Valle',
|
|
20
|
+
municipality: 'Benito Juarez',
|
|
21
|
+
region: 'CDMX',
|
|
22
|
+
postalCode: '03100',
|
|
23
|
+
},
|
|
24
|
+
officeCode: 'OC-001',
|
|
25
|
+
officeName: 'ESTAFETA CENTRO',
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
async function errorsOf(payload: Record<string, unknown>): Promise<string[]> {
|
|
29
|
+
const errors = await validate(plainToInstance(CreateShippingRequest, payload));
|
|
30
|
+
return errors.map(e => e.property);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
describe('CreateShippingRequest', () => {
|
|
34
|
+
|
|
35
|
+
it('acepta un request OFFICE completo', async () => {
|
|
36
|
+
expect(await errorsOf(BASE)).toEqual([]);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('acepta HOME sin officeCode ni officeName', async () => {
|
|
40
|
+
const { officeCode, officeName, ...home } = BASE;
|
|
41
|
+
expect(await errorsOf({ ...home, deliveryType: DeliveryTypeEnum.HOME })).toEqual([]);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('exige officeCode y officeName cuando deliveryType es OFFICE', async () => {
|
|
45
|
+
const { officeCode, officeName, ...sinOficina } = BASE;
|
|
46
|
+
const props = await errorsOf(sinOficina);
|
|
47
|
+
expect(props).toContain('officeCode');
|
|
48
|
+
expect(props).toContain('officeName');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('rechaza contentType y deliveryType fuera del enum', async () => {
|
|
52
|
+
const props = await errorsOf({ ...BASE, contentType: 'celular', deliveryType: 'DOMICILIO' });
|
|
53
|
+
expect(props).toContain('contentType');
|
|
54
|
+
expect(props).toContain('deliveryType');
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('exige los campos anidados del destinatario y la direccion', async () => {
|
|
58
|
+
const props = await errorsOf({ ...BASE, recipient: {}, destinationAddress: {} });
|
|
59
|
+
expect(props).toContain('recipient');
|
|
60
|
+
expect(props).toContain('destinationAddress');
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('NO valida el techo de 60 de deliveryReference: eso lo hace el conector con error tipado', async () => {
|
|
64
|
+
expect(await errorsOf({ ...BASE, deliveryReference: 'x'.repeat(61) })).toEqual([]);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('lastName, phoneNumberSecondary, deliveryReference y additionalData son opcionales', async () => {
|
|
68
|
+
const { recipient, ...rest } = BASE;
|
|
69
|
+
expect(await errorsOf({ ...rest, recipient: { firstName: 'Jose', phoneNumber: '5533330000' } })).toEqual([]);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
|
|
3
|
+
* Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
|
|
4
|
+
*/
|
|
5
|
+
export declare enum SelfieSourceEnum {
|
|
6
|
+
/** Matcheó el verificationId de la verificación vigente en People. */
|
|
7
|
+
VERIFICATION = "VERIFICATION",
|
|
8
|
+
/** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
|
|
9
|
+
LATEST = "LATEST"
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelfieSourceEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
|
|
6
|
+
* Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
|
|
7
|
+
*/
|
|
8
|
+
var SelfieSourceEnum;
|
|
9
|
+
(function (SelfieSourceEnum) {
|
|
10
|
+
/** Matcheó el verificationId de la verificación vigente en People. */
|
|
11
|
+
SelfieSourceEnum["VERIFICATION"] = "VERIFICATION";
|
|
12
|
+
/** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
|
|
13
|
+
SelfieSourceEnum["LATEST"] = "LATEST";
|
|
14
|
+
})(SelfieSourceEnum || (exports.SelfieSourceEnum = SelfieSourceEnum = {}));
|
package/bin/index.d.ts
CHANGED
package/bin/index.js
CHANGED
|
@@ -38,7 +38,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
|
|
40
40
|
exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = exports.LoanConfig = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = exports.RetailCatalog = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = exports.Device = void 0;
|
|
41
|
-
exports.PhoneSales = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
41
|
+
exports.Shipping = exports.PhoneSales = exports.Kyc = exports.LoanScoring = exports.LoanCredit = void 0;
|
|
42
42
|
exports.Crypto = __importStar(require("./crypto"));
|
|
43
43
|
exports.Account = __importStar(require("./account"));
|
|
44
44
|
exports.MetamapConnector = __importStar(require("./metamapConnector"));
|
|
@@ -185,3 +185,7 @@ __exportStar(require("./complaint"), exports);
|
|
|
185
185
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
186
186
|
// storage/precio/stock), venta con delivery PICKUP|HOME y redención de código de referencia.
|
|
187
187
|
exports.PhoneSales = __importStar(require("./phoneSales"));
|
|
188
|
+
// Shipping: contrato genérico de envíos del fiado-estafeta-connector — agnóstico al producto
|
|
189
|
+
// (tarjetas, teléfonos, …). ExternalShippingStatus se reexporta acá desde `card/` sin moverlo,
|
|
190
|
+
// para no romper a los consumidores actuales del namespace Card.
|
|
191
|
+
exports.Shipping = __importStar(require("./shipping"));
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* ACTIVE - Sesión en curso.
|
|
5
5
|
* PAUSED_EXTERNAL_REFERRAL - Pausada por derivación a proveedor externo.
|
|
6
6
|
* PAUSED_NO_TOPUP - El cliente salió sin recarga de bienvenida (M1 §1087).
|
|
7
|
+
* PAUSED_CURP_CONFLICT - El CURP verificado ya pertenece a otro cliente del silo. La identidad es
|
|
8
|
+
* única por CURP, así que la sesión no puede continuar hasta que alguien resuelva a quién
|
|
9
|
+
* corresponde. No es una cancelación (el cliente es válido) ni una falla del sistema.
|
|
7
10
|
* COMPLETED - Venta cerrada.
|
|
8
11
|
* EXPIRED - Expiró por inactividad (TTL DDB ~24h).
|
|
9
12
|
* CANCELLED - Cancelada (incluye KYC PLD).
|
|
@@ -12,6 +15,7 @@ export declare enum WizardStateEnum {
|
|
|
12
15
|
ACTIVE = "ACTIVE",
|
|
13
16
|
PAUSED_EXTERNAL_REFERRAL = "PAUSED_EXTERNAL_REFERRAL",
|
|
14
17
|
PAUSED_NO_TOPUP = "PAUSED_NO_TOPUP",
|
|
18
|
+
PAUSED_CURP_CONFLICT = "PAUSED_CURP_CONFLICT",
|
|
15
19
|
COMPLETED = "COMPLETED",
|
|
16
20
|
EXPIRED = "EXPIRED",
|
|
17
21
|
CANCELLED = "CANCELLED"
|
|
@@ -7,6 +7,9 @@ exports.WizardStateEnum = void 0;
|
|
|
7
7
|
* ACTIVE - Sesión en curso.
|
|
8
8
|
* PAUSED_EXTERNAL_REFERRAL - Pausada por derivación a proveedor externo.
|
|
9
9
|
* PAUSED_NO_TOPUP - El cliente salió sin recarga de bienvenida (M1 §1087).
|
|
10
|
+
* PAUSED_CURP_CONFLICT - El CURP verificado ya pertenece a otro cliente del silo. La identidad es
|
|
11
|
+
* única por CURP, así que la sesión no puede continuar hasta que alguien resuelva a quién
|
|
12
|
+
* corresponde. No es una cancelación (el cliente es válido) ni una falla del sistema.
|
|
10
13
|
* COMPLETED - Venta cerrada.
|
|
11
14
|
* EXPIRED - Expiró por inactividad (TTL DDB ~24h).
|
|
12
15
|
* CANCELLED - Cancelada (incluye KYC PLD).
|
|
@@ -16,6 +19,7 @@ var WizardStateEnum;
|
|
|
16
19
|
WizardStateEnum["ACTIVE"] = "ACTIVE";
|
|
17
20
|
WizardStateEnum["PAUSED_EXTERNAL_REFERRAL"] = "PAUSED_EXTERNAL_REFERRAL";
|
|
18
21
|
WizardStateEnum["PAUSED_NO_TOPUP"] = "PAUSED_NO_TOPUP";
|
|
22
|
+
WizardStateEnum["PAUSED_CURP_CONFLICT"] = "PAUSED_CURP_CONFLICT";
|
|
19
23
|
WizardStateEnum["COMPLETED"] = "COMPLETED";
|
|
20
24
|
WizardStateEnum["EXPIRED"] = "EXPIRED";
|
|
21
25
|
WizardStateEnum["CANCELLED"] = "CANCELLED";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ShippingContentType } from '../enums/ShippingContentType';
|
|
2
|
+
import { DeliveryTypeEnum } from '../enums/DeliveryTypeEnum';
|
|
3
|
+
import { ShippingRecipient } from './ShippingRecipient';
|
|
4
|
+
import { ShippingDestinationAddress } from './ShippingDestinationAddress';
|
|
5
|
+
export declare class CreateShippingRequest {
|
|
6
|
+
sourceSystem: string;
|
|
7
|
+
/** Id de la operacion en el negocio origen. Clave de idempotencia. NO va al archivo. */
|
|
8
|
+
originReference: string;
|
|
9
|
+
/** Columna 12 del XLSX: referencia interna Fiado del envio. */
|
|
10
|
+
fiadoReference: string;
|
|
11
|
+
contentType: ShippingContentType;
|
|
12
|
+
deliveryType: DeliveryTypeEnum;
|
|
13
|
+
recipient: ShippingRecipient;
|
|
14
|
+
destinationAddress: ShippingDestinationAddress;
|
|
15
|
+
officeCode?: string;
|
|
16
|
+
officeName?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Columna 10 (REFERENCIAS), ya compuesta por el consumidor. El techo de 60 caracteres lo
|
|
19
|
+
* hace cumplir el conector con error tipado: si se validara aca, el rechazo saldria como
|
|
20
|
+
* error de validacion generico y DeliveryReferenceTooLongError seria inalcanzable.
|
|
21
|
+
*/
|
|
22
|
+
deliveryReference?: string;
|
|
23
|
+
/** Valores de las columnas 13+. Las claves matchean los extraColumns de la config. */
|
|
24
|
+
additionalData?: Record<string, string>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
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.CreateShippingRequest = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const ShippingContentType_1 = require("../enums/ShippingContentType");
|
|
16
|
+
const DeliveryTypeEnum_1 = require("../enums/DeliveryTypeEnum");
|
|
17
|
+
const ShippingRecipient_1 = require("./ShippingRecipient");
|
|
18
|
+
const ShippingDestinationAddress_1 = require("./ShippingDestinationAddress");
|
|
19
|
+
class CreateShippingRequest {
|
|
20
|
+
}
|
|
21
|
+
exports.CreateShippingRequest = CreateShippingRequest;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], CreateShippingRequest.prototype, "sourceSystem", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], CreateShippingRequest.prototype, "originReference", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], CreateShippingRequest.prototype, "fiadoReference", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsEnum)(ShippingContentType_1.ShippingContentType),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], CreateShippingRequest.prototype, "contentType", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_validator_1.IsEnum)(DeliveryTypeEnum_1.DeliveryTypeEnum),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], CreateShippingRequest.prototype, "deliveryType", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.ValidateNested)(),
|
|
47
|
+
(0, class_transformer_1.Type)(() => ShippingRecipient_1.ShippingRecipient),
|
|
48
|
+
__metadata("design:type", ShippingRecipient_1.ShippingRecipient)
|
|
49
|
+
], CreateShippingRequest.prototype, "recipient", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, class_validator_1.ValidateNested)(),
|
|
52
|
+
(0, class_transformer_1.Type)(() => ShippingDestinationAddress_1.ShippingDestinationAddress),
|
|
53
|
+
__metadata("design:type", ShippingDestinationAddress_1.ShippingDestinationAddress)
|
|
54
|
+
], CreateShippingRequest.prototype, "destinationAddress", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, class_validator_1.ValidateIf)(o => o.deliveryType === DeliveryTypeEnum_1.DeliveryTypeEnum.OFFICE),
|
|
57
|
+
(0, class_validator_1.IsString)(),
|
|
58
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], CreateShippingRequest.prototype, "officeCode", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, class_validator_1.ValidateIf)(o => o.deliveryType === DeliveryTypeEnum_1.DeliveryTypeEnum.OFFICE),
|
|
63
|
+
(0, class_validator_1.IsString)(),
|
|
64
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
65
|
+
__metadata("design:type", String)
|
|
66
|
+
], CreateShippingRequest.prototype, "officeName", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, class_validator_1.IsOptional)(),
|
|
69
|
+
(0, class_validator_1.IsString)(),
|
|
70
|
+
__metadata("design:type", String)
|
|
71
|
+
], CreateShippingRequest.prototype, "deliveryReference", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_validator_1.IsOptional)(),
|
|
74
|
+
(0, class_validator_1.IsObject)(),
|
|
75
|
+
__metadata("design:type", Object)
|
|
76
|
+
], CreateShippingRequest.prototype, "additionalData", void 0);
|
|
@@ -9,28 +9,38 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
12
|
+
exports.ShippingDestinationAddress = void 0;
|
|
14
13
|
const class_validator_1 = require("class-validator");
|
|
15
|
-
|
|
16
|
-
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
17
|
-
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
18
|
-
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
19
|
-
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
20
|
-
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
21
|
-
*/
|
|
22
|
-
class ResendSelfRegisterOtpRequest {
|
|
14
|
+
class ShippingDestinationAddress {
|
|
23
15
|
}
|
|
24
|
-
exports.
|
|
16
|
+
exports.ShippingDestinationAddress = ShippingDestinationAddress;
|
|
25
17
|
__decorate([
|
|
26
|
-
(0, class_transformer_1.Expose)(),
|
|
27
18
|
(0, class_validator_1.IsString)(),
|
|
28
19
|
(0, class_validator_1.IsNotEmpty)(),
|
|
29
20
|
__metadata("design:type", String)
|
|
30
|
-
],
|
|
21
|
+
], ShippingDestinationAddress.prototype, "street", void 0);
|
|
31
22
|
__decorate([
|
|
32
|
-
(0,
|
|
33
|
-
(0, class_validator_1.
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], ShippingDestinationAddress.prototype, "addressNumber", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], ShippingDestinationAddress.prototype, "neighborhood", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], ShippingDestinationAddress.prototype, "municipality", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsString)(),
|
|
39
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], ShippingDestinationAddress.prototype, "region", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, class_validator_1.IsString)(),
|
|
34
44
|
(0, class_validator_1.IsNotEmpty)(),
|
|
35
45
|
__metadata("design:type", String)
|
|
36
|
-
],
|
|
46
|
+
], ShippingDestinationAddress.prototype, "postalCode", void 0);
|
|
@@ -9,28 +9,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const class_transformer_1 = require("class-transformer");
|
|
12
|
+
exports.ShippingRecipient = void 0;
|
|
14
13
|
const class_validator_1 = require("class-validator");
|
|
15
|
-
|
|
16
|
-
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
17
|
-
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
18
|
-
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
19
|
-
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
20
|
-
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
21
|
-
*/
|
|
22
|
-
class ResendOtpRequest {
|
|
14
|
+
class ShippingRecipient {
|
|
23
15
|
}
|
|
24
|
-
exports.
|
|
16
|
+
exports.ShippingRecipient = ShippingRecipient;
|
|
25
17
|
__decorate([
|
|
26
|
-
(0,
|
|
27
|
-
(0, class_validator_1.IsEmail)(),
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
28
19
|
(0, class_validator_1.IsNotEmpty)(),
|
|
29
20
|
__metadata("design:type", String)
|
|
30
|
-
],
|
|
21
|
+
], ShippingRecipient.prototype, "firstName", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], ShippingRecipient.prototype, "lastName", void 0);
|
|
31
27
|
__decorate([
|
|
32
|
-
(0, class_transformer_1.Expose)(),
|
|
33
28
|
(0, class_validator_1.IsString)(),
|
|
34
29
|
(0, class_validator_1.IsNotEmpty)(),
|
|
35
30
|
__metadata("design:type", String)
|
|
36
|
-
],
|
|
31
|
+
], ShippingRecipient.prototype, "phoneNumber", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsOptional)(),
|
|
34
|
+
(0, class_validator_1.IsString)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], ShippingRecipient.prototype, "phoneNumberSecondary", void 0);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ExternalShippingStatus } from '../../card/enums/ExternalShippingStatus';
|
|
2
|
+
/**
|
|
3
|
+
* Notificacion conector -> negocio origen. Los 3 campos de tracking son opcionales porque un
|
|
4
|
+
* evento temprano de Estafeta puede no traer description y el consumidor no debe romper con un
|
|
5
|
+
* item degradado; el conector los manda siempre que los tenga.
|
|
6
|
+
*/
|
|
7
|
+
export declare class UpdateShippingStatusRequest {
|
|
8
|
+
externalShippingId: string;
|
|
9
|
+
originReference: string;
|
|
10
|
+
externalShippingStatus: ExternalShippingStatus;
|
|
11
|
+
externalShippingStatusDetail?: string;
|
|
12
|
+
shippingTrackingNumber?: string;
|
|
13
|
+
shippingTrackingUrl?: string;
|
|
14
|
+
occurredAt: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
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.UpdateShippingStatusRequest = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const ExternalShippingStatus_1 = require("../../card/enums/ExternalShippingStatus");
|
|
15
|
+
/**
|
|
16
|
+
* Notificacion conector -> negocio origen. Los 3 campos de tracking son opcionales porque un
|
|
17
|
+
* evento temprano de Estafeta puede no traer description y el consumidor no debe romper con un
|
|
18
|
+
* item degradado; el conector los manda siempre que los tenga.
|
|
19
|
+
*/
|
|
20
|
+
class UpdateShippingStatusRequest {
|
|
21
|
+
}
|
|
22
|
+
exports.UpdateShippingStatusRequest = UpdateShippingStatusRequest;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], UpdateShippingStatusRequest.prototype, "externalShippingId", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], UpdateShippingStatusRequest.prototype, "originReference", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_validator_1.IsEnum)(ExternalShippingStatus_1.ExternalShippingStatus),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], UpdateShippingStatusRequest.prototype, "externalShippingStatus", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, class_validator_1.IsOptional)(),
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
__metadata("design:type", String)
|
|
41
|
+
], UpdateShippingStatusRequest.prototype, "externalShippingStatusDetail", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, class_validator_1.IsOptional)(),
|
|
44
|
+
(0, class_validator_1.IsString)(),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], UpdateShippingStatusRequest.prototype, "shippingTrackingNumber", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
49
|
+
(0, class_validator_1.IsString)(),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], UpdateShippingStatusRequest.prototype, "shippingTrackingUrl", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, class_validator_1.IsISO8601)(),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], UpdateShippingStatusRequest.prototype, "occurredAt", void 0);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryTypeEnum = void 0;
|
|
4
|
+
var DeliveryTypeEnum;
|
|
5
|
+
(function (DeliveryTypeEnum) {
|
|
6
|
+
DeliveryTypeEnum["HOME"] = "HOME";
|
|
7
|
+
DeliveryTypeEnum["OFFICE"] = "OFFICE";
|
|
8
|
+
})(DeliveryTypeEnum || (exports.DeliveryTypeEnum = DeliveryTypeEnum = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipo de contenido del envio. Determina la columna 11 del XLSX via el catalogo de labels,
|
|
3
|
+
* que vive en Dynamo: sumar un valor aca es un bump minor + una fila en el catalogo, sin
|
|
4
|
+
* deploy del conector.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum ShippingContentType {
|
|
7
|
+
CARD = "CARD",
|
|
8
|
+
PHONE = "PHONE"
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShippingContentType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tipo de contenido del envio. Determina la columna 11 del XLSX via el catalogo de labels,
|
|
6
|
+
* que vive en Dynamo: sumar un valor aca es un bump minor + una fila en el catalogo, sin
|
|
7
|
+
* deploy del conector.
|
|
8
|
+
*/
|
|
9
|
+
var ShippingContentType;
|
|
10
|
+
(function (ShippingContentType) {
|
|
11
|
+
ShippingContentType["CARD"] = "CARD";
|
|
12
|
+
ShippingContentType["PHONE"] = "PHONE";
|
|
13
|
+
})(ShippingContentType || (exports.ShippingContentType = ShippingContentType = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './dtos/ShippingRecipient';
|
|
2
|
+
export * from './dtos/ShippingDestinationAddress';
|
|
3
|
+
export * from './dtos/CreateShippingRequest';
|
|
4
|
+
export * from './dtos/CreateShippingResponse';
|
|
5
|
+
export * from './dtos/UpdateShippingStatusRequest';
|
|
6
|
+
export * from './enums/ShippingContentType';
|
|
7
|
+
export * from './enums/DeliveryTypeEnum';
|
|
8
|
+
export { ExternalShippingStatus } from '../card/enums/ExternalShippingStatus';
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
exports.ExternalShippingStatus = void 0;
|
|
18
|
+
//dtos
|
|
19
|
+
__exportStar(require("./dtos/ShippingRecipient"), exports);
|
|
20
|
+
__exportStar(require("./dtos/ShippingDestinationAddress"), exports);
|
|
21
|
+
__exportStar(require("./dtos/CreateShippingRequest"), exports);
|
|
22
|
+
__exportStar(require("./dtos/CreateShippingResponse"), exports);
|
|
23
|
+
__exportStar(require("./dtos/UpdateShippingStatusRequest"), exports);
|
|
24
|
+
//enums
|
|
25
|
+
__exportStar(require("./enums/ShippingContentType"), exports);
|
|
26
|
+
__exportStar(require("./enums/DeliveryTypeEnum"), exports);
|
|
27
|
+
// ExternalShippingStatus es agnostico al producto: se reexporta desde shipping SIN tocar el
|
|
28
|
+
// export de card, para que el dominio nuevo no importe del namespace de un producto y los
|
|
29
|
+
// consumidores actuales no se rompan.
|
|
30
|
+
var ExternalShippingStatus_1 = require("../card/enums/ExternalShippingStatus");
|
|
31
|
+
Object.defineProperty(exports, "ExternalShippingStatus", { enumerable: true, get: function () { return ExternalShippingStatus_1.ExternalShippingStatus; } });
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -144,3 +144,7 @@ export * from './complaint';
|
|
|
144
144
|
// PhoneSales: DTOs del lambda cell-phone-sales-business — variantes de dispositivo (modelo/color/
|
|
145
145
|
// storage/precio/stock), venta con delivery PICKUP|HOME y redención de código de referencia.
|
|
146
146
|
export * as PhoneSales from './phoneSales';
|
|
147
|
+
// Shipping: contrato genérico de envíos del fiado-estafeta-connector — agnóstico al producto
|
|
148
|
+
// (tarjetas, teléfonos, …). ExternalShippingStatus se reexporta acá desde `card/` sin moverlo,
|
|
149
|
+
// para no romper a los consumidores actuales del namespace Card.
|
|
150
|
+
export * as Shipping from './shipping';
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* ACTIVE - Sesión en curso.
|
|
5
5
|
* PAUSED_EXTERNAL_REFERRAL - Pausada por derivación a proveedor externo.
|
|
6
6
|
* PAUSED_NO_TOPUP - El cliente salió sin recarga de bienvenida (M1 §1087).
|
|
7
|
+
* PAUSED_CURP_CONFLICT - El CURP verificado ya pertenece a otro cliente del silo. La identidad es
|
|
8
|
+
* única por CURP, así que la sesión no puede continuar hasta que alguien resuelva a quién
|
|
9
|
+
* corresponde. No es una cancelación (el cliente es válido) ni una falla del sistema.
|
|
7
10
|
* COMPLETED - Venta cerrada.
|
|
8
11
|
* EXPIRED - Expiró por inactividad (TTL DDB ~24h).
|
|
9
12
|
* CANCELLED - Cancelada (incluye KYC PLD).
|
|
@@ -12,6 +15,7 @@ export enum WizardStateEnum {
|
|
|
12
15
|
ACTIVE = 'ACTIVE',
|
|
13
16
|
PAUSED_EXTERNAL_REFERRAL = 'PAUSED_EXTERNAL_REFERRAL',
|
|
14
17
|
PAUSED_NO_TOPUP = 'PAUSED_NO_TOPUP',
|
|
18
|
+
PAUSED_CURP_CONFLICT = 'PAUSED_CURP_CONFLICT',
|
|
15
19
|
COMPLETED = 'COMPLETED',
|
|
16
20
|
EXPIRED = 'EXPIRED',
|
|
17
21
|
CANCELLED = 'CANCELLED',
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Type } from 'class-transformer';
|
|
2
|
+
import { IsEnum, IsNotEmpty, IsObject, IsOptional, IsString, ValidateIf, ValidateNested } from 'class-validator';
|
|
3
|
+
import { ShippingContentType } from '../enums/ShippingContentType';
|
|
4
|
+
import { DeliveryTypeEnum } from '../enums/DeliveryTypeEnum';
|
|
5
|
+
import { ShippingRecipient } from './ShippingRecipient';
|
|
6
|
+
import { ShippingDestinationAddress } from './ShippingDestinationAddress';
|
|
7
|
+
|
|
8
|
+
export class CreateShippingRequest {
|
|
9
|
+
@IsString()
|
|
10
|
+
@IsNotEmpty()
|
|
11
|
+
sourceSystem: string;
|
|
12
|
+
|
|
13
|
+
/** Id de la operacion en el negocio origen. Clave de idempotencia. NO va al archivo. */
|
|
14
|
+
@IsString()
|
|
15
|
+
@IsNotEmpty()
|
|
16
|
+
originReference: string;
|
|
17
|
+
|
|
18
|
+
/** Columna 12 del XLSX: referencia interna Fiado del envio. */
|
|
19
|
+
@IsString()
|
|
20
|
+
@IsNotEmpty()
|
|
21
|
+
fiadoReference: string;
|
|
22
|
+
|
|
23
|
+
@IsEnum(ShippingContentType)
|
|
24
|
+
contentType: ShippingContentType;
|
|
25
|
+
|
|
26
|
+
@IsEnum(DeliveryTypeEnum)
|
|
27
|
+
deliveryType: DeliveryTypeEnum;
|
|
28
|
+
|
|
29
|
+
@ValidateNested()
|
|
30
|
+
@Type(() => ShippingRecipient)
|
|
31
|
+
recipient: ShippingRecipient;
|
|
32
|
+
|
|
33
|
+
@ValidateNested()
|
|
34
|
+
@Type(() => ShippingDestinationAddress)
|
|
35
|
+
destinationAddress: ShippingDestinationAddress;
|
|
36
|
+
|
|
37
|
+
@ValidateIf(o => o.deliveryType === DeliveryTypeEnum.OFFICE)
|
|
38
|
+
@IsString()
|
|
39
|
+
@IsNotEmpty()
|
|
40
|
+
officeCode?: string;
|
|
41
|
+
|
|
42
|
+
@ValidateIf(o => o.deliveryType === DeliveryTypeEnum.OFFICE)
|
|
43
|
+
@IsString()
|
|
44
|
+
@IsNotEmpty()
|
|
45
|
+
officeName?: string;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Columna 10 (REFERENCIAS), ya compuesta por el consumidor. El techo de 60 caracteres lo
|
|
49
|
+
* hace cumplir el conector con error tipado: si se validara aca, el rechazo saldria como
|
|
50
|
+
* error de validacion generico y DeliveryReferenceTooLongError seria inalcanzable.
|
|
51
|
+
*/
|
|
52
|
+
@IsOptional()
|
|
53
|
+
@IsString()
|
|
54
|
+
deliveryReference?: string;
|
|
55
|
+
|
|
56
|
+
/** Valores de las columnas 13+. Las claves matchean los extraColumns de la config. */
|
|
57
|
+
@IsOptional()
|
|
58
|
+
@IsObject()
|
|
59
|
+
additionalData?: Record<string, string>;
|
|
60
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IsNotEmpty, IsString } from 'class-validator';
|
|
2
|
+
|
|
3
|
+
export class ShippingDestinationAddress {
|
|
4
|
+
@IsString()
|
|
5
|
+
@IsNotEmpty()
|
|
6
|
+
street: string;
|
|
7
|
+
|
|
8
|
+
@IsString()
|
|
9
|
+
@IsNotEmpty()
|
|
10
|
+
addressNumber: string;
|
|
11
|
+
|
|
12
|
+
@IsString()
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
neighborhood: string;
|
|
15
|
+
|
|
16
|
+
@IsString()
|
|
17
|
+
@IsNotEmpty()
|
|
18
|
+
municipality: string;
|
|
19
|
+
|
|
20
|
+
@IsString()
|
|
21
|
+
@IsNotEmpty()
|
|
22
|
+
region: string;
|
|
23
|
+
|
|
24
|
+
@IsString()
|
|
25
|
+
@IsNotEmpty()
|
|
26
|
+
postalCode: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
2
|
+
|
|
3
|
+
export class ShippingRecipient {
|
|
4
|
+
@IsString()
|
|
5
|
+
@IsNotEmpty()
|
|
6
|
+
firstName: string;
|
|
7
|
+
|
|
8
|
+
@IsOptional()
|
|
9
|
+
@IsString()
|
|
10
|
+
lastName?: string;
|
|
11
|
+
|
|
12
|
+
@IsString()
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
phoneNumber: string;
|
|
15
|
+
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsString()
|
|
18
|
+
phoneNumberSecondary?: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { IsEnum, IsISO8601, IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
|
2
|
+
import { ExternalShippingStatus } from '../../card/enums/ExternalShippingStatus';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Notificacion conector -> negocio origen. Los 3 campos de tracking son opcionales porque un
|
|
6
|
+
* evento temprano de Estafeta puede no traer description y el consumidor no debe romper con un
|
|
7
|
+
* item degradado; el conector los manda siempre que los tenga.
|
|
8
|
+
*/
|
|
9
|
+
export class UpdateShippingStatusRequest {
|
|
10
|
+
@IsString()
|
|
11
|
+
@IsNotEmpty()
|
|
12
|
+
externalShippingId: string;
|
|
13
|
+
|
|
14
|
+
@IsString()
|
|
15
|
+
@IsNotEmpty()
|
|
16
|
+
originReference: string;
|
|
17
|
+
|
|
18
|
+
@IsEnum(ExternalShippingStatus)
|
|
19
|
+
externalShippingStatus: ExternalShippingStatus;
|
|
20
|
+
|
|
21
|
+
@IsOptional()
|
|
22
|
+
@IsString()
|
|
23
|
+
externalShippingStatusDetail?: string;
|
|
24
|
+
|
|
25
|
+
@IsOptional()
|
|
26
|
+
@IsString()
|
|
27
|
+
shippingTrackingNumber?: string;
|
|
28
|
+
|
|
29
|
+
@IsOptional()
|
|
30
|
+
@IsString()
|
|
31
|
+
shippingTrackingUrl?: string;
|
|
32
|
+
|
|
33
|
+
@IsISO8601()
|
|
34
|
+
occurredAt: string;
|
|
35
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipo de contenido del envio. Determina la columna 11 del XLSX via el catalogo de labels,
|
|
3
|
+
* que vive en Dynamo: sumar un valor aca es un bump minor + una fila en el catalogo, sin
|
|
4
|
+
* deploy del conector.
|
|
5
|
+
*/
|
|
6
|
+
export enum ShippingContentType {
|
|
7
|
+
CARD = 'CARD',
|
|
8
|
+
PHONE = 'PHONE',
|
|
9
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//dtos
|
|
2
|
+
export * from './dtos/ShippingRecipient';
|
|
3
|
+
export * from './dtos/ShippingDestinationAddress';
|
|
4
|
+
export * from './dtos/CreateShippingRequest';
|
|
5
|
+
export * from './dtos/CreateShippingResponse';
|
|
6
|
+
export * from './dtos/UpdateShippingStatusRequest';
|
|
7
|
+
|
|
8
|
+
//enums
|
|
9
|
+
export * from './enums/ShippingContentType';
|
|
10
|
+
export * from './enums/DeliveryTypeEnum';
|
|
11
|
+
|
|
12
|
+
// ExternalShippingStatus es agnostico al producto: se reexporta desde shipping SIN tocar el
|
|
13
|
+
// export de card, para que el dominio nuevo no importe del namespace de un producto y los
|
|
14
|
+
// consumidores actuales no se rompan.
|
|
15
|
+
export { ExternalShippingStatus } from '../card/enums/ExternalShippingStatus';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare enum BenefitFlowEnum {
|
|
2
|
-
TOPUPS = "TOPUPS",
|
|
3
|
-
BILL_PAYMENT = "BILL_PAYMENT",
|
|
4
|
-
CREDIT = "CREDIT",
|
|
5
|
-
INSURANCE = "INSURANCE",
|
|
6
|
-
DONATION = "DONATION",
|
|
7
|
-
PHARMACY = "PHARMACY",
|
|
8
|
-
REMITTANCE = "REMITTANCE",
|
|
9
|
-
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
10
|
-
WALLET_FUNDING = "WALLET_FUNDING"
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BenefitFlowEnum = void 0;
|
|
4
|
-
var BenefitFlowEnum;
|
|
5
|
-
(function (BenefitFlowEnum) {
|
|
6
|
-
BenefitFlowEnum["TOPUPS"] = "TOPUPS";
|
|
7
|
-
BenefitFlowEnum["BILL_PAYMENT"] = "BILL_PAYMENT";
|
|
8
|
-
BenefitFlowEnum["CREDIT"] = "CREDIT";
|
|
9
|
-
BenefitFlowEnum["INSURANCE"] = "INSURANCE";
|
|
10
|
-
BenefitFlowEnum["DONATION"] = "DONATION";
|
|
11
|
-
BenefitFlowEnum["PHARMACY"] = "PHARMACY";
|
|
12
|
-
BenefitFlowEnum["REMITTANCE"] = "REMITTANCE";
|
|
13
|
-
/** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
|
|
14
|
-
BenefitFlowEnum["WALLET_FUNDING"] = "WALLET_FUNDING";
|
|
15
|
-
})(BenefitFlowEnum || (exports.BenefitFlowEnum = BenefitFlowEnum = {}));
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
3
|
-
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
4
|
-
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
5
|
-
* @enum {string}
|
|
6
|
-
*/
|
|
7
|
-
export declare enum ModifiableByRoleEnum {
|
|
8
|
-
SUPER_ADMIN = "super_admin",
|
|
9
|
-
SOFOM_ADMIN = "sofom_admin",
|
|
10
|
-
RETAILER_ADMIN = "retailer_admin"
|
|
11
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModifiableByRoleEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
|
|
6
|
-
* `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
|
|
7
|
-
* TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
|
|
8
|
-
* @enum {string}
|
|
9
|
-
*/
|
|
10
|
-
var ModifiableByRoleEnum;
|
|
11
|
-
(function (ModifiableByRoleEnum) {
|
|
12
|
-
ModifiableByRoleEnum["SUPER_ADMIN"] = "super_admin";
|
|
13
|
-
ModifiableByRoleEnum["SOFOM_ADMIN"] = "sofom_admin";
|
|
14
|
-
ModifiableByRoleEnum["RETAILER_ADMIN"] = "retailer_admin";
|
|
15
|
-
})(ModifiableByRoleEnum || (exports.ModifiableByRoleEnum = ModifiableByRoleEnum = {}));
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { CurrencyId } from '../../currency/enums/CurrencyId';
|
|
2
|
-
/**
|
|
3
|
-
* Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
|
|
4
|
-
* - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
|
|
5
|
-
* - Passport (MX): por red → `fixed` + `percentage`.
|
|
6
|
-
* Response DTO — sin decoradores de validación.
|
|
7
|
-
*/
|
|
8
|
-
export declare class CashInFeeDto {
|
|
9
|
-
/** Comisión fija, en la moneda del país. */
|
|
10
|
-
fixed?: number;
|
|
11
|
-
/** Porcentaje del monto depositado (0–100). */
|
|
12
|
-
percentage?: number;
|
|
13
|
-
/** Tope máximo de comisión (GreenDot: el asociado cobra hasta este cap). */
|
|
14
|
-
cap?: number;
|
|
15
|
-
/** Moneda del fee: USD (GreenDot) | MXN (Passport). */
|
|
16
|
-
currency: CurrencyId;
|
|
17
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CashInFeeDto = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
|
|
6
|
-
* - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
|
|
7
|
-
* - Passport (MX): por red → `fixed` + `percentage`.
|
|
8
|
-
* Response DTO — sin decoradores de validación.
|
|
9
|
-
*/
|
|
10
|
-
class CashInFeeDto {
|
|
11
|
-
}
|
|
12
|
-
exports.CashInFeeDto = CashInFeeDto;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { MfaMethodEnum } from '../enums/MfaMethodEnum';
|
|
2
|
-
/**
|
|
3
|
-
* Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
4
|
-
* Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
|
|
5
|
-
* identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
|
|
6
|
-
* El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
|
|
7
|
-
* siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
|
|
8
|
-
*/
|
|
9
|
-
export declare class ResendOtpRequest {
|
|
10
|
-
email: string;
|
|
11
|
-
tenantId: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Respuesta del resend-otp. `session`/`mfaMethod` frescos del nuevo challenge CUSTOM_AUTH.
|
|
15
|
-
* Plain sin validators (no validamos lo que mandamos al cliente — fiado-validation-and-dtos § 7).
|
|
16
|
-
* Ambos opcionales: en los caminos de rechazo silencioso (anti-enumeración) o ramas sin CUSTOM_AUTH
|
|
17
|
-
* el server responde 200 genérico sin session ni método.
|
|
18
|
-
*/
|
|
19
|
-
export interface ResendOtpResponse {
|
|
20
|
-
session?: string;
|
|
21
|
-
mfaMethod?: MfaMethodEnum;
|
|
22
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
|
|
3
|
-
* Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
|
|
4
|
-
* `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
|
|
5
|
-
* server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
|
|
6
|
-
* scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
|
|
7
|
-
*/
|
|
8
|
-
export declare class ResendSelfRegisterOtpRequest {
|
|
9
|
-
tenantId: string;
|
|
10
|
-
email: string;
|
|
11
|
-
}
|