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

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

require_once __DIR__ . '/../../config/database.php';
$pdo = conectarBanco();

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['erro' => 'Método não permitido']);
    exit();
}

try {
    // Obter dados do POST
    $input = json_decode(file_get_contents('php://input'), true);
    
    $usuario = $input['usuario'] ?? $_POST['usuario'] ?? '';
    $senha = $input['senha'] ?? $_POST['senha'] ?? '';
    
    if (empty($usuario) || empty($senha)) {
        throw new Exception('Usuário e senha são obrigatórios');
    }
    
    // Buscar gestor no banco
    $sql = "SELECT id, nome, email, usuario, senha, nivel_acesso, telefone, 
                   departamento, foto, status, data_ultimo_acesso
            FROM gestores 
            WHERE usuario = ? AND status = 'ativo'";
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$usuario]);
    $gestor = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$gestor) {
        throw new Exception('Credenciais inválidas');
    }
    
    // Verificar senha
    if (!password_verify($senha, $gestor['senha'])) {
        throw new Exception('Credenciais inválidas');
    }
    
    // Atualizar último acesso
    $updateSql = "UPDATE gestores SET data_ultimo_acesso = NOW() WHERE id = ?";
    $updateStmt = $pdo->prepare($updateSql);
    $updateStmt->execute([$gestor['id']]);
    
    // Remover senha do retorno
    unset($gestor['senha']);
    
    // Gerar token JWT simples (opcional)
    $token = base64_encode(json_encode([
        'id' => $gestor['id'],
        'usuario' => $gestor['usuario'],
        'nivel' => $gestor['nivel_acesso'],
        'exp' => time() + (24 * 60 * 60) // 24 horas
    ]));
    
    echo json_encode([
        'sucesso' => true,
        'gestor' => $gestor,
        'token' => $token,
        'mensagem' => 'Login realizado com sucesso'
    ]);
    
} catch (Exception $e) {
    http_response_code(401);
    echo json_encode([
        'sucesso' => false,
        'erro' => $e->getMessage()
    ]);
}
?> 
