<?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(0);
}

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

try {
    $data = json_decode(file_get_contents('php://input'), true);
    
    if (!$data || !isset($data['slug_tienda']) || !isset($data['modo_pos'])) {
        throw new Exception('Datos incompletos');
    }

    $slug_tienda = $data['slug_tienda'];
    $modo_pos = $data['modo_pos'];
    
    // Validar que el modo sea válido
    if (!in_array($modo_pos, ['tienda', 'restaurante'])) {
        throw new Exception('Modo de POS no válido');
    }

    // Verificar si ya existe una configuración para esta tienda
    $check_sql = "SELECT id FROM pos_configuracion WHERE slug_tienda = ?";
    $check_stmt = $mysqli->prepare($check_sql);
    $check_stmt->bind_param("s", $slug_tienda);
    $check_stmt->execute();
    $result = $check_stmt->get_result();

    if ($result->num_rows > 0) {
        // Actualizar configuración existente
        $sql = "UPDATE pos_configuracion SET modo_pos = ?, activo = 1, fecha_actualizacion = CURRENT_TIMESTAMP WHERE slug_tienda = ?";
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param("ss", $modo_pos, $slug_tienda);
    } else {
        // Insertar nueva configuración
        $sql = "INSERT INTO pos_configuracion (slug_tienda, modo_pos, activo) VALUES (?, ?, 1)";
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param("ss", $slug_tienda, $modo_pos);
    }

    if ($stmt->execute()) {
        echo json_encode([
            'success' => true,
            'message' => 'Configuración guardada correctamente',
            'modo_pos' => $modo_pos
        ]);
    } else {
        throw new Exception('Error al guardar la configuración');
    }

    $stmt->close();
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}
?>