fixed the schema again because it was buggin frfr
This commit is contained in:
@@ -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));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user