<?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");

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; }

 $slug_tienda   = trim($input['slug_tienda'] ?? '');
 $id            = isset($input['id']) ? (int)$input['id'] : null;
 $identificador = trim($input['identificador'] ?? '');
 $etiqueta      = trim($input['etiqueta'] ?? '');
 $activo        = isset($input['activo']) ? (int)$input['activo'] : 1;

if ($slug_tienda === '' || $identificador === '' || $etiqueta === '') {
    echo json_encode(['success' => false, 'message' => 'Faltan campos obligatorios']);
    exit;
}

if ($id && $id > 0) {
    // --- VALIDACIÓN PARA ACTUALIZACIÓN (UPDATE) ---
    // Verificar si existe OTRO medio de pago con el mismo identificador para esta tienda.
    $check_sql = "SELECT id FROM pos_medios_pago WHERE slug_tienda = ? AND identificador = ? AND id != ?";
    $check_stmt = $mysqli->prepare($check_sql);
    $check_stmt->bind_param("ssi", $slug_tienda, $identificador, $id);
    $check_stmt->execute();
    $check_stmt->store_result();

    if ($check_stmt->num_rows > 0) {
        echo json_encode(['success' => false, 'message' => 'Ya existe otro medio de pago con este identificador para esta tienda.']);
        $check_stmt->close();
        $mysqli->close();
        exit;
    }
    $check_stmt->close();

    // 🔄 UPDATE (si no hay duplicados)
    $sql = "UPDATE pos_medios_pago SET identificador=?, etiqueta=?, activo=? WHERE id=? AND slug_tienda=?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("ssiss", $identificador, $etiqueta, $activo, $id, $slug_tienda);
    $ok = $stmt->execute();
    $stmt->close();

    echo json_encode(['success' => $ok, 'message' => $ok ? 'Medio actualizado' : 'Error: ' . $mysqli->error]);

} else {
    // --- VALIDACIÓN PARA CREACIÓN (INSERT) ---
    // Verificar si ya existe un medio de pago con el mismo identificador para esta tienda.
    $check_sql = "SELECT id FROM pos_medios_pago WHERE slug_tienda = ? AND identificador = ?";
    $check_stmt = $mysqli->prepare($check_sql);
    $check_stmt->bind_param("ss", $slug_tienda, $identificador);
    $check_stmt->execute();
    $check_stmt->store_result();

    if ($check_stmt->num_rows > 0) {
        echo json_encode(['success' => false, 'message' => 'Ya existe un medio de pago con este identificador para esta tienda.']);
        $check_stmt->close();
        $mysqli->close();
        exit;
    }
    $check_stmt->close();

    // ➕ INSERT (si no hay duplicados)
    $sql = "INSERT INTO pos_medios_pago (slug_tienda, identificador, etiqueta, activo) VALUES (?,?,?,?)";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("sssi", $slug_tienda, $identificador, $etiqueta, $activo);
    $ok = $stmt->execute();
    $newId = $stmt->insert_id;
    $stmt->close();

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

 $mysqli->close();