@wrcb/cb-common 1.0.903 → 1.0.904

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,4 +29,6 @@ export declare class RedisService {
29
29
  static clinicaRoundLockKey(tenant: Tenant, worker: string): string;
30
30
  /** Cache das leituras da Meta (campanhas, posts) de uma conta. */
31
31
  static clinicaMetaCacheKey(tenant: Tenant, ownerId: string, what: string): string;
32
+ /** Cache das métricas de uma conta (`what` separa funil, período e quem vê). */
33
+ static clinicaMetricsKey(tenant: Tenant, ownerId: string, what: string): string;
32
34
  }
@@ -85,5 +85,9 @@ class RedisService {
85
85
  static clinicaMetaCacheKey(tenant, ownerId, what) {
86
86
  return `${tenant}:clinica:meta:${ownerId}:${what}`;
87
87
  }
88
+ /** Cache das métricas de uma conta (`what` separa funil, período e quem vê). */
89
+ static clinicaMetricsKey(tenant, ownerId, what) {
90
+ return `${tenant}:clinica:metrics:${ownerId}:${what}`;
91
+ }
88
92
  }
89
93
  exports.RedisService = RedisService;
@@ -381,7 +381,15 @@ export declare enum ClinicaScheduledKind {
381
381
  FollowUp = "FollowUp",
382
382
  Recontact = "Recontact",
383
383
  Reminder = "Reminder",
384
- StageMessage = "StageMessage"
384
+ StageMessage = "StageMessage",
385
+ Manual = "Manual"
386
+ }
387
+ /** Vida de uma mensagem programada à mão pela equipe. */
388
+ export declare enum ClinicaManualMessageStatus {
389
+ Pending = "Pending",
390
+ Sending = "Sending",
391
+ Sent = "Sent",
392
+ Failed = "Failed"
385
393
  }
386
394
  /** Por que não há follow-up previsto (os lembretes da consulta saem mesmo assim). */
387
395
  export declare enum ClinicaFollowUpPause {
@@ -399,8 +407,38 @@ export interface ClinicaScheduledMessage {
399
407
  totalSteps: number | null;
400
408
  beforeMinutes: number | null;
401
409
  appointmentStart: string | null;
410
+ createdByName: string | null;
411
+ failed: boolean;
402
412
  }
403
413
  export interface ClinicaScheduledInfo {
404
414
  items: ClinicaScheduledMessage[];
405
415
  followUpPaused: ClinicaFollowUpPause | null;
406
416
  }
417
+ export interface ClinicaCreateScheduledMessageInput {
418
+ content: string;
419
+ at: string;
420
+ }
421
+ /** Enviadas pela equipe numa hora do dia, somando todos os dias do período. */
422
+ export interface ClinicaSentByHour {
423
+ hour: number;
424
+ browser: number;
425
+ phone: number;
426
+ }
427
+ /** Recebidas dos pacientes numa hora do dia, somando todos os dias do período. */
428
+ export interface ClinicaReceivedByHour {
429
+ hour: number;
430
+ total: number;
431
+ }
432
+ export interface ClinicaSentMessagesMetrics {
433
+ timezone: string;
434
+ browser: number;
435
+ phone: number;
436
+ ai: number;
437
+ automatic: number;
438
+ byHour: ClinicaSentByHour[];
439
+ responseTime: {
440
+ averageSeconds: number | null;
441
+ replies: number;
442
+ onlyMine: boolean;
443
+ };
444
+ }
@@ -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.ClinicaFollowUpPause = exports.ClinicaScheduledKind = exports.ClinicaOnboardingStepKey = exports.ClinicaColor = exports.ClinicaTeamRole = 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;
6
+ exports.ClinicaFollowUpPause = exports.ClinicaManualMessageStatus = exports.ClinicaScheduledKind = exports.ClinicaOnboardingStepKey = exports.ClinicaColor = exports.ClinicaTeamRole = 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
  // ============================================
@@ -224,7 +224,18 @@ var ClinicaScheduledKind;
224
224
  ClinicaScheduledKind["Reminder"] = "Reminder";
225
225
  // Mensagem da sequência da etapa (ex.: pós-operatório).
226
226
  ClinicaScheduledKind["StageMessage"] = "StageMessage";
227
+ // Escrita por alguém da equipe para sair em dia e hora escolhidos.
228
+ ClinicaScheduledKind["Manual"] = "Manual";
227
229
  })(ClinicaScheduledKind || (exports.ClinicaScheduledKind = ClinicaScheduledKind = {}));
230
+ /** Vida de uma mensagem programada à mão pela equipe. */
231
+ var ClinicaManualMessageStatus;
232
+ (function (ClinicaManualMessageStatus) {
233
+ ClinicaManualMessageStatus["Pending"] = "Pending";
234
+ // Reservada por um worker: é o que impede dois pods de mandarem a mesma.
235
+ ClinicaManualMessageStatus["Sending"] = "Sending";
236
+ ClinicaManualMessageStatus["Sent"] = "Sent";
237
+ ClinicaManualMessageStatus["Failed"] = "Failed";
238
+ })(ClinicaManualMessageStatus || (exports.ClinicaManualMessageStatus = ClinicaManualMessageStatus = {}));
228
239
  /** Por que não há follow-up previsto (os lembretes da consulta saem mesmo assim). */
229
240
  var ClinicaFollowUpPause;
230
241
  (function (ClinicaFollowUpPause) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrcb/cb-common",
3
- "version": "1.0.903",
3
+ "version": "1.0.904",
4
4
  "description": "Common resources between services",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",