23 lines
1.6 KiB
TypeScript
23 lines
1.6 KiB
TypeScript
import { SQLCommon } from "./interfaces";
|
|
|
|
const tables: string[] = [
|
|
"CREATE TABLE IF NOT EXISTS servers (server_snowflake bigint NOT NULL PRIMARY KEY,server_name text NOT NULL,server_description mediumtext);",
|
|
"CREATE TABLE IF NOT EXISTS channels (channel_snowflake bigint NOT NULL PRIMARY KEY,server_snowflake bigint NOT NULL,channel_name text NOT NULL,is_thread bit NOT NULL);",
|
|
"CREATE TABLE IF NOT EXISTS messages (message_snowflake bigint NOT NULL PRIMARY KEY,channel_snowflake bigint NOT NULL,user_snowflake bigint NOT NULL,message_content longtext NOT NULL,message_timestamp datetime NOT NULL,message_deleted bit NOT NULL);",
|
|
"CREATE TABLE IF NOT EXISTS message_content_changes (message_change_id bigint NOT NULL PRIMARY KEY,message_snowflake bigint NOT NULL,message_change_old_timestamp datetime NOT NULL,message_change_old_content longtext NOT NULL);",
|
|
"CREATE TABLE IF NOT EXISTS message_attachments (attachment_snowflake bigint NOT NULL PRIMARY KEY,message_snowflake bigint NOT NULL,attachment_name text NOT NULL,attachment_description text,attachment_timestamp datetime NOT NULL,attachment_mime_type text,attachment_url text NOT NULL,attachment_downloaded bit NOT NULL);"
|
|
]
|
|
|
|
const constraints: string[] = [
|
|
"ALTER TABLE channels ADD CONSTRAINT channels_server_snowflake_fk FOREIGN KEY (server_snowflake) REFERENCES servers (server_snowflake);"
|
|
]
|
|
|
|
export async function makeTables(db: SQLCommon): Promise<number[]> {
|
|
return Promise.all(tables.map((statement) => db.run(statement)))
|
|
}
|
|
|
|
export async function makeConstraints(db: SQLCommon): Promise<number[]> {
|
|
return Promise.all(constraints.map((statement) => db.run(statement)))
|
|
}
|
|
|