fixed the schema again because it was buggin frfr

This commit is contained in:
2026-05-23 19:49:52 +01:00
parent 6b3baad695
commit 7a76412a3f

View File

@@ -2,7 +2,7 @@ import { sql, eq } from 'drizzle-orm';
import { integer, sqliteTable, text, sqliteView } from 'drizzle-orm/sqlite-core';
export const players = sqliteTable('players', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('players_id').primaryKey({ autoIncrement: true }),
firstName: text('firstName').notNull(),
lastName: text('lastName').notNull(),
team: integer('team')
@@ -12,25 +12,25 @@ export const players = sqliteTable('players', {
});
export const teams = sqliteTable('teams', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('teams_id').primaryKey({ autoIncrement: true }),
name: text('team_name').notNull(),
color: text('color').notNull().default('white')
});
export const divisions = sqliteTable('divisions', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('divisions_id').primaryKey({ autoIncrement: true }),
name: text('div_name').notNull()
});
export const scoringPresets = sqliteTable('scoringPresets', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('scoringPresets_id').primaryKey({ autoIncrement: true }),
presetID: integer('preset').notNull(),
placement: integer('placement').notNull().default(0),
points: integer('points').notNull().default(0)
});
export const eventTypes = sqliteTable('eventTypes', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('eventTypes_id').primaryKey({ autoIncrement: true }),
name: text('event_name').notNull(),
preset: integer('preset')
.references(() => scoringPresets.presetID)
@@ -38,7 +38,7 @@ export const eventTypes = sqliteTable('eventTypes', {
});
export const registeredEvents = sqliteTable('registeredEvents', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('registeredEvents_id').primaryKey({ autoIncrement: true }),
eventType: integer('event_type')
.references(() => eventTypes.id)
.notNull(),
@@ -50,7 +50,7 @@ export const registeredEvents = sqliteTable('registeredEvents', {
});
export const registeredPlayers = sqliteTable('registeredPlayers', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('registeredPlayers_id').primaryKey({ autoIncrement: true }),
playerID: integer('player_registered')
.references(() => players.id)
.notNull(),
@@ -61,7 +61,7 @@ export const registeredPlayers = sqliteTable('registeredPlayers', {
});
export const mainLedger = sqliteTable('mainLedger', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('mainLedger_id').primaryKey({ autoIncrement: true }),
timestamp: integer('ledger_timestamp', { mode: 'timestamp' })
.notNull()
.default(sql`(unixepoch())`),
@@ -71,7 +71,7 @@ export const mainLedger = sqliteTable('mainLedger', {
});
export const scoreLedger = sqliteTable('scoresLedger', {
id: integer('id').primaryKey({ autoIncrement: true }),
id: integer('scoreLedger_id').primaryKey({ autoIncrement: true }),
ledgerID: integer('ledger_address')
.references(() => mainLedger.id)
.notNull(),
@@ -93,3 +93,37 @@ export const teamScoresView = sqliteView('teamScoresView').as((qb) => {
.leftJoin(scoreLedger, eq(teams.id, scoreLedger.teamID))
.groupBy(teams.id, teams.name, teams.color);
});
export const registeredEventsView = sqliteView('registeredEventsView').as((qb) => {
return qb
.select({
eventId: registeredEvents.id,
eventName: eventTypes.name,
division: divisions.name,
state: registeredEvents.state,
timeCompleted: registeredEvents.timeCompleted
})
.from(registeredEvents)
.innerJoin(eventTypes, eq(registeredEvents.eventType, eventTypes.id))
.innerJoin(divisions, eq(registeredEvents.division, divisions.id));
});
export const registeredEventPlayersView = sqliteView('registeredEventPlayersView').as((qb) => {
return qb
.select({
playerId: players.id,
firstName: players.firstName,
lastName: players.lastName,
placement: registeredPlayers.placement,
eventId: registeredEvents.id,
eventName: eventTypes.name,
teamId: teams.id,
teamName: teams.name,
teamColor: teams.color
})
.from(registeredPlayers)
.innerJoin(registeredEvents, eq(registeredPlayers.registeredEventID, registeredEvents.id))
.innerJoin(eventTypes, eq(registeredEvents.eventType, eventTypes.id))
.innerJoin(players, eq(registeredPlayers.playerID, players.id))
.innerJoin(teams, eq(players.team, teams.id));
});