2023-03-26 14:40:56 +02:00
|
|
|
CREATE TABLE IF NOT EXISTS "user" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"name" text NOT NULL UNIQUE,
|
2023-04-04 10:44:14 +02:00
|
|
|
"pw" text,
|
2023-03-26 14:40:56 +02:00
|
|
|
"is_cox" boolean NOT NULL DEFAULT FALSE,
|
|
|
|
"is_admin" boolean NOT NULL DEFAULT FALSE,
|
2023-04-28 19:29:20 +02:00
|
|
|
"is_guest" boolean NOT NULL DEFAULT TRUE,
|
|
|
|
"deleted" boolean NOT NULL DEFAULT FALSE
|
2023-03-26 14:40:56 +02:00
|
|
|
);
|
2023-04-04 12:19:56 +02:00
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "trip_details" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"planned_starting_time" text NOT NULL,
|
|
|
|
"max_people" INTEGER NOT NULL,
|
|
|
|
"day" TEXT NOT NULL,
|
2023-04-28 21:18:50 +02:00
|
|
|
"notes" TEXT,
|
|
|
|
"trip_type_id" INTEGER,
|
|
|
|
FOREIGN KEY(trip_type_id) REFERENCES trip_type(id)
|
2023-04-04 12:19:56 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "planned_event" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"name" text NOT NULL,
|
|
|
|
"planned_amount_cox" INTEGER unsigned NOT NULL,
|
|
|
|
"allow_guests" boolean NOT NULL default false,
|
|
|
|
"trip_details_id" INTEGER NOT NULL,
|
|
|
|
"created_at" text NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY(trip_details_id) REFERENCES trip_details(id) ON DELETE CASCADE
|
|
|
|
);
|
2023-04-04 15:16:21 +02:00
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "trip" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"cox_id" INTEGER NOT NULL,
|
|
|
|
"trip_details_id" INTEGER,
|
|
|
|
"planned_event_id" INTEGER,
|
|
|
|
"created_at" text NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY(cox_id) REFERENCES user(id),
|
|
|
|
FOREIGN KEY(trip_details_id) REFERENCES trip_details(id) ON DELETE CASCADE,
|
|
|
|
FOREIGN KEY(planned_event_id) REFERENCES planned_event(id) ON DELETE CASCADE,
|
|
|
|
CONSTRAINT unq UNIQUE (cox_id, planned_event_id) -- allow cox to participate only once for each planned event
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "user_trip" (
|
|
|
|
"user_id" INTEGER NOT NULL,
|
|
|
|
"trip_details_id" INTEGER NOT NULL,
|
|
|
|
"created_at" text NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY(user_id) REFERENCES user(id),
|
|
|
|
FOREIGN KEY(trip_details_id) REFERENCES trip_details(id),
|
|
|
|
CONSTRAINT unq UNIQUE (user_id, trip_details_id) -- allow user to participate only once for each trip
|
|
|
|
);
|
2023-04-18 12:10:11 +02:00
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "log" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"msg" text NOT NULL,
|
|
|
|
"created_at" text NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
|
|
);
|
2023-04-28 21:18:50 +02:00
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS "trip_type" (
|
|
|
|
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
"name" text NOT NULL UNIQUE,
|
|
|
|
"desc" text NOT NULL,
|
|
|
|
"question" text NOT NULL,
|
|
|
|
"icon" text NOT NULL
|
|
|
|
);
|