<?php
session_start();
include 'modelo.php';
require_once 'config.php';

$tablaSeleccionada = null;
$mensaje = '';
$categorias = [];
$subcategorias = [];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $tablaSeleccionada = $_POST['tabla'] ?? null;

    if ($tablaSeleccionada) {
        // Definir los campos y los valores a insertar
        $campos = [];
        $valores = [];

        switch ($tablaSeleccionada) {
            case 'noticias':
                $campos = ['titulo', 'cuerpo', 'imagen', 'categoria', 'subcategoria', 'destacadaTendencias', 'destacadaSubcategoria', 'destacadaPortada'];
                break;
            case 'usuarios':
                $campos = ['nombre', 'correo', 'rol', 'contrasena'];
                break;
            case 'comentarios':
                $campos = ['usuario_id', 'temaSemanal_id', 'comentario'];
                break;
            case 'temasemanal':
                $campos = ['titulo', 'cuerpo', 'imagen'];
                break;
            case 'toplinkedin': // Tabla de topLinkedin
                $campos = ['titulo', 'cuerpo', 'imagen', 'fecha', 'link']; // Aquí agregamos los campos de topLinkedin
                break;
            default:
                $mensaje = 'Tabla no válida.';
                break;
        }

        if (!empty($campos)) {
            foreach ($campos as $campo) {
                if ($campo === 'imagen' && isset($_FILES['imagen'])) {
                    // Manejar la carga del archivo
                    $directorioDestino = 'uploads/';
                    if (!is_dir($directorioDestino)) {
                        mkdir($directorioDestino, 0777, true); // Crea el directorio si no existe
                    }

                    $archivo = $_FILES['imagen'];
                    $rutaDestino = $directorioDestino . basename($archivo['name']);

                    // Mover el archivo a la carpeta de destino
                    if (move_uploaded_file($archivo['tmp_name'], $rutaDestino)) {
                        $valores[] = $rutaDestino; // Guardar la ruta del archivo
                    } else {
                        $mensaje = 'Error al subir el archivo.';
                    }
                } elseif ($campo === 'fecha') {
                    // Para el campo fecha, usamos la fecha y hora actual
                    $valores[] = date('Y-m-d H:i:s');
                } elseif ($campo === 'destacadaCategoria' || $campo === 'destacadaSubcategoria' || $campo === 'destacadaPortada') {
                    // Para los checkboxes, si están seleccionados enviamos 1, si no, enviamos 0
                    $valores[] = isset($_POST[$campo]) ? 1 : 0;
                } else {
                    $valores[] = $_POST[$campo] ?? null;
                }
            }

            // Crear la consulta para insertar datos
            $consultaInsertar = "INSERT INTO $tablaSeleccionada (" . implode(',', $campos) . ") VALUES (" . implode(',', array_fill(0, count($campos), '?')) . ")";

            try {
                $conexion->ejecutarConsultaPreparada($consultaInsertar, $valores);
                $mensaje = 'Registro añadido correctamente.';
            } catch (Exception $e) {
                $mensaje = 'Error al añadir el registro: ' . $e->getMessage();
            }
        }
    } else {
        $mensaje = 'No se ha seleccionado una tabla.';
    }
} else {
    $tablaSeleccionada = $_GET['tabla'] ?? null;

    if ($tablaSeleccionada === 'Noticias') {
        // Obtener categorías y subcategorías
        $categorias = $conexion->obtenerDatos("SELECT DISTINCT categoria FROM noticias");
        $subcategorias = $conexion->obtenerDatos("SELECT DISTINCT subcategoria FROM noticias");
    }
}

// Cerrar la conexión
$conexion->cerrarConexion();
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Añadir Registro</title>
    <link rel="stylesheet" href="./css/estiloPanelAdministrador.css">
</head>
<body>
    <div class="container">
        <h1 class="titulo">Añadir Nuevo Registro</h1>

        <!-- Mensaje de éxito o error -->
        <?php if ($mensaje): ?>
            <p><?php echo htmlspecialchars($mensaje); ?></p>
        <?php endif; ?>

        <form method="POST" action="añadir.php" enctype="multipart/form-data" class="formulario">
            <input type="hidden" name="tabla" value="<?php echo htmlspecialchars($tablaSeleccionada); ?>">

            <?php if ($tablaSeleccionada): ?>
                <?php
                switch ($tablaSeleccionada) {
                    case 'noticias':
                        $campos = ['titulo', 'cuerpo', 'imagen', 'categoria', 'subcategoria', 'destacadaTendencias', 'destacadaSubcategoria', 'destacadaPortada'];
                        break;
                    case 'usuarios':
                        $campos = ['nombre', 'correo', 'rol', 'contrasena'];
                        break;
                    case 'comentarios':
                        $campos = ['usuario_id', 'temaSemanal_id', 'comentario'];
                        break;
                    case 'temasemanal':
                        $campos = ['titulo', 'cuerpo', 'imagen'];
                        break;
                    case 'toplinkedin': 
                        $campos = ['titulo', 'cuerpo', 'imagen', 'fecha', 'link'];
                        break;
                    default:
                        $campos = [];
                        break;
                }
                ?>

                <?php if (!empty($campos)): ?>
                    <?php foreach ($campos as $campo): ?>
                        <label for="<?php echo htmlspecialchars($campo); ?>">
                            <?php echo htmlspecialchars(ucfirst(str_replace('_', ' ', $campo))); ?>
                        </label>

                        <?php if ($campo == 'imagen'): ?>
                            <input type="file" id="<?php echo htmlspecialchars($campo); ?>" name="<?php echo htmlspecialchars($campo); ?>" required>
                        <?php elseif ($campo == 'fecha'): ?>
                            <input type="text" id="<?php echo htmlspecialchars($campo); ?>" name="<?php echo htmlspecialchars($campo); ?>" value="<?php echo date('Y-m-d H:i:s'); ?>" readonly>
                        <?php else: ?>
                            <input type="text" id="<?php echo htmlspecialchars($campo); ?>" name="<?php echo htmlspecialchars($campo); ?>" required>
                        <?php endif; ?>
                        <br>
                    <?php endforeach; ?>
                <?php endif; ?>

                <button type="submit" class="boton añadir">Añadir</button>
            <?php else: ?>
                <p>Selecciona una tabla para añadir un registro.</p>
            <?php endif; ?>
        </form>

        <!-- Botón Volver -->
        <form method="GET" action="panel_administrador.php" class="volver-form">
            <button type="submit" class="boton volver">Volver</button>
        </form>
    </div>
</body>
</html>
