<?php
/**
 * ASISMA CRM - Dashboard Controller
 */
class DashboardController extends Controller {

    public function index() {
        $db = Database::getInstance();
        $tenantCond = $this->getTenantFilter('l');

        // Total Leads
        $totalLeads = $db->count('leads l', $tenantCond);

        // Leads Activos (que no estén en 'ganado', 'perdido' o 'invalido')
        $activoCond = $tenantCond . " AND l.estado_embudo NOT IN ('ganado', 'perdido', 'invalido')";
        $leadsActivos = $db->count('leads l', $activoCond);

        // Cotizaciones este mes
        $totalCotizacionesMes = 0;
        try {
            $cotizacionCond = $this->getTenantFilter('c') . " AND c.created_at >= DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00')";
            $totalCotizacionesMes = $db->count('cotizaciones c', $cotizacionCond);
        } catch (Exception $e) {
            // Silenciar errores en caso de estructura
        }

        // Tasa de Conversión (Leads Ganados / Total Leads que no sean inválidos)
        $conversionRate = 0;
        $totalValidos = $db->count('leads l', $tenantCond . " AND l.estado_embudo != 'invalido'");
        if ($totalValidos > 0) {
            $leadsGanados = $db->count('leads l', $tenantCond . " AND l.estado_embudo = 'ganado'");
            $conversionRate = round(($leadsGanados / $totalValidos) * 100, 1);
        }

        $this->render('dashboard/index', [
            'title' => 'Dashboard - ASISMA CRM',
            'stats' => [
                'total_leads' => $totalLeads,
                'leads_activos' => $leadsActivos,
                'cotizaciones_mes' => $totalCotizacionesMes,
                'conversion_rate' => $conversionRate
            ]
        ]);
    }
}
