<?php
if (!defined('BASEPATH')) {
    http_response_code(403);
    die(json_encode(["success" => false, "message" => "Acceso directo no permitido"]));
}

switch ($tipo) {
    case 'getConfiguracion':
        $sql = "SELECT * FROM configuracion WHERE id = 1";
        $result = mysqli_query($conn, $sql);

        if ($result && mysqli_num_rows($result) > 0) {
            $row = mysqli_fetch_assoc($result);
            $config = [
                'sucursal' => $row['sucursal'],
                'caja' => $row['caja'],
                'db_remota_host' => $row['db_remota_host'],
                'db_remota_usuario' => $row['db_remota_usuario'],
                'db_remota_password' => $row['db_remota_password'],
                'db_remota_nombre' => $row['db_remota_nombre'],
                'db_remota_puerto' => $row['db_remota_puerto'] ? (int)$row['db_remota_puerto'] : 3306,
                'db_remota_activa' => (bool)$row['db_remota_activa']
            ];
            sendResponse(true, "Configuracion obtenida", $config);
        } else {
            // Retornar configuracion vacia si no existe
            sendResponse(true, "Sin configuracion", [
                'sucursal' => '',
                'caja' => '',
                'db_remota_host' => '',
                'db_remota_usuario' => '',
                'db_remota_password' => '',
                'db_remota_nombre' => '',
                'db_remota_puerto' => 3306,
                'db_remota_activa' => false
            ]);
        }
        break;

    case 'actualizarConfiguracion':
        $sucursal = isset($datapost['sucursal']) ? mysqli_real_escape_string($conn, $datapost['sucursal']) : '';
        $caja = isset($datapost['caja']) ? mysqli_real_escape_string($conn, $datapost['caja']) : '';
        $db_remota_host = isset($datapost['db_remota_host']) ? mysqli_real_escape_string($conn, $datapost['db_remota_host']) : '';
        $db_remota_usuario = isset($datapost['db_remota_usuario']) ? mysqli_real_escape_string($conn, $datapost['db_remota_usuario']) : '';
        $db_remota_password = isset($datapost['db_remota_password']) ? mysqli_real_escape_string($conn, $datapost['db_remota_password']) : '';
        $db_remota_nombre = isset($datapost['db_remota_nombre']) ? mysqli_real_escape_string($conn, $datapost['db_remota_nombre']) : '';
        $db_remota_puerto = isset($datapost['db_remota_puerto']) ? (int)$datapost['db_remota_puerto'] : 3306;
        $db_remota_activa = isset($datapost['db_remota_activa']) ? ($datapost['db_remota_activa'] ? 1 : 0) : 0;

        // Verificar si existe configuracion
        $sql_check = "SELECT id FROM configuracion WHERE id = 1";
        $result_check = mysqli_query($conn, $sql_check);

        if ($result_check && mysqli_num_rows($result_check) > 0) {
            // Actualizar
            $sql = "UPDATE configuracion SET
                    sucursal = '$sucursal',
                    caja = '$caja',
                    db_remota_host = '$db_remota_host',
                    db_remota_usuario = '$db_remota_usuario',
                    db_remota_password = '$db_remota_password',
                    db_remota_nombre = '$db_remota_nombre',
                    db_remota_puerto = $db_remota_puerto,
                    db_remota_activa = $db_remota_activa,
                    updated_at = NOW()
                    WHERE id = 1";
        } else {
            // Insertar
            $sql = "INSERT INTO configuracion (id, sucursal, caja, db_remota_host, db_remota_usuario, db_remota_password, db_remota_nombre, db_remota_puerto, db_remota_activa)
                    VALUES (1, '$sucursal', '$caja', '$db_remota_host', '$db_remota_usuario', '$db_remota_password', '$db_remota_nombre', $db_remota_puerto, $db_remota_activa)";
        }

        if (mysqli_query($conn, $sql)) {
            sendResponse(true, "Configuracion guardada correctamente");
        } else {
            sendResponse(false, "Error al guardar configuracion: " . mysqli_error($conn));
        }
        break;

    case 'probarConexionRemota':
        $host = isset($datapost['host']) ? $datapost['host'] : '';
        $usuario = isset($datapost['usuario']) ? $datapost['usuario'] : '';
        $password = isset($datapost['password']) ? $datapost['password'] : '';
        $nombre = isset($datapost['nombre']) ? $datapost['nombre'] : '';
        $puerto = isset($datapost['puerto']) ? (int)$datapost['puerto'] : 3306;

        if (empty($host) || empty($usuario) || empty($nombre)) {
            sendResponse(false, "Faltan datos de conexion");
        }

        // Intentar conexion
        $conn_remota = @mysqli_connect($host, $usuario, $password, $nombre, $puerto);

        if ($conn_remota) {
            mysqli_close($conn_remota);
            sendResponse(true, "Conexion exitosa a la base de datos remota");
        } else {
            sendResponse(false, "Error de conexion: " . mysqli_connect_error());
        }
        break;

    default:
        sendResponse(false, "Operacion no valida en Configuracion");
        break;
}
