<?php
/**
 * Consulta pública de disponibilidad (la usa el formulario de solicitud
 * mientras el visitante elige las fechas).
 *
 * Solo responde "disponible: sí/no" y el rango ocupado; nunca entrega
 * datos personales del arrendatario que está ocupando esas fechas.
 */
require_once 'conexion.php';
require_once 'includes/helpers.php';
require_once 'includes/departamentos.php';

header('Content-Type: application/json; charset=UTF-8');

$depto        = trim($_GET['depto'] ?? '');
$fecha_inicio = $_GET['fecha_inicio'] ?? '';
$fecha_salida = $_GET['fecha_salida'] ?? '';
$hora_ingreso = $_GET['hora_ingreso'] ?? '';
$hora_salida  = $_GET['hora_salida'] ?? '';

if ($depto === '' || !$fecha_inicio || !$fecha_salida || !$hora_ingreso || !$hora_salida) {
    echo json_encode(['disponible' => false, 'mensaje' => 'Faltan datos.']);
    exit;
}

if (($fecha_salida . ' ' . $hora_salida) <= ($fecha_inicio . ' ' . $hora_ingreso)) {
    echo json_encode(['disponible' => false, 'mensaje' => 'La salida debe ser posterior al ingreso.']);
    exit;
}

$choque = arriendo_en_conflicto($conn, $depto, $fecha_inicio, $hora_ingreso, $fecha_salida, $hora_salida)
       ?: solicitud_en_conflicto($conn, $depto, $fecha_inicio, $hora_ingreso, $fecha_salida, $hora_salida);

if ($choque) {
    echo json_encode([
        'disponible' => false,
        'mensaje'    => 'El departamento ya está ocupado desde el ' . texto_rango($choque) . ' hrs. '
                      . 'Si un arriendo termina a las 12:00, el siguiente puede comenzar desde esa misma hora.',
    ]);
} else {
    echo json_encode(['disponible' => true]);
}
