<?php
require_once '../../includes/auth.php';
requireRole('admin');

// Configurar título de página
$pageTitle = "Gestión de Docentes";
$nombreColegio = APP_NAME;
$usuarioNombre = $_SESSION['user_name'] ?? 'Administrador';

// Procesar formulario si se envió
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Validar y procesar los datos del formulario
    $nombre = trim($_POST['nombre'] ?? '');
    $apellido = trim($_POST['apellido'] ?? '');
    $email = trim($_POST['email'] ?? '');
    $telefono = trim($_POST['telefono'] ?? '');
    $especialidad = trim($_POST['especialidad'] ?? '');
    $estado = $_POST['estado'] ?? 'activo';
    $asignaciones = $_POST['asignaciones'] ?? [];

    // Validaciones básicas
    $errores = [];
    if (empty($nombre)) $errores[] = "El nombre es requerido";
    if (empty($apellido)) $errores[] = "El apellido es requerido";
    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) $errores[] = "Email inválido";
    if (empty($especialidad)) $errores[] = "La especialidad es requerida";

    if (empty($errores)) {
        global $db;
        try {
            $db->beginTransaction();
            
            // 1. Insertar en tabla usuarios
            $usuarioId = $db->insert("usuarios", [
                'nombre' => $nombre,
                'apellido' => $apellido,
                'email' => $email,
                'telefono' => $telefono,
                'password' => password_hash('temp123', PASSWORD_DEFAULT),
                'tipo' => 'docente',
                'fecha_creacion' => date('Y-m-d H:i:s')
            ]);
            
            // 2. Insertar en tabla docentes
            $docenteId = $db->insert("docentes", [
                'usuario_id' => $usuarioId,
                'especialidad' => $especialidad,
                'estado' => $estado
            ]);
            
            // 3. Insertar asignaciones
            foreach ($asignaciones as $asignacion) {
                $db->insert("docente_curso_seccion", [
                    'docente_id' => $docenteId,
                    'curso_id' => $asignacion['curso_id'],
                    'seccion_id' => $asignacion['seccion_id'],
                    'periodo' => $asignacion['periodo']
                ]);
            }
            
            $db->commit();
            
            // Redirigir al listado con mensaje de éxito
            $_SESSION['mensaje'] = "Docente registrado exitosamente";
            header("Location: docentes.php");
            exit;
        } catch (Exception $e) {
            $db->rollBack();
            $errores[] = "Error al registrar el docente: " . $e->getMessage();
        }
    }
}

