<?php
// gerar-csv-segmento.php

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once 'conexao.php';

// 1. Verificação de Segurança (Apenas Admins)
if (($_SESSION['role'] ?? '') !== 'Administradores' && ($_SESSION['role'] ?? '') !== 'Administrador') {
    die("Acesso negado.");
}

// 2. Captura o segmento via GET
$segmento = $_GET['segmento'] ?? '';

if (empty($segmento)) {
    die("Por favor, selecione um segmento para exportar.");
}

try {
    // 3. Consulta os candidatos filtrando pelo segmento
    // Selecionamos as colunas principais da tabela Candidatos
    $sql = "SELECT id, nome, email, celular, cidade, estado, salario_pretendido, tipo_vaga, modelo_contratacao, pcd, segmento, data_cadastro 
            FROM Candidatos 
            WHERE segmento = :segmento 
            ORDER BY nome ASC";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':segmento' => $segmento]);
    $candidatos = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if (empty($candidatos)) {
        echo "<script>alert('Nenhum candidato encontrado para o segmento: $segmento'); window.history.back();</script>";
        exit;
    }

    // 4. Configuração do Cabeçalho para Download do CSV
    $filename = "candidatos_segmento_" . strtolower(preg_replace('/[^a-zA-Z0-0]/', '_', $segmento)) . "_" . date('Y-m-d_H-i') . ".csv";
    
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '"');

    // 5. Criação do arquivo CSV na memória (php://output)
    $output = fopen('php://output', 'w');

    // Correção de caracteres especiais para o Excel (BOM)
    fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));

    // Define os cabeçalhos das colunas no CSV
    fputcsv($output, [
        'ID', 
        'Nome', 
        'Email', 
        'Telemóvel', 
        'Cidade', 
        'Estado', 
        'Salário Pretendido', 
        'Tipo de Vaga', 
        'Contratação', 
        'PCD', 
        'Segmento', 
        'Data de Cadastro'
    ], ';');

    // 6. Preenche o CSV com os dados
    foreach ($candidatos as $linha) {
        // Formata a data se necessário
        $data_formatada = date('d/m/Y H:i', strtotime($linha['data_cadastro']));
        
        fputcsv($output, [
            $linha['id'],
            $linha['nome'],
            $linha['email'],
            $linha['celular'],
            $linha['cidade'],
            $linha['estado'],
            $linha['salario_pretendido'],
            $linha['tipo_vaga'],
            $linha['modelo_contratacao'],
            $linha['pcd'],
            $linha['segmento'],
            $data_formatada
        ], ';');
    }

    fclose($output);
    exit;

} catch (PDOException $e) {
    error_log("Erro ao gerar CSV por segmento: " . $e->getMessage());
    die("Erro interno ao processar a exportação.");
}