import { cronJobs } from 'convex/server';
import { internal } from './_generated/api';

const crons = cronJobs();

// Enviar mensagens agendadas a cada minuto
crons.interval(
	'enviar-mensagens-agendadas',
	{ minutes: 1 },
	internal.chat.enviarMensagensAgendadas
);

// Processar fila de emails (incluindo agendados) a cada minuto
crons.interval('processar-fila-emails', { minutes: 1 }, internal.email.processarFilaEmails);

// Limpar indicadores de digitação antigos (>10s) a cada minuto
crons.interval(
	'limpar-indicadores-digitacao',
	{ minutes: 1 },
	internal.chat.limparIndicadoresDigitacao
);

// Atualizar status de férias dos funcionários diariamente
crons.interval(
	'atualizar-status-ferias',
	{ hours: 24 },
	internal.ferias.atualizarStatusTodosFuncionarios,
	{}
);

crons.interval(
	'expirar-bloqueios-ip-automaticos',
	{ minutes: 5 },
	internal.security.expirarBloqueiosIpAutomaticos,
	{}
);

crons.interval(
	'sincronizar-threat-intel',
	{ hours: 2 },
	internal.security.atualizarThreatIntelFeedsInternal,
	{}
);

// Monitorar logs de login e detectar brute force a cada 5 minutos
crons.interval(
	'monitorar-logs-login-brute-force',
	{ minutes: 5 },
	internal.security.monitorarLogsLogin,
	{}
);

// Verificar e enviar notificações de alertas de banco de horas diariamente às 8h
crons.interval(
	'verificar-alertas-banco-horas',
	{ hours: 24 },
	internal.pontos.enviarNotificacoesAlertasBancoHoras,
	{}
);

export default crons;
