<?php
// expira_anuncios.php
// Este arquivo deve ser executado diariamente via cron job

// Configurar para logar erros em vez de exibir (importante para cron jobs)
ini_set('display_errors', 0);
ini_set('log_errors', 1);
// Defina um error_log específico para o cron se desejar, ou use o padrão do PHP
// ini_set('error_log', __DIR__ . '/logs/cron_expira_anuncios.log');
error_reporting(E_ALL);

// É crucial que o caminho para conexao.php esteja correto em relação à execução do cron.
// Se o cron executa a partir de um diretório diferente, __DIR__ ajuda a obter o caminho absoluto.
require_once __DIR__ . '/conexao.php'; // Fornece $pdo
require_once __DIR__ . '/env.php'; // Carrega $_ENV se não feito por conexao.php

$data_execucao = date('Y-m-d H:i:s');
$log_message_prefix = "[{$data_execucao}] Expira Anuncios: ";

if (!$pdo) {
    $error_msg = $log_message_prefix . "Falha crítica: Conexão PDO não disponível. Script não pode continuar.";
    error_log($error_msg);
    echo $error_msg . "\n"; // Output para o log do cron, se configurado para capturar stdout
    exit(1); // Sair com código de erro
}

try {
    // Atualizar o status de anúncios gratuitos expirados
    // (Sua tabela anuncio_gratuito tem data_expiracao e status)
    $sql_gratuito = "UPDATE anuncio_gratuito SET status = 'expirado' 
                     WHERE data_expiracao IS NOT NULL AND data_expiracao < NOW() AND status = 'ativo'";
    $stmt_gratuito = $pdo->prepare($sql_gratuito);
    $stmt_gratuito->execute();
    $afetados_gratuito = $stmt_gratuito->rowCount();
    
    $success_msg_gratuito = $log_message_prefix . "Anúncios gratuitos expirados atualizados com sucesso: " . $afetados_gratuito . " anúncios.";
    error_log($success_msg_gratuito);
    echo $success_msg_gratuito . "\n";

    // Se você tiver uma lógica similar para anuncio_pago (com data_expiracao e status):
    /*
    $sql_pago = "UPDATE anuncio_pago SET status_anuncio = 'expirado' 
                 WHERE data_expiracao_pago < NOW() AND status_anuncio = 'ativo'"; // Adapte os nomes das colunas
    $stmt_pago = $pdo->prepare($sql_pago);
    $stmt_pago->execute();
    $afetados_pago = $stmt_pago->rowCount();
    
    $success_msg_pago = $log_message_prefix . "Anúncios pagos expirados atualizados com sucesso: " . $afetados_pago . " anúncios.";
    error_log($success_msg_pago);
    echo $success_msg_pago . "\n";
    */

} catch (PDOException $e) {
    $error_msg_pdo = $log_message_prefix . "Erro PDO ao atualizar anúncios expirados: " . $e->getMessage();
    error_log($error_msg_pdo);
    echo $error_msg_pdo . "\n";
    exit(1); // Sair com código de erro
} catch (Exception $e) { // Capturar outras exceções gerais
    $error_msg_general = $log_message_prefix . "Erro geral ao atualizar anúncios expirados: " . $e->getMessage();
    error_log($error_msg_general);
    echo $error_msg_general . "\n";
    exit(1); // Sair com código de erro
}

echo $log_message_prefix . "Script de expiração de anúncios concluído.\n";
exit(0); // Sair com sucesso
?>