@fiado/type-kit 3.193.0 → 3.195.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/bin/helpers/constans/regex.d.ts +3 -0
- package/bin/helpers/constans/regex.js +12 -1
- package/bin/index.d.ts +2 -0
- package/bin/index.js +7 -1
- package/bin/retailCustomer/dtos/KycReview.d.ts +19 -0
- package/bin/retailCustomer/dtos/KycReview.js +56 -0
- package/bin/retailCustomer/dtos/RetailCustomer.d.ts +37 -0
- package/bin/retailCustomer/dtos/RetailCustomer.js +160 -0
- package/bin/retailCustomer/dtos/requests/AccountResultRequest.d.ts +13 -0
- package/bin/retailCustomer/dtos/requests/AccountResultRequest.js +48 -0
- package/bin/retailCustomer/dtos/requests/CreateCustomerRequest.d.ts +10 -0
- package/bin/retailCustomer/dtos/requests/CreateCustomerRequest.js +45 -0
- package/bin/retailCustomer/dtos/requests/KycReviewRequest.d.ts +10 -0
- package/bin/retailCustomer/dtos/requests/KycReviewRequest.js +33 -0
- package/bin/retailCustomer/dtos/requests/UpdateCustomerRequest.d.ts +10 -0
- package/bin/retailCustomer/dtos/requests/UpdateCustomerRequest.js +47 -0
- package/bin/retailCustomer/dtos/requests/UpsertCustomerFromKycRequest.d.ts +22 -0
- package/bin/retailCustomer/dtos/requests/UpsertCustomerFromKycRequest.js +97 -0
- package/bin/retailCustomer/dtos/responses/Customer360Response.d.ts +33 -0
- package/bin/retailCustomer/dtos/responses/Customer360Response.js +2 -0
- package/bin/retailCustomer/dtos/responses/CustomerResponse.d.ts +30 -0
- package/bin/retailCustomer/dtos/responses/CustomerResponse.js +2 -0
- package/bin/retailCustomer/enums/AccountStatusEnum.d.ts +9 -0
- package/bin/retailCustomer/enums/AccountStatusEnum.js +13 -0
- package/bin/retailCustomer/enums/KycModalityEnum.d.ts +9 -0
- package/bin/retailCustomer/enums/KycModalityEnum.js +13 -0
- package/bin/retailCustomer/enums/KycReviewResultEnum.d.ts +8 -0
- package/bin/retailCustomer/enums/KycReviewResultEnum.js +12 -0
- package/bin/retailCustomer/enums/RetailKycStatusEnum.d.ts +13 -0
- package/bin/retailCustomer/enums/RetailKycStatusEnum.js +17 -0
- package/bin/retailCustomer/events/CustomerCreatedV1.d.ts +7 -0
- package/bin/retailCustomer/events/CustomerCreatedV1.js +2 -0
- package/bin/retailCustomer/events/CustomerKycVerifiedV1.d.ts +27 -0
- package/bin/retailCustomer/events/CustomerKycVerifiedV1.js +2 -0
- package/bin/retailCustomer/events/CustomerUpdatedV1.d.ts +9 -0
- package/bin/retailCustomer/events/CustomerUpdatedV1.js +2 -0
- package/bin/retailCustomer/events/KycApprovedByComplianceV1.d.ts +12 -0
- package/bin/retailCustomer/events/KycApprovedByComplianceV1.js +2 -0
- package/bin/retailCustomer/events/KycRejectedByComplianceV1.d.ts +12 -0
- package/bin/retailCustomer/events/KycRejectedByComplianceV1.js +2 -0
- package/bin/retailCustomer/index.d.ts +18 -0
- package/bin/retailCustomer/index.js +39 -0
- package/bin/retailOrg/dtos/requests/ProvisionRetailUserRequest.d.ts +38 -0
- package/bin/retailOrg/dtos/requests/ProvisionRetailUserRequest.js +95 -0
- package/bin/retailOrg/index.d.ts +1 -0
- package/bin/retailOrg/index.js +1 -0
- package/bin/retailWizard/dtos/OtpVerification.d.ts +24 -0
- package/bin/retailWizard/dtos/OtpVerification.js +2 -0
- package/bin/retailWizard/dtos/PaginatedResult.d.ts +6 -0
- package/bin/retailWizard/dtos/PaginatedResult.js +2 -0
- package/bin/retailWizard/dtos/Prospect.d.ts +32 -0
- package/bin/retailWizard/dtos/Prospect.js +2 -0
- package/bin/retailWizard/dtos/ProspectNewCustomer.d.ts +5 -0
- package/bin/retailWizard/dtos/ProspectNewCustomer.js +28 -0
- package/bin/retailWizard/dtos/Sale.d.ts +42 -0
- package/bin/retailWizard/dtos/Sale.js +2 -0
- package/bin/retailWizard/dtos/SalePaymentDetail.d.ts +11 -0
- package/bin/retailWizard/dtos/SalePaymentDetail.js +51 -0
- package/bin/retailWizard/dtos/WizardBeneficiary.d.ts +13 -0
- package/bin/retailWizard/dtos/WizardBeneficiary.js +47 -0
- package/bin/retailWizard/dtos/WizardConsents.d.ts +8 -0
- package/bin/retailWizard/dtos/WizardConsents.js +47 -0
- package/bin/retailWizard/dtos/WizardPayment.d.ts +8 -0
- package/bin/retailWizard/dtos/WizardPayment.js +43 -0
- package/bin/retailWizard/dtos/WizardSession.d.ts +65 -0
- package/bin/retailWizard/dtos/WizardSession.js +2 -0
- package/bin/retailWizard/dtos/WizardWelcome.d.ts +9 -0
- package/bin/retailWizard/dtos/WizardWelcome.js +50 -0
- package/bin/retailWizard/dtos/requests/AddProductRequest.d.ts +10 -0
- package/bin/retailWizard/dtos/requests/AddProductRequest.js +38 -0
- package/bin/retailWizard/dtos/requests/AppInstallLinkRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/AppInstallLinkRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/CancelSaleRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/CancelSaleRequest.js +28 -0
- package/bin/retailWizard/dtos/requests/CancelSessionRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/CancelSessionRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/CompleteSaleRequest.d.ts +9 -0
- package/bin/retailWizard/dtos/requests/CompleteSaleRequest.js +29 -0
- package/bin/retailWizard/dtos/requests/ConfirmAddressRequest.d.ts +9 -0
- package/bin/retailWizard/dtos/requests/ConfirmAddressRequest.js +34 -0
- package/bin/retailWizard/dtos/requests/ConsentsRequest.d.ts +11 -0
- package/bin/retailWizard/dtos/requests/ConsentsRequest.js +35 -0
- package/bin/retailWizard/dtos/requests/CreateProspectRequest.d.ts +15 -0
- package/bin/retailWizard/dtos/requests/CreateProspectRequest.js +67 -0
- package/bin/retailWizard/dtos/requests/DeleteProductRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/DeleteProductRequest.js +23 -0
- package/bin/retailWizard/dtos/requests/ExternalReferralRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/ExternalReferralRequest.js +27 -0
- package/bin/retailWizard/dtos/requests/KycConfirmRequest.d.ts +10 -0
- package/bin/retailWizard/dtos/requests/KycConfirmRequest.js +35 -0
- package/bin/retailWizard/dtos/requests/KycManualRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/KycManualRequest.js +28 -0
- package/bin/retailWizard/dtos/requests/KycPrepareRequest.d.ts +10 -0
- package/bin/retailWizard/dtos/requests/KycPrepareRequest.js +27 -0
- package/bin/retailWizard/dtos/requests/MarkPcfCardDeliveredRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/MarkPcfCardDeliveredRequest.js +23 -0
- package/bin/retailWizard/dtos/requests/MarkProspectLostRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/MarkProspectLostRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/OccupationRequest.d.ts +10 -0
- package/bin/retailWizard/dtos/requests/OccupationRequest.js +35 -0
- package/bin/retailWizard/dtos/requests/RegisterPaymentRequest.d.ts +12 -0
- package/bin/retailWizard/dtos/requests/RegisterPaymentRequest.js +42 -0
- package/bin/retailWizard/dtos/requests/ResendOtpRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/ResendOtpRequest.js +28 -0
- package/bin/retailWizard/dtos/requests/SaveBeneficiaryRequest.d.ts +5 -0
- package/bin/retailWizard/dtos/requests/SaveBeneficiaryRequest.js +25 -0
- package/bin/retailWizard/dtos/requests/SetPaymentMethodRequest.d.ts +5 -0
- package/bin/retailWizard/dtos/requests/SetPaymentMethodRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/SignBeneficiaryAnnexRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/SignBeneficiaryAnnexRequest.js +23 -0
- package/bin/retailWizard/dtos/requests/SkipOtpRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/SkipOtpRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/StartSessionRequest.d.ts +10 -0
- package/bin/retailWizard/dtos/requests/StartSessionRequest.js +35 -0
- package/bin/retailWizard/dtos/requests/UpdateProspectRequest.d.ts +8 -0
- package/bin/retailWizard/dtos/requests/UpdateProspectRequest.js +45 -0
- package/bin/retailWizard/dtos/requests/VerifyOtpRequest.d.ts +4 -0
- package/bin/retailWizard/dtos/requests/VerifyOtpRequest.js +24 -0
- package/bin/retailWizard/dtos/requests/WelcomeTopupRequest.d.ts +7 -0
- package/bin/retailWizard/dtos/requests/WelcomeTopupRequest.js +27 -0
- package/bin/retailWizard/enums/BeneficiaryRelationEnum.d.ts +18 -0
- package/bin/retailWizard/enums/BeneficiaryRelationEnum.js +22 -0
- package/bin/retailWizard/enums/CentralSyncStatusEnum.d.ts +14 -0
- package/bin/retailWizard/enums/CentralSyncStatusEnum.js +18 -0
- package/bin/retailWizard/enums/ExternalProviderEnum.d.ts +7 -0
- package/bin/retailWizard/enums/ExternalProviderEnum.js +11 -0
- package/bin/retailWizard/enums/FiadoPhoneStatusEnum.d.ts +15 -0
- package/bin/retailWizard/enums/FiadoPhoneStatusEnum.js +19 -0
- package/bin/retailWizard/enums/OccupationEnum.d.ts +13 -0
- package/bin/retailWizard/enums/OccupationEnum.js +17 -0
- package/bin/retailWizard/enums/OtpPurposeEnum.d.ts +10 -0
- package/bin/retailWizard/enums/OtpPurposeEnum.js +14 -0
- package/bin/retailWizard/enums/PaymentMethodEnum.d.ts +12 -0
- package/bin/retailWizard/enums/PaymentMethodEnum.js +16 -0
- package/bin/retailWizard/enums/PendingReasonEnum.d.ts +21 -0
- package/bin/retailWizard/enums/PendingReasonEnum.js +25 -0
- package/bin/retailWizard/enums/ProspectStatusEnum.d.ts +16 -0
- package/bin/retailWizard/enums/ProspectStatusEnum.js +20 -0
- package/bin/retailWizard/enums/SalePaymentMethodEnum.d.ts +6 -0
- package/bin/retailWizard/enums/SalePaymentMethodEnum.js +10 -0
- package/bin/retailWizard/enums/SaleStatusEnum.d.ts +10 -0
- package/bin/retailWizard/enums/SaleStatusEnum.js +14 -0
- package/bin/retailWizard/enums/SaleTypeEnum.d.ts +13 -0
- package/bin/retailWizard/enums/SaleTypeEnum.js +17 -0
- package/bin/retailWizard/enums/WizardStateEnum.d.ts +18 -0
- package/bin/retailWizard/enums/WizardStateEnum.js +22 -0
- package/bin/retailWizard/enums/WizardStepEnum.d.ts +13 -0
- package/bin/retailWizard/enums/WizardStepEnum.js +17 -0
- package/bin/retailWizard/events/SaleCancelledV1.d.ts +13 -0
- package/bin/retailWizard/events/SaleCancelledV1.js +2 -0
- package/bin/retailWizard/events/SaleCompletedV1.d.ts +17 -0
- package/bin/retailWizard/events/SaleCompletedV1.js +2 -0
- package/bin/retailWizard/events/SessionExpiredV1.d.ts +10 -0
- package/bin/retailWizard/events/SessionExpiredV1.js +2 -0
- package/bin/retailWizard/index.d.ts +54 -0
- package/bin/retailWizard/index.js +76 -0
- package/package.json +1 -1
- package/src/helpers/constans/regex.ts +16 -0
- package/src/index.ts +6 -0
- package/src/retailCustomer/dtos/KycReview.ts +41 -0
- package/src/retailCustomer/dtos/RetailCustomer.ts +132 -0
- package/src/retailCustomer/dtos/requests/AccountResultRequest.ts +34 -0
- package/src/retailCustomer/dtos/requests/CreateCustomerRequest.ts +28 -0
- package/src/retailCustomer/dtos/requests/KycReviewRequest.ts +18 -0
- package/src/retailCustomer/dtos/requests/UpdateCustomerRequest.ts +30 -0
- package/src/retailCustomer/dtos/requests/UpsertCustomerFromKycRequest.ts +79 -0
- package/src/retailCustomer/dtos/responses/Customer360Response.ts +37 -0
- package/src/retailCustomer/dtos/responses/CustomerResponse.ts +31 -0
- package/src/retailCustomer/enums/AccountStatusEnum.ts +9 -0
- package/src/retailCustomer/enums/KycModalityEnum.ts +9 -0
- package/src/retailCustomer/enums/KycReviewResultEnum.ts +8 -0
- package/src/retailCustomer/enums/RetailKycStatusEnum.ts +13 -0
- package/src/retailCustomer/events/CustomerCreatedV1.ts +7 -0
- package/src/retailCustomer/events/CustomerKycVerifiedV1.ts +28 -0
- package/src/retailCustomer/events/CustomerUpdatedV1.ts +9 -0
- package/src/retailCustomer/events/KycApprovedByComplianceV1.ts +12 -0
- package/src/retailCustomer/events/KycRejectedByComplianceV1.ts +12 -0
- package/src/retailCustomer/index.ts +27 -0
- package/src/retailOrg/dtos/requests/ProvisionRetailUserRequest.ts +82 -0
- package/src/retailOrg/index.ts +1 -0
- package/src/retailWizard/dtos/OtpVerification.ts +25 -0
- package/src/retailWizard/dtos/PaginatedResult.ts +6 -0
- package/src/retailWizard/dtos/Prospect.ts +33 -0
- package/src/retailWizard/dtos/ProspectNewCustomer.ts +13 -0
- package/src/retailWizard/dtos/Sale.ts +43 -0
- package/src/retailWizard/dtos/SalePaymentDetail.ts +33 -0
- package/src/retailWizard/dtos/WizardBeneficiary.ts +31 -0
- package/src/retailWizard/dtos/WizardConsents.ts +29 -0
- package/src/retailWizard/dtos/WizardPayment.ts +26 -0
- package/src/retailWizard/dtos/WizardSession.ts +68 -0
- package/src/retailWizard/dtos/WizardWelcome.ts +31 -0
- package/src/retailWizard/dtos/requests/AddProductRequest.ts +22 -0
- package/src/retailWizard/dtos/requests/AppInstallLinkRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/CancelSaleRequest.ts +14 -0
- package/src/retailWizard/dtos/requests/CancelSessionRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/CompleteSaleRequest.ts +15 -0
- package/src/retailWizard/dtos/requests/ConfirmAddressRequest.ts +22 -0
- package/src/retailWizard/dtos/requests/ConsentsRequest.ts +21 -0
- package/src/retailWizard/dtos/requests/CreateProspectRequest.ts +47 -0
- package/src/retailWizard/dtos/requests/DeleteProductRequest.ts +9 -0
- package/src/retailWizard/dtos/requests/ExternalReferralRequest.ts +13 -0
- package/src/retailWizard/dtos/requests/KycConfirmRequest.ts +23 -0
- package/src/retailWizard/dtos/requests/KycManualRequest.ts +17 -0
- package/src/retailWizard/dtos/requests/KycPrepareRequest.ts +16 -0
- package/src/retailWizard/dtos/requests/MarkPcfCardDeliveredRequest.ts +9 -0
- package/src/retailWizard/dtos/requests/MarkProspectLostRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/OccupationRequest.ts +20 -0
- package/src/retailWizard/dtos/requests/RegisterPaymentRequest.ts +26 -0
- package/src/retailWizard/dtos/requests/ResendOtpRequest.ts +14 -0
- package/src/retailWizard/dtos/requests/SaveBeneficiaryRequest.ts +11 -0
- package/src/retailWizard/dtos/requests/SetPaymentMethodRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/SignBeneficiaryAnnexRequest.ts +9 -0
- package/src/retailWizard/dtos/requests/SkipOtpRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/StartSessionRequest.ts +21 -0
- package/src/retailWizard/dtos/requests/UpdateProspectRequest.ts +28 -0
- package/src/retailWizard/dtos/requests/VerifyOtpRequest.ts +10 -0
- package/src/retailWizard/dtos/requests/WelcomeTopupRequest.ts +13 -0
- package/src/retailWizard/enums/BeneficiaryRelationEnum.ts +18 -0
- package/src/retailWizard/enums/CentralSyncStatusEnum.ts +14 -0
- package/src/retailWizard/enums/ExternalProviderEnum.ts +7 -0
- package/src/retailWizard/enums/FiadoPhoneStatusEnum.ts +15 -0
- package/src/retailWizard/enums/OccupationEnum.ts +13 -0
- package/src/retailWizard/enums/OtpPurposeEnum.ts +10 -0
- package/src/retailWizard/enums/PaymentMethodEnum.ts +12 -0
- package/src/retailWizard/enums/PendingReasonEnum.ts +21 -0
- package/src/retailWizard/enums/ProspectStatusEnum.ts +16 -0
- package/src/retailWizard/enums/SalePaymentMethodEnum.ts +6 -0
- package/src/retailWizard/enums/SaleStatusEnum.ts +10 -0
- package/src/retailWizard/enums/SaleTypeEnum.ts +13 -0
- package/src/retailWizard/enums/WizardStateEnum.ts +18 -0
- package/src/retailWizard/enums/WizardStepEnum.ts +13 -0
- package/src/retailWizard/events/SaleCancelledV1.ts +13 -0
- package/src/retailWizard/events/SaleCompletedV1.ts +17 -0
- package/src/retailWizard/events/SessionExpiredV1.ts +10 -0
- package/src/retailWizard/index.ts +65 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de una venta. SureKeep Fase 2 — pista Retail.
|
|
3
|
+
*
|
|
4
|
+
* COMPLETED - Venta cerrada.
|
|
5
|
+
* CANCELLED - Venta cancelada (flujo C; `cancelReason` obligatorio).
|
|
6
|
+
*/
|
|
7
|
+
export declare enum SaleStatusEnum {
|
|
8
|
+
COMPLETED = "COMPLETED",
|
|
9
|
+
CANCELLED = "CANCELLED"
|
|
10
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SaleStatusEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de una venta. SureKeep Fase 2 — pista Retail.
|
|
6
|
+
*
|
|
7
|
+
* COMPLETED - Venta cerrada.
|
|
8
|
+
* CANCELLED - Venta cancelada (flujo C; `cancelReason` obligatorio).
|
|
9
|
+
*/
|
|
10
|
+
var SaleStatusEnum;
|
|
11
|
+
(function (SaleStatusEnum) {
|
|
12
|
+
SaleStatusEnum["COMPLETED"] = "COMPLETED";
|
|
13
|
+
SaleStatusEnum["CANCELLED"] = "CANCELLED";
|
|
14
|
+
})(SaleStatusEnum || (exports.SaleStatusEnum = SaleStatusEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipo de venta (v0.1 `sale_type`; las 4 externas colapsan en EXTERNAL_REFERRAL + provider).
|
|
3
|
+
* SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*
|
|
5
|
+
* CASH - Venta de contado.
|
|
6
|
+
* EXTERNAL_REFERRAL - Derivación a proveedor externo.
|
|
7
|
+
* CREDIT - Crédito SureKeep (F3).
|
|
8
|
+
*/
|
|
9
|
+
export declare enum SaleTypeEnum {
|
|
10
|
+
CASH = "CASH",
|
|
11
|
+
EXTERNAL_REFERRAL = "EXTERNAL_REFERRAL",
|
|
12
|
+
CREDIT = "CREDIT"
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SaleTypeEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tipo de venta (v0.1 `sale_type`; las 4 externas colapsan en EXTERNAL_REFERRAL + provider).
|
|
6
|
+
* SureKeep Fase 2 — pista Retail.
|
|
7
|
+
*
|
|
8
|
+
* CASH - Venta de contado.
|
|
9
|
+
* EXTERNAL_REFERRAL - Derivación a proveedor externo.
|
|
10
|
+
* CREDIT - Crédito SureKeep (F3).
|
|
11
|
+
*/
|
|
12
|
+
var SaleTypeEnum;
|
|
13
|
+
(function (SaleTypeEnum) {
|
|
14
|
+
SaleTypeEnum["CASH"] = "CASH";
|
|
15
|
+
SaleTypeEnum["EXTERNAL_REFERRAL"] = "EXTERNAL_REFERRAL";
|
|
16
|
+
SaleTypeEnum["CREDIT"] = "CREDIT";
|
|
17
|
+
})(SaleTypeEnum || (exports.SaleTypeEnum = SaleTypeEnum = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estado de la SAGA del wizard de venta de contado. SureKeep Fase 2 — pista Retail.
|
|
3
|
+
*
|
|
4
|
+
* ACTIVE - Sesión en curso.
|
|
5
|
+
* PAUSED_EXTERNAL_REFERRAL - Pausada por derivación a proveedor externo.
|
|
6
|
+
* PAUSED_NO_TOPUP - El cliente salió sin recarga de bienvenida (M1 §1087).
|
|
7
|
+
* COMPLETED - Venta cerrada.
|
|
8
|
+
* EXPIRED - Expiró por inactividad (TTL DDB ~24h).
|
|
9
|
+
* CANCELLED - Cancelada (incluye KYC PLD).
|
|
10
|
+
*/
|
|
11
|
+
export declare enum WizardStateEnum {
|
|
12
|
+
ACTIVE = "ACTIVE",
|
|
13
|
+
PAUSED_EXTERNAL_REFERRAL = "PAUSED_EXTERNAL_REFERRAL",
|
|
14
|
+
PAUSED_NO_TOPUP = "PAUSED_NO_TOPUP",
|
|
15
|
+
COMPLETED = "COMPLETED",
|
|
16
|
+
EXPIRED = "EXPIRED",
|
|
17
|
+
CANCELLED = "CANCELLED"
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WizardStateEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estado de la SAGA del wizard de venta de contado. SureKeep Fase 2 — pista Retail.
|
|
6
|
+
*
|
|
7
|
+
* ACTIVE - Sesión en curso.
|
|
8
|
+
* PAUSED_EXTERNAL_REFERRAL - Pausada por derivación a proveedor externo.
|
|
9
|
+
* PAUSED_NO_TOPUP - El cliente salió sin recarga de bienvenida (M1 §1087).
|
|
10
|
+
* COMPLETED - Venta cerrada.
|
|
11
|
+
* EXPIRED - Expiró por inactividad (TTL DDB ~24h).
|
|
12
|
+
* CANCELLED - Cancelada (incluye KYC PLD).
|
|
13
|
+
*/
|
|
14
|
+
var WizardStateEnum;
|
|
15
|
+
(function (WizardStateEnum) {
|
|
16
|
+
WizardStateEnum["ACTIVE"] = "ACTIVE";
|
|
17
|
+
WizardStateEnum["PAUSED_EXTERNAL_REFERRAL"] = "PAUSED_EXTERNAL_REFERRAL";
|
|
18
|
+
WizardStateEnum["PAUSED_NO_TOPUP"] = "PAUSED_NO_TOPUP";
|
|
19
|
+
WizardStateEnum["COMPLETED"] = "COMPLETED";
|
|
20
|
+
WizardStateEnum["EXPIRED"] = "EXPIRED";
|
|
21
|
+
WizardStateEnum["CANCELLED"] = "CANCELLED";
|
|
22
|
+
})(WizardStateEnum || (exports.WizardStateEnum = WizardStateEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Paso fino del wizard (v0.1 `phase` 1-3 → paso fino S01..S10). SureKeep Fase 2 — pista Retail. */
|
|
2
|
+
export declare enum WizardStepEnum {
|
|
3
|
+
S01 = "S01",
|
|
4
|
+
S02 = "S02",
|
|
5
|
+
S03 = "S03",
|
|
6
|
+
S04 = "S04",
|
|
7
|
+
S05 = "S05",
|
|
8
|
+
S06 = "S06",
|
|
9
|
+
S07 = "S07",
|
|
10
|
+
S08 = "S08",
|
|
11
|
+
S09 = "S09",
|
|
12
|
+
S10 = "S10"
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WizardStepEnum = void 0;
|
|
4
|
+
/** Paso fino del wizard (v0.1 `phase` 1-3 → paso fino S01..S10). SureKeep Fase 2 — pista Retail. */
|
|
5
|
+
var WizardStepEnum;
|
|
6
|
+
(function (WizardStepEnum) {
|
|
7
|
+
WizardStepEnum["S01"] = "S01";
|
|
8
|
+
WizardStepEnum["S02"] = "S02";
|
|
9
|
+
WizardStepEnum["S03"] = "S03";
|
|
10
|
+
WizardStepEnum["S04"] = "S04";
|
|
11
|
+
WizardStepEnum["S05"] = "S05";
|
|
12
|
+
WizardStepEnum["S06"] = "S06";
|
|
13
|
+
WizardStepEnum["S07"] = "S07";
|
|
14
|
+
WizardStepEnum["S08"] = "S08";
|
|
15
|
+
WizardStepEnum["S09"] = "S09";
|
|
16
|
+
WizardStepEnum["S10"] = "S10";
|
|
17
|
+
})(WizardStepEnum || (exports.WizardStepEnum = WizardStepEnum = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emitido al cancelar una venta (flujo C). Se escribe al outbox transaccional; drena a la cola Central.
|
|
3
|
+
* SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*/
|
|
5
|
+
export interface SaleCancelledV1 {
|
|
6
|
+
saleId: string;
|
|
7
|
+
folio: string;
|
|
8
|
+
retailCustomerId: string;
|
|
9
|
+
imei: string | null;
|
|
10
|
+
cancelReason: string;
|
|
11
|
+
cancelledAt: string;
|
|
12
|
+
occurredAt: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emitido al cerrar una venta (flujo 09). Se escribe al outbox transaccional en la MISMA
|
|
3
|
+
* `TransactWriteItems` del cierre; drena a la cola Central + datalake. Solo identificadores
|
|
4
|
+
* operacionales (nunca PII). SureKeep Fase 2 — pista Retail.
|
|
5
|
+
*/
|
|
6
|
+
export interface SaleCompletedV1 {
|
|
7
|
+
saleId: string;
|
|
8
|
+
folio: string;
|
|
9
|
+
retailerId: string;
|
|
10
|
+
storeId: string;
|
|
11
|
+
retailCustomerId: string;
|
|
12
|
+
sku: string;
|
|
13
|
+
imei: string | null;
|
|
14
|
+
amountCents: number;
|
|
15
|
+
soldAt: string;
|
|
16
|
+
occurredAt: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emitido cuando una sesión del wizard expira por inactividad (barrido del scheduler, TTL DDB ~24h).
|
|
3
|
+
* Libera la reserva del silo si la hubiera. SureKeep Fase 2 — pista Retail.
|
|
4
|
+
*/
|
|
5
|
+
export interface SessionExpiredV1 {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
phone: string;
|
|
8
|
+
reservedImei: string | null;
|
|
9
|
+
occurredAt: string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export * from './enums/WizardStateEnum';
|
|
2
|
+
export * from './enums/WizardStepEnum';
|
|
3
|
+
export * from './enums/OtpPurposeEnum';
|
|
4
|
+
export * from './enums/FiadoPhoneStatusEnum';
|
|
5
|
+
export * from './enums/PaymentMethodEnum';
|
|
6
|
+
export * from './enums/ExternalProviderEnum';
|
|
7
|
+
export * from './enums/SaleTypeEnum';
|
|
8
|
+
export * from './enums/SalePaymentMethodEnum';
|
|
9
|
+
export * from './enums/SaleStatusEnum';
|
|
10
|
+
export * from './enums/CentralSyncStatusEnum';
|
|
11
|
+
export * from './enums/ProspectStatusEnum';
|
|
12
|
+
export * from './enums/PendingReasonEnum';
|
|
13
|
+
export * from './enums/OccupationEnum';
|
|
14
|
+
export * from './enums/BeneficiaryRelationEnum';
|
|
15
|
+
export * from './dtos/WizardConsents';
|
|
16
|
+
export * from './dtos/WizardPayment';
|
|
17
|
+
export * from './dtos/WizardWelcome';
|
|
18
|
+
export * from './dtos/SalePaymentDetail';
|
|
19
|
+
export * from './dtos/ProspectNewCustomer';
|
|
20
|
+
export * from './dtos/WizardBeneficiary';
|
|
21
|
+
export * from './dtos/WizardSession';
|
|
22
|
+
export * from './dtos/OtpVerification';
|
|
23
|
+
export * from './dtos/Sale';
|
|
24
|
+
export * from './dtos/Prospect';
|
|
25
|
+
export * from './dtos/PaginatedResult';
|
|
26
|
+
export * from './dtos/requests/StartSessionRequest';
|
|
27
|
+
export * from './dtos/requests/CancelSessionRequest';
|
|
28
|
+
export * from './dtos/requests/VerifyOtpRequest';
|
|
29
|
+
export * from './dtos/requests/ResendOtpRequest';
|
|
30
|
+
export * from './dtos/requests/SkipOtpRequest';
|
|
31
|
+
export * from './dtos/requests/ConsentsRequest';
|
|
32
|
+
export * from './dtos/requests/KycPrepareRequest';
|
|
33
|
+
export * from './dtos/requests/KycConfirmRequest';
|
|
34
|
+
export * from './dtos/requests/KycManualRequest';
|
|
35
|
+
export * from './dtos/requests/OccupationRequest';
|
|
36
|
+
export * from './dtos/requests/AddProductRequest';
|
|
37
|
+
export * from './dtos/requests/DeleteProductRequest';
|
|
38
|
+
export * from './dtos/requests/SetPaymentMethodRequest';
|
|
39
|
+
export * from './dtos/requests/ExternalReferralRequest';
|
|
40
|
+
export * from './dtos/requests/RegisterPaymentRequest';
|
|
41
|
+
export * from './dtos/requests/CompleteSaleRequest';
|
|
42
|
+
export * from './dtos/requests/AppInstallLinkRequest';
|
|
43
|
+
export * from './dtos/requests/MarkPcfCardDeliveredRequest';
|
|
44
|
+
export * from './dtos/requests/ConfirmAddressRequest';
|
|
45
|
+
export * from './dtos/requests/SaveBeneficiaryRequest';
|
|
46
|
+
export * from './dtos/requests/SignBeneficiaryAnnexRequest';
|
|
47
|
+
export * from './dtos/requests/WelcomeTopupRequest';
|
|
48
|
+
export * from './dtos/requests/CreateProspectRequest';
|
|
49
|
+
export * from './dtos/requests/UpdateProspectRequest';
|
|
50
|
+
export * from './dtos/requests/MarkProspectLostRequest';
|
|
51
|
+
export * from './dtos/requests/CancelSaleRequest';
|
|
52
|
+
export * from './events/SaleCompletedV1';
|
|
53
|
+
export * from './events/SaleCancelledV1';
|
|
54
|
+
export * from './events/SessionExpiredV1';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Enums
|
|
18
|
+
__exportStar(require("./enums/WizardStateEnum"), exports);
|
|
19
|
+
__exportStar(require("./enums/WizardStepEnum"), exports);
|
|
20
|
+
__exportStar(require("./enums/OtpPurposeEnum"), exports);
|
|
21
|
+
__exportStar(require("./enums/FiadoPhoneStatusEnum"), exports);
|
|
22
|
+
__exportStar(require("./enums/PaymentMethodEnum"), exports);
|
|
23
|
+
__exportStar(require("./enums/ExternalProviderEnum"), exports);
|
|
24
|
+
__exportStar(require("./enums/SaleTypeEnum"), exports);
|
|
25
|
+
__exportStar(require("./enums/SalePaymentMethodEnum"), exports);
|
|
26
|
+
__exportStar(require("./enums/SaleStatusEnum"), exports);
|
|
27
|
+
__exportStar(require("./enums/CentralSyncStatusEnum"), exports);
|
|
28
|
+
__exportStar(require("./enums/ProspectStatusEnum"), exports);
|
|
29
|
+
__exportStar(require("./enums/PendingReasonEnum"), exports);
|
|
30
|
+
__exportStar(require("./enums/OccupationEnum"), exports);
|
|
31
|
+
__exportStar(require("./enums/BeneficiaryRelationEnum"), exports);
|
|
32
|
+
// DTOs anidados
|
|
33
|
+
__exportStar(require("./dtos/WizardConsents"), exports);
|
|
34
|
+
__exportStar(require("./dtos/WizardPayment"), exports);
|
|
35
|
+
__exportStar(require("./dtos/WizardWelcome"), exports);
|
|
36
|
+
__exportStar(require("./dtos/SalePaymentDetail"), exports);
|
|
37
|
+
__exportStar(require("./dtos/ProspectNewCustomer"), exports);
|
|
38
|
+
__exportStar(require("./dtos/WizardBeneficiary"), exports);
|
|
39
|
+
// Entidades principales (shapes de estado/persistencia — planas)
|
|
40
|
+
__exportStar(require("./dtos/WizardSession"), exports);
|
|
41
|
+
__exportStar(require("./dtos/OtpVerification"), exports);
|
|
42
|
+
__exportStar(require("./dtos/Sale"), exports);
|
|
43
|
+
__exportStar(require("./dtos/Prospect"), exports);
|
|
44
|
+
// Paginación genérica
|
|
45
|
+
__exportStar(require("./dtos/PaginatedResult"), exports);
|
|
46
|
+
// Request DTOs (input validado por endpoint)
|
|
47
|
+
__exportStar(require("./dtos/requests/StartSessionRequest"), exports);
|
|
48
|
+
__exportStar(require("./dtos/requests/CancelSessionRequest"), exports);
|
|
49
|
+
__exportStar(require("./dtos/requests/VerifyOtpRequest"), exports);
|
|
50
|
+
__exportStar(require("./dtos/requests/ResendOtpRequest"), exports);
|
|
51
|
+
__exportStar(require("./dtos/requests/SkipOtpRequest"), exports);
|
|
52
|
+
__exportStar(require("./dtos/requests/ConsentsRequest"), exports);
|
|
53
|
+
__exportStar(require("./dtos/requests/KycPrepareRequest"), exports);
|
|
54
|
+
__exportStar(require("./dtos/requests/KycConfirmRequest"), exports);
|
|
55
|
+
__exportStar(require("./dtos/requests/KycManualRequest"), exports);
|
|
56
|
+
__exportStar(require("./dtos/requests/OccupationRequest"), exports);
|
|
57
|
+
__exportStar(require("./dtos/requests/AddProductRequest"), exports);
|
|
58
|
+
__exportStar(require("./dtos/requests/DeleteProductRequest"), exports);
|
|
59
|
+
__exportStar(require("./dtos/requests/SetPaymentMethodRequest"), exports);
|
|
60
|
+
__exportStar(require("./dtos/requests/ExternalReferralRequest"), exports);
|
|
61
|
+
__exportStar(require("./dtos/requests/RegisterPaymentRequest"), exports);
|
|
62
|
+
__exportStar(require("./dtos/requests/CompleteSaleRequest"), exports);
|
|
63
|
+
__exportStar(require("./dtos/requests/AppInstallLinkRequest"), exports);
|
|
64
|
+
__exportStar(require("./dtos/requests/MarkPcfCardDeliveredRequest"), exports);
|
|
65
|
+
__exportStar(require("./dtos/requests/ConfirmAddressRequest"), exports);
|
|
66
|
+
__exportStar(require("./dtos/requests/SaveBeneficiaryRequest"), exports);
|
|
67
|
+
__exportStar(require("./dtos/requests/SignBeneficiaryAnnexRequest"), exports);
|
|
68
|
+
__exportStar(require("./dtos/requests/WelcomeTopupRequest"), exports);
|
|
69
|
+
__exportStar(require("./dtos/requests/CreateProspectRequest"), exports);
|
|
70
|
+
__exportStar(require("./dtos/requests/UpdateProspectRequest"), exports);
|
|
71
|
+
__exportStar(require("./dtos/requests/MarkProspectLostRequest"), exports);
|
|
72
|
+
__exportStar(require("./dtos/requests/CancelSaleRequest"), exports);
|
|
73
|
+
// Contratos de eventos (PascalCase + sufijo V1)
|
|
74
|
+
__exportStar(require("./events/SaleCompletedV1"), exports);
|
|
75
|
+
__exportStar(require("./events/SaleCancelledV1"), exports);
|
|
76
|
+
__exportStar(require("./events/SessionExpiredV1"), exports);
|
package/package.json
CHANGED
|
@@ -7,6 +7,22 @@ export const regexIso8601 = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|
|
|
|
7
7
|
// Expresión regular para validar un número de teléfono
|
|
8
8
|
export const regexPhoneNumber = /^\+1\d{10}$|^\+52\d{10}$/;
|
|
9
9
|
|
|
10
|
+
// Fecha ISO 8601 aceptando fecha sola (YYYY-MM-DD) o fecha-hora — p. ej. fecha de nacimiento del OCR,
|
|
11
|
+
// que puede venir sin hora. Complementa a `regexIso8601` (estricto date-time, usado en createdAt/updatedAt).
|
|
12
|
+
// Usado por los dominios retail F2 (retailCustomer). SureKeep Fase 2 — pista Retail.
|
|
13
|
+
export const regexIso8601Date =
|
|
14
|
+
/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-]\d{2}:\d{2})?)?$/;
|
|
15
|
+
|
|
16
|
+
// CURP mexicano (18 chars): 4 letras + 6 dígitos de fecha + H/M + 5 letras entidad/consonantes + homoclave.
|
|
17
|
+
// Se aplica SIEMPRE sobre el CURP en MAYÚSCULAS (normalización previa en el boundary).
|
|
18
|
+
// Usado por retailCustomer (upsert-from-kyc). SureKeep Fase 2 — pista Retail.
|
|
19
|
+
export const regexCurp =
|
|
20
|
+
/^[A-Z][AEIOUX][A-Z]{2}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])[HM][A-Z]{2}[B-DF-HJ-NP-TV-Z]{3}[A-Z\d]\d$/;
|
|
21
|
+
|
|
22
|
+
// Teléfono MX: exactamente 10 dígitos (se normalizan espacios/guiones antes de validar).
|
|
23
|
+
// Usado por retailCustomer y retailWizard. SureKeep Fase 2 — pista Retail.
|
|
24
|
+
export const regexPhoneMx = /^\d{10}$/;
|
|
25
|
+
|
|
10
26
|
|
|
11
27
|
|
|
12
28
|
|
package/src/index.ts
CHANGED
|
@@ -109,6 +109,12 @@ export * as RetailCatalog from './retailCatalog';
|
|
|
109
109
|
// RetailCards: DTOs/enums del lambda retail-cards-business (comp 06 — tarjetas físicas PCF:
|
|
110
110
|
// lotes, stock y asignación; SureKeep Fase 1 — pista Retail).
|
|
111
111
|
export * as RetailCards from './retailCards';
|
|
112
|
+
// RetailCustomer: DTOs/enums del lambda retail-customer-business (comp 03 — cliente comprador:
|
|
113
|
+
// identidad Fiado, cuenta PCF async, domicilio y ciclo KYC con revisión de Cumplimiento; SureKeep Fase 2 — pista Retail).
|
|
114
|
+
export * as RetailCustomer from './retailCustomer';
|
|
115
|
+
// RetailWizard: DTOs/enums del lambda retail-wizard-business (comp 04 — wizard de venta de contado:
|
|
116
|
+
// saga de sesión, OTP, KYC, venta y prospectos; SureKeep Fase 2 — pista Retail).
|
|
117
|
+
export * as RetailWizard from './retailWizard';
|
|
112
118
|
// LoanConfig: DTOs/enums del lambda loan-config-business (comp 09 — parámetros operativos del SOFOM).
|
|
113
119
|
export * as LoanConfig from './loanConfig';
|
|
114
120
|
// LoanOfferings: DTOs/enums del lambda loan-offerings-business (comp 07 — planes de crédito,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsEnum, IsString, Matches } from 'class-validator';
|
|
3
|
+
import { regexIso8601 } from '../../helpers/constans/regex';
|
|
4
|
+
import { KycReviewResultEnum } from '../enums/KycReviewResultEnum';
|
|
5
|
+
import { RetailKycStatusEnum } from '../enums/RetailKycStatusEnum';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Aprobación/rechazo manual justificado del oficial de Cumplimiento (D21). Se persiste embebido en
|
|
9
|
+
* `RetailCustomer.kycReview` y se espeja a kyc-verifications (Fiado) + AuditTrail en la misma TX.
|
|
10
|
+
* SureKeep Fase 2 — pista Retail.
|
|
11
|
+
*/
|
|
12
|
+
export class KycReview {
|
|
13
|
+
@Expose()
|
|
14
|
+
@IsEnum(KycReviewResultEnum)
|
|
15
|
+
result!: KycReviewResultEnum;
|
|
16
|
+
|
|
17
|
+
/** Email del oficial (tomado del JWT). */
|
|
18
|
+
@Expose()
|
|
19
|
+
@IsString()
|
|
20
|
+
reviewedBy!: string;
|
|
21
|
+
|
|
22
|
+
@Expose()
|
|
23
|
+
@IsString()
|
|
24
|
+
@Matches(regexIso8601, { message: 'reviewedAt debe ser una fecha ISO 8601' })
|
|
25
|
+
reviewedAt!: string;
|
|
26
|
+
|
|
27
|
+
/** Justificación obligatoria de la decisión (queda en AuditTrail). */
|
|
28
|
+
@Expose()
|
|
29
|
+
@IsString()
|
|
30
|
+
justification!: string;
|
|
31
|
+
|
|
32
|
+
/** Correlación con la verificación de Metamap en kyc-verifications. */
|
|
33
|
+
@Expose()
|
|
34
|
+
@IsString()
|
|
35
|
+
metamapVerificationId!: string;
|
|
36
|
+
|
|
37
|
+
/** Estado de KYC previo a la resolución manual. */
|
|
38
|
+
@Expose()
|
|
39
|
+
@IsEnum(RetailKycStatusEnum)
|
|
40
|
+
previousStatus!: RetailKycStatusEnum;
|
|
41
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Expose, Type } from 'class-transformer';
|
|
2
|
+
import { IsBoolean, IsEnum, IsIn, IsOptional, IsString, Matches, ValidateNested } from 'class-validator';
|
|
3
|
+
import { regexIso8601, regexIso8601Date } from '../../helpers/constans/regex';
|
|
4
|
+
import { AddressBase } from '../../address/dtos/AddressBase';
|
|
5
|
+
import { AccountStatusEnum } from '../enums/AccountStatusEnum';
|
|
6
|
+
import { KycModalityEnum } from '../enums/KycModalityEnum';
|
|
7
|
+
import { RetailKycStatusEnum } from '../enums/RetailKycStatusEnum';
|
|
8
|
+
import { KycReview } from './KycReview';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* RetailCustomer — el comprador de la pista Retail (owner: retail-customer-business). Nace en F1 §3.5
|
|
12
|
+
* y se amplía en F2: vínculo con la identidad Fiado, cuenta PCF (apertura async, D35), domicilio
|
|
13
|
+
* estructurado (copia operativa del silo), y el ciclo de KYC con revisión manual de Cumplimiento.
|
|
14
|
+
* SureKeep Fase 2 — pista Retail.
|
|
15
|
+
*/
|
|
16
|
+
export class RetailCustomer {
|
|
17
|
+
@Expose()
|
|
18
|
+
@IsString()
|
|
19
|
+
retailCustomerId!: string;
|
|
20
|
+
|
|
21
|
+
@Expose()
|
|
22
|
+
@IsString()
|
|
23
|
+
retailerId!: string;
|
|
24
|
+
|
|
25
|
+
@Expose()
|
|
26
|
+
@IsString()
|
|
27
|
+
name!: string;
|
|
28
|
+
|
|
29
|
+
@Expose()
|
|
30
|
+
@IsString()
|
|
31
|
+
phone!: string;
|
|
32
|
+
|
|
33
|
+
@Expose()
|
|
34
|
+
@IsString()
|
|
35
|
+
curp!: string;
|
|
36
|
+
|
|
37
|
+
/** Fecha de nacimiento (ISO 8601, admite fecha sola); se completa con el OCR del KYC. */
|
|
38
|
+
@Expose()
|
|
39
|
+
@IsOptional()
|
|
40
|
+
@IsString()
|
|
41
|
+
@Matches(regexIso8601Date, { message: 'birthDate debe ser una fecha ISO 8601' })
|
|
42
|
+
birthDate?: string;
|
|
43
|
+
|
|
44
|
+
@Expose()
|
|
45
|
+
@IsOptional()
|
|
46
|
+
@IsString()
|
|
47
|
+
fiadoDirectoryId!: string | null;
|
|
48
|
+
|
|
49
|
+
@Expose()
|
|
50
|
+
@IsOptional()
|
|
51
|
+
@IsString()
|
|
52
|
+
fiadoPeopleId!: string | null;
|
|
53
|
+
|
|
54
|
+
@Expose()
|
|
55
|
+
@IsOptional()
|
|
56
|
+
@IsString()
|
|
57
|
+
pcfAccountId!: string | null;
|
|
58
|
+
|
|
59
|
+
@Expose()
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@IsString()
|
|
62
|
+
pcfClabe!: string | null;
|
|
63
|
+
|
|
64
|
+
@Expose()
|
|
65
|
+
@IsOptional()
|
|
66
|
+
@IsIn([1, 2])
|
|
67
|
+
pcfAccountLevel!: 1 | 2 | null;
|
|
68
|
+
|
|
69
|
+
@Expose()
|
|
70
|
+
@IsOptional()
|
|
71
|
+
@IsEnum(AccountStatusEnum)
|
|
72
|
+
accountStatus!: AccountStatusEnum | null;
|
|
73
|
+
|
|
74
|
+
@Expose()
|
|
75
|
+
@IsOptional()
|
|
76
|
+
@IsString()
|
|
77
|
+
failReason!: string | null;
|
|
78
|
+
|
|
79
|
+
@Expose()
|
|
80
|
+
@IsBoolean()
|
|
81
|
+
welcomeAccredited!: boolean;
|
|
82
|
+
|
|
83
|
+
// TD-ADDRESSBASE-OCR: por decisión de Andrés (2026-07) el domicilio reusa el `AddressBase` canónico
|
|
84
|
+
// de Fiado (`address/dtos/AddressBase`, espejo de Address_GT) tal cual manda el spec (componente 01 +
|
|
85
|
+
// modelo-datos F2). RIESGO detectado: `AddressBase` tiene ~12 campos requeridos (directoryId, tenantId,
|
|
86
|
+
// createdBy, typeOfAddressId, typeOfDirectoryId, provider, addressStatus, validFrom, isPrincipal,
|
|
87
|
+
// helpNeeded, countryId, country) que un domicilio de copia OCR-parcial puede NO llenar → con
|
|
88
|
+
// @ValidateNested esto puede RECHAZAR en runtime los payloads OCR de kyc/confirm y address/confirm.
|
|
89
|
+
// Se acepta ahora para apegarse al doc; ajustar después (posible tipo de dirección ligero para captura).
|
|
90
|
+
@Expose()
|
|
91
|
+
@IsOptional()
|
|
92
|
+
@ValidateNested()
|
|
93
|
+
@Type(() => AddressBase)
|
|
94
|
+
address!: AddressBase | null;
|
|
95
|
+
|
|
96
|
+
@Expose()
|
|
97
|
+
@IsBoolean()
|
|
98
|
+
addressConfirmed!: boolean;
|
|
99
|
+
|
|
100
|
+
@Expose()
|
|
101
|
+
@IsEnum(RetailKycStatusEnum)
|
|
102
|
+
kycStatus!: RetailKycStatusEnum;
|
|
103
|
+
|
|
104
|
+
@Expose()
|
|
105
|
+
@IsOptional()
|
|
106
|
+
@IsEnum(KycModalityEnum)
|
|
107
|
+
kycModality!: KycModalityEnum | null;
|
|
108
|
+
|
|
109
|
+
@Expose()
|
|
110
|
+
@IsOptional()
|
|
111
|
+
@ValidateNested()
|
|
112
|
+
@Type(() => KycReview)
|
|
113
|
+
kycReview!: KycReview | null;
|
|
114
|
+
|
|
115
|
+
@Expose()
|
|
116
|
+
@IsString()
|
|
117
|
+
@Matches(regexIso8601, { message: 'createdAt debe ser una fecha ISO 8601' })
|
|
118
|
+
createdAt!: string;
|
|
119
|
+
|
|
120
|
+
@Expose()
|
|
121
|
+
@IsString()
|
|
122
|
+
@Matches(regexIso8601, { message: 'updatedAt debe ser una fecha ISO 8601' })
|
|
123
|
+
updatedAt!: string;
|
|
124
|
+
|
|
125
|
+
@Expose()
|
|
126
|
+
@IsString()
|
|
127
|
+
createdBy!: string;
|
|
128
|
+
|
|
129
|
+
@Expose()
|
|
130
|
+
@IsString()
|
|
131
|
+
updatedBy!: string;
|
|
132
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsIn, IsNotEmpty, IsOptional, IsString, ValidateIf } from 'class-validator';
|
|
3
|
+
import { AccountStatusEnum } from '../../enums/AccountStatusEnum';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resultado de la apertura de cuenta async (D35) — lo escribe el consumer `account-inbound` al
|
|
7
|
+
* aterrizar el evento `AccountIssuanceCompleted`. OPEN llega con `pcfClabe`/`pcfAccountLevel`;
|
|
8
|
+
* FAILED llega con `failReason`. El endpoint SOLO acepta el resultado terminal (OPEN/FAILED), nunca
|
|
9
|
+
* el estado intermedio OPENING (ese lo setea el server en el upsert). SureKeep Fase 2 — pista Retail.
|
|
10
|
+
*/
|
|
11
|
+
export class AccountResultRequest {
|
|
12
|
+
// OPENING NO es un resultado válido del endpoint D35; solo el estado terminal OPEN/FAILED.
|
|
13
|
+
@Expose()
|
|
14
|
+
@IsIn([AccountStatusEnum.OPEN, AccountStatusEnum.FAILED])
|
|
15
|
+
status!: AccountStatusEnum;
|
|
16
|
+
|
|
17
|
+
// OPEN ⇒ pcfClabe obligatorio (la cuenta abierta sin CLABE es inconsistente). Para FAILED se omite
|
|
18
|
+
// (@ValidateIf desactiva los validators cuando status ≠ OPEN → queda opcional).
|
|
19
|
+
@Expose()
|
|
20
|
+
@ValidateIf((o: AccountResultRequest) => o.status === AccountStatusEnum.OPEN)
|
|
21
|
+
@IsString()
|
|
22
|
+
@IsNotEmpty({ message: 'pcfClabe es obligatorio cuando status es OPEN' })
|
|
23
|
+
pcfClabe?: string;
|
|
24
|
+
|
|
25
|
+
@Expose()
|
|
26
|
+
@IsOptional()
|
|
27
|
+
@IsIn([1, 2])
|
|
28
|
+
pcfAccountLevel?: 1 | 2;
|
|
29
|
+
|
|
30
|
+
@Expose()
|
|
31
|
+
@IsOptional()
|
|
32
|
+
@IsString()
|
|
33
|
+
failReason?: string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsOptional, IsString, Matches } from 'class-validator';
|
|
3
|
+
import { regexIso8601Date } from '../../../helpers/constans/regex';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Alta básica de un cliente retail (identidad comercial mínima; el KYC la enriquece después).
|
|
7
|
+
* SureKeep Fase 2 — pista Retail.
|
|
8
|
+
*/
|
|
9
|
+
export class CreateCustomerRequest {
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsString()
|
|
12
|
+
name!: string;
|
|
13
|
+
|
|
14
|
+
@Expose()
|
|
15
|
+
@IsString()
|
|
16
|
+
phone!: string;
|
|
17
|
+
|
|
18
|
+
@Expose()
|
|
19
|
+
@IsOptional()
|
|
20
|
+
@IsString()
|
|
21
|
+
curp?: string;
|
|
22
|
+
|
|
23
|
+
@Expose()
|
|
24
|
+
@IsOptional()
|
|
25
|
+
@IsString()
|
|
26
|
+
@Matches(regexIso8601Date, { message: 'birthDate debe ser una fecha ISO 8601' })
|
|
27
|
+
birthDate?: string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsEnum, IsString } from 'class-validator';
|
|
3
|
+
import { KycReviewResultEnum } from '../../enums/KycReviewResultEnum';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolución de la cola de Cumplimiento (D21): `POST /customers/:id/kyc-review`. La `justification`
|
|
7
|
+
* es OBLIGATORIA (queda en AuditTrail). `reviewedBy`/`reviewedAt` los pone el server.
|
|
8
|
+
* SureKeep Fase 2 — pista Retail.
|
|
9
|
+
*/
|
|
10
|
+
export class KycReviewRequest {
|
|
11
|
+
@Expose()
|
|
12
|
+
@IsEnum(KycReviewResultEnum)
|
|
13
|
+
result!: KycReviewResultEnum;
|
|
14
|
+
|
|
15
|
+
@Expose()
|
|
16
|
+
@IsString()
|
|
17
|
+
justification!: string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Expose } from 'class-transformer';
|
|
2
|
+
import { IsOptional, IsString, Matches } from 'class-validator';
|
|
3
|
+
import { regexIso8601Date } from '../../../helpers/constans/regex';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Edición de datos de contacto/PII del cliente (Cliente 360 del BO). Toda escritura de PII va a
|
|
7
|
+
* AuditTrail + PiiAccessLog en el lambda. SureKeep Fase 2 — pista Retail.
|
|
8
|
+
*/
|
|
9
|
+
export class UpdateCustomerRequest {
|
|
10
|
+
@Expose()
|
|
11
|
+
@IsOptional()
|
|
12
|
+
@IsString()
|
|
13
|
+
name?: string;
|
|
14
|
+
|
|
15
|
+
@Expose()
|
|
16
|
+
@IsOptional()
|
|
17
|
+
@IsString()
|
|
18
|
+
phone?: string;
|
|
19
|
+
|
|
20
|
+
@Expose()
|
|
21
|
+
@IsOptional()
|
|
22
|
+
@IsString()
|
|
23
|
+
curp?: string;
|
|
24
|
+
|
|
25
|
+
@Expose()
|
|
26
|
+
@IsOptional()
|
|
27
|
+
@IsString()
|
|
28
|
+
@Matches(regexIso8601Date, { message: 'birthDate debe ser una fecha ISO 8601' })
|
|
29
|
+
birthDate?: string;
|
|
30
|
+
}
|