<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit(0);
}

require_once __DIR__ . '/../../config/database.php';

try {
    // Conectar ao banco
    $pdo = conectarBanco();
    
    // Buscar gestores ativos (sem senhas)
    $sql = "SELECT id, nome, email, usuario, nivel_acesso, telefone, 
                   departamento, foto, status, data_criacao, data_ultimo_acesso
            FROM gestores 
            WHERE status IN ('ativo', 'inativo')
            ORDER BY nivel_acesso DESC, nome ASC";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $gestores = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Converter campos NULL para strings vazias para evitar problemas de JSON
    foreach ($gestores as &$gestor) {
        $gestor['telefone'] = $gestor['telefone'] ?? '';
        $gestor['departamento'] = $gestor['departamento'] ?? '';
        $gestor['foto'] = $gestor['foto'] ?? '';
        $gestor['data_ultimo_acesso'] = $gestor['data_ultimo_acesso'] ?? '';
    }
    
    // Estatísticas básicas usando função compatível
    $gestoresAtivos = array_filter($gestores, function($g) { return $g['status'] === 'ativo'; });
    $administradores = array_filter($gestores, function($g) { return $g['nivel_acesso'] === 'admin'; });
    
    $stats = [
        'total_gestores' => count($gestores),
        'gestores_ativos' => count($gestoresAtivos),
        'administradores' => count($administradores),
        'ultima_sincronizacao' => date('Y-m-d H:i:s')
    ];
    
    $response = [
        'sucesso' => true,
        'gestores' => $gestores,
        'estatisticas' => $stats,
        'versao_dados' => date('YmdHis')
    ];
    
    // Garantir que o JSON é válido
    $jsonOutput = json_encode($response, JSON_UNESCAPED_UNICODE);
    
    if ($jsonOutput === false) {
        throw new Exception('Erro ao gerar JSON: ' . json_last_error_msg());
    }
    
    echo $jsonOutput;
    
} catch (Exception $e) {
    http_response_code(500);
    
    $errorResponse = [
        'sucesso' => false,
        'erro' => $e->getMessage(),
        'debug' => [
            'file' => __FILE__,
            'line' => $e->getLine(),
            'trace' => $e->getTraceAsString()
        ]
    ];
    
    echo json_encode($errorResponse, JSON_UNESCAPED_UNICODE);
}
?> 
