52 lines
1.8 KiB
SQL
52 lines
1.8 KiB
SQL
CREATE TABLE calendar_events (
|
|
id TEXT PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
description TEXT NOT NULL DEFAULT '',
|
|
location TEXT NOT NULL DEFAULT '',
|
|
start_time TEXT NOT NULL,
|
|
end_time TEXT NOT NULL,
|
|
all_day INTEGER NOT NULL DEFAULT 0,
|
|
recurrence_rule TEXT,
|
|
attendees TEXT NOT NULL DEFAULT '[]',
|
|
organizer TEXT NOT NULL DEFAULT '',
|
|
status TEXT NOT NULL DEFAULT 'confirmed',
|
|
source TEXT NOT NULL DEFAULT 'manual',
|
|
source_uid TEXT,
|
|
source_message_uid INTEGER,
|
|
source_message_folder TEXT,
|
|
meeting_url TEXT,
|
|
color TEXT,
|
|
reminder_minutes INTEGER,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
CREATE INDEX idx_calendar_events_time ON calendar_events(start_time, end_time);
|
|
CREATE INDEX idx_calendar_events_source_uid ON calendar_events(source_uid);
|
|
|
|
CREATE TABLE calendar_settings (
|
|
id INTEGER PRIMARY KEY DEFAULT 1 CHECK (id = 1),
|
|
default_view TEXT NOT NULL DEFAULT 'month',
|
|
week_starts_on INTEGER NOT NULL DEFAULT 0,
|
|
working_hours_start TEXT NOT NULL DEFAULT '09:00',
|
|
working_hours_end TEXT NOT NULL DEFAULT '17:00',
|
|
time_format TEXT NOT NULL DEFAULT '12h',
|
|
zoom_link TEXT NOT NULL DEFAULT '',
|
|
teams_link TEXT NOT NULL DEFAULT '',
|
|
meet_link TEXT NOT NULL DEFAULT '',
|
|
caldav_url TEXT NOT NULL DEFAULT '',
|
|
caldav_username TEXT NOT NULL DEFAULT '',
|
|
caldav_password TEXT NOT NULL DEFAULT '',
|
|
caldav_enabled INTEGER NOT NULL DEFAULT 0,
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
CREATE TABLE meeting_templates (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
url_template TEXT NOT NULL,
|
|
icon TEXT NOT NULL DEFAULT '',
|
|
is_default INTEGER NOT NULL DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|