# app/controllers/motorista/dashboard_controller.rb
module Motorista
  class DashboardController < ApplicationController
    before_action :garantir_motorista

    # GET /motorista
    def index
      nome = current_user.nome

      # Card 1 — Valor ESTIMADO (mês atual): entregas pagas × preco_entrega
      entregas_mes = Entrega.pagas.da_conta_gade
                            .do_motorista(nome)
                            .no_periodo(Date.current.beginning_of_month, Date.current)
                            .count
      @valor_estimado   = entregas_mes * Configuracao.preco_entrega
      @entregas_mes     = entregas_mes

      # Card 2 — Valor CONSOLIDADO: soma das consolidações finalizadas
      @minhas_consolidacoes = Consolidacao.ativas
                                          .joins(:consolidacao_motoristas)
                                          .where(consolidacao_motoristas: { motorista_nome: nome })
                                          .recentes
                                          .distinct

      @valor_consolidado = ConsolidacaoMotorista
                             .joins(:consolidacao)
                             .where(motorista_nome: nome,
                                    consolidacoes: { status: :finalizada, deleted_at: nil })
                             .sum(:valor_total)

      # Aviso in-app: pagamentos confirmados nos últimos 7 dias (notificação na
      # própria página do motorista, além de WhatsApp/email).
      @pagamentos_recentes = ConsolidacaoMotorista
                               .joins(:consolidacao)
                               .where(motorista_nome: nome,
                                      consolidacoes: { status: :finalizada, deleted_at: nil })
                               .where.not(pago_em: nil)
                               .where('pago_em >= ?', 7.days.ago)
                               .order(pago_em: :desc)
                               .includes(:consolidacao)
    end

    private

    def garantir_motorista
      return if current_user.motorista?
      redirect_to dashboard_path, alert: 'Área exclusiva dos motoristas.'
    end
  end
end
