Improve calculation to match the monthly job
This commit is contained in:
parent
4f08791f98
commit
8711794bc4
@ -37,6 +37,11 @@ export async function loader({ context }: { context: RequestContext }) {
|
||||
const eventMemberQuery = await context.env.D1.prepare(
|
||||
"SELECT id, name, roblox_id FROM et_members;",
|
||||
).all();
|
||||
const inactivityQuery: D1Result<Record<string, any>> =
|
||||
await context.env.D1.prepare(
|
||||
"SELECT decisions, json_extract(user, '$.id') AS uid FROM inactivity_notices WHERE (end BETWEEN DATE('now', 'start of month', '-1 month') AND DATE('now', 'start of month', '-1 day')) OR (start BETWEEN DATE('now', 'start of month', '-1 month') AND DATE('now', 'start of month', '-1 day'));",
|
||||
).all();
|
||||
|
||||
const eventsQuery = await context.env.D1.prepare(
|
||||
"SELECT approved, answered_at, created_by, performed_at, reached_minimum_player_count, type FROM events WHERE month = ? AND year = ?;",
|
||||
)
|
||||
@ -62,14 +67,20 @@ export async function loader({ context }: { context: RequestContext }) {
|
||||
if (!memberMap[event.created_by] || !event.approved) continue;
|
||||
|
||||
if (event.performed_at) memberMap[event.created_by].points += 10;
|
||||
else memberMap[event.created_by].points -= 10;
|
||||
else memberMap[event.created_by].points -= 5;
|
||||
|
||||
if (event.type === "gamenight" && event.reached_minimum_player_count)
|
||||
memberMap[event.created_by].points += 10;
|
||||
}
|
||||
|
||||
for (const member of Object.keys(memberMap))
|
||||
if (memberMap[member].points < 30) memberMap[member].points -= 30;
|
||||
if (
|
||||
memberMap[member].points < 30 &&
|
||||
!inactivityQuery.results.find(
|
||||
(i) => i.uid === member && JSON.parse(i.decisions).et,
|
||||
)
|
||||
)
|
||||
memberMap[member].points -= 30;
|
||||
|
||||
return memberMap;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user