added brackets and function to get them, updated data structure of players view
This commit is contained in:
@@ -37,6 +37,7 @@ async function seed() {
|
||||
await db.delete(schema.registeredEvents);
|
||||
await db.delete(schema.eventTypes);
|
||||
await db.delete(schema.scoringPresets);
|
||||
await db.delete(schema.brackets); // Added cleanup for brackets
|
||||
await db.delete(schema.players);
|
||||
await db.delete(schema.divisions);
|
||||
await db.delete(schema.teams);
|
||||
@@ -59,6 +60,13 @@ async function seed() {
|
||||
console.log(` → Division: ${row.div_name}`);
|
||||
}
|
||||
|
||||
// --- 2.5 Brackets (Added Section) ---
|
||||
const bracketsCSV = readCSV('brackets.csv');
|
||||
for (const row of bracketsCSV) {
|
||||
await db.insert(schema.brackets).values({ name: row.bracket_name });
|
||||
console.log(` → Bracket: ${row.bracket_name}`);
|
||||
}
|
||||
|
||||
// --- 3. Scoring Presets ---
|
||||
const scoringPresetsCSV = readCSV('scoringPresets.csv');
|
||||
for (const row of scoringPresetsCSV) {
|
||||
@@ -73,9 +81,12 @@ async function seed() {
|
||||
// Maps for dynamic relational lookups
|
||||
const dbTeams = await db.select().from(schema.teams);
|
||||
const dbDivisions = await db.select().from(schema.divisions);
|
||||
const dbBrackets = await db.select().from(schema.brackets); // Look up newly seeded brackets
|
||||
|
||||
const teamMap = new Map(dbTeams.map((t) => [t.name, t.id]));
|
||||
const divisionMap = new Map(dbDivisions.map((d) => [d.name, d.id]));
|
||||
const divisionNameMap = new Map([...divisionMap.entries()].map(([name, id]) => [id, name]));
|
||||
const bracketMap = new Map(dbBrackets.map((b) => [b.name, b.id])); // Map names to IDs
|
||||
|
||||
// --- 4. Players ---
|
||||
const playersCSV = readCSV('players.csv');
|
||||
@@ -109,7 +120,6 @@ async function seed() {
|
||||
const eventTypeMap = new Map(dbEventTypes.map((et) => [et.name, et.id]));
|
||||
|
||||
// --- 6. Registered Events ---
|
||||
// Change the Map key type to a string (the event name)
|
||||
const eventNameMap = new Map<string, number>();
|
||||
const registeredEventsCSV = readCSV('registeredEvents.csv');
|
||||
|
||||
@@ -145,19 +155,24 @@ async function seed() {
|
||||
const divisionName = divisionNameMap.get(player?.division ?? -1);
|
||||
const actualEventId = eventNameMap.get(`${row.event_registered}|${divisionName}`);
|
||||
|
||||
// Dynamic look up of the bracket row's primary key ID using the CSV text
|
||||
const bracketId = bracketMap.get(row.bracket);
|
||||
|
||||
if (!player) throw new Error(`Player "${row.player_registered}" not found`);
|
||||
if (!actualEventId)
|
||||
throw new Error(
|
||||
`Registered Event "${row.event_registered}" for division "${divisionName}" not found`
|
||||
);
|
||||
if (!bracketId) throw new Error(`Bracket "${row.bracket}" not found in database`);
|
||||
|
||||
await db.insert(schema.registeredPlayers).values({
|
||||
playerID: player.id,
|
||||
registeredEventID: actualEventId,
|
||||
bracket: bracketId, // Using the real relational ID instead of raw value
|
||||
placement: row.player_placement || 0
|
||||
});
|
||||
console.log(
|
||||
` → Registered Player: ${row.player_registered} → ${row.event_registered} (division: ${divisionName}) [eventId:${actualEventId}]`
|
||||
` → Registered Player: ${row.player_registered} → ${row.event_registered} (division: ${divisionName}, bracket: ${row.bracket} [id:${bracketId}]) [eventId:${actualEventId}]`
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user