56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
from tortoise import BaseDBAsyncClient
|
|
|
|
|
|
async def upgrade(db: BaseDBAsyncClient) -> str:
|
|
return """
|
|
CREATE TABLE IF NOT EXISTS "channel" (
|
|
"id" BIGSERIAL NOT NULL PRIMARY KEY,
|
|
"server_id" BIGINT NOT NULL,
|
|
"is_enabled" BOOL NOT NULL DEFAULT True
|
|
);
|
|
CREATE INDEX IF NOT EXISTS "idx_channel_server__d5ded1" ON "channel" ("server_id");
|
|
CREATE INDEX "idx_channel_server__d940e4" ON "channel" ("server_id", "is_enabled");
|
|
COMMENT ON TABLE "channel" IS 'A channel.';
|
|
CREATE TABLE IF NOT EXISTS "user" (
|
|
"id" BIGSERIAL NOT NULL PRIMARY KEY,
|
|
"is_masked" BOOL NOT NULL DEFAULT False,
|
|
"is_moderator" BOOL NOT NULL DEFAULT False,
|
|
"is_supporter_until" TIMESTAMPTZ
|
|
);
|
|
COMMENT ON TABLE "user" IS 'A user.';
|
|
CREATE TABLE IF NOT EXISTS "report" (
|
|
"id" SERIAL NOT NULL PRIMARY KEY,
|
|
"message_id" BIGINT NOT NULL UNIQUE,
|
|
"message_content" TEXT NOT NULL,
|
|
"channel_id" BIGINT NOT NULL,
|
|
"user_id" BIGINT NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"resolved" BOOL NOT NULL DEFAULT False,
|
|
"resolved_at" TIMESTAMPTZ,
|
|
"resolved_by_id" BIGINT NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
|
|
);
|
|
CREATE INDEX IF NOT EXISTS "idx_report_resolve_32f036" ON "report" ("resolved");
|
|
COMMENT ON TABLE "report" IS 'A report of a message.';
|
|
CREATE TABLE IF NOT EXISTS "ban" (
|
|
"id" SERIAL NOT NULL PRIMARY KEY,
|
|
"user_id" BIGINT NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"expires_at" TIMESTAMPTZ,
|
|
"created_by_id" BIGINT NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
|
|
"expired_by_id" BIGINT REFERENCES "user" ("id") ON DELETE CASCADE,
|
|
"report_id" INT REFERENCES "report" ("id") ON DELETE CASCADE
|
|
);
|
|
CREATE INDEX "idx_ban_user_id_37a9cf" ON "ban" ("user_id", "expires_at");
|
|
COMMENT ON TABLE "ban" IS 'A ban.';
|
|
CREATE TABLE IF NOT EXISTS "aerich" (
|
|
"id" SERIAL NOT NULL PRIMARY KEY,
|
|
"version" VARCHAR(255) NOT NULL,
|
|
"app" VARCHAR(100) NOT NULL,
|
|
"content" JSONB NOT NULL
|
|
);"""
|
|
|
|
|
|
async def downgrade(db: BaseDBAsyncClient) -> str:
|
|
return """
|
|
"""
|