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

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json");
header("Access-Control-Max-Age: 86400");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; }

require_once(__DIR__ . '/../../config.php');

$input = json_decode(file_get_contents('php://input'), true);
if (!$input) { echo json_encode(['success' => false, 'message' => 'JSON inválido']); exit; }

$id          = isset($input['id']) ? (int)$input['id'] : null;
$slug_tienda = trim($input['slug_tienda'] ?? '');
$zona_id     = isset($input['zona_id']) ? (int)$input['zona_id'] : 0;
$numero      = isset($input['numero']) ? (int)$input['numero'] : 0;
$capacidad   = isset($input['capacidad']) ? (int)$input['capacidad'] : 0;
$activo      = isset($input['activo']) ? (int)$input['activo'] : 1;

if ($slug_tienda === '' || $zona_id <= 0 || $numero <= 0) {
  echo json_encode(['success' => false, 'message' => 'Faltan slug_tienda, zona_id o número de mesa']);
  exit;
}

if ($id && $id > 0) {
  $sql = "UPDATE pos_mesas
          SET zona_id=?, numero=?, capacidad=?, activo=?
          WHERE id=? AND slug_tienda=?";
  $stmt = $mysqli->prepare($sql);
  $stmt->bind_param("iiiiss", $zona_id, $numero, $capacidad, $activo, $id, $slug_tienda);
  $ok = $stmt->execute();
  $stmt->close();

  echo json_encode([
    'success' => $ok,
    'message' => $ok ? 'Mesa actualizada' : ('Error: ' . $mysqli->error),
    'id'      => $id
  ]);
} else {
  $sql = "INSERT INTO pos_mesas (slug_tienda, zona_id, numero, capacidad, activo)
          VALUES (?,?,?,?,?)";
  $stmt = $mysqli->prepare($sql);
  $stmt->bind_param("siiii", $slug_tienda, $zona_id, $numero, $capacidad, $activo);
  $ok = $stmt->execute();
  $newId = $stmt->insert_id;
  $stmt->close();

  echo json_encode([
    'success' => $ok,
    'message' => $ok ? 'Mesa creada' : ('Error al guardar: ' . $mysqli->error),
    'id'      => $newId
  ]);
}

$mysqli->close();
