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