diff --git a/app/routes/events-team_.report.tsx b/app/routes/events-team_.report.tsx index 9f84549..10e1cea 100644 --- a/app/routes/events-team_.report.tsx +++ b/app/routes/events-team_.report.tsx @@ -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> = + 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; }