// Obtener datos para formulario
global $db;
$cursos = $db->fetchAll("SELECT id, nombre FROM cursos ORDER BY nombre");
$secciones = $db->fetchAll("SELECT id, CONCAT(nivel, ' - Grado ', grado, ' Sección ', seccion) AS nombre 
                           FROM secciones ORDER BY nivel, grado, seccion");
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= $pageTitle ?> - <?= $nombreColegio ?></title>
    
    <!-- Bootstrap CSS -->
    <link href="<?= APP_URL ?>/assets/css/bootstrap.min.css" rel="stylesheet">
    
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <!-- Estilos personalizados -->
    <style>
        .card {
            border-radius: 10px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
        .form-control, .form-select {
            border-radius: 5px;
            padding: 10px;
        }
        .btn-submit {
            background-color: #2c3e50;
            border: none;
            padding: 10px 20px;
            font-weight: 500;
        }
        .btn-submit:hover {
            background-color: #1a252f;
        }
        .asignacion-row {
            border-bottom: 1px solid #eee;
            padding: 10px 0;
        }
        .btn-remove-asignacion {
            color: #dc3545;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class="container py-5">
        <div class="row justify-content-center">
            <div class="col-lg-10">
                <div class="card border-0 shadow">
                    <div class="card-header bg-primary text-white py-3">
                        <div class="d-flex justify-content-between align-items-center">
                            <h4 class="mb-0"><i class="fas fa-chalkboard-teacher me-2"></i> Nuevo Docente</h4>
                            <a href="docentes.php" class="btn btn-sm btn-light">
                                <i class="fas fa-arrow-left me-1"></i> Volver
                            </a>
                        </div>
                    </div>
                    
                    <div class="card-body p-4">
                        <?php if (!empty($errores)): ?>
                            <div class="alert alert-danger">
                                <ul class="mb-0">
                                    <?php foreach ($errores as $error): ?>
                                        <li><?= htmlspecialchars($error) ?></li>
                                    <?php endforeach; ?>
                                </ul>
                            </div>
                        <?php endif; ?>
                        
                        <form method="POST" action="">
                            <div class="row g-3 mb-4">
                                <!-- Datos Personales -->
                                <h5 class="mb-3"><i class="fas fa-user me-2"></i> Información Personal</h5>
                                
                                <div class="col-md-6">
                                    <label for="nombre" class="form-label">Nombre</label>
                                    <input type="text" class="form-control" id="nombre" name="nombre" required 
                                           value="<?= htmlspecialchars($_POST['nombre'] ?? '') ?>">
                                </div>
                                
                                <div class="col-md-6">
                                    <label for="apellido" class="form-label">Apellido</label>
                                    <input type="text" class="form-control" id="apellido" name="apellido" required
                                           value="<?= htmlspecialchars($_POST['apellido'] ?? '') ?>">
                                </div>
                                
                                <div class="col-md-6">
                                    <label for="email" class="form-label">Email</label>
                                    <input type="email" class="form-control" id="email" name="email" required
                                           value="<?= htmlspecialchars($_POST['email'] ?? '') ?>">
                                </div>
                                
                                <div class="col-md-6">
                                    <label for="telefono" class="form-label">Teléfono</label>
                                    <input type="tel" class="form-control" id="telefono" name="telefono"
                                           value="<?= htmlspecialchars($_POST['telefono'] ?? '') ?>">
                                </div>
                                
                                <!-- Información Profesional -->
                                <h5 class="mt-4 mb-3"><i class="fas fa-briefcase me-2"></i> Información Profesional</h5>
                                
                                <div class="col-md-8">
                                    <label for="especialidad" class="form-label">Especialidad</label>
                                    <input type="text" class="form-control" id="especialidad" name="especialidad" required
                                           value="<?= htmlspecialchars($_POST['especialidad'] ?? '') ?>">
                                </div>
                                
                                <div class="col-md-4">
                                    <label for="estado" class="form-label">Estado</label>
                                    <select class="form-select" id="estado" name="estado" required>
                                        <option value="activo" <?= ($_POST['estado'] ?? '') === 'activo' ? 'selected' : '' ?>>Activo</option>
                                        <option value="inactivo" <?= ($_POST['estado'] ?? '') === 'inactivo' ? 'selected' : '' ?>>Inactivo</option>
                                        <option value="licencia" <?= ($_POST['estado'] ?? '') === 'licencia' ? 'selected' : '' ?>>Licencia</option>
                                    </select>
                                </div>
                            </div>
                            
                            <!-- Asignaciones de Cursos -->
                            <div class="mb-4">
                                <h5 class="mb-3"><i class="fas fa-book me-2"></i> Asignaciones de Cursos</h5>
                                
                                <div id="asignaciones-container">
                                    <div class="asignacion-row row g-3 mb-3">
                                        <div class="col-md-4">
                                            <label class="form-label">Curso</label>
                                            <select name="asignaciones[0][curso_id]" class="form-select" required>
                                                <option value="">Seleccionar curso...</option>
                                                <?php foreach ($cursos as $curso): ?>
                                                    <option value="<?= $curso['id'] ?>"><?= htmlspecialchars($curso['nombre']) ?></option>
                                                <?php endforeach; ?>
                                            </select>
                                        </div>
                                        
                                        <div class="col-md-4">
                                            <label class="form-label">Sección</label>
                                            <select name="asignaciones[0][seccion_id]" class="form-select" required>
                                                <option value="">Seleccionar sección...</option>
                                                <?php foreach ($secciones as $seccion): ?>
                                                    <option value="<?= $seccion['id'] ?>"><?= htmlspecialchars($seccion['nombre']) ?></option>
                                                <?php endforeach; ?>
                                            </select>
                                        </div>
                                        
                                        <div class="col-md-3">
                                            <label class="form-label">Año Académico</label>
                                            <input type="number" name="asignaciones[0][periodo]" 
                                                   min="2000" max="2100" 
                                                   value="<?= date('Y') ?>" 
                                                   class="form-control" required>
                                        </div>
                                        
                                        <div class="col-md-1 d-flex align-items-end">
                                            <button type="button" class="btn btn-danger btn-sm btn-remove-asignacion" disabled>
                                                <i class="fas fa-trash"></i>
                                            </button>
                                        </div>
                                    </div>
                                </div>
                                
                                <button type="button" id="btn-add-asignacion" class="btn btn-secondary mt-2">
                                    <i class="fas fa-plus me-1"></i> Agregar Asignación
                                </button>
                            </div>
                            
                            <div class="mt-4 text-end">
                                <button type="submit" class="btn btn-primary btn-submit">
                                    <i class="fas fa-save me-1"></i> Guardar Docente
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Bootstrap JS -->
    <script src="<?= APP_URL ?>/assets/js/bootstrap.bundle.min.js"></script>
    
    <!-- jQuery -->
    <script src="<?= APP_URL ?>/assets/js/jquery-3.6.0.min.js"></script>
    
    <!-- Script para manejar asignaciones múltiples -->
    <script>
        $(document).ready(function() {
            let asignacionCounter = 1;
            
            // Añadir nueva asignación
            $('#btn-add-asignacion').click(function() {
                const newRow = `
                    <div class="asignacion-row row g-3 mb-3">
                        <div class="col-md-4">
                            <select name="asignaciones[${asignacionCounter}][curso_id]" class="form-select" required>
                                <option value="">Seleccionar curso...</option>
                                <?php foreach ($cursos as $curso): ?>
                                    <option value="<?= $curso['id'] ?>"><?= htmlspecialchars($curso['nombre']) ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="col-md-4">
                            <select name="asignaciones[${asignacionCounter}][seccion_id]" class="form-select" required>
                                <option value="">Seleccionar sección...</option>
                                <?php foreach ($secciones as $seccion): ?>
                                    <option value="<?= $seccion['id'] ?>"><?= htmlspecialchars($seccion['nombre']) ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="col-md-3">
                            <input type="number" name="asignaciones[${asignacionCounter}][periodo]" 
                                   min="2000" max="2100" 
                                   value="<?= date('Y') ?>" 
                                   class="form-control" required>
                        </div>
                        
                        <div class="col-md-1 d-flex align-items-end">
                            <button type="button" class="btn btn-danger btn-sm btn-remove-asignacion">
                                <i class="fas fa-trash"></i>
                            </button>
                        </div>
                    </div>
                `;
                
                $('#asignaciones-container').append(newRow);
                asignacionCounter++;
            });
            
            // Eliminar asignación
            $(document).on('click', '.btn-remove-asignacion', function() {
                if ($('.asignacion-row').length > 1) {
                    $(this).closest('.asignacion-row').remove();
                }
            });
        });
    </script>
</body>
</html>