Initial commit
Create the Board Score PWA with offline support, Kurzgesagt-style themes, multiple game configs, dynamic players, avatars via DiceBear, and complete statistics.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import Dexie, { Table } from "dexie";
|
||||
import { GameSession, AppSettings, SavedPlayer } from "../types";
|
||||
|
||||
export class BoardScoreDatabase extends Dexie {
|
||||
sessions!: Table<GameSession, string>;
|
||||
settings!: Table<AppSettings, number>;
|
||||
players!: Table<SavedPlayer, string>;
|
||||
|
||||
constructor() {
|
||||
super("BoardScoreDatabase");
|
||||
|
||||
this.version(1).stores({
|
||||
sessions: "id, gameId, dateStart, status",
|
||||
settings: "id",
|
||||
});
|
||||
|
||||
// Version 2: Added players table
|
||||
this.version(2).stores({
|
||||
sessions: "id, gameId, dateStart, status",
|
||||
settings: "id",
|
||||
players: "id, name, createdAt",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const db = new BoardScoreDatabase();
|
||||
|
||||
// Initialize default settings if empty
|
||||
db.on("populate", async () => {
|
||||
await db.settings.add({
|
||||
id: 1,
|
||||
theme: "system",
|
||||
language: "fr",
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user