added result presets to schema and seeding script, added seed data for consistency
This commit is contained in:
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user