<?php
/**
 * Selflix Newsletter - Exportação de Leads (CSV)
 * Versão: Compatível com Excel + Filtros Dinâmicos
 */

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

// Ajuste de caminhos para a raiz (conexao.php usa $_ENV conforme seus logs)
require_once dirname(__DIR__) . '/conexao.php';
require_once dirname(__DIR__) . '/env.php';

// Proteção básica (Opcional: descomente se quiser restringir a ADMs logados)
/*
require_once dirname(__DIR__) . '/middleware-auth.php'; 
authAdministrador(); 
*/

// 1. Captura de Filtros (via GET para sincronia com a lista)
$data_inicio = filter_input(INPUT_GET, 'data_inicio', FILTER_SANITIZE_SPECIAL_CHARS);
$data_fim    = filter_input(INPUT_GET, 'data_fim', FILTER_SANITIZE_SPECIAL_CHARS);
$perfil      = filter_input(INPUT_GET, 'perfil', FILTER_SANITIZE_SPECIAL_CHARS);
$segmento    = filter_input(INPUT_GET, 'segmento', FILTER_SANITIZE_SPECIAL_CHARS);
$busca       = filter_input(INPUT_GET, 'busca', FILTER_SANITIZE_SPECIAL_CHARS);

try {
    // 2. Construção da Query idêntica à lista para manter consistência
    $query = "SELECT data_inscricao, nome, email, cidade, telefone, perfil, info_extra FROM newsletter_selflix WHERE 1=1";
    $params = [];

    if ($data_inicio) { 
        $query .= " AND DATE(data_inscricao) >= :inicio"; 
        $params[':inicio'] = $data_inicio; 
    }
    if ($data_fim) { 
        $query .= " AND DATE(data_inscricao) <= :fim"; 
        $params[':fim'] = $data_fim; 
    }
    if ($perfil) { 
        $query .= " AND perfil = :perfil"; 
        $params[':perfil'] = $perfil; 
    }
    if ($segmento) { 
        $query .= " AND info_extra = :segmento"; 
        $params[':segmento'] = $segmento; 
    }
    if ($busca) {
        $query .= " AND (nome LIKE :busca OR email LIKE :busca OR cidade LIKE :busca)";
        $params[':busca'] = "%$busca%";
    }

    $query .= " ORDER BY data_inscricao DESC";
    
    $stmt = $pdo->prepare($query);
    $stmt->execute($params);

    // 3. Configuração do Nome do Arquivo
    $hoje = date('Y-m-d_H-i');
    $filename = "leads_selflix_news_{$hoje}.csv";

    // 4. Headers para Forçar o Download
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Pragma: no-cache');
    header('Expires: 0');

    // 5. Geração do Arquivo
    $output = fopen('php://output', 'w');

    // Adiciona o BOM (Byte Order Mark) para que o Excel identifique UTF-8 automaticamente
    fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));

    // Cabeçalho das Colunas
    fputcsv($output, [
        'Data de Inscricao', 
        'Nome Completo', 
        'E-mail', 
        'Cidade', 
        'Telefone', 
        'Perfil', 
        'Segmento ou Empresa'
    ], ';');

    // Corpo dos Dados
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        // Formata a data para um padrão mais amigável ao Excel (DD/MM/AAAA HH:MM)
        $row['data_inscricao'] = date('d/m/Y H:i', strtotime($row['data_inscricao']));
        
        fputcsv($output, $row, ';');
    }

    fclose($output);
    exit();

} catch (PDOException $e) {
    die("Erro ao gerar relatório: " . $e->getMessage());
}