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

session_start();
// Verificar si el usuario está logueado y tiene los roles permitidos
if (!isset($_SESSION['usuario_id']) || 
    empty($_SESSION['usuario_id']) || 
    !in_array($_SESSION['rol'], ['admin', 'registrador_de_productos'])) {
    header('Location: ../login.php');
    exit;
}

$db = new Database();

// Obtener configuración
$config = $db->query("SELECT favicon, color_principal, color_secundario FROM configuracion WHERE id = 1")->fetch();
$favicon = $config['favicon'] ? '../uploads/config/' . $config['favicon'] : '';
$colorPrincipal = $config['color_principal'] ?? '#007bff';
$colorSecundario = $config['color_secundario'] ?? '#6c757d';

// Obtener las secciones para el selector
$secciones = $db->query("SELECT id, nombre FROM secciones ORDER BY nombre")->fetchAll();

// Procesar formulario
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    header('Content-Type: application/json');
    
    try {
        if (!isset($_POST['codigo']) || !isset($_POST['nombre']) || !isset($_POST['id_seccion'])) {
            throw new Exception("Faltan datos requeridos");
        }

        $codigo = trim($_POST['codigo']);
        $nombre = trim($_POST['nombre']);
        $descripcion = trim($_POST['descripcion'] ?? '');
        $id_seccion = $_POST['id_seccion'];

        // Debug
        error_log("ID Seccion recibido: " . print_r($id_seccion, true));

        // Validaciones
        if ($codigo === '') {
            throw new Exception("El código es obligatorio");
        }
        if ($nombre === '') {
            throw new Exception("El nombre es obligatorio");
        }
        if (!isset($id_seccion) || $id_seccion === '') {
            throw new Exception("La sección es obligatoria");
        }

        // Verificar si la sección existe (permitiendo id 0)
        $stmt = $db->prepare("SELECT id FROM secciones WHERE id = ? LIMIT 1");
        $stmt->execute([$id_seccion]);
        if (!$stmt->fetch() && $id_seccion !== '0') {
            throw new Exception("La sección seleccionada no es válida");
        }

        // Verificar si el código ya existe
        $stmt = $db->prepare("SELECT id FROM subsecciones WHERE codigo = ?");
        $stmt->execute([$codigo]);
        $existente = $stmt->fetch();
        
        if ($existente) {
            throw new Exception("Ya existe una subsección con este código");
        }

        // Validar valor de destacar
        $destacar = $_POST['destacar'] ?? 'NO';
        if (!in_array($destacar, ['SI', 'NO'])) {
            throw new Exception("El valor de destacar debe ser SI o NO");
        }

        // Insertar subsección
        $stmt = $db->prepare("INSERT INTO subsecciones (codigo, nombre, descripcion, id_seccion, destacar) VALUES (?, ?, ?, ?, ?)");
        if (!$stmt->execute([$codigo, $nombre, $descripcion, $id_seccion, $destacar])) {
            throw new Exception("Error al guardar en la base de datos");
        }

        echo json_encode([
            'success' => true,
            'message' => 'Subsección registrada correctamente'
        ]);
        
    } catch (Exception $e) {
        http_response_code(400); // Cambiado de 500 a 400 para errores de validación
        echo json_encode([
            'success' => false,
            'message' => $e->getMessage()
        ]);
        exit;
    }
    exit;
}
//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>Registrar Subsección</title>
    <?php if ($favicon): ?>
    <link rel="icon" type="image/x-icon" href="<?= htmlspecialchars($favicon) ?>">
    <?php endif; ?>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <style>
        :root {
            --color-primary: <?= $colorPrincipal ?>;
            --color-secondary: <?= $colorSecundario ?>;
            --color-primary-rgb: <?= sscanf($colorPrincipal, "#%02x%02x%02x", $r, $g, $b) ? "{$r},{$g},{$b}" : "0,123,255" ?>;
        }
        .btn-primary {
            background-color: var(--color-primary);
            border-color: var(--color-primary);
        }
        .btn-secondary {
            background-color: var(--color-secondary);
            border-color: var(--color-secondary);
        }
        .container {
            max-width: 800px;
            margin-top: 2rem;
        }
        .header {
            margin-bottom: 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .header h1 {
            color: var(--color-primary);
            margin: 0;
            font-weight: 600;
        }
        /* Estilos para los campos del formulario */
        .form-control {
            border: 1px solid #dee2e6;
            transition: all 0.2s ease-in-out;
        }
        
        .form-control:hover {
            border-color: var(--color-primary);
        }
        
        .form-control:focus {
            border-color: var(--color-primary);
            box-shadow: 0 0 0 0.2rem rgba(var(--color-primary-rgb), 0.25);
            outline: 0;
        }

        /* También aplicar al select */
        select.form-control {
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>Registrar Subsección</h1>
            <a href="subsecciones.php" class="btn btn-secondary">
                <?php 
                $icon = @file_get_contents('icons/arrow-left.svg');
                echo $icon ? $icon : '←'; 
                ?> Volver
            </a>
        </div>

        <form id="subseccionForm" method="POST">
            <div class="mb-3">
                <label for="id_seccion" class="form-label">Sección *</label>
                <select class="form-control" id="id_seccion" name="id_seccion" required>
                    <option value="">Seleccione una sección</option>
                    <?php foreach ($secciones as $seccion): ?>
                        <option value="<?= $seccion['id'] ?>"><?= htmlspecialchars($seccion['nombre']) ?></option>
                    <?php endforeach; ?>
                </select>
            </div>

            <div class="mb-3">
                <label for="codigo" class="form-label">Código *</label>
                <input type="text" class="form-control" id="codigo" name="codigo" required>
            </div>

            <div class="mb-3">
                <label for="nombre" class="form-label">Nombre *</label>
                <input type="text" class="form-control" id="nombre" name="nombre" required>
            </div>

            <div class="mb-3">
                <label for="descripcion" class="form-label">Descripción</label>
                <textarea class="form-control" id="descripcion" name="descripcion" rows="3"></textarea>
            </div>

            <div class="mb-3">
                <label for="destacar" class="form-label">Destacar</label>
                <select class="form-control" id="destacar" name="destacar" required>
                    <option value="NO">NO</option>
                    <option value="SI">SI</option>
                </select>
            </div>

            <button type="submit" class="btn btn-primary">
                <?php 
                $icon = @file_get_contents('icons/save.svg');
                echo $icon ? $icon : ''; 
                ?> Guardar
            </button>
        </form>
    </div>

    <script>
        document.getElementById('subseccionForm').addEventListener('submit', async function(e) {
            e.preventDefault();
            
            try {
                const formData = new FormData(this);
                console.log('ID Seccion enviado:', formData.get('id_seccion')); // Debug
                
                const response = await fetch(window.location.href, {
                    method: 'POST',
                    body: formData
                });
                
                const data = await response.json();
                
                if (data.success) {
                    alert(data.message);
                    window.location.href = 'subsecciones.php'; // Cambiado de 'nuevo-producto.php' a 'subsecciones.php'
                } else {
                    throw new Error(data.message);
                }
            } catch (error) {
                console.error('Error:', error);
                alert(error.message || 'Error al procesar la solicitud');
            }
        });
    </script>
</body>
</html>
