added brackets and function to get them, updated data structure of players view

This commit is contained in:
2026-05-24 15:17:48 +01:00
parent 8f844472c6
commit 32c5d2af7a
3 changed files with 42 additions and 3 deletions

View File

@@ -22,6 +22,11 @@ export const divisions = sqliteTable('divisions', {
name: text('div_name').notNull()
});
export const brackets = sqliteTable('brackets', {
id: integer('brackets_id').primaryKey({ autoIncrement: true }),
name: text('bracket_name').notNull()
});
export const scoringPresets = sqliteTable('scoringPresets', {
id: integer('scoringPresets_id').primaryKey({ autoIncrement: true }),
presetID: integer('preset').notNull(),
@@ -57,6 +62,9 @@ export const registeredPlayers = sqliteTable('registeredPlayers', {
registeredEventID: integer('event_registered')
.references(() => registeredEvents.id)
.notNull(),
bracket: integer('bracket_registered')
.references(() => brackets.id)
.notNull(),
placement: integer('player_placement').notNull().default(0)
});
@@ -115,6 +123,7 @@ export const registeredEventPlayersView = sqliteView('registeredEventPlayersView
firstName: players.firstName,
lastName: players.lastName,
placement: registeredPlayers.placement,
bracket: brackets.name,
eventId: registeredEvents.id,
eventName: eventTypes.name,
teamId: teams.id,
@@ -123,6 +132,7 @@ export const registeredEventPlayersView = sqliteView('registeredEventPlayersView
})
.from(registeredPlayers)
.innerJoin(registeredEvents, eq(registeredPlayers.registeredEventID, registeredEvents.id))
.innerJoin(brackets, eq(registeredPlayers.bracket, brackets.id))
.innerJoin(eventTypes, eq(registeredEvents.eventType, eventTypes.id))
.innerJoin(players, eq(registeredPlayers.playerID, players.id))
.innerJoin(teams, eq(players.team, teams.id));

View File

@@ -57,13 +57,19 @@ export async function getAllRegisteredEventPlayers(eventId: number) {
const eventPlayers = await db
.select()
.from(schema.registeredEventPlayersView)
.where(eq(schema.registeredEventPlayersView.eventId, eventId));
.where(eq(schema.registeredEventPlayersView.eventId, eventId))
.orderBy(
schema.registeredEventPlayersView.bracket,
schema.registeredEventPlayersView.placement,
schema.registeredEventPlayersView.teamName
);
return {
eventPlayers: eventPlayers.map((players) => ({
id: players.playerId,
firstName: players.firstName,
lastName: players.lastName,
placement: players.placement,
bracket: players.bracket,
eventId: players.eventId,
eventName: players.eventName,
teamId: players.teamId,
@@ -72,3 +78,11 @@ export async function getAllRegisteredEventPlayers(eventId: number) {
}))
};
}
export async function getAllBrackets() {
const brackets = await db.select().from(schema.brackets);
return {
brackets: brackets
};
}