local schema = [[
CREATE TABLE IF NOT EXISTS User (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nick TEXT NOT NULL,
name TEXT NOT NULL,
salt TEXT,
hash TEXT
);
CREATE TABLE IF NOT EXISTS Project (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
desc TEXT
);
CREATE TABLE IF NOT EXISTS Membership (
proj_id INTEGER REFERENCES Project(id),
user_id INTEGER REFERENCES User(id),
PRIMARY KEY(proj_id, user_id)
);
CREATE TABLE IF NOT EXISTS State (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
desc TEXT
);
CREATE TABLE IF NOT EXISTS Ticket (
id INTEGER PRIMARY KEY AUTOINCREMENT,
proj_id INTEGER NOT NULL REFERENCES Project(id),
user_id INTEGER NOT NULL REFERENCES User(id),
time INTEGER NOT NULL,
code INTEGER NOT NULL,
name TEXT NOT NULL,
desc TEXT
);
CREATE TABLE IF NOT EXISTS Shift (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ticket_id INTEGER NOT NULL REFERENCES Ticket(id),
old_stt_id INTEGER NOT NULL REFERENCES State(id),
new_stt_id INTEGER NOT NULL REFERENCES State(id),
user_id INTEGER NOT NULL REFERENCES User(id),
time INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS Comment (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ticket_id INTEGER NOT NULL REFERENCES Ticket(id),
user_id INTEGER NOT NULL REFERENCES User(id),
time INTEGER NOT NULL,
text TEXT NOT NULL
);
]]
return {schema=schema}