<?php
session_start();
// Verificar si el usuario está logueado y es admin
if (!isset($_SESSION['usuario_id']) || empty($_SESSION['usuario_id']) || $_SESSION['rol'] !== 'admin') {
    header('Location: ../login.php');
    exit;
}

require_once '../includes/config.php';
require_once '../includes/db.php';
//require_once '../includes/theme_only.php';

$db = new Database();

// Obtener configuración
$config = $db->query("SELECT color_principal, color_secundario, favicon FROM configuracion LIMIT 1")->fetch();

// Procesar formulario
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['accion'])) {
        $fecha = $_POST['fecha'];
        $descripcion = mb_strtoupper(trim($_POST['descripcion']), 'UTF-8'); // Eliminar espacios y convertir a mayúsculas
        
        switch($_POST['accion']) {
            case 'agregar':
                try {
                    $db->query("INSERT INTO feriados (fecha, descripcion) VALUES (?, ?)", [$fecha, $descripcion]);
                    $_SESSION['mensaje'] = "Feriado agregado correctamente";
                } catch(PDOException $e) {
                    $_SESSION['error'] = "Error al agregar: " . $e->getMessage();
                }
                break;
                
            case 'modificar':
                $id = $_POST['id'];
                try {
                    $db->query("UPDATE feriados SET fecha = ?, descripcion = ? WHERE id = ?", 
                              [$fecha, $descripcion, $id]);
                    $_SESSION['mensaje'] = "Feriado modificado correctamente";
                } catch(PDOException $e) {
                    $_SESSION['error'] = "Error al modificar: " . $e->getMessage();
                }
                break;
                
            case 'eliminar':
                $id = $_POST['id'];
                try {
                    $db->query("DELETE FROM feriados WHERE id = ?", [$id]);
                    $_SESSION['mensaje'] = "Feriado eliminado correctamente";
                } catch(PDOException $e) {
                    $_SESSION['error'] = "Error al eliminar: " . $e->getMessage();
                }
                break;
        }
        header('Location: feriados.php');
        exit;
    }
}

// Obtener todos los feriados
$feriados = $db->query("SELECT * FROM feriados ORDER BY fecha")->fetchAll();
//echo getThemeCSS();
require_once '../includes/header.php';
?>

