1package sqlite
 2
 3var (
 4	sqlCreateSettingsTable = `CREATE TABLE IF NOT EXISTS settings (
 5		id INTEGER PRIMARY KEY AUTOINCREMENT,
 6		key TEXT NOT NULL UNIQUE,
 7		value TEXT NOT NULL,
 8		created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
 9		updated_at DATETIME NOT NULL
10	);`
11
12	sqlCreateUserTable = `CREATE TABLE IF NOT EXISTS user (
13		id INTEGER PRIMARY KEY AUTOINCREMENT,
14		username TEXT UNIQUE,
15		admin BOOLEAN NOT NULL,
16		created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
17		updated_at DATETIME NOT NULL
18	);`
19
20	sqlCreatePublicKeyTable = `CREATE TABLE IF NOT EXISTS public_key (
21		id INTEGER PRIMARY KEY AUTOINCREMENT,
22		user_id INTEGER NOT NULL,
23		public_key TEXT NOT NULL UNIQUE,
24		created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
25		updated_at DATETIME NOT NULL,
26		UNIQUE (user_id, public_key),
27		CONSTRAINT user_id_fk
28		FOREIGN KEY(user_id) REFERENCES user(id)
29		ON DELETE CASCADE
30		ON UPDATE CASCADE
31	);`
32
33	sqlCreateRepoTable = `CREATE TABLE IF NOT EXISTS repo (
34		id INTEGER PRIMARY KEY AUTOINCREMENT,
35		name TEXT NOT NULL UNIQUE,
36		project_name TEXT NOT NULL,
37		description TEXT NOT NULL,
38		private BOOLEAN NOT NULL,
39		mirror BOOLEAN NOT NULL,
40		hidden BOOLEAN NOT NULL,
41		created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
42		updated_at DATETIME NOT NULL
43	);`
44
45	sqlCreateCollabTable = `CREATE TABLE IF NOT EXISTS collab (
46		id INTEGER PRIMARY KEY AUTOINCREMENT,
47		user_id INTEGER NOT NULL,
48		repo_id INTEGER NOT NULL,
49		created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
50		updated_at DATETIME NOT NULL,
51		UNIQUE (user_id, repo_id),
52		CONSTRAINT user_id_fk
53		FOREIGN KEY(user_id) REFERENCES user(id)
54		ON DELETE CASCADE
55		ON UPDATE CASCADE,
56		CONSTRAINT repo_id_fk
57		FOREIGN KEY(repo_id) REFERENCES repo(id)
58		ON DELETE CASCADE
59		ON UPDATE CASCADE
60	);`
61)