<?php
require_once '../5_config/config.php';
$usuario = verificarAuth();
$db = getDB();
$perfil = $usuario['perfil'];

if (!temPermissao('editar', $perfil)) {
    header('Location: nr12.php?msg=error:Acesso+negado');
    exit;
}

$unidade_id = intval($_POST['unidade_id'] ?? $_GET['unidade_id'] ?? 0);

if ($unidade_id > 0 && !temAcessoUnidade($unidade_id, $usuario['id'], $perfil)) {
    header('Location: nr12.php?msg=error:Acesso+negado+a+esta+unidade');
    exit;
}

// Buscar informações da unidade
$unidade_nome = 'Todas as unidades';
$unidade_codigo = '';
if ($unidade_id > 0) {
    $stmt_u = $db->prepare("SELECT codigo, nome FROM unidades WHERE id = ?");
    $stmt_u->execute([$unidade_id]);
    $u = $stmt_u->fetch();
    if ($u) {
        $unidade_nome = $u['nome'];
        $unidade_codigo = $u['codigo'];
    }
}

// Buscar equipamentos
$where = ['1=1'];
$params = [];
if ($unidade_id > 0) {
    $where[] = 'e.unidade_id = ?';
    $params[] = $unidade_id;
}
$sql = "SELECT e.*, u.nome AS unidade_nome, u.codigo AS unidade_codigo 
        FROM equipamentos e 
        LEFT JOIN unidades u ON u.id = e.unidade_id 
        WHERE " . implode(' AND ', $where) . " 
        ORDER BY u.nome, e.tag";
$stmt = $db->prepare($sql);
$stmt->execute($params);
$equipamentos = $stmt->fetchAll();

$filename = 'equipamentos_nr12_' . ($unidade_codigo ?: 'todas') . '_' . date('Ymd_His') . '.csv';

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="' . $filename . '"');

echo "\xEF\xBB\xBF";

// CABEÇALHO INFORMATIVO
echo "EXPORTAÇÃO DE EQUIPAMENTOS NR 12\n";
echo "Unidade: " . $unidade_nome . "\n";
echo "Data de Exportação: " . date('d/m/Y H:i:s') . "\n";
echo "Total de Equipamentos: " . count($equipamentos) . "\n";
echo "\n";

// INSTRUÇÕES
echo "INSTRUÇÕES DE USO:\n";
echo "1. Preencha os campos vazios com os dados dos equipamentos\n";
echo "2. Use 'Sim' ou 'Não' para os campos de checklist\n";
echo "3. Datas no formato DD/MM/YYYY\n";
echo "4. Importe a planilha preenchida no sistema\n";
echo "\n";

// CABEÇALHOS DAS COLUNAS
$headers = [
    'TAG',
    'Nome',
    'Família',
    'Categoria Risco',
    'Projeto/Conceito',
    'Execução',
    'Procedimento',
    'Validação',
    'Laudos',
    'Data Início',
    'Data Conclusão',
    'Observações'
];

echo implode(';', $headers) . "\n";

// DADOS EXISTENTES
foreach ($equipamentos as $e) {
    $row = [
        $e['tag'] ?: '',
        $e['nome'],
        $e['familia'] ?: '',
        $e['cat_risco'] ?: '',
        $e['proj_conceito'] ? 'Sim' : 'Não',
        $e['execucao'] ? 'Sim' : 'Não',
        $e['procedimento'] ? 'Sim' : 'Não',
        $e['validacao'] ? 'Sim' : 'Não',
        $e['laudos'] ? 'Sim' : 'Não',
        $e['data_inicio'] ?: '',
        $e['data_prev_conclusao'] ?: '',
        $e['observacoes'] ?: ''
    ];
    
    $row = array_map(function($val) {
        $val = str_replace('"', '""', $val);
        if (strpos($val, ';') !== false || strpos($val, "\n") !== false) {
            $val = '"' . $val . '"';
        }
        return $val;
    }, $row);
    
    echo implode(';', $row) . "\n";
}

// LINHAS VAZIAS PARA PREENCHIMENTO (10 linhas)
for ($i = 0; $i < 10; $i++) {
    $empty_row = array_fill(0, count($headers), '');
    echo implode(';', $empty_row) . "\n";
}

// RODAPÉ COM NOTAS
echo "\n";
echo "NOTAS:\n";
echo "- Não remova os cabeçalhos das colunas\n";
echo "- Não altere a ordem das colunas\n";
echo "- TAG é o identificador único do equipamento\n";
echo "- Se TAG já existe, o equipamento será atualizado\n";
echo "- Se TAG é novo, um novo equipamento será criado\n";

Auditoria::criar('equipamentos_export', 0, 
    ['unidade_id' => $unidade_id, 'total' => count($equipamentos)],
    "Exportação de equipamentos NR12 realizada: " . count($equipamentos) . " registros para unidade " . $unidade_nome);

exit;
?>