<!DOCTYPE html>
<html lang="es">
<head>
<?php
    // Modo oscuro
    require_once '../includes/dark_mode.php';
    ?>
    <meta name="color-scheme" content="light dark">
    <?php echo getDarkModeStyles(); ?>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gestión de Feriados</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <?php if (!empty($config['favicon'])): ?>
    <link rel="shortcut icon" href="../uploads/config/<?php echo htmlspecialchars($config['favicon']); ?>">
    <?php endif; ?>
    <style>
        :root {
            --bs-primary: <?php echo htmlspecialchars($config['color_principal']); ?>;
            --bs-secondary: <?php echo htmlspecialchars($config['color_secundario']); ?>;
        }
        .btn-primary {
            background-color: var(--bs-primary);
            border-color: var(--bs-primary);
            transition: all 0.3s ease;
        }
        .btn-primary:hover {
            background-color: var(--bs-secondary);
            border-color: var(--bs-secondary);
        }
        .btn-secondary {
            background-color: var(--bs-secondary);
            border-color: var(--bs-secondary);
        }
        .btn-secondary:hover {
            filter: brightness(90%);
            border-color: var(--bs-secondary);
        }
        h2.text-primary {
            color: var(--bs-primary) !important;
        }
        .form-control:focus {
            border-color: var(--bs-primary);
            box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
        }
        
        /* Convertir color hex a RGB para el efecto de sombra */
        <?php
        $hex = ltrim($config['color_principal'], '#');
        $rgb = sscanf($hex, '%02x%02x%02x');
        ?>
        :root {
            --bs-primary-rgb: <?php echo "{$rgb[0]}, {$rgb[1]}, {$rgb[2]}"; ?>;
        }
        
        /* Estilos responsive */
        @media (max-width: 768px) {
            body {
                font-size: 16px;
            }
            .container {
                padding: 15px;
            }
            .btn-sm {
                padding: 10px 15px;
                margin: 3px;
                font-size: 1rem;
            }
            .table-responsive {
                font-size: 1rem;
            }
            h2 {
                font-size: 1.8rem;
                margin-bottom: 1rem;
            }
            .form-control {
                font-size: 1rem;
                padding: 0.5rem;
                height: auto;
            }
            .form-label {
                font-size: 1.1rem;
                margin-bottom: 0.5rem;
            }
            td, th {
                padding: 12px 8px;
            }
            img {
                width: 20px;
                height: 20px;
            }
            .btn-submit-container {
                margin-top: 1.5rem;
            }
        }
        .header-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1.5rem;
        }
        .btn-volver {
            padding: 0.5rem 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .btn-volver img {
            width: 16px;
            height: 16px;
            margin-top: -2px;
        }
        
        /* Estilo para los iconos de editar */
        .btn-secondary img {
            filter: brightness(0) saturate(100%) 
                   invert(<?php
                        $hex = ltrim($config['color_principal'], '#');
                        list($r, $g, $b) = sscanf($hex, "%02x%02x%02x");
                        echo number_format(1 - (0.299 * $r + 0.587 * $g + 0.114 * $b)/255, 2);
                   ?>) 
                   opacity(1) !important;
        }

        /* Mantener los iconos de eliminar en blanco */
        .btn-danger img {
            filter: invert(1) !important;
        }
    </style>
</head>
<body class="container mt-4">
    <div class="header-container">
        <h2 class="text-primary">Gestión de Feriados</h2>
        <a href="configuracion.php" class="btn btn-secondary btn-volver">
            <img src="icons/arrow-left.svg" alt="Volver" style="filter: invert(1);">
            Volver
        </a>
    </div>
    
    <?php if (isset($_SESSION['mensaje'])): ?>
        <div class="alert alert-success">
            <?php 
            echo $_SESSION['mensaje'];
            unset($_SESSION['mensaje']);
            ?>
        </div>
    <?php endif; ?>
    
    <?php if (isset($_SESSION['error'])): ?>
        <div class="alert alert-danger">
            <?php 
            echo $_SESSION['error'];
            unset($_SESSION['error']);
            ?>
        </div>
    <?php endif; ?>

    <!-- Formulario de registro -->
    <form method="POST" class="mb-4">
        <input type="hidden" name="id" id="id">
        <input type="hidden" name="accion" id="accion" value="agregar">
        
        <div class="row g-3">
            <div class="col-12 col-md-3">
                <label for="fecha">Fecha:</label>
                <input type="date" class="form-control" id="fecha" name="fecha" required>
            </div>
            <div class="col-12 col-md-7">
                <label for="descripcion">Descripción:</label>
                <input type="text" class="form-control" id="descripcion" name="descripcion" required>
            </div>
            <div class="col-12 col-md-2 btn-submit-container">
                <label class="d-none d-md-block">&nbsp;</label>
                <button type="submit" class="btn btn-primary w-100">Guardar</button>
            </div>
        </div>
    </form>

    <!-- Tabla de feriados -->
    <div class="table-responsive">
        <table class="table table-striped">
            <thead>
                <tr>
                    <th>Fecha</th>
                    <th>Descripción</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($feriados as $feriado): ?>
                <tr>
                    <td><?php echo date('d/m/Y', strtotime($feriado['fecha'])); ?></td>
                    <td><?php echo htmlspecialchars($feriado['descripcion']); ?></td>
                    <td>
                        <button class="btn btn-sm btn-secondary" onclick="editar(<?php 
                            echo htmlspecialchars(json_encode($feriado)); 
                        ?>)">
                            <img src="../admin/icons/pencil.svg" alt="Editar" width="16" height="16" style="filter: invert(1);">
                        </button>
                        <button class="btn btn-sm btn-danger" onclick="eliminar(<?php 
                            echo $feriado['id']; 
                        ?>)">
                            <img src="icons/trash.svg" alt="Eliminar" width="16" height="16" style="filter: invert(1);">
                        </button>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>

    <script>
    function editar(feriado) {
        document.getElementById('id').value = feriado.id;
        document.getElementById('fecha').value = feriado.fecha;
        document.getElementById('descripcion').value = feriado.descripcion;
        document.getElementById('accion').value = 'modificar';
    }

    function eliminar(id) {
        if (confirm('¿Está seguro de eliminar este feriado?')) {
            document.getElementById('id').value = id;
            document.getElementById('accion').value = 'eliminar';
            document.querySelector('form').submit();
        }
    }
    </script>
</body>
</html>
