<?php
require_once 'includes/auth.php';
exigir_rol('propietario');
require_once 'conexion.php';
require_once 'includes/layout.php';

if (!isset($_GET['id']) && !isset($_POST['id'])) {
    header('Location: propietario_dashboard.php');
    exit;
}
$id_arrendatario = (int)($_POST['id'] ?? $_GET['id']);

/* ---------- Obtener arrendatario ---------- */
$stmt = $conn->prepare("SELECT * FROM arrendatarios WHERE id_arrendatario = ?");
$stmt->bind_param('i', $id_arrendatario);
$stmt->execute();
$res = $stmt->get_result();
if ($res->num_rows !== 1) {
    header('Location: propietario_dashboard.php');
    exit;
}
$arr = $res->fetch_assoc();

/* ---------- Guardar cambios ---------- */
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    csrf_check();

    /* Imagen */
    $imagen_actual = $arr['imagen'];
    $imagen_final  = $imagen_actual;

    if (!empty($_FILES['imagen']['name']) && is_uploaded_file($_FILES['imagen']['tmp_name'])) {
        $permitidas = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
        $ext = strtolower(pathinfo($_FILES['imagen']['name'], PATHINFO_EXTENSION));
        if (in_array($ext, $permitidas, true) && $_FILES['imagen']['size'] <= 8 * 1024 * 1024) {
            $nombre_img = 'arr_' . time() . '_' . rand(1000, 9999) . '.' . $ext;
            if (move_uploaded_file($_FILES['imagen']['tmp_name'], __DIR__ . '/uploads_arrendatarios/' . $nombre_img)) {
                $imagen_final = $nombre_img;
                if ($imagen_actual && file_exists(__DIR__ . '/uploads_arrendatarios/' . $imagen_actual)) {
                    unlink(__DIR__ . '/uploads_arrendatarios/' . $imagen_actual);
                }
            }
        }
    }

    $stmt = $conn->prepare("
        UPDATE arrendatarios SET
            nombre=?, rut=?, direccion=?, celular=?, email=?,
            fecha_inicio=?, fecha_salida=?,
            patente_vehiculo=?, autorizado_visitas=?,
            hora_ingreso=?, hora_salida=?,
            imagen=?, url_externa=?
        WHERE id_arrendatario=?");
    $stmt->bind_param(
        'sssssssssssssi',
        $_POST['nombre'], $_POST['rut'], $_POST['direccion'], $_POST['celular'], $_POST['email'],
        $_POST['fecha_inicio'], $_POST['fecha_salida'],
        $_POST['patente_vehiculo'], $_POST['autorizado_visitas'],
        $_POST['hora_ingreso'], $_POST['hora_salida'],
        $imagen_final, $_POST['url_externa'],
        $id_arrendatario
    );
    $stmt->execute();

    /* Acompañantes existentes: actualizar o eliminar */
    if (!empty($_POST['acompanantes'])) {
        foreach ($_POST['acompanantes'] as $idA => $a) {
            $idA = (int)$idA;
            if (!empty($a['nombre']) && !empty($a['rut'])) {
                $u = $conn->prepare("UPDATE acompanantes SET nombre=?, rut=? WHERE id_acompanante=? AND id_arrendatario=?");
                $u->bind_param('ssii', $a['nombre'], $a['rut'], $idA, $id_arrendatario);
                $u->execute();
            } else {
                $d = $conn->prepare("DELETE FROM acompanantes WHERE id_acompanante=? AND id_arrendatario=?");
                $d->bind_param('ii', $idA, $id_arrendatario);
                $d->execute();
            }
        }
    }

    /* Acompañantes nuevos */
    if (!empty($_POST['nuevo_acompanantes'])) {
        $i = $conn->prepare("INSERT INTO acompanantes (id_arrendatario, nombre, rut) VALUES (?, ?, ?)");
        foreach ($_POST['nuevo_acompanantes'] as $n) {
            if (!empty($n['nombre']) && !empty($n['rut'])) {
                $i->bind_param('iss', $id_arrendatario, $n['nombre'], $n['rut']);
                $i->execute();
            }
        }
    }

    header('Location: propietario_dashboard.php?editado=ok');
    exit;
}

/* ---------- Acompañantes ---------- */
$stmt = $conn->prepare("SELECT * FROM acompanantes WHERE id_arrendatario = ?");
$stmt->bind_param('i', $id_arrendatario);
$stmt->execute();
$acompanantes = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);

page_header('Editar Arrendatario', '');
?>

<form method="POST" enctype="multipart/form-data">
<?= csrf_field() ?>
<input type="hidden" name="id" value="<?= (int)$id_arrendatario ?>">

<div class="row g-4">
  <div class="col-lg-8">
    <div class="card mb-4">
      <div class="card-header"><i class="bi bi-person me-2 text-primary"></i> Datos de <?= e($arr['nombre']) ?></div>
      <div class="card-body">
        <div class="row g-3">
          <div class="col-md-6">
            <label class="form-label">Nombre *</label>
            <input class="form-control" name="nombre" value="<?= e($arr['nombre']) ?>" required>
          </div>
          <div class="col-md-6">
            <label class="form-label">RUT *</label>
            <input class="form-control" name="rut" value="<?= e($arr['rut']) ?>" required oninput="marcarRut(this)">
          </div>
          <div class="col-md-6">
            <label class="form-label">Dirección</label>
            <input class="form-control" name="direccion" value="<?= e($arr['direccion']) ?>">
          </div>
          <div class="col-md-3">
            <label class="form-label">Celular</label>
            <input class="form-control" name="celular" value="<?= e($arr['celular']) ?>">
          </div>
          <div class="col-md-3">
            <label class="form-label">Patente</label>
            <input class="form-control" name="patente_vehiculo" value="<?= e($arr['patente_vehiculo']) ?>">
          </div>
          <div class="col-md-6">
            <label class="form-label">Email *</label>
            <input type="email" class="form-control" name="email" value="<?= e($arr['email']) ?>" required>
          </div>
          <div class="col-md-6">
            <label class="form-label">Autorizado visitas</label>
            <select name="autorizado_visitas" class="form-select">
              <?php $av = strtoupper(trim($arr['autorizado_visitas'] ?? '')); ?>
              <option value="SI" <?= $av === 'SI' ? 'selected' : '' ?>>SI</option>
              <option value="NO" <?= $av === 'NO' ? 'selected' : '' ?>>NO</option>
            </select>
          </div>
        </div>
      </div>
    </div>

    <div class="card mb-4">
      <div class="card-header d-flex align-items-center">
        <i class="bi bi-people me-2 text-primary"></i> Acompañantes
        <button type="button" id="addAcomp" class="btn btn-sm btn-outline-primary ms-auto">
          <i class="bi bi-plus-lg"></i> Agregar
        </button>
      </div>
      <div class="card-body">
        <?php if (!$acompanantes): ?>
          <p class="text-secondary" style="font-size:14px">Sin acompañantes. Usa "Agregar" para incluir.</p>
        <?php endif; ?>
        <?php foreach ($acompanantes as $a): ?>
        <div class="row g-2 mb-2">
          <div class="col-6">
            <input class="form-control" name="acompanantes[<?= (int)$a['id_acompanante'] ?>][nombre]" value="<?= e($a['nombre']) ?>">
          </div>
          <div class="col-6">
            <input class="form-control" name="acompanantes[<?= (int)$a['id_acompanante'] ?>][rut]" value="<?= e($a['rut']) ?>">
          </div>
        </div>
        <?php endforeach; ?>
        <div id="nuevo"></div>
        <div class="form-text">Para eliminar un acompañante, borra su nombre y RUT y guarda.</div>
      </div>
    </div>
  </div>

  <div class="col-lg-4">
    <div class="card mb-4">
      <div class="card-header"><i class="bi bi-calendar-range me-2 text-primary"></i> Estadía</div>
      <div class="card-body">
        <div class="row g-3">
          <div class="col-7">
            <label class="form-label">Fecha ingreso *</label>
            <input type="date" class="form-control" name="fecha_inicio" value="<?= e($arr['fecha_inicio']) ?>" required>
          </div>
          <div class="col-5">
            <label class="form-label">Hora *</label>
            <input type="time" class="form-control" name="hora_ingreso" value="<?= e($arr['hora_ingreso']) ?>" required>
          </div>
          <div class="col-7">
            <label class="form-label">Fecha salida *</label>
            <input type="date" class="form-control" name="fecha_salida" value="<?= e($arr['fecha_salida']) ?>" required>
          </div>
          <div class="col-5">
            <label class="form-label">Hora *</label>
            <input type="time" class="form-control" name="hora_salida" value="<?= e($arr['hora_salida']) ?>" required>
          </div>
        </div>
      </div>
    </div>

    <div class="card mb-4">
      <div class="card-header"><i class="bi bi-key me-2 text-primary"></i> Accesos</div>
      <div class="card-body">
        <div class="mb-3">
          <label class="form-label">Imagen código de acceso</label>
          <input type="file" name="imagen" class="form-control" accept="image/*">
          <?php if ($arr['imagen'] && file_exists(__DIR__ . '/uploads_arrendatarios/' . $arr['imagen'])): ?>
            <img src="uploads_arrendatarios/<?= e($arr['imagen']) ?>" class="img-thumbnail mt-2" style="max-width:140px;border-radius:10px">
          <?php endif; ?>
        </div>
        <div>
          <label class="form-label">URL externa (QR)</label>
          <input class="form-control" name="url_externa" value="<?= e($arr['url_externa']) ?>">
        </div>
      </div>
    </div>

    <div class="d-grid gap-2">
      <button class="btn btn-primary py-2"><i class="bi bi-save me-1"></i> Guardar cambios</button>
      <a href="propietario_dashboard.php" class="btn btn-outline-secondary">Cancelar</a>
    </div>
  </div>
</div>
</form>

<?php
$js = <<<'JS'
<script>
let i = 0;
document.getElementById('addAcomp').addEventListener('click', () => {
  const div = document.createElement('div');
  div.className = 'row g-2 mb-2';
  div.innerHTML = `
    <div class="col-6"><input class="form-control" name="nuevo_acompanantes[${i}][nombre]" placeholder="Nombre completo"></div>
    <div class="col-6"><input class="form-control" name="nuevo_acompanantes[${i}][rut]" placeholder="RUT" oninput="marcarRut(this)"></div>`;
  document.getElementById('nuevo').appendChild(div);
  i++;
});
</script>
JS;
page_footer($js);
