<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

session_start();
include 'conexion.php';

if (!isset($_SESSION['rol']) || $_SESSION['rol'] !== 'propietario') {
    header("Location: login.php");
    exit;
}

$id_usuario = $_SESSION['id_usuario'];

/* PROPIETARIO */
$stmt = $conn->prepare("SELECT id_propietario FROM propietarios WHERE id_usuario = ?");
$stmt->bind_param("i", $id_usuario);
$stmt->execute();
$res = $stmt->get_result();

if ($res->num_rows !== 1) {
    die("Propietario no encontrado");
}

$id_propietario = $res->fetch_assoc()['id_propietario'];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $nombre = $_POST['nombre'];
    $rut = $_POST['rut'];
    $direccion = $_POST['direccion'];
    $celular = $_POST['celular'];
    $email = $_POST['email'];
    $fecha_inicio = $_POST['fecha_inicio'];
    $fecha_salida = $_POST['fecha_salida'];
    $hora_ingreso = $_POST['hora_ingreso'];
    $hora_salida = $_POST['hora_salida'];
    $autorizado_visitas = $_POST['autorizado_visitas'];
    $patente_vehiculo = $_POST['patente_vehiculo'] ?? null;
    
    // ===============================
// IMAGEN
// ===============================
$imagen_nombre = null;

if (!empty($_FILES['imagen']['name'])) {

    $ext = pathinfo($_FILES['imagen']['name'], PATHINFO_EXTENSION);
    $imagen_nombre = 'arr_' . time() . '_' . rand(1000,9999) . '.' . $ext;

    $ruta_destino = __DIR__ . '/uploads_arrendatarios/' . $imagen_nombre;

    if (!move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta_destino)) {
        die("Error al subir la imagen");
    }
}

// ===============================
// URL
// ===============================
$url_externa = !empty($_POST['url_externa']) ? $_POST['url_externa'] : null;


    /* LISTA NEGRA */
    $ln = $conn->prepare("SELECT 1 FROM lista_negra WHERE rut = ?");
    $ln->bind_param("s", $rut);
    $ln->execute();
    if ($ln->get_result()->num_rows > 0) {
        die("RUT en lista negra");
    }

    /* TOKEN */
    $token_pdf = bin2hex(random_bytes(32));

    $stmt = $conn->prepare("
INSERT INTO arrendatarios (
    id_propietario, nombre, rut, direccion, celular, email,
    fecha_inicio, fecha_salida, autorizado_visitas,
    hora_ingreso, hora_salida, patente_vehiculo,
    imagen, url_externa, token_pdf
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
");

$stmt->bind_param(
    "issssssssssssss",
    $id_propietario,
    $nombre,
    $rut,
    $direccion,
    $celular,
    $email,
    $fecha_inicio,
    $fecha_salida,
    $autorizado_visitas,
    $hora_ingreso,
    $hora_salida,
    $patente_vehiculo,
    $imagen_nombre,
    $url_externa,
    $token_pdf
);


    if (!$stmt->execute()) {
        die($stmt->error);
    }

    $id_arr = $conn->insert_id;

    /* ACOMPAÑANTES */
    if (!empty($_POST['acompanantes'])) {
        foreach ($_POST['acompanantes'] as $a) {
            if (!empty($a['nombre']) && !empty($a['rut'])) {
                $stmtA = $conn->prepare("
                    INSERT INTO acompanantes (id_arrendatario, nombre, rut)
                    VALUES (?, ?, ?)
                ");
                $stmtA->bind_param("iss", $id_arr, $a['nombre'], $a['rut']);
                $stmtA->execute();
            }
        }
    }
    
    require 'generar_ficha_pdf.php';
require 'enviar_mail_ingreso.php';

$dias = (new DateTime($fecha_inicio))->diff(new DateTime($fecha_salida))->days;
$pdf = generarPDF($id_arr, $dias);

if ($pdf) {
    enviarCorreoIngreso($email, $nombre, $pdf);
    unlink($pdf); // 🔥 elimina el archivo temporal
}


    /* 🔴 REDIRECCIÓN REAL */
    header("Location: propietario_dashboard.php?registro=ok");
    exit;
}
