@rodrigobeber/patoai-dtos 4.8.6 → 4.8.8
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/dist/chat/schedule/create-schedule.dto.d.ts +2 -0
- package/dist/crew/reminder.enum.d.ts +18 -1
- package/dist/crew/reminder.enum.js +24 -1
- package/dist/uh/index.d.ts +1 -0
- package/dist/uh/index.js +1 -0
- package/dist/uh/whatsapp-error-code.enum.d.ts +32 -0
- package/dist/uh/whatsapp-error-code.enum.js +42 -0
- package/dist/webchat/crm/webchat-lead-history.dto.d.ts +2 -1
- package/package.json +1 -1
|
@@ -21,8 +21,25 @@ export declare enum ReminderModeEnum {
|
|
|
21
21
|
* O de/para (variável do template -> token) fica em WebChatReminderDto.templateVars.
|
|
22
22
|
* - nome: nome do lead
|
|
23
23
|
* - data_hora: data + hora do agendamento, formatada na timezone do crew
|
|
24
|
+
* - link: link/local da reunião (chat.schedule.ds_location)
|
|
25
|
+
* - anfitriao: quem conduz a reunião (chat.schedule.ds_host)
|
|
26
|
+
*
|
|
27
|
+
* ATENÇÃO: link e anfitriao dependem do provedor de agenda (ver TOKEN_CALENDAR_SUPPORT). Token sem
|
|
28
|
+
* valor NÃO vira string vazia — a Meta recusa parâmetro em branco; o envio falha com motivo legível.
|
|
24
29
|
*/
|
|
25
30
|
export declare enum ReminderTokenEnum {
|
|
26
31
|
NAME = "nome",
|
|
27
|
-
DATETIME = "data_hora"
|
|
32
|
+
DATETIME = "data_hora",
|
|
33
|
+
LINK = "link",
|
|
34
|
+
HOST = "anfitriao"
|
|
28
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Quais tokens cada provedor de agenda consegue preencher. Usado pela tela de Lembretes para avisar
|
|
38
|
+
* antes de salvar uma regra que vai falhar no envio.
|
|
39
|
+
* - google: link real por evento (Meet) + host da conta sorteada
|
|
40
|
+
* - patocal: host = profissional; "link" é só o local fixo da agenda (não há link por evento)
|
|
41
|
+
* - calcom: link sim, host não (o mapper não lê o organizer)
|
|
42
|
+
* - north: só o local fixo; sem host
|
|
43
|
+
* - calendly: nunca cria evento pelo tool
|
|
44
|
+
*/
|
|
45
|
+
export declare const TOKEN_CALENDAR_SUPPORT: Record<string, ReminderTokenEnum[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReminderTokenEnum = exports.ReminderModeEnum = exports.ReminderTriggerEnum = void 0;
|
|
3
|
+
exports.TOKEN_CALENDAR_SUPPORT = exports.ReminderTokenEnum = exports.ReminderModeEnum = exports.ReminderTriggerEnum = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Tipo de disparo de um lembrete de agendamento.
|
|
6
6
|
* - offset: dispara N minutos ANTES do agendamento (relativo a dt_appointment), respeitando a janela comercial.
|
|
@@ -26,9 +26,32 @@ var ReminderModeEnum;
|
|
|
26
26
|
* O de/para (variável do template -> token) fica em WebChatReminderDto.templateVars.
|
|
27
27
|
* - nome: nome do lead
|
|
28
28
|
* - data_hora: data + hora do agendamento, formatada na timezone do crew
|
|
29
|
+
* - link: link/local da reunião (chat.schedule.ds_location)
|
|
30
|
+
* - anfitriao: quem conduz a reunião (chat.schedule.ds_host)
|
|
31
|
+
*
|
|
32
|
+
* ATENÇÃO: link e anfitriao dependem do provedor de agenda (ver TOKEN_CALENDAR_SUPPORT). Token sem
|
|
33
|
+
* valor NÃO vira string vazia — a Meta recusa parâmetro em branco; o envio falha com motivo legível.
|
|
29
34
|
*/
|
|
30
35
|
var ReminderTokenEnum;
|
|
31
36
|
(function (ReminderTokenEnum) {
|
|
32
37
|
ReminderTokenEnum["NAME"] = "nome";
|
|
33
38
|
ReminderTokenEnum["DATETIME"] = "data_hora";
|
|
39
|
+
ReminderTokenEnum["LINK"] = "link";
|
|
40
|
+
ReminderTokenEnum["HOST"] = "anfitriao";
|
|
34
41
|
})(ReminderTokenEnum || (exports.ReminderTokenEnum = ReminderTokenEnum = {}));
|
|
42
|
+
/**
|
|
43
|
+
* Quais tokens cada provedor de agenda consegue preencher. Usado pela tela de Lembretes para avisar
|
|
44
|
+
* antes de salvar uma regra que vai falhar no envio.
|
|
45
|
+
* - google: link real por evento (Meet) + host da conta sorteada
|
|
46
|
+
* - patocal: host = profissional; "link" é só o local fixo da agenda (não há link por evento)
|
|
47
|
+
* - calcom: link sim, host não (o mapper não lê o organizer)
|
|
48
|
+
* - north: só o local fixo; sem host
|
|
49
|
+
* - calendly: nunca cria evento pelo tool
|
|
50
|
+
*/
|
|
51
|
+
exports.TOKEN_CALENDAR_SUPPORT = {
|
|
52
|
+
google: [ReminderTokenEnum.LINK, ReminderTokenEnum.HOST],
|
|
53
|
+
patocal: [ReminderTokenEnum.LINK, ReminderTokenEnum.HOST],
|
|
54
|
+
calcom: [ReminderTokenEnum.LINK],
|
|
55
|
+
north: [ReminderTokenEnum.LINK],
|
|
56
|
+
calendly: []
|
|
57
|
+
};
|
package/dist/uh/index.d.ts
CHANGED
package/dist/uh/index.js
CHANGED
|
@@ -31,3 +31,4 @@ __exportStar(require("./send-text.dto"), exports);
|
|
|
31
31
|
__exportStar(require("./send-buttons.dto"), exports);
|
|
32
32
|
__exportStar(require("./message-status.dto"), exports);
|
|
33
33
|
__exportStar(require("./telegram.dto"), exports);
|
|
34
|
+
__exportStar(require("./whatsapp-error-code.enum"), exports);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Códigos de erro de entrega do WhatsApp Cloud API.
|
|
3
|
+
* Só entram aqui os pares código↔texto CONFIRMADOS em produção (automation.broadcast_to grava o
|
|
4
|
+
* código junto do texto). Erros vistos apenas em history.thread, sem código associado — ex.
|
|
5
|
+
* "Business Account locked", "Re-engagement message" — ficam de fora de propósito: chutar o número
|
|
6
|
+
* classificaria mensagem errada.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum WhatsAppErrorCodeEnum {
|
|
9
|
+
/** User's number is part of an experiment */
|
|
10
|
+
EXPERIMENT = 130472,
|
|
11
|
+
/** Message undeliverable */
|
|
12
|
+
UNDELIVERABLE = 131026,
|
|
13
|
+
/** Business eligibility payment issue */
|
|
14
|
+
PAYMENT_ISSUE = 131042,
|
|
15
|
+
/** Spam Rate limit hit */
|
|
16
|
+
SPAM_RATE_LIMIT = 131048,
|
|
17
|
+
/** This message was not delivered to maintain healthy ecosystem engagement. */
|
|
18
|
+
HEALTHY_ECOSYSTEM = 131049,
|
|
19
|
+
/** Recipient opted out of marketing messages */
|
|
20
|
+
MARKETING_OPT_OUT = 131050
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Rejeições em que NÃO adianta reenviar para o mesmo número.
|
|
24
|
+
* Fonte única dos contadores rejectedPermanent/rejectedRecoverable (crew) e do badge/filtro de
|
|
25
|
+
* reenvio do painel. Incluir um código aqui MUDA os contadores históricos de todos os disparos —
|
|
26
|
+
* é decisão de produto, não ajuste de texto.
|
|
27
|
+
*
|
|
28
|
+
* `readonly number[]` e não `readonly WhatsAppErrorCodeEnum[]`: o consumidor chama com um `number`
|
|
29
|
+
* vindo do banco, e o tipo enum recusaria o `includes`.
|
|
30
|
+
*/
|
|
31
|
+
export declare const PERMANENT_ERROR_CODES: readonly number[];
|
|
32
|
+
export declare function isPermanentWhatsAppError(code?: number | null): boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PERMANENT_ERROR_CODES = exports.WhatsAppErrorCodeEnum = void 0;
|
|
4
|
+
exports.isPermanentWhatsAppError = isPermanentWhatsAppError;
|
|
5
|
+
/**
|
|
6
|
+
* Códigos de erro de entrega do WhatsApp Cloud API.
|
|
7
|
+
* Só entram aqui os pares código↔texto CONFIRMADOS em produção (automation.broadcast_to grava o
|
|
8
|
+
* código junto do texto). Erros vistos apenas em history.thread, sem código associado — ex.
|
|
9
|
+
* "Business Account locked", "Re-engagement message" — ficam de fora de propósito: chutar o número
|
|
10
|
+
* classificaria mensagem errada.
|
|
11
|
+
*/
|
|
12
|
+
var WhatsAppErrorCodeEnum;
|
|
13
|
+
(function (WhatsAppErrorCodeEnum) {
|
|
14
|
+
/** User's number is part of an experiment */
|
|
15
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["EXPERIMENT"] = 130472] = "EXPERIMENT";
|
|
16
|
+
/** Message undeliverable */
|
|
17
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["UNDELIVERABLE"] = 131026] = "UNDELIVERABLE";
|
|
18
|
+
/** Business eligibility payment issue */
|
|
19
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["PAYMENT_ISSUE"] = 131042] = "PAYMENT_ISSUE";
|
|
20
|
+
/** Spam Rate limit hit */
|
|
21
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["SPAM_RATE_LIMIT"] = 131048] = "SPAM_RATE_LIMIT";
|
|
22
|
+
/** This message was not delivered to maintain healthy ecosystem engagement. */
|
|
23
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["HEALTHY_ECOSYSTEM"] = 131049] = "HEALTHY_ECOSYSTEM";
|
|
24
|
+
/** Recipient opted out of marketing messages */
|
|
25
|
+
WhatsAppErrorCodeEnum[WhatsAppErrorCodeEnum["MARKETING_OPT_OUT"] = 131050] = "MARKETING_OPT_OUT";
|
|
26
|
+
})(WhatsAppErrorCodeEnum || (exports.WhatsAppErrorCodeEnum = WhatsAppErrorCodeEnum = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Rejeições em que NÃO adianta reenviar para o mesmo número.
|
|
29
|
+
* Fonte única dos contadores rejectedPermanent/rejectedRecoverable (crew) e do badge/filtro de
|
|
30
|
+
* reenvio do painel. Incluir um código aqui MUDA os contadores históricos de todos os disparos —
|
|
31
|
+
* é decisão de produto, não ajuste de texto.
|
|
32
|
+
*
|
|
33
|
+
* `readonly number[]` e não `readonly WhatsAppErrorCodeEnum[]`: o consumidor chama com um `number`
|
|
34
|
+
* vindo do banco, e o tipo enum recusaria o `includes`.
|
|
35
|
+
*/
|
|
36
|
+
exports.PERMANENT_ERROR_CODES = [
|
|
37
|
+
WhatsAppErrorCodeEnum.UNDELIVERABLE,
|
|
38
|
+
WhatsAppErrorCodeEnum.EXPERIMENT
|
|
39
|
+
];
|
|
40
|
+
function isPermanentWhatsAppError(code) {
|
|
41
|
+
return code != null && exports.PERMANENT_ERROR_CODES.includes(code);
|
|
42
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type LeadHistoryType = 'stage' | 'mode' | 'unit' | 'followup' | 'template' | 'reminder' | 'spam_block';
|
|
1
|
+
export type LeadHistoryType = 'stage' | 'mode' | 'unit' | 'followup' | 'template' | 'reminder' | 'spam_block' | 'schedule_cancel';
|
|
2
2
|
export interface WebChatLeadHistoryDto {
|
|
3
3
|
idLead: string;
|
|
4
4
|
at: Date;
|
|
@@ -14,4 +14,5 @@ export interface WebChatLeadHistoryDto {
|
|
|
14
14
|
error?: boolean;
|
|
15
15
|
errorMessage?: string | null;
|
|
16
16
|
templateName?: string;
|
|
17
|
+
errorCode?: number | null;
|
|
17
18
|
}
|