Module: DailyFocus::Prompt
Overview
Short user-facing prompts for tool-based Daily Focus (no pre-injected CRM dumps).
Class Method Summary
collapse
time_off_planned_work_day_summary
Class Method Details
.focus_date_for_conversation(conversation) ⇒ Object
8
9
10
11
12
13
14
15
|
# File 'app/services/daily_focus/prompt.rb', line 8
def self.focus_date_for_conversation(conversation)
raw = conversation&.metadata&.dig('daily_focus_date')
return Date.current if raw.blank?
Date.iso8601(raw.to_s)
rescue ArgumentError
Date.current
end
|
.instructions_prefill(primary_employee:, covered_employees: [], date: Date.current) ⇒ Object
17
18
19
|
# File 'app/services/daily_focus/prompt.rb', line 17
def self.instructions_prefill(primary_employee:, covered_employees: [], date: Date.current)
user_message(primary_employee: primary_employee, covered_employees: covered_employees, date: date)
end
|
.user_message(primary_employee:, covered_employees: [], date: Date.current) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'app/services/daily_focus/prompt.rb', line 21
def self.user_message(primary_employee:, covered_employees: [], date: Date.current)
covered = Array(covered_employees).compact.uniq
preload_planned_availability!([primary_employee, *covered], date)
planned = planned_work_availability_section(
primary_employee: primary_employee,
covered_employees: covered,
date: date
)
tz = TimezoneHints.prompt_section(primary_employee: primary_employee, covered_employees: covered)
parts = [core_body(primary_employee, covered)]
parts << planned if planned.present?
parts << tz
parts.join(' ')
end
|