added result presets to schema and seeding script, added seed data for consistency

This commit is contained in:
2026-05-25 14:58:46 +01:00
parent 9e8101c583
commit d6fdddb972
12 changed files with 814 additions and 5 deletions

View File

@@ -35,9 +35,11 @@ async function seed() {
await db.delete(schema.mainLedger);
await db.delete(schema.registeredPlayers);
await db.delete(schema.registeredEvents);
await db.delete(schema.registeredResults);
await db.delete(schema.resultPresets);
await db.delete(schema.eventTypes);
await db.delete(schema.scoringPresets);
await db.delete(schema.brackets); // Added cleanup for brackets
await db.delete(schema.brackets);
await db.delete(schema.players);
await db.delete(schema.divisions);
await db.delete(schema.teams);
@@ -67,6 +69,21 @@ async function seed() {
console.log(` → Bracket: ${row.bracket_name}`);
}
// --- 2.75 resultPresets ---
const resultPresetsCSV = readCSV('resultPresets.csv');
for (const row of resultPresetsCSV) {
await db.insert(schema.resultPresets).values({
presetName: row.presetName,
numberOfResults: row.numberOfResults,
unit: row.unit,
lowerIsBetter: row.lowerIsBetter,
averageResults: row.averageResults
});
console.log(
` → Result Preset ${row.presetName}: ${row.numberOfResults} results, measured in ${row.unit}`
);
}
// --- 3. Scoring Presets ---
const scoringPresetsCSV = readCSV('scoringPresets.csv');
for (const row of scoringPresetsCSV) {
@@ -81,12 +98,14 @@ 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 dbResults = await db.select().from(schema.resultPresets);
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
const resultPresetMap = new Map(dbResults.map((b) => [b.presetName, b.id])); // Map names to IDs
// --- 4. Players ---
const playersCSV = readCSV('players.csv');
@@ -109,11 +128,16 @@ async function seed() {
// --- 5. Event Types ---
const eventTypesCSV = readCSV('eventTypes.csv');
for (const row of eventTypesCSV) {
const presetId = resultPresetMap.get(row.resultPreset);
if (!presetId) throw new Error(`Team "${row.resultPreset}" not found`);
await db.insert(schema.eventTypes).values({
name: row.event_name,
preset: row.preset
preset: row.preset,
resultPreset: presetId
});
console.log(` → Event Type: ${row.event_name} (preset ${row.preset})`);
console.log(
` → Event Type: ${row.event_name} (preset ${row.preset}, resultPreset: ${row.resultPreset})`
);
}
const dbEventTypes = await db.select().from(schema.eventTypes);
@@ -180,7 +204,7 @@ async function seed() {
await client.execute('PRAGMA foreign_keys = ON');
console.log('\n✅ Seeding complete!');
await client.close();
client.close();
}
seed().catch((err) => {