<?php
session_start();
if (!isset($_SESSION["user_id"])) {
    header("Location: auth/login.php");
    exit();
}

require_once 'db/config.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nombre = trim($_POST['nombre']);

    if (empty($nombre)) {
        $_SESSION['error_message'] = "El nombre de la ciudad no puede estar vacío.";
        header("Location: agregar_ciudad.php");
        exit();
    }

    try {
        $pdo = db();

        // Obtener el máximo valor de orden actual
        $stmt_max = $pdo->query("SELECT MAX(orden) AS max_orden FROM ciudades");
        $max_orden = $stmt_max->fetchColumn();
        $nuevo_orden = ($max_orden !== null) ? $max_orden + 1 : 0;

        $sql = "INSERT INTO ciudades (nombre, orden) VALUES (:nombre, :orden)";
        $stmt = $pdo->prepare($sql);
        $stmt->bindParam(':nombre', $nombre, PDO::PARAM_STR);
        $stmt->bindParam(':orden', $nuevo_orden, PDO::PARAM_INT);

        if ($stmt->execute()) {
            $_SESSION['success_message'] = "Ciudad agregada exitosamente.";
        } else {
            $_SESSION['error_message'] = "Error al agregar la ciudad.";
        }
    } catch (PDOException $e) {
        // Check for duplicate entry
        if ($e->errorInfo[1] == 1062) {
            $_SESSION['error_message'] = "Error: Ya existe una ciudad con ese nombre.";
        } else {
            $_SESSION['error_message'] = "Error de base de datos: " . $e->getMessage();
        }
    }

    header("Location: ciudades.php");
    exit();
} else {
    header("Location: agregar_ciudad.php");
    exit();
}
?>
