added ledger view (thanks opencode)

This commit is contained in:
2026-07-04 15:51:49 +01:00
parent bfa49cfa91
commit ec56e3794e
7 changed files with 266 additions and 32 deletions

View File

@@ -155,34 +155,27 @@ async function seed() {
const dbEventTypes = await db.select().from(schema.eventTypes);
const eventTypeMap = new Map(dbEventTypes.map((et) => [et.name, et.id]));
// Seed registered events
// Seed registered events (auto-generated from event types × divisions, ordered by division then event type)
const eventNameMap = new Map<string, number>();
const registeredEventsCSV = readCSV('registeredEvents.csv');
for (const row of registeredEventsCSV) {
const eventTypeId = eventTypeMap.get(row.event_type);
const teamId = teamMap.get(row.winner);
const divisionId = divisionMap.get(row.division);
for (const division of dbDivisions) {
for (const eventType of dbEventTypes) {
const [inserted] = await db
.insert(schema.registeredEvents)
.values({
eventType: eventType.id,
division: division.id,
state: 0,
timeCompleted: null,
teamWinner: null
})
.returning();
console.log(
` → Registered Event [id:${inserted.id}]: ${eventType.name} | ${division.name}`
);
if (!eventTypeId) throw new Error(`Event Type "${row.event_type}" not found`);
if (!divisionId) throw new Error(`Division "${row.division}" not found`);
const [inserted] = await db
.insert(schema.registeredEvents)
.values({
eventType: eventTypeId,
division: divisionId,
state: row.event_state || 0,
timeCompleted: row.time_completed || null,
teamWinner: teamId || null
})
.returning();
console.log(
` → Registered Event [id:${inserted.id}]: ${row.event_type} | ${row.division}, winner: ${teamId}, ${row.winner}`
);
// Map event name|division to the generated event ID
eventNameMap.set(`${row.event_type}|${row.division}`, inserted.id);
eventNameMap.set(`${eventType.name}|${division.name}`, inserted.id);
}
}
// Seed registered players (linking players to events)