<?php
// ==========================================
// 0. CONFIGURACIÓN, INSTANCIA Y DEPURACIÓN
// ==========================================
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 1. Intentar buscar una variable global existente que sea un objeto de base de datos
foreach (['bd', 'db', 'conexion', 'conn', 'database', 'link'] as $varName) {
    if (isset($GLOBALS[$varName]) && is_object($GLOBALS[$varName])) {
        $bd = $GLOBALS[$varName];
        break;
    }
}

// 2. Si no existe la variable, pero la clase 'clsbdd' está disponible, la instanciamos directamente
if (!isset($bd)) {
    if (class_exists('clsbdd')) {
        $bd = new clsbdd();
    }
}

// Control preventivo de seguridad si no se pudo mapear la conexión
if (!isset($bd) || !is_object($bd)) {
    echo "<div class='container-fluid pt-4'>";
    echo "  <div class='card border-0 shadow-sm rounded-4 p-4 bg-danger bg-opacity-10 border border-danger-subtle'>";
    echo "      <h4 class='text-danger fw-bold mb-2'><i class='fas fa-exclamation-triangle me-2'></i>Falta Inyectar la Conexión</h4>";
    echo "      <p class='mb-2 text-dark small'>El Dashboard no detecta ninguna variable de base de datos activa o la clase <code>clsbdd</code> no ha sido cargada.</p>";
    echo "      <p class='mb-0 text-muted small'><strong>Sugerencia:</strong> Asegúrate de que tu archivo principal incluya el archivo de base de datos antes de mandar a llamar a esta vista.</p>";
    echo "  </div>";
    echo "</div>";
    exit;
}

// ==========================================
// 1. CONSULTAS DE LOS CONTADORES PRINCIPALES
// ==========================================

$total_bastoneras = 0;
$total_recaudado = 0.00;
$total_pendiente = 0.00;
$total_competencias = 0;
$total_profesores = 0;
$total_eventos = 0;

try {
    // A. Total de Bastoneras Activas
    $sql_bastoneras = "SELECT COUNT(*) as total FROM bas_bastoneras WHERE bas_estado = 1";
    $res_bastoneras = $bd->ejecutar($sql_bastoneras);
    if ($res_bastoneras) {
        $data_bastoneras = $res_bastoneras->fetch_assoc();
        $total_bastoneras = $data_bastoneras['total'] ?? 0;
    }

    // B. Total Recaudado en Pagos (Caja)
    $sql_pagos = "SELECT SUM(pag_monto) as total_caja FROM bas_pagos";
    $res_pagos = $bd->ejecutar($sql_pagos);
    if ($res_pagos) {
        $data_pagos = $res_pagos->fetch_assoc();
        $total_recaudado = $data_pagos['total_caja'] ?? 0.00;
    }

    // C. Cuentas por Cobrar Pendientes
    $sql_cxc = "SELECT SUM(cxc_saldo_pendiente) as total_pendiente FROM bas_cuentas_cobrar WHERE cxc_estado = 'PENDIENTE'";
    $res_cxc = $bd->ejecutar($sql_cxc);
    if ($res_cxc) {
        $data_cxc = $res_cxc->fetch_assoc();
        $total_pendiente = $data_cxc['total_pendiente'] ?? 0.00;
    }

    // D. Total de Competencias
    $sql_competencias = "SELECT COUNT(*) as total FROM bas_competencias";
    $res_competencias = $bd->ejecutar($sql_competencias);
    if ($res_competencias) {
        $data_competencias = $res_competencias->fetch_assoc();
        $total_competencias = $data_competencias['total'] ?? 0;
    }

    // E. CORREGIDO: Total de Profesores desde su tabla correspondiente (bas_profesores)
    $sql_profesores = "SELECT COUNT(*) as total FROM bas_profesores";
    $res_profesores = $bd->ejecutar($sql_profesores);
    if ($res_profesores) {
        $data_profesores = $res_profesores->fetch_assoc();
        $total_profesores = $data_profesores['total'] ?? 0;
    }

    // F. Eventos Propios
    $sql_eventos = "SELECT COUNT(*) as total FROM bas_eventos_propios";
    $res_eventos = $bd->ejecutar($sql_eventos);
    if ($res_eventos) {
        $data_eventos = $res_eventos->fetch_assoc();
        $total_eventos = $data_eventos['total'] ?? 0;
    }

} catch (Exception $e) {
    echo "<div class='alert alert-warning m-3 small'>Nota técnica de ejecución: " . $e->getMessage() . "</div>";
}
?>

<div class="container-fluid pt-4">
    
    <div class="row mb-4">
        <div class="col-12">
            <h2 class="h3 text-dark fw-bold mb-1">Panel de Control General</h2>
            <p class="text-muted small mb-0">Vista general del rendimiento operacional, financiero y técnico de la academia.</p>
        </div>
    </div>

    <div class="row mb-2">
        <div class="col-xl-4 col-md-6 mb-4">
            <div class="card border-0 shadow-sm rounded-4 h-100 py-2">
                <div class="card-body p-4">
                    <div class="d-flex align-items-center justify-content-between">
                        <div>
                            <div class="text-muted small fw-bold text-uppercase mb-1">Bastoneras Activas</div>
                            <div class="h2 mb-0 fw-bold text-dark"><?php echo $total_bastoneras; ?></div>
                        </div>
                        <div class="bg-primary-subtle text-primary rounded-circle p-3 d-inline-flex align-items-center justify-content-center" style="width: 55px; height: 55px;">
                            <i class="fas fa-users fa-lg"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-xl-4 col-md-6 mb-4">
            <div class="card border-0 shadow-sm rounded-4 h-100 py-2">
                <div class="card-body p-4">
                    <div class="d-flex align-items-center justify-content-between">
                        <div>
                            <div class="text-muted small fw-bold text-uppercase mb-1">Instructores / Staff</div>
                            <div class="h2 mb-0 fw-bold text-dark"><?php echo $total_profesores; ?></div>
                        </div>
                        <div class="bg-info-subtle text-info rounded-circle p-3 d-inline-flex align-items-center justify-content-center" style="width: 55px; height: 55px;">
                            <i class="fas fa-user-tie fa-lg"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-xl-4 col-md-12 mb-4">
            <div class="card border-0 shadow-sm rounded-4 h-100 py-2">
                <div class="card-body p-4">
                    <div class="d-flex align-items-center justify-content-between">
                        <div>
                            <div class="text-muted small fw-bold text-uppercase mb-1">Eventos y Copas</div>
                            <div class="h2 mb-0 fw-bold text-dark"><?php echo $total_eventos; ?> <span class="text-muted fs-6 fw-normal">/ <?php echo $total_competencias; ?> comp.</span></div>
                        </div>
                        <div class="bg-warning-subtle text-warning rounded-circle p-3 d-inline-flex align-items-center justify-content-center" style="width: 55px; height: 55px;">
                            <i class="fas fa-trophy fa-lg"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="row mb-4">
        <div class="col-md-6 mb-4">
            <div class="card border-0 shadow-sm rounded-4 h-100 py-2 bg-success bg-opacity-10 border border-success-subtle">
                <div class="card-body p-4">
                    <div class="d-flex align-items-center justify-content-between">
                        <div>
                            <div class="text-success small fw-bold text-uppercase mb-1">Caja Total Recaudada</div>
                            <div class="h3 mb-0 fw-bold text-success">$<?php echo number_format($total_recaudado, 2); ?></div>
                        </div>
                        <div class="bg-success text-white rounded-circle p-3 d-inline-flex align-items-center justify-content-center" style="width: 50px; height: 50px;">
                            <i class="fas fa-dollar-sign fa-lg"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-md-6 mb-4">
            <div class="card border-0 shadow-sm rounded-4 h-100 py-2 bg-danger bg-opacity-10 border border-danger-subtle">
                <div class="card-body p-4">
                    <div class="d-flex align-items-center justify-content-between">
                        <div>
                            <div class="text-danger small fw-bold text-uppercase mb-1">Saldos por Recuperar (CxC)</div>
                            <div class="h3 mb-0 fw-bold text-danger">$<?php echo number_format($total_pendiente, 2); ?></div>
                        </div>
                        <div class="bg-danger text-white rounded-circle p-3 d-inline-flex align-items-center justify-content-center" style="width: 50px; height: 50px;">
                            <i class="fas fa-hand-holding-usd fa-lg"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="row">
        <div class="col-xl-8 col-lg-7 mb-4">
            <div class="card border-0 shadow-sm rounded-4 mb-4">
                <div class="card-header bg-white py-3 border-0 pt-4 px-4">
                    <h5 class="m-0 fw-bold text-dark">
                        <i class="fas fa-user-plus text-primary me-2"></i>Últimas Alumnas Registradas
                    </h5>
                </div>
                <div class="card-body px-4 pb-4">
                    <div class="table-responsive">
                        <table class="table table-hover align-middle mb-0">
                            <thead class="table-light text-muted small fw-bold text-uppercase">
                                <tr>
                                    <th style="width: 20%">Cédula</th>
                                    <th>Nombre Completo</th>
                                    <th style="width: 25%">Fecha Ingreso</th>
                                    <th style="width: 20%">Estado</th>
                                </tr>
                            </thead>
                            <tbody class="small">
                                <?php
                                $sql_lista = "SELECT bas_cedula, bas_nombres, bas_apellidos, bas_fecha_ingreso, bas_estado 
                                              FROM bas_bastoneras 
                                              ORDER BY bas_id DESC LIMIT 5";
                                $res_lista = $bd->ejecutar($sql_lista);
                                if ($res_lista && $res_lista->num_rows > 0) {
                                    while ($row = $res_lista->fetch_assoc()) {
                                        $estado = ($row['bas_estado'] == 1) 
                                            ? '<span class="badge bg-success-subtle text-success border border-success-subtle rounded-pill px-3 py-1">Activa</span>' 
                                            : '<span class="badge bg-danger-subtle text-danger border border-danger-subtle rounded-pill px-3 py-1">Inactiva</span>';
                                        echo "<tr>";
                                        echo "<td class='fw-bold text-muted'>" . htmlspecialchars($row['bas_cedula']) . "</td>";
                                        echo "<td class='fw-bold text-dark'>" . htmlspecialchars($row['bas_apellidos'] . ' ' . $row['bas_nombres']) . "</td>";
                                        echo "<td>" . date('d/m/Y', strtotime($row['bas_fecha_ingreso'])) . "</td>";
                                        echo "<td>" . $estado . "</td>";
                                        echo "</tr>";
                                    }
                                } else {
                                    echo "<tr><td colspan='4' class='text-center text-muted py-4'>No hay bastoneras registradas todavía.</td></tr>";
                                }
                                ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-xl-4 col-lg-5 mb-4">
            <div class="card border-0 shadow-sm rounded-4">
                <div class="card-header bg-white py-3 border-0 pt-4 px-4">
                    <h5 class="m-0 fw-bold text-dark">
                        <i class="fas fa-chart-pie text-info me-2"></i>Distribución Técnica
                    </h5>
                </div>
                <div class="card-body px-4 pb-4 pt-1">
                    <p class="text-muted small mb-3">Resumen de alumnas por categorías asignadas:</p>
                    <div class="list-group list-group-flush">
                        <?php
                        $sql_distribucion = "SELECT c.cla_categoria, COUNT(b.bas_id) as total_cat 
                                             FROM bas_clasificaciones c 
                                             LEFT JOIN bas_bastoneras b ON c.cla_id = b.cla_id AND b.bas_estado = 1
                                             WHERE c.cla_estado = 1 
                                             GROUP BY c.cla_categoria 
                                             ORDER BY total_cat DESC LIMIT 4";
                        $res_distribucion = $bd->ejecutar($sql_distribucion);
                        if ($res_distribucion && $res_distribucion->num_rows > 0) {
                            while ($cat = $res_distribucion->fetch_assoc()) {
                                echo '<div class="list-group-item d-flex justify-content-between align-items-center px-0 py-2.5 border-bottom border-light">';
                                echo '  <div class="d-flex align-items-center">';
                                echo '      <i class="fas fa-star text-warning me-2 small"></i>';
                                echo '      <span class="text-dark fw-bold small">' . htmlspecialchars($cat['cla_categoria']) . '</span>';
                                echo '  </div>';
                                echo '  <span class="badge bg-light text-primary border rounded-pill px-2.5 py-1 fw-bold small">' . $cat['total_cat'] . ' Alumnas</span>';
                                echo '</div>';
                            }
                        } else {
                            echo '<div class="text-center text-muted small py-3">Sin clasificaciones técnicas configuradas.</div>';
                        }
                        ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>