oh baby boy
This commit is contained in:
99
src/db/create.ts
Normal file
99
src/db/create.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
export const model: { [key: string]: string } = {
|
||||
User: `
|
||||
CREATE TABLE User
|
||||
(
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
email TEXT UNIQUE,
|
||||
email_verified INTEGER DEFAULT 0,
|
||||
password_hash TEXT,
|
||||
display_name TEXT,
|
||||
provider TEXT,
|
||||
image TEXT,
|
||||
registered_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
`,
|
||||
Post: `
|
||||
CREATE TABLE Post
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
title TEXT NOT NULL UNIQUE,
|
||||
subtitle TEXT,
|
||||
body TEXT NOT NULL,
|
||||
banner_photo TEXT,
|
||||
date TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
published INTEGER NOT NULL,
|
||||
category TEXT,
|
||||
author_id TEXT NOT NULL,
|
||||
reads INTEGER NOT NULL DEFAULT 0,
|
||||
attachments TEXT
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_posts_category ON Post (category);
|
||||
`,
|
||||
PostLike: `
|
||||
CREATE TABLE PostLike
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id TEXT NOT NULL,
|
||||
post_id INTEGER NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_likes_user_post ON PostLike (user_id, post_id);
|
||||
`,
|
||||
Comment: `
|
||||
CREATE TABLE Comment
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
body TEXT NOT NULL,
|
||||
post_id INTEGER,
|
||||
parent_comment_id INTEGER,
|
||||
date TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
edited INTEGER NOT NULL DEFAULT 0,
|
||||
commenter_id TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_comment_commenter_id ON Comment (commenter_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_comment_parent_comment_id ON Comment (parent_comment_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_comment_post_id ON Comment (post_id);
|
||||
`,
|
||||
CommentReaction: `
|
||||
CREATE TABLE CommentReaction
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
type TEXT NOT NULL,
|
||||
comment_id INTEGER NOT NULL,
|
||||
user_id TEXT NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_reaction_user_type_comment ON CommentReaction (user_id, type, comment_id);
|
||||
`,
|
||||
Connection: `
|
||||
CREATE TABLE Connection
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id TEXT NOT NULL,
|
||||
connection_id TEXT NOT NULL,
|
||||
post_id INTEGER
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_connection_post_id ON Connection (post_id);
|
||||
`,
|
||||
Tag: `
|
||||
CREATE TABLE Tag
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
value TEXT NOT NULL,
|
||||
post_id INTEGER NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_tag_post_id ON Tag (post_id);
|
||||
`,
|
||||
PostHistory: `
|
||||
CREATE TABLE PostHistory
|
||||
(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
post_id INTEGER NOT NULL,
|
||||
parent_id INTEGER,
|
||||
content TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
is_saved INTEGER DEFAULT 0,
|
||||
FOREIGN KEY (post_id) REFERENCES Post(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_history_post_id ON PostHistory (post_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_history_parent_id ON PostHistory (parent_id);
|
||||
`
|
||||
};
|
||||
Reference in New Issue
Block a user