<?php
include('is_logged.php');

if (version_compare(PHP_VERSION, '5.3.7', '<')) {
    exit("Sorry, Simple PHP Login does not run on a PHP version smaller than 5.3.7 !");
} else if (version_compare(PHP_VERSION, '5.5.0', '<')) {
    require_once("../libraries/password_compatibility_library.php");
}       

if (empty($_POST['firstname'])){
    $errors[] = "Nombres vacíos";
} elseif (empty($_POST['lastname'])){
    $errors[] = "Apellidos vacíos";
} elseif (empty($_POST['user_name'])) {
    $errors[] = "Nombre de usuario vacío";
} elseif (empty($_POST['user_password_new'])) {
    $errors[] = "Contraseña vacía";
} elseif ($_POST['user_password_new'] !== $_POST['user_password_repeat']) {
    $errors[] = "Las contraseñas no coinciden";
} elseif (empty($_POST['user_email'])) {
    $errors[] = "El correo electrónico no puede estar vacío";
} elseif (
    !empty($_POST['user_name'])
    && !empty($_POST['firstname'])
    && !empty($_POST['lastname'])
    && !empty($_POST['user_email'])
    && ($_POST['user_password_new'] === $_POST['user_password_repeat'])
) {
    require_once ("../config/db.php");
    require_once ("../config/conexion.php");

    // Escapando datos para seguridad
    $firstname = mysqli_real_escape_string($con,(strip_tags($_POST["firstname"],ENT_QUOTES)));
    $lastname = mysqli_real_escape_string($con,(strip_tags($_POST["lastname"],ENT_QUOTES)));
    $user_name = mysqli_real_escape_string($con,(strip_tags($_POST["user_name"],ENT_QUOTES)));
    $user_email = mysqli_real_escape_string($con,(strip_tags($_POST["user_email"],ENT_QUOTES)));
    $rol = mysqli_real_escape_string($con,(strip_tags($_POST["rol"],ENT_QUOTES)));
    $estado = mysqli_real_escape_string($con,(strip_tags($_POST["estado"],ENT_QUOTES)));
    
    // Si usas texto plano para la clave:
    $user_password_hash = $_POST['user_password_new']; 
    $date_added = date("Y-m-d H:i:s");
    $intentos = 0; // Inicializamos los intentos en 0

    // Verificar duplicados
    $sql_check = "SELECT * FROM users WHERE user_name = '$user_name' OR user_email = '$user_email';";
    $query_check = mysqli_query($con, $sql_check);
    
    if (mysqli_num_rows($query_check) > 0) {
        $errors[] = "El usuario o email ya están registrados.";
    } else {
        // INSERT con todos los campos de tu tabla (incluyendo intentos y ROL en mayúsculas)
        $sql = "INSERT INTO users (firstname, lastname, user_name, user_password_hash, user_email, date_added, intentos, ROL, estado)
                VALUES ('$firstname', '$lastname', '$user_name', '$user_password_hash', '$user_email', '$date_added', '$intentos', '$rol', '$estado')";
        
        $query_new_user_insert = mysqli_query($con, $sql);

        if ($query_new_user_insert) {
            $messages[] = "Usuario creado con éxito.";
        } else {
            // Esto mostrará el error exacto de MySQL si vuelve a fallar
            $errors[] = "Error técnico: " . mysqli_error($con);
        }
    }
}

// Render de mensajes de Error
if (isset($errors)){
    ?>
    <div class="alert alert-danger" role="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong>Error!</strong> <?php foreach ($errors as $error) { echo $error; } ?>
    </div>
    <?php
}
// Render de mensajes de Éxito
if (isset($messages)){
    ?>
    <div class="alert alert-success" role="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong>¡Bien hecho!</strong> <?php foreach ($messages as $message) { echo $message; } ?>
    </div>
    <?php
}
?>