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 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)