<?php

/**
 * Bootstrap para testes
 */

// Definir constante de ambiente de teste
define('APP_ENV', 'testing');
define('ROOT_PATH', dirname(__DIR__));

// Incluir autoloader
require_once __DIR__ . '/../vendor/autoload.php';

// Configurar timezone
date_default_timezone_set('America/Sao_Paulo');

// Configurar ambiente de teste
$_ENV['APP_ENV'] = 'testing';
$_ENV['DB_CONNECTION'] = 'sqlite';
$_ENV['DB_DATABASE'] = ':memory:';

// Mock de funções globais se necessário
if (!function_exists('getenv')) {
    function getenv($name, $local_only = false) {
        return $_ENV[$name] ?? false;
    }
}

// Carregar classes necessárias
spl_autoload_register(function ($class) {
    $prefix = 'Gestoreasy\\';
    $baseDir = __DIR__ . '/../src/';
    
    $len = strlen($prefix);
    if (strncmp($prefix, $class, $len) !== 0) {
        return;
    }
    
    $relativeClass = substr($class, $len);
    $file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';
    
    if (file_exists($file)) {
        require $file;
    }
});

// Autoload para Modules
spl_autoload_register(function ($class) {
    $prefix = 'Modules\\';
    $baseDir = __DIR__ . '/../modules/';
    
    $len = strlen($prefix);
    if (strncmp($prefix, $class, $len) !== 0) {
        return;
    }
    
    $relativeClass = substr($class, $len);
    $file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';
    
    if (file_exists($file)) {
        require $file;
    }
});

