sendou.ink/app/routines/notifyPlusServerVoting.ts
Kalle dd1adad94b
Some checks are pending
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
BIome v2 upgrade
2025-06-22 16:49:27 +03:00

40 lines
1.1 KiB
TypeScript

import * as Seasons from "../features/mmr/core/Seasons";
import { notify } from "../features/notifications/core/notify.server";
import * as NotificationRepository from "../features/notifications/NotificationRepository.server";
import { isVotingActive } from "../features/plus-voting/core";
import * as UserRepository from "../features/user-page/UserRepository.server";
import { Routine } from "./routine.server";
export const NotifyPlusServerVotingRoutine = new Routine({
name: "NotifyPlusServerVoting",
func: async () => {
if (!isVotingActive()) return;
const season = Seasons.current()!;
const plusVotingNotifications = await NotificationRepository.findAllByType(
"PLUS_VOTING_STARTED",
);
if (
plusVotingNotifications.some(
(notification) => notification.meta.seasonNth === season.nth,
)
) {
return;
}
await notify({
notification: {
type: "PLUS_VOTING_STARTED",
meta: {
seasonNth: season.nth,
},
},
userIds: (await UserRepository.findAllPlusServerMembers()).map(
(member) => member.userId,
),
});
},
});