@wrcb/cb-common 1.0.899 → 1.0.900

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.
@@ -29,14 +29,48 @@ export interface ClinicaWeeklySlot {
29
29
  start: string;
30
30
  end: string;
31
31
  }
32
+ /**
33
+ * Como a profissional libera a agenda.
34
+ * - Weekly: grade da semana (seg a sex, 9h às 18h…), vale toda semana.
35
+ * - SpecificDays: tudo começa fechado; ela libera dia a dia ("19/10 em
36
+ * Piumhi, das 9h às 18h"), pela tela ou pelo assistente.
37
+ * Dia liberado vale nos dois modos: no semanal, é um dia a mais.
38
+ */
39
+ export declare enum ClinicaAvailabilityMode {
40
+ Weekly = "Weekly",
41
+ SpecificDays = "SpecificDays"
42
+ }
43
+ /** Um dia liberado (modo SpecificDays). `date`: AAAA-MM-DD; horas "HH:MM", no fuso da conta. */
44
+ export interface ClinicaOpenDay {
45
+ clinicId: string;
46
+ date: string;
47
+ start: string;
48
+ end: string;
49
+ }
32
50
  /** Lembrete enviado antes do horário marcado (ex.: 1 dia antes). */
33
51
  export interface ClinicaReminder {
34
52
  beforeMinutes: number;
35
53
  text: string | null;
36
54
  aiInstruction: string | null;
37
55
  }
56
+ /**
57
+ * O que é da conta, e não de cada profissional: o fuso da agenda e o jeito
58
+ * da IA conversar.
59
+ */
38
60
  export interface ClinicaAgendaSettings {
39
61
  timezone: string;
62
+ readDelaySeconds: number;
63
+ audioEnabled: boolean;
64
+ fishVoiceId: string | null;
65
+ reclassifySuggestions: boolean;
66
+ }
67
+ /**
68
+ * As regras de agenda de UMA profissional. Cada uma configura as suas: grade,
69
+ * antecedência, Pix, prazo de cancelamento, lembretes e se a IA pode mandar
70
+ * fotos de resultado (a regra de publicidade muda por conselho: CFM, CFO…).
71
+ */
72
+ export interface ClinicaProfessionalRules {
73
+ availabilityMode: ClinicaAvailabilityMode;
40
74
  slotMinutes: number;
41
75
  minNoticeMinutes: number;
42
76
  maxDaysAhead: number;
@@ -45,11 +79,7 @@ export interface ClinicaAgendaSettings {
45
79
  pixKey: string | null;
46
80
  pixKeyHolder: string | null;
47
81
  reminders: ClinicaReminder[];
48
- readDelaySeconds: number;
49
- audioEnabled: boolean;
50
- fishVoiceId: string | null;
51
82
  photosEnabled: boolean;
52
- reclassifySuggestions: boolean;
53
83
  }
54
84
  /** 1 = só informa, 3 = equilibrada (padrão), 5 = máxima. */
55
85
  export type ClinicaAggressiveness = 1 | 2 | 3 | 4 | 5;
@@ -211,6 +241,7 @@ export declare enum ClinicaAssistantActionType {
211
241
  MoveAppointment = "MoveAppointment",
212
242
  CancelAppointment = "CancelAppointment",
213
243
  BlockAgenda = "BlockAgenda",
244
+ OpenDay = "OpenDay",
214
245
  SendMessage = "SendMessage",
215
246
  MoveLeadStage = "MoveLeadStage",
216
247
  PauseCampaign = "PauseCampaign",
@@ -3,7 +3,7 @@
3
3
  // Pix, áudio e assistente de comandos. O núcleo de CRM (funil, conversa,
4
4
  // follow-up) continua em ./crm.ts.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ClinicaAssistantActionStatus = exports.ClinicaAssistantPlanStatus = exports.ClinicaAssistantActionType = exports.ClinicaCampaignActionStatus = exports.ClinicaCampaignActionOrigin = exports.ClinicaCampaignActionType = exports.ClinicaCampaignAutomationMode = exports.ClinicaCommentPlatform = exports.ClinicaMetaStatus = exports.ClinicaDepositStatus = exports.ClinicaCancelReason = exports.ClinicaAppointmentSource = exports.ClinicaAppointmentStatus = void 0;
6
+ exports.ClinicaAssistantActionStatus = exports.ClinicaAssistantPlanStatus = exports.ClinicaAssistantActionType = exports.ClinicaCampaignActionStatus = exports.ClinicaCampaignActionOrigin = exports.ClinicaCampaignActionType = exports.ClinicaCampaignAutomationMode = exports.ClinicaCommentPlatform = exports.ClinicaMetaStatus = exports.ClinicaAvailabilityMode = exports.ClinicaDepositStatus = exports.ClinicaCancelReason = exports.ClinicaAppointmentSource = exports.ClinicaAppointmentStatus = void 0;
7
7
  // ============================================
8
8
  // AGENDA
9
9
  // ============================================
@@ -43,6 +43,18 @@ var ClinicaDepositStatus;
43
43
  ClinicaDepositStatus["Rejected"] = "Rejected";
44
44
  ClinicaDepositStatus["Expired"] = "Expired";
45
45
  })(ClinicaDepositStatus || (exports.ClinicaDepositStatus = ClinicaDepositStatus = {}));
46
+ /**
47
+ * Como a profissional libera a agenda.
48
+ * - Weekly: grade da semana (seg a sex, 9h às 18h…), vale toda semana.
49
+ * - SpecificDays: tudo começa fechado; ela libera dia a dia ("19/10 em
50
+ * Piumhi, das 9h às 18h"), pela tela ou pelo assistente.
51
+ * Dia liberado vale nos dois modos: no semanal, é um dia a mais.
52
+ */
53
+ var ClinicaAvailabilityMode;
54
+ (function (ClinicaAvailabilityMode) {
55
+ ClinicaAvailabilityMode["Weekly"] = "Weekly";
56
+ ClinicaAvailabilityMode["SpecificDays"] = "SpecificDays";
57
+ })(ClinicaAvailabilityMode || (exports.ClinicaAvailabilityMode = ClinicaAvailabilityMode = {}));
46
58
  // ============================================
47
59
  // META (Instagram e Facebook)
48
60
  // ============================================
@@ -100,6 +112,9 @@ var ClinicaAssistantActionType;
100
112
  ClinicaAssistantActionType["CancelAppointment"] = "CancelAppointment";
101
113
  // Bloqueia a agenda de um profissional (folga, imprevisto).
102
114
  ClinicaAssistantActionType["BlockAgenda"] = "BlockAgenda";
115
+ // Libera um dia para atendimento ("vou atender dia 19/10 em Piumhi das 9
116
+ // às 18").
117
+ ClinicaAssistantActionType["OpenDay"] = "OpenDay";
103
118
  ClinicaAssistantActionType["SendMessage"] = "SendMessage";
104
119
  ClinicaAssistantActionType["MoveLeadStage"] = "MoveLeadStage";
105
120
  // Campanhas (só o dono da conta, dentro dos limites de gasto).
@@ -79,7 +79,8 @@ export declare enum CrmHandoffReason {
79
79
  Sensitive = "Sensitive",
80
80
  ManualTakeover = "ManualTakeover",
81
81
  SlaBreach = "SlaBreach",
82
- MinorSuspected = "MinorSuspected"
82
+ MinorSuspected = "MinorSuspected",
83
+ AiTurnLimit = "AiTurnLimit"
83
84
  }
84
85
  export declare enum CrmAgentStyle {
85
86
  Service = "Service",
@@ -138,6 +138,9 @@ var CrmHandoffReason;
138
138
  // O contato disse ou deu sinal de ter menos de 18 anos, numa conversa de
139
139
  // persona adulta. A IA sai e não volta sozinha.
140
140
  CrmHandoffReason["MinorSuspected"] = "MinorSuspected";
141
+ // A IA mandou mensagens demais seguidas sem o contato responder (follow-up
142
+ // que não para, laço). Freio contra parecer spam e queimar o número.
143
+ CrmHandoffReason["AiTurnLimit"] = "AiTurnLimit";
141
144
  })(CrmHandoffReason || (exports.CrmHandoffReason = CrmHandoffReason = {}));
142
145
  // Como o agente conversa. Muda o que o núcleo injeta no prompt, a leitura do
143
146
  // opt-out e as travas — não o que a persona é, que continua no `systemPrompt`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrcb/cb-common",
3
- "version": "1.0.899",
3
+ "version": "1.0.900",
4
4
  "description": "Common resources between services",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",