Class: DailyFocusManagerReportWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job
Defined in:
app/workers/daily_focus_manager_report_worker.rb

Overview

Sends a consolidated Daily Focus digest email to sales managers
after all per-rep analyses have been generated.

Enqueued by DailyFocusAnalysisWorker with a delay to allow
per-rep workers to complete first.

Instance Method Summary collapse

Instance Method Details

#performObject

Sends the consolidated Daily Focus digest for today's pending-review conversations.
Recipients are a fixed allowlist (see InternalMailer::DAILY_FOCUS_DIGEST_RECIPIENTS), not every sales_manager/sales_director.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/workers/daily_focus_manager_report_worker.rb', line 17

def perform
  conversations = todays_focus_conversations
  return if conversations.empty?

  recipient_emails = InternalMailer::DAILY_FOCUS_DIGEST_RECIPIENTS

  InternalMailer.daily_focus_digest(
    conversations: conversations,
    recipient_emails: recipient_emails
  ).deliver_now

  Rails.logger.info("[DailyFocusManagerReportWorker] Sent digest to #{recipient_emails.size} recipients covering #{conversations.size} reps")
rescue StandardError => e
  Rails.logger.error("[DailyFocusManagerReportWorker] Failed: #{e.message}\n#{e.backtrace.first(5).join("\n")}")
  ErrorReporting.error(e, source: :background, context: { worker: 'DailyFocusManagerReportWorker' })
end