<?php
// CONFIGURAÇÕES DO BANCO REMOTO
$remoto = new mysqli('10.0.0.188', 'lidernetwork', '564652670', 'banco');
if ($remoto->connect_error) {
    die("Erro ao conectar no banco remoto: " . $remoto->connect_error);
}

// CONFIGURAÇÕES DO BANCO LOCAL
$local = new mysqli('localhost', 'root', '', 'delivery');
if ($local->connect_error) {
    die("Erro ao conectar no banco local: " . $local->connect_error);
}

// CONSULTA REMOTA: SOMENTE PRODUTOS COM ESTOQUE
$sql = "
    SELECT 
        p.COD_PRO,
        p.NOME_PRO,
        p.VALOR_PRO,
        p.CODIGO_BARRA_PRO,
        COALESCE(e.ESTOQUE, 0) AS ESTOQUE,
        COALESCE(e.ESTOQUE_NAO_FISCAL, 0) AS ESTOQUE_NAO_FISCAL
    FROM produto p
    INNER JOIN estoque e ON e.COD_PRO = p.COD_PRO
    WHERE (COALESCE(e.ESTOQUE, 0) > 0 OR COALESCE(e.ESTOQUE_NAO_FISCAL, 0) > 0)
";

$resultado = $remoto->query($sql);

$codigos_validos = [];
$contador = 0;

if ($resultado && $resultado->num_rows > 0) {
    while ($produto = $resultado->fetch_assoc()) {

        $codigo       = (int)$produto['COD_PRO'];
        $nome         = $local->real_escape_string($produto['NOME_PRO']);
        $preco        = (float)$produto['VALOR_PRO'];
        $codigo_barra = $local->real_escape_string($produto['CODIGO_BARRA_PRO']);
        $estoque      = (float)$produto['ESTOQUE'] + (float)$produto['ESTOQUE_NAO_FISCAL'];

        // GUARDA CÓDIGOS QUE DEVEM EXISTIR
        $codigos_validos[] = $codigo;

        // INSERE OU ATUALIZA
        $sql_local = "
            INSERT INTO produtos (codigo, nome, preco, codigo_barra, estoque)
            VALUES ($codigo, '$nome', $preco, '$codigo_barra', $estoque)
            ON DUPLICATE KEY UPDATE
                nome = VALUES(nome),
                preco = VALUES(preco),
                codigo_barra = VALUES(codigo_barra),
                estoque = VALUES(estoque)
        ";

        if ($local->query($sql_local)) {
            $contador++;
        } else {
            echo "❌ Erro no produto $codigo: " . $local->error . "<br>";
        }
    }

    // REMOVE DO BANCO LOCAL OS PRODUTOS QUE NÃO TÊM ESTOQUE
    if (!empty($codigos_validos)) {
        $lista = implode(',', $codigos_validos);
        $local->query("DELETE FROM produtos WHERE codigo NOT IN ($lista)");
    }

    echo "✅ Sincronização concluída! $contador produtos atualizados.<br>";
    echo "🧹 Produtos sem estoque removidos do banco local.";
} else {
    // SE NÃO VEIO NENHUM PRODUTO COM ESTOQUE, LIMPA TUDO
    $local->query("DELETE FROM produtos");
    echo "⚠️ Nenhum produto com estoque encontrado. Banco local limpo.";
}

// FECHAR CONEXÕES
$remoto->close();
$local->close();
