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,
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 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
41 updated_at DATETIME NOT NULL
42 );`
43
44 sqlCreateCollabTable = `CREATE TABLE IF NOT EXISTS collab (
45 id INTEGER PRIMARY KEY AUTOINCREMENT,
46 user_id INTEGER NOT NULL,
47 repo_id INTEGER NOT NULL,
48 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
49 updated_at DATETIME NOT NULL,
50 UNIQUE (user_id, repo_id),
51 CONSTRAINT user_id_fk
52 FOREIGN KEY(user_id) REFERENCES user(id)
53 ON DELETE CASCADE
54 ON UPDATE CASCADE,
55 CONSTRAINT repo_id_fk
56 FOREIGN KEY(repo_id) REFERENCES repo(id)
57 ON DELETE CASCADE
58 ON UPDATE CASCADE
59 );`
60)