Files
MySMSAPio/app/controllers/admin/dashboard_controller.rb
2025-10-22 17:22:17 +08:00

21 lines
984 B
Ruby

module Admin
class DashboardController < BaseController
def index
@stats = {
total_gateways: Gateway.count,
online_gateways: Gateway.online.count,
total_api_keys: ApiKey.count,
active_api_keys: ApiKey.active_keys.count,
messages_today: SmsMessage.where("created_at >= ?", Time.current.beginning_of_day).count,
messages_sent_today: SmsMessage.where("created_at >= ? AND direction = ?", Time.current.beginning_of_day, "outbound").count,
messages_received_today: SmsMessage.where("created_at >= ? AND direction = ?", Time.current.beginning_of_day, "inbound").count,
failed_messages_today: SmsMessage.where("created_at >= ? AND status = ?", Time.current.beginning_of_day, "failed").count,
pending_messages: SmsMessage.pending.count
}
@recent_messages = SmsMessage.order(created_at: :desc).limit(10)
@recent_gateways = Gateway.order(last_heartbeat_at: :desc).limit(5)
end
end
end