@fiado/type-kit 3.303.0 → 3.305.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/bin/index.d.ts +1 -0
  2. package/bin/index.js +3 -1
  3. package/bin/peopleBusiness/dtos/AccountRequirementControlRecord.d.ts +6 -0
  4. package/bin/peopleBusiness/dtos/AccountRequirementControlRecord.js +2 -0
  5. package/bin/peopleBusiness/dtos/PeopleBatchItem.d.ts +11 -0
  6. package/bin/peopleBusiness/dtos/PeopleBatchItem.js +10 -0
  7. package/bin/peopleBusiness/dtos/PeopleBatchResponse.d.ts +9 -0
  8. package/bin/peopleBusiness/dtos/PeopleBatchResponse.js +10 -0
  9. package/bin/peopleBusiness/dtos/PeopleRecord.d.ts +5 -0
  10. package/bin/peopleBusiness/dtos/PeopleRecord.js +2 -0
  11. package/bin/peopleBusiness/enums/PeopleBatchIncludeEnum.d.ts +7 -0
  12. package/bin/peopleBusiness/enums/PeopleBatchIncludeEnum.js +11 -0
  13. package/bin/peopleBusiness/index.d.ts +5 -0
  14. package/bin/peopleBusiness/index.js +21 -0
  15. package/bin/retailWizard/dtos/WizardResumeTarget.d.ts +11 -0
  16. package/bin/retailWizard/dtos/WizardResumeTarget.js +2 -0
  17. package/bin/retailWizard/dtos/WizardSession.d.ts +15 -0
  18. package/bin/retailWizard/enums/ResumeReasonEnum.d.ts +17 -0
  19. package/bin/retailWizard/enums/ResumeReasonEnum.js +21 -0
  20. package/bin/retailWizard/index.d.ts +2 -0
  21. package/bin/retailWizard/index.js +2 -0
  22. package/package.json +1 -1
  23. package/src/index.ts +2 -0
  24. package/src/peopleBusiness/dtos/AccountRequirementControlRecord.ts +7 -0
  25. package/src/peopleBusiness/dtos/PeopleBatchItem.ts +12 -0
  26. package/src/peopleBusiness/dtos/PeopleBatchResponse.ts +10 -0
  27. package/src/peopleBusiness/dtos/PeopleRecord.ts +6 -0
  28. package/src/peopleBusiness/enums/PeopleBatchIncludeEnum.ts +7 -0
  29. package/src/peopleBusiness/index.ts +5 -0
  30. package/src/retailWizard/dtos/WizardResumeTarget.ts +12 -0
  31. package/src/retailWizard/dtos/WizardSession.ts +15 -0
  32. package/src/retailWizard/enums/ResumeReasonEnum.ts +17 -0
  33. package/src/retailWizard/index.ts +2 -0
package/bin/index.d.ts CHANGED
@@ -111,3 +111,4 @@ export * as PhoneSales from './phoneSales';
111
111
  export * as Shipping from './shipping';
112
112
  export * as Collection from './collection';
113
113
  export * as UserConfirmations from './userConfirmations';
114
+ export * as PeopleBusiness from './peopleBusiness';
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.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.Biometrics = exports.MetamapConnector = exports.Account = exports.Crypto = void 0;
40
40
  exports.LoanConfig = exports.DatalakeQuery = exports.RetailWizard = exports.RetailCustomer = exports.RetailCards = exports.RetailCatalog = exports.RetailCommission = 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 = exports.Observations = void 0;
41
- exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = void 0;
41
+ exports.PeopleBusiness = exports.UserConfirmations = exports.Collection = exports.Shipping = exports.PhoneSales = exports.Onboarding = exports.Kyc = exports.LoanScoring = exports.LoanCredit = exports.LoanCollectorAssignment = exports.LoanOfferings = exports.Shortlink = void 0;
42
42
  exports.Crypto = __importStar(require("./crypto"));
43
43
  exports.Account = __importStar(require("./account"));
44
44
  exports.MetamapConnector = __importStar(require("./metamapConnector"));
@@ -207,3 +207,5 @@ exports.Collection = __importStar(require("./collection"));
207
207
  // UserConfirmations: contrato del motor de confirmaciones pendientes (people-business ↔ app) —
208
208
  // la app consulta qué confirmaciones mostrar al usuario (verificar email, …) y reporta descartes.
209
209
  exports.UserConfirmations = __importStar(require("./userConfirmations"));
210
+ // PeopleBusiness: contrato de lectura por lote de People_GT + AccountRequirementControl_GT.
211
+ exports.PeopleBusiness = __importStar(require("./peopleBusiness"));
@@ -0,0 +1,6 @@
1
+ import { PeopleResponse } from '../../identity/dtos/PeopleResponse';
2
+ /**
3
+ * Fila de AccountRequirementControl_GT, con el mismo shape que identity ya publica anidado
4
+ * dentro de PeopleResponse.
5
+ */
6
+ export type AccountRequirementControlRecord = PeopleResponse['accountRequirementControl'];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import { AccountRequirementControlRecord } from './AccountRequirementControlRecord';
2
+ import { PeopleRecord } from './PeopleRecord';
3
+ /**
4
+ * Un peopleId del lote con lo que se encontró de él. Cada tabla viene en null si no se pidió
5
+ * en el include o si esa tabla no tiene fila para ese id.
6
+ */
7
+ export declare class PeopleBatchItem {
8
+ id: string;
9
+ people: PeopleRecord | null;
10
+ accountRequirementControl: AccountRequirementControlRecord | null;
11
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PeopleBatchItem = void 0;
4
+ /**
5
+ * Un peopleId del lote con lo que se encontró de él. Cada tabla viene en null si no se pidió
6
+ * en el include o si esa tabla no tiene fila para ese id.
7
+ */
8
+ class PeopleBatchItem {
9
+ }
10
+ exports.PeopleBatchItem = PeopleBatchItem;
@@ -0,0 +1,9 @@
1
+ import { PeopleBatchItem } from './PeopleBatchItem';
2
+ /**
3
+ * Respuesta del lote. `items` sale en el orden en que llegaron los ids; `notFound` lista los
4
+ * que ninguna de las tablas pedidas devolvió, porque DynamoDB no avisa cuáles faltaron.
5
+ */
6
+ export declare class PeopleBatchResponse {
7
+ items: PeopleBatchItem[];
8
+ notFound: string[];
9
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PeopleBatchResponse = void 0;
4
+ /**
5
+ * Respuesta del lote. `items` sale en el orden en que llegaron los ids; `notFound` lista los
6
+ * que ninguna de las tablas pedidas devolvió, porque DynamoDB no avisa cuáles faltaron.
7
+ */
8
+ class PeopleBatchResponse {
9
+ }
10
+ exports.PeopleBatchResponse = PeopleBatchResponse;
@@ -0,0 +1,5 @@
1
+ import { PeopleResponse } from '../../identity/dtos/PeopleResponse';
2
+ /**
3
+ * Fila de People_GT sin el join de accountRequirementControl, que en el lote viaja aparte.
4
+ */
5
+ export type PeopleRecord = Omit<PeopleResponse, 'accountRequirementControl'>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tabla que el lector quiere en el lote. Ausente = las dos.
3
+ */
4
+ export declare enum PeopleBatchIncludeEnum {
5
+ PEOPLE = "people",
6
+ ACCOUNT = "account"
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PeopleBatchIncludeEnum = void 0;
4
+ /**
5
+ * Tabla que el lector quiere en el lote. Ausente = las dos.
6
+ */
7
+ var PeopleBatchIncludeEnum;
8
+ (function (PeopleBatchIncludeEnum) {
9
+ PeopleBatchIncludeEnum["PEOPLE"] = "people";
10
+ PeopleBatchIncludeEnum["ACCOUNT"] = "account";
11
+ })(PeopleBatchIncludeEnum || (exports.PeopleBatchIncludeEnum = PeopleBatchIncludeEnum = {}));
@@ -0,0 +1,5 @@
1
+ export * from './enums/PeopleBatchIncludeEnum';
2
+ export * from './dtos/PeopleRecord';
3
+ export * from './dtos/AccountRequirementControlRecord';
4
+ export * from './dtos/PeopleBatchItem';
5
+ export * from './dtos/PeopleBatchResponse';
@@ -0,0 +1,21 @@
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
+ __exportStar(require("./enums/PeopleBatchIncludeEnum"), exports);
18
+ __exportStar(require("./dtos/PeopleRecord"), exports);
19
+ __exportStar(require("./dtos/AccountRequirementControlRecord"), exports);
20
+ __exportStar(require("./dtos/PeopleBatchItem"), exports);
21
+ __exportStar(require("./dtos/PeopleBatchResponse"), exports);
@@ -0,0 +1,11 @@
1
+ import type { ResumeReasonEnum } from '../enums/ResumeReasonEnum';
2
+ import type { WizardStepEnum } from '../enums/WizardStepEnum';
3
+ /**
4
+ * A qué paso aterriza el comprador al reanudar una venta a medias, y por qué. Lo calcula el silo:
5
+ * es regla de negocio y el front solo navega a lo que le digan.
6
+ * SureKeep Fase 2 — pista Retail.
7
+ */
8
+ export interface WizardResumeTarget {
9
+ step: WizardStepEnum;
10
+ reason: ResumeReasonEnum;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -8,6 +8,7 @@ import type { WizardConsents } from './WizardConsents';
8
8
  import type { WizardLoan } from './WizardLoan';
9
9
  import type { WizardPayment } from './WizardPayment';
10
10
  import type { WizardProduct } from './WizardProduct';
11
+ import type { WizardResumeTarget } from './WizardResumeTarget';
11
12
  import type { WizardWelcome } from './WizardWelcome';
12
13
  /** Modalidad de captura del KYC (M1 §213-329). */
13
14
  export type KycModality = 'CUSTOMER_LINK' | 'STORE_DEVICE' | 'MANUAL';
@@ -43,6 +44,20 @@ export interface WizardSession {
43
44
  state: WizardStateEnum;
44
45
  otpVerified: boolean;
45
46
  otpSkipped: boolean;
47
+ /**
48
+ * Hay una reanudación esperando su OTP. Retomar una venta a medias pide la prueba del teléfono de
49
+ * nuevo, aunque `otpVerified` ya esté en `true` de la vez anterior — por eso son campos distintos.
50
+ *
51
+ * Opcional: es aditivo sobre un contrato ya publicado. Ausente = no hay reanudación en curso.
52
+ */
53
+ resumeOtpRequired?: boolean;
54
+ /**
55
+ * Primer hueco del onboarding: a qué paso aterriza el comprador al reanudar, y por qué. Lo calcula
56
+ * el silo — es regla de negocio, no navegación.
57
+ *
58
+ * Opcional por lo mismo que `resumeOtpRequired`: un consumidor que no lo conoce sigue igual.
59
+ */
60
+ resumeTarget?: WizardResumeTarget | null;
46
61
  consents: WizardConsents | null;
47
62
  /** Espejo del estado KYC (fuente = customer). */
48
63
  kycStatus: string | null;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Por qué el wizard manda al comprador a ese paso al reanudar una venta a medias. El silo busca el
3
+ * PRIMER hueco del onboarding de arriba hacia abajo: cuenta → KYC → domicilio → preguntas.
4
+ * SureKeep Fase 2 — pista Retail.
5
+ */
6
+ export declare enum ResumeReasonEnum {
7
+ /** La cuenta PagoConFiado ya está lista: no falta nada del onboarding, se vuelve al paso donde quedó. */
8
+ ACCOUNT_READY = "ACCOUNT_READY",
9
+ /** El KYC no cerró verificado: se rehace desde el principio. */
10
+ KYC_PENDING = "KYC_PENDING",
11
+ /** El expediente quedó sin domicilio: toca el comprobante. */
12
+ ADDRESS_PENDING = "ADDRESS_PENDING",
13
+ /** Falta la ocupación o el ingreso mensual. */
14
+ PROFILE_PENDING = "PROFILE_PENDING",
15
+ /** El expediente está completo y la cuenta todavía no abre. */
16
+ ACCOUNT_PENDING = "ACCOUNT_PENDING"
17
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResumeReasonEnum = void 0;
4
+ /**
5
+ * Por qué el wizard manda al comprador a ese paso al reanudar una venta a medias. El silo busca el
6
+ * PRIMER hueco del onboarding de arriba hacia abajo: cuenta → KYC → domicilio → preguntas.
7
+ * SureKeep Fase 2 — pista Retail.
8
+ */
9
+ var ResumeReasonEnum;
10
+ (function (ResumeReasonEnum) {
11
+ /** La cuenta PagoConFiado ya está lista: no falta nada del onboarding, se vuelve al paso donde quedó. */
12
+ ResumeReasonEnum["ACCOUNT_READY"] = "ACCOUNT_READY";
13
+ /** El KYC no cerró verificado: se rehace desde el principio. */
14
+ ResumeReasonEnum["KYC_PENDING"] = "KYC_PENDING";
15
+ /** El expediente quedó sin domicilio: toca el comprobante. */
16
+ ResumeReasonEnum["ADDRESS_PENDING"] = "ADDRESS_PENDING";
17
+ /** Falta la ocupación o el ingreso mensual. */
18
+ ResumeReasonEnum["PROFILE_PENDING"] = "PROFILE_PENDING";
19
+ /** El expediente está completo y la cuenta todavía no abre. */
20
+ ResumeReasonEnum["ACCOUNT_PENDING"] = "ACCOUNT_PENDING";
21
+ })(ResumeReasonEnum || (exports.ResumeReasonEnum = ResumeReasonEnum = {}));
@@ -16,6 +16,7 @@ export * from './enums/BeneficiaryRelationEnum';
16
16
  export * from './enums/AccountVerdictEnum';
17
17
  export * from './enums/AccountOutcomeEnum';
18
18
  export * from './enums/AccountStepStatusEnum';
19
+ export * from './enums/ResumeReasonEnum';
19
20
  export * from './dtos/WizardConsents';
20
21
  export * from './dtos/WizardPayment';
21
22
  export * from './dtos/WizardProduct';
@@ -26,6 +27,7 @@ export * from './dtos/WizardBeneficiary';
26
27
  export * from './dtos/WizardLoan';
27
28
  export * from './dtos/WizardCreditSummary';
28
29
  export * from './dtos/AccountStep';
30
+ export * from './dtos/WizardResumeTarget';
29
31
  export * from './dtos/WizardSession';
30
32
  export * from './dtos/OtpVerification';
31
33
  export * from './dtos/Sale';
@@ -34,6 +34,7 @@ __exportStar(require("./enums/BeneficiaryRelationEnum"), exports);
34
34
  __exportStar(require("./enums/AccountVerdictEnum"), exports);
35
35
  __exportStar(require("./enums/AccountOutcomeEnum"), exports);
36
36
  __exportStar(require("./enums/AccountStepStatusEnum"), exports);
37
+ __exportStar(require("./enums/ResumeReasonEnum"), exports);
37
38
  // DTOs anidados
38
39
  __exportStar(require("./dtos/WizardConsents"), exports);
39
40
  __exportStar(require("./dtos/WizardPayment"), exports);
@@ -45,6 +46,7 @@ __exportStar(require("./dtos/WizardBeneficiary"), exports);
45
46
  __exportStar(require("./dtos/WizardLoan"), exports);
46
47
  __exportStar(require("./dtos/WizardCreditSummary"), exports);
47
48
  __exportStar(require("./dtos/AccountStep"), exports);
49
+ __exportStar(require("./dtos/WizardResumeTarget"), exports);
48
50
  // Entidades principales (shapes de estado/persistencia — planas)
49
51
  __exportStar(require("./dtos/WizardSession"), exports);
50
52
  __exportStar(require("./dtos/OtpVerification"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.303.0",
3
+ "version": "3.305.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
package/src/index.ts CHANGED
@@ -166,3 +166,5 @@ export * as Collection from './collection';
166
166
  // UserConfirmations: contrato del motor de confirmaciones pendientes (people-business ↔ app) —
167
167
  // la app consulta qué confirmaciones mostrar al usuario (verificar email, …) y reporta descartes.
168
168
  export * as UserConfirmations from './userConfirmations';
169
+ // PeopleBusiness: contrato de lectura por lote de People_GT + AccountRequirementControl_GT.
170
+ export * as PeopleBusiness from './peopleBusiness';
@@ -0,0 +1,7 @@
1
+ import { PeopleResponse } from '../../identity/dtos/PeopleResponse';
2
+
3
+ /**
4
+ * Fila de AccountRequirementControl_GT, con el mismo shape que identity ya publica anidado
5
+ * dentro de PeopleResponse.
6
+ */
7
+ export type AccountRequirementControlRecord = PeopleResponse['accountRequirementControl'];
@@ -0,0 +1,12 @@
1
+ import { AccountRequirementControlRecord } from './AccountRequirementControlRecord';
2
+ import { PeopleRecord } from './PeopleRecord';
3
+
4
+ /**
5
+ * Un peopleId del lote con lo que se encontró de él. Cada tabla viene en null si no se pidió
6
+ * en el include o si esa tabla no tiene fila para ese id.
7
+ */
8
+ export class PeopleBatchItem {
9
+ id!: string;
10
+ people!: PeopleRecord | null;
11
+ accountRequirementControl!: AccountRequirementControlRecord | null;
12
+ }
@@ -0,0 +1,10 @@
1
+ import { PeopleBatchItem } from './PeopleBatchItem';
2
+
3
+ /**
4
+ * Respuesta del lote. `items` sale en el orden en que llegaron los ids; `notFound` lista los
5
+ * que ninguna de las tablas pedidas devolvió, porque DynamoDB no avisa cuáles faltaron.
6
+ */
7
+ export class PeopleBatchResponse {
8
+ items!: PeopleBatchItem[];
9
+ notFound!: string[];
10
+ }
@@ -0,0 +1,6 @@
1
+ import { PeopleResponse } from '../../identity/dtos/PeopleResponse';
2
+
3
+ /**
4
+ * Fila de People_GT sin el join de accountRequirementControl, que en el lote viaja aparte.
5
+ */
6
+ export type PeopleRecord = Omit<PeopleResponse, 'accountRequirementControl'>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tabla que el lector quiere en el lote. Ausente = las dos.
3
+ */
4
+ export enum PeopleBatchIncludeEnum {
5
+ PEOPLE = 'people',
6
+ ACCOUNT = 'account',
7
+ }
@@ -0,0 +1,5 @@
1
+ export * from './enums/PeopleBatchIncludeEnum';
2
+ export * from './dtos/PeopleRecord';
3
+ export * from './dtos/AccountRequirementControlRecord';
4
+ export * from './dtos/PeopleBatchItem';
5
+ export * from './dtos/PeopleBatchResponse';
@@ -0,0 +1,12 @@
1
+ import type { ResumeReasonEnum } from '../enums/ResumeReasonEnum';
2
+ import type { WizardStepEnum } from '../enums/WizardStepEnum';
3
+
4
+ /**
5
+ * A qué paso aterriza el comprador al reanudar una venta a medias, y por qué. Lo calcula el silo:
6
+ * es regla de negocio y el front solo navega a lo que le digan.
7
+ * SureKeep Fase 2 — pista Retail.
8
+ */
9
+ export interface WizardResumeTarget {
10
+ step: WizardStepEnum;
11
+ reason: ResumeReasonEnum;
12
+ }
@@ -8,6 +8,7 @@ import type { WizardConsents } from './WizardConsents';
8
8
  import type { WizardLoan } from './WizardLoan';
9
9
  import type { WizardPayment } from './WizardPayment';
10
10
  import type { WizardProduct } from './WizardProduct';
11
+ import type { WizardResumeTarget } from './WizardResumeTarget';
11
12
  import type { WizardWelcome } from './WizardWelcome';
12
13
 
13
14
  /** Modalidad de captura del KYC (M1 §213-329). */
@@ -47,6 +48,20 @@ export interface WizardSession {
47
48
  state: WizardStateEnum;
48
49
  otpVerified: boolean;
49
50
  otpSkipped: boolean;
51
+ /**
52
+ * Hay una reanudación esperando su OTP. Retomar una venta a medias pide la prueba del teléfono de
53
+ * nuevo, aunque `otpVerified` ya esté en `true` de la vez anterior — por eso son campos distintos.
54
+ *
55
+ * Opcional: es aditivo sobre un contrato ya publicado. Ausente = no hay reanudación en curso.
56
+ */
57
+ resumeOtpRequired?: boolean;
58
+ /**
59
+ * Primer hueco del onboarding: a qué paso aterriza el comprador al reanudar, y por qué. Lo calcula
60
+ * el silo — es regla de negocio, no navegación.
61
+ *
62
+ * Opcional por lo mismo que `resumeOtpRequired`: un consumidor que no lo conoce sigue igual.
63
+ */
64
+ resumeTarget?: WizardResumeTarget | null;
50
65
  consents: WizardConsents | null;
51
66
  /** Espejo del estado KYC (fuente = customer). */
52
67
  kycStatus: string | null;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Por qué el wizard manda al comprador a ese paso al reanudar una venta a medias. El silo busca el
3
+ * PRIMER hueco del onboarding de arriba hacia abajo: cuenta → KYC → domicilio → preguntas.
4
+ * SureKeep Fase 2 — pista Retail.
5
+ */
6
+ export enum ResumeReasonEnum {
7
+ /** La cuenta PagoConFiado ya está lista: no falta nada del onboarding, se vuelve al paso donde quedó. */
8
+ ACCOUNT_READY = 'ACCOUNT_READY',
9
+ /** El KYC no cerró verificado: se rehace desde el principio. */
10
+ KYC_PENDING = 'KYC_PENDING',
11
+ /** El expediente quedó sin domicilio: toca el comprobante. */
12
+ ADDRESS_PENDING = 'ADDRESS_PENDING',
13
+ /** Falta la ocupación o el ingreso mensual. */
14
+ PROFILE_PENDING = 'PROFILE_PENDING',
15
+ /** El expediente está completo y la cuenta todavía no abre. */
16
+ ACCOUNT_PENDING = 'ACCOUNT_PENDING',
17
+ }
@@ -19,6 +19,7 @@ export * from './enums/BeneficiaryRelationEnum';
19
19
  export * from './enums/AccountVerdictEnum';
20
20
  export * from './enums/AccountOutcomeEnum';
21
21
  export * from './enums/AccountStepStatusEnum';
22
+ export * from './enums/ResumeReasonEnum';
22
23
 
23
24
  // DTOs anidados
24
25
  export * from './dtos/WizardConsents';
@@ -31,6 +32,7 @@ export * from './dtos/WizardBeneficiary';
31
32
  export * from './dtos/WizardLoan';
32
33
  export * from './dtos/WizardCreditSummary';
33
34
  export * from './dtos/AccountStep';
35
+ export * from './dtos/WizardResumeTarget';
34
36
 
35
37
  // Entidades principales (shapes de estado/persistencia — planas)
36
38
  export * from './dtos/WizardSession';