Class: ChatUsageService
- Inherits:
-
Object
- Object
- ChatUsageService
- Includes:
- ApplicationHelper, ChatsHelper
- Defined in:
- app/services/chat_usage_service.rb
Instance Method Summary collapse
- #chats_per_day_data ⇒ Object
-
#initialize(company) ⇒ ChatUsageService
constructor
A new instance of ChatUsageService.
- #messages_per_day_data ⇒ Object
Methods included from ChatsHelper
#calculate_chat_analytics, #calculate_messages_analytics, #format_chats_per_day_data, #format_messages_per_day_data
Constructor Details
#initialize(company) ⇒ ChatUsageService
Returns a new instance of ChatUsageService.
5 6 7 |
# File 'app/services/chat_usage_service.rb', line 5 def initialize(company) @company = company end |
Instance Method Details
#chats_per_day_data ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/chat_usage_service.rb', line 9 def chats_per_day_data days = 30 end_date = Date.current start_date = end_date - days.to_i.days chats_by_date = @company.chats .where(active: true) .where(created_at: start_date.beginning_of_day..end_date.end_of_day) .group('CAST(created_at AS DATE)') .count data = format_chats_per_day_data(start_date, end_date, chats_by_date) analytics = calculate_chat_analytics(data) { chats_per_day: data, **analytics } end |
#messages_per_day_data ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/services/chat_usage_service.rb', line 29 def days = 15 end_date = Date.current start_date = end_date - days.days chat_ids = @company.chats .where(active: true) .where(created_at: start_date.beginning_of_day..end_date.end_of_day) .pluck(:chat_id) = ChatMessage .where(chat_id: chat_ids) .where(created_at: start_date.beginning_of_day..end_date.end_of_day) .group('CAST(created_at AS DATE)', 'COALESCE(completion_model_name, \'other\')') .count data = (start_date, end_date, ) analytics = (data) { messages_per_day: data, **analytics } end |