<?php

include_once("server/lib/mod_dbm/package.dbm.php");
include_once("server/class/Audit/Logger.php");

class WebStatusManager {

    public static function isPedidoWeb($numeroPedidoBocatti) {
        $dao = new dbObject();
        $q = sprintf("SELECT * FROM pedidos WHERE numero_pedido_bocatti = %s", $numeroPedidoBocatti);
        $res = $dao->fetchQuery($q);
        if (is_array($res) && count($res)) {
            return !($res[0]['latitud'] == 0 && $res[0]['longitud'] == 0);
        }
    }

    public static function updateStatus($numeroPedidoBocatti, $estado) {
        if (self::isPedidoWeb($numeroPedidoBocatti)) {
            $url = (ENVIRONMENT === "PRODUCTION") ? 'https://www.bocatti.uy/APIREST/ESTADOTRACKING/' : 'https://demo.bocatti.uy/APIREST/ESTADOTRACKING/';
            $usuario = 'bocatti2023';
            $password = 'kits37!Vug6tHFqT';

            // Crear un arreglo con los parámetros
            $data = array(
                'Usuario' => $usuario,
                'Pass' => $password,
                'Pedido' => $numeroPedidoBocatti,
                'Estado' => $estado
            );

            $curl = array();
            // Convertir el arreglo a JSON
            $json_data = json_encode($data);

            // Configurar la solicitud cURL
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            // Realizar la solicitud cURL
            $response = curl_exec($ch);
            Logger::log(sprintf("WebStatusResult(%s,%s): %s", $numeroPedidoBocatti, $estado, trim($response)));
            // Comprobar si hubo errores
            if ($response === false) {
                $curl['res'] = -1;
                $curl['msg'] = "Error al realizar la solicitud cURL: " . curl_error($ch);
            } else {
                // Procesar la respuesta
                $responseData = json_decode($response, true);
                if ($responseData) {
                    // Aquí puedes manejar la respuesta JSON como desees
                    //print_r($responseData);
                    $curl['res'] = 0;
                    $curl['msg'] = $responseData;
                } else {
                    $curl['res'] = -2;
                    $curl['msg'] = "Error al decodificar la respuesta JSON.";
                }
            }

            // Cerrar la sesión cURL
            curl_close($ch);
            
        } else {
            $curl['res'] = -3;
            $curl['msg'] = "El pedido no es un pedido web";
        }
        return $curl;
    }
}
