<?php
// ✅ Mostrar errores (quítalo en producción)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ✅ CORS
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");

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

// ✅ Conexión
require_once(__DIR__ . '/../config.php'); // tu conexión $mysqli

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

// ✅ Campos requeridos
$requeridos = ['slug_tienda', 'empresa', 'pais', 'direccion', 'ciudad'];
foreach ($requeridos as $k) {
    if (empty($input[$k])) {
        echo json_encode(['success' => false, 'message' => "Falta el campo obligatorio: $k"]);
        exit;
    }
}

// ✅ Mapear
$id              = isset($input['id']) ? (int)$input['id'] : null;
$slug_tienda     = trim($input['slug_tienda']);

$empresa         = trim($input['empresa']);
$pais            = trim($input['pais']);
$direccion       = trim($input['direccion']);
$direccion_2     = trim($input['direccion_2'] ?? '');
$codigo_postal   = trim($input['codigo_postal'] ?? '');
$ciudad          = trim($input['ciudad']);

$contacto_nombre = trim($input['contacto_nombre'] ?? '');
$email           = trim($input['email'] ?? '');
$tel_pais_iso    = strtoupper(trim($input['tel_pais_iso'] ?? ''));
$tel_codigo      = trim($input['tel_codigo'] ?? '');
$tel_numero      = trim($input['tel_numero'] ?? '');
$estado          = isset($input['estado']) ? (int)$input['estado'] : 1;

if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo json_encode(['success' => false, 'message' => 'Correo electrónico inválido']);
    exit;
}

if ($id && $id > 0) {
    // 🔄 UPDATE
    $sql = "UPDATE proveedores
            SET slug_tienda=?, empresa=?, pais=?, direccion=?, direccion_2=?, codigo_postal=?, ciudad=?,
                contacto_nombre=?, email=?, tel_pais_iso=?, tel_codigo=?, tel_numero=?, estado=?
            WHERE id=?";
    $stmt = $mysqli->prepare($sql);
    if (!$stmt) {
        echo json_encode(['success' => false, 'message' => 'Error prepare: ' . $mysqli->error]);
        exit;
    }
    $stmt->bind_param(
        "ssssssssssssis",
        $slug_tienda, $empresa, $pais, $direccion, $direccion_2, $codigo_postal, $ciudad,
        $contacto_nombre, $email, $tel_pais_iso, $tel_codigo, $tel_numero, $estado, $id
    );
    $ok = $stmt->execute();
    $stmt->close();

    if ($ok) {
        echo json_encode(['success' => true, 'message' => 'Proveedor actualizado', 'id' => $id]);
    } else {
        echo json_encode(['success' => false, 'message' => 'Error al actualizar: ' . $mysqli->error]);
    }
} else {
    // ➕ INSERT
    $sql = "INSERT INTO proveedores
            (slug_tienda, empresa, pais, direccion, direccion_2, codigo_postal, ciudad,
             contacto_nombre, email, tel_pais_iso, tel_codigo, tel_numero, estado)
            VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
    $stmt = $mysqli->prepare($sql);
    if (!$stmt) {
        echo json_encode(['success' => false, 'message' => 'Error prepare: ' . $mysqli->error]);
        exit;
    }
    $stmt->bind_param(
        "ssssssssssssi",
        $slug_tienda, $empresa, $pais, $direccion, $direccion_2, $codigo_postal, $ciudad,
        $contacto_nombre, $email, $tel_pais_iso, $tel_codigo, $tel_numero, $estado
    );
    $ok = $stmt->execute();
    $newId = $stmt->insert_id;
    $stmt->close();

    if ($ok) {
        echo json_encode(['success' => true, 'message' => 'Proveedor guardado', 'id' => $newId]);
    } else {
        echo json_encode(['success' => false, 'message' => 'Error al guardar: ' . $mysqli->error]);
    }
}

$mysqli->close();
