evo360-types 1.3.612 → 1.3.614

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.
@@ -38,6 +38,37 @@ export interface INexVendasJourneySignature {
38
38
  requested_at?: Date | null;
39
39
  signed_at?: Date | null;
40
40
  last_error?: string | null;
41
+ /**
42
+ * Consultas ao provider feitas pelo `POST /journeys/:code/signature/check`
43
+ * (feat-203), podadas a 1 h. É o contador do throttle por jornada (mínimo 90 s
44
+ * entre consultas, no máximo 5 por hora): a cota da D4Sign é 10 req/h na
45
+ * conta inteira. A re-checagem do webhook não entra aqui.
46
+ */
47
+ checks_at?: Date[] | null;
48
+ }
49
+ /**
50
+ * Por onde a assinatura foi confirmada no provider (feat-203). Vai em
51
+ * `data.via` do evento `contract_signed`: `webhook` é o POSTback da D4Sign,
52
+ * `check` é o "Verificar agora" do shop (caminho de destrave quando o webhook
53
+ * se perde).
54
+ */
55
+ export type NexVendasJourneySignatureConfirmVia = 'webhook' | 'check';
56
+ /**
57
+ * Resultado do `POST /journeys/:code/signature/check` (feat-203 D4):
58
+ * - `signed`: o provider confirmou e ESTA chamada avançou a jornada;
59
+ * - `already_signed`: já estava assinada (ou o webhook venceu a corrida);
60
+ * - `pending`: o provider ainda não tem a assinatura;
61
+ * - `not_confirmed`: o provider respondeu outro status (recusado, cancelado…);
62
+ * - `not_applicable`: a jornada não está esperando assinatura — nada consultado;
63
+ * - `provider_unavailable`: sem provider configurado ou a consulta falhou.
64
+ *
65
+ * O throttle NÃO é um outcome: sai como 429 `too_many_checks` com `retry_after_s`.
66
+ */
67
+ export type NexVendasJourneySignatureCheckOutcome = 'signed' | 'already_signed' | 'pending' | 'not_confirmed' | 'not_applicable' | 'provider_unavailable';
68
+ export interface INexVendasJourneySignatureCheckResult {
69
+ outcome: NexVendasJourneySignatureCheckOutcome;
70
+ /** Segundos até a próxima consulta ao provider ser aceita; ausente quando não se aplica. */
71
+ retry_after_s?: number | null;
41
72
  }
42
73
  /**
43
74
  * Envelope substituído por correção de dados antes da assinatura (feat-200).
@@ -225,6 +256,29 @@ export interface INexVendasJourneyNotification {
225
256
  sent_at: Date;
226
257
  error?: string | null;
227
258
  }
259
+ /**
260
+ * Como o lead foi achado. `contact_index` = índice de contatos do chat pelo
261
+ * telefone (com e sem o 9º dígito); `phone` = telefone exato no lead;
262
+ * `algolia` = busca por dígitos no índice de leads; `email` = e-mail exato;
263
+ * `created` = nada casou e a jornada criou o lead.
264
+ */
265
+ export type NexVendasJourneyLeadResolvedBy = 'contact_index' | 'phone' | 'algolia' | 'email' | 'created';
266
+ /**
267
+ * Lead do CRM do tenant das notificações da jornada. É a âncora que as
268
+ * notificações levam em `externalLinks` (`crm_lead`): sem ela o hub-omni
269
+ * descarta o e-mail, que não cria contato sozinho.
270
+ *
271
+ * Re-resolução por correção de telefone/e-mail que devolve OUTRO lead
272
+ * sobrescreve este bloco e registra o evento `lead_relinked`; falha do
273
+ * resolvedor registra `lead_resolve_failed` e não bloqueia a jornada.
274
+ */
275
+ export interface INexVendasJourneyLeadRef {
276
+ /** Tenant dono do lead — o do canal resolvido para as notificações. */
277
+ tenant: string;
278
+ lead_id: string;
279
+ resolved_by: NexVendasJourneyLeadResolvedBy;
280
+ resolved_at: Date;
281
+ }
228
282
  /**
229
283
  * Slots que disparam efeito externo NÃO-idempotente e por isso precisam de
230
284
  * reserva transacional: criar o contrato, criar o envelope de assinatura,
@@ -269,6 +323,8 @@ export interface INexVendasJourney extends IFireGlobalDoc {
269
323
  contract_ref?: string | null;
270
324
  tenant_ref?: string | null;
271
325
  customer_id?: string | null;
326
+ /** Lead do CRM no tenant das notificações (feat-202). Ausente = ainda não resolvido. */
327
+ lead_ref?: INexVendasJourneyLeadRef | null;
272
328
  customer_data?: INexVendasJourneyCustomerData | null;
273
329
  signature?: INexVendasJourneySignature | null;
274
330
  /** Envelopes substituídos por correção de dados (feat-200). */
@@ -91,6 +91,46 @@ export interface INexVendasJourneySignature {
91
91
  requested_at?: Date | null;
92
92
  signed_at?: Date | null;
93
93
  last_error?: string | null;
94
+ /**
95
+ * Consultas ao provider feitas pelo `POST /journeys/:code/signature/check`
96
+ * (feat-203), podadas a 1 h. É o contador do throttle por jornada (mínimo 90 s
97
+ * entre consultas, no máximo 5 por hora): a cota da D4Sign é 10 req/h na
98
+ * conta inteira. A re-checagem do webhook não entra aqui.
99
+ */
100
+ checks_at?: Date[] | null;
101
+ }
102
+
103
+ /**
104
+ * Por onde a assinatura foi confirmada no provider (feat-203). Vai em
105
+ * `data.via` do evento `contract_signed`: `webhook` é o POSTback da D4Sign,
106
+ * `check` é o "Verificar agora" do shop (caminho de destrave quando o webhook
107
+ * se perde).
108
+ */
109
+ export type NexVendasJourneySignatureConfirmVia = 'webhook' | 'check';
110
+
111
+ /**
112
+ * Resultado do `POST /journeys/:code/signature/check` (feat-203 D4):
113
+ * - `signed`: o provider confirmou e ESTA chamada avançou a jornada;
114
+ * - `already_signed`: já estava assinada (ou o webhook venceu a corrida);
115
+ * - `pending`: o provider ainda não tem a assinatura;
116
+ * - `not_confirmed`: o provider respondeu outro status (recusado, cancelado…);
117
+ * - `not_applicable`: a jornada não está esperando assinatura — nada consultado;
118
+ * - `provider_unavailable`: sem provider configurado ou a consulta falhou.
119
+ *
120
+ * O throttle NÃO é um outcome: sai como 429 `too_many_checks` com `retry_after_s`.
121
+ */
122
+ export type NexVendasJourneySignatureCheckOutcome =
123
+ | 'signed'
124
+ | 'already_signed'
125
+ | 'pending'
126
+ | 'not_confirmed'
127
+ | 'not_applicable'
128
+ | 'provider_unavailable';
129
+
130
+ export interface INexVendasJourneySignatureCheckResult {
131
+ outcome: NexVendasJourneySignatureCheckOutcome;
132
+ /** Segundos até a próxima consulta ao provider ser aceita; ausente quando não se aplica. */
133
+ retry_after_s?: number | null;
94
134
  }
95
135
 
96
136
  /**
@@ -316,6 +356,38 @@ export interface INexVendasJourneyNotification {
316
356
  error?: string | null;
317
357
  }
318
358
 
359
+ // ── Lead do CRM (feat-202) ──
360
+
361
+ /**
362
+ * Como o lead foi achado. `contact_index` = índice de contatos do chat pelo
363
+ * telefone (com e sem o 9º dígito); `phone` = telefone exato no lead;
364
+ * `algolia` = busca por dígitos no índice de leads; `email` = e-mail exato;
365
+ * `created` = nada casou e a jornada criou o lead.
366
+ */
367
+ export type NexVendasJourneyLeadResolvedBy =
368
+ | 'contact_index'
369
+ | 'phone'
370
+ | 'algolia'
371
+ | 'email'
372
+ | 'created';
373
+
374
+ /**
375
+ * Lead do CRM do tenant das notificações da jornada. É a âncora que as
376
+ * notificações levam em `externalLinks` (`crm_lead`): sem ela o hub-omni
377
+ * descarta o e-mail, que não cria contato sozinho.
378
+ *
379
+ * Re-resolução por correção de telefone/e-mail que devolve OUTRO lead
380
+ * sobrescreve este bloco e registra o evento `lead_relinked`; falha do
381
+ * resolvedor registra `lead_resolve_failed` e não bloqueia a jornada.
382
+ */
383
+ export interface INexVendasJourneyLeadRef {
384
+ /** Tenant dono do lead — o do canal resolvido para as notificações. */
385
+ tenant: string;
386
+ lead_id: string;
387
+ resolved_by: NexVendasJourneyLeadResolvedBy;
388
+ resolved_at: Date;
389
+ }
390
+
319
391
  // ── Reserva de efeito externo ──
320
392
 
321
393
  /**
@@ -368,6 +440,8 @@ export interface INexVendasJourney extends IFireGlobalDoc {
368
440
  contract_ref?: string | null;
369
441
  tenant_ref?: string | null;
370
442
  customer_id?: string | null;
443
+ /** Lead do CRM no tenant das notificações (feat-202). Ausente = ainda não resolvido. */
444
+ lead_ref?: INexVendasJourneyLeadRef | null;
371
445
 
372
446
  customer_data?: INexVendasJourneyCustomerData | null;
373
447
  signature?: INexVendasJourneySignature | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.612",
3
+ "version": "1.3.614",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",