<?php
header('Content-Type: application/json');
ini_set('display_errors', 0);
error_reporting(0);

require_once '../includes/funcoes.php';

$pdo = conectarBanco();
if (!$pdo) {
    echo json_encode(['sucesso' => false, 'erro' => 'Erro na conex«Șo com o banco']);
    exit;
}

$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;

if ($id <= 0) {
    echo json_encode(['sucesso' => false, 'erro' => 'ID n«Șo informado']);
    exit;
}

try {
    $stmt = $pdo->prepare("
        SELECT n.*, 
               e.razao_social as emitente_nome, 
               e.cnpj as emitente_cnpj,
               t.razao_social as tomador_nome,
               t.cnpj as tomador_cnpj,
               t.cpf as tomador_cpf,
               emp.nome as empresa_nome
        FROM notas_fiscais n
        LEFT JOIN emitentes e ON n.emitente_id = e.id
        LEFT JOIN tomadores t ON n.tomador_id = t.id
        LEFT JOIN empresas emp ON n.empresa_id = emp.id
        WHERE n.id = ?
    ");
    $stmt->execute([$id]);
    $nota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($nota) {
        // Decodificar resposta da API se existir
        if ($nota['resposta_api']) {
            $resposta = json_decode($nota['resposta_api'], true);
            if (isset($resposta['erros'])) {
                $nota['erro'] = is_array($resposta['erros']) ? implode(', ', $resposta['erros']) : $resposta['erros'];
            } elseif (isset($resposta['erro'])) {
                $nota['erro'] = is_array($resposta['erro']) ? ($resposta['erro']['mensagem'] ?? json_encode($resposta['erro'])) : $resposta['erro'];
            }
            
            // Extrair n«âmero da NFS-e da resposta se n«Șo tiver no campo
            if (empty($nota['numero_nfse'])) {
                if (isset($resposta['numero'])) {
                    $nota['numero_nfse'] = $resposta['numero'];
                } elseif (isset($resposta['nfse']['numero'])) {
                    $nota['numero_nfse'] = $resposta['nfse']['numero'];
                } elseif (isset($resposta['protocolo'])) {
                    $nota['numero_nfse'] = $resposta['protocolo'];
                }
            }
        }
        
        echo json_encode(['sucesso' => true, 'dados' => $nota]);
    } else {
        echo json_encode(['sucesso' => false, 'erro' => 'Nota n«Șo encontrada']);
    }
} catch (PDOException $e) {
    echo json_encode(['sucesso' => false, 'erro' => 'Erro no banco de dados: ' . $e->getMessage()]);
}
?>