feat: Add CalendarSelector component and install new dependencies.

This commit is contained in:
2026-01-06 16:14:22 +00:00
commit 4ab350105d
3592 changed files with 470732 additions and 0 deletions

52
server/db.js Normal file
View File

@@ -0,0 +1,52 @@
const Database = require('better-sqlite3');
const path = require('path');
const dbPath = path.resolve(__dirname, 'eventy.db');
const db = new Database(dbPath);
// Enable WAL mode for better concurrency
db.pragma('journal_mode = WAL');
function initDb() {
const schema = `
CREATE TABLE IF NOT EXISTS events (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
description TEXT,
start_date TEXT NOT NULL,
end_date TEXT NOT NULL,
created_at TEXT DEFAULT (datetime('now'))
);
CREATE TABLE IF NOT EXISTS participants (
id TEXT PRIMARY KEY,
event_id TEXT NOT NULL,
name TEXT NOT NULL,
created_at TEXT DEFAULT (datetime('now')),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS votes (
id TEXT PRIMARY KEY,
participant_id TEXT NOT NULL,
date TEXT NOT NULL,
status TEXT CHECK(status IN ('available', 'unavailable', 'maybe')) NOT NULL,
FOREIGN KEY (participant_id) REFERENCES participants(id) ON DELETE CASCADE,
UNIQUE(participant_id, date)
);
CREATE TABLE IF NOT EXISTS event_dates (
event_id TEXT NOT NULL,
date TEXT NOT NULL,
PRIMARY KEY (event_id, date),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
);
`;
db.exec(schema);
console.log('Database initialized');
}
module.exports = {
db,
initDb
};