<?php

    define('HOST', 'localhost');
    define('USER', 'wwfoti_cron');
    define('PASS', 'Vn6irJ@e3pkq@f)L');
    define('DBNAME', 'wwfoti_fotinha');

    //$con = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS);

    //$con->exec('SET CHARACTER SET utf8');

    // Configurações para evitar max connections
    // Otimizado para processamento de imagens pesadas (cron jobs longos)
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
        // Timeout de conexão (10 segundos - tempo suficiente para conectar)
        PDO::ATTR_TIMEOUT            => 10,
        // Desabilita conexões persistentes para evitar acúmulo
        PDO::ATTR_PERSISTENT         => false,
    ];

    try {
        $con = new PDO(
            'mysql:host=' . HOST . ';dbname=' . DBNAME . ';charset=utf8mb4',
            USER,
            PASS,
            $options
        );
        
        $con->exec('SET CHARACTER SET utf8');
        // Timeout de sessão aumentado para processamento de imagens pesadas
        // 1800 segundos = 30 minutos (suficiente para processar imagens grandes)
        // Isso evita que conexões sejam fechadas durante processamento longo
        // IMPORTANTE: Se o processamento for muito longo sem queries, a conexão pode
        // ser fechada. Nesse caso, considere fazer queries periódicas para manter viva.
        $con->exec('SET SESSION wait_timeout = 5'); // 30 minutos
        $con->exec('SET SESSION interactive_timeout = 5'); // 30 minutos
        
    } catch (PDOException $e) {
        error_log('Erro de conexão: ' . $e->getMessage());
        // Em caso de erro, não cria a conexão para evitar acúmulo
        $con = null;
        throw $e;
    }

    // Função para fechar conexão explicitamente quando necessário
    function fecharConexao(&$conexao) {
        if ($conexao !== null) {
            $conexao = null;
        }
    }

    // Registra função para fechar conexão ao final do script
    register_shutdown_function(function() use (&$con) {
        if (isset($con) && $con !== null) {
            $con = null;
        }
    });
