Skip to content

Conversation

@luizhcastro
Copy link
Member

Adiciona um cron job para executar periodicamente o script de migração de roles do Discord, automatizando o alinhamento entre os planos de membros do BeroLab e os cargos do servidor.

O que esse PR faz

  • Introduz a dependência cron e cria o módulo startMigrationCronJob para agendar a execução da migração a cada 10 minutos no fuso de America/Sao_Paulo.
  • Integra o agendador ao fluxo de inicialização do bot, disparando a migração assim que o worker context é inicializado e o cliente do Discord está pronto.
  • Refatora migrate-roles.ts para uma função reutilizável que recebe api e botId, removendo o script CLI e ajustando logs e tratamento de erros para o contexto de job recorrente.

Detalhes de implementação

  • Valida DISCORD_GUILD_ID, presença dos roles FREEMIUM/PREMIUM e hierarquia de cargos do bot antes de processar, lançando erros claros em caso de configuração incorreta.
  • Faz paginação dos membros do Discord, busca membros na API do BeroLab com autenticação via cookies de env vars e calcula estatísticas detalhadas da migração (adicionados, removidos, já corretos, erros).
  • Garante espaçamento entre operações sensíveis com sleep, reduzindo risco de rate limit, e registra um resumo final da execução a cada ciclo do cron.

@luizhcastro luizhcastro self-assigned this Dec 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants