29 lines
952 B
SQL
29 lines
952 B
SQL
CREATE TABLE IF NOT EXISTS "channel" (
|
|
"id" SERIAL PRIMARY KEY,
|
|
"name" VARCHAR,
|
|
"last_message_id" BIGINT,
|
|
"created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS "channel_user" (
|
|
"id" SERIAL PRIMARY KEY,
|
|
"channel_id" INTEGER NOT NULL,
|
|
"user_id" INTEGER NOT NULL,
|
|
"admin" BOOLEAN NOT NULL DEFAULT FALSE,
|
|
FOREIGN KEY("channel_id") REFERENCES "channel"("id") ON DELETE CASCADE,
|
|
FOREIGN KEY("user_id") REFERENCES "user"("id") ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS "message" (
|
|
"id" BIGSERIAL PRIMARY KEY,
|
|
"channel_id" INTEGER NOT NULL,
|
|
"author_id" INTEGER NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"system" BOOLEAN NOT NULL DEFAULT FALSE,
|
|
FOREIGN KEY("channel_id") REFERENCES "channel"("id") ON DELETE CASCADE,
|
|
FOREIGN KEY("author_id") REFERENCES "user"("id") ON DELETE
|
|
SET
|
|
NULL
|
|
);
|