|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; |
|
|
|
|
|
CREATE TABLE "config" ( |
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(), |
|
"invitation_code" VARCHAR, |
|
"disable_signup" BOOLEAN NOT NULL DEFAULT false, |
|
"allow_server_storage_use" BOOLEAN NOT NULL DEFAULT false, |
|
|
|
CONSTRAINT "pk_af2ddc24176f1572cbdd4b45992" PRIMARY KEY ("id") |
|
); |
|
|
|
|
|
CREATE TABLE "files" ( |
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(), |
|
"name" VARCHAR NOT NULL, |
|
"type" VARCHAR, |
|
"message_id" VARCHAR, |
|
"mime_type" VARCHAR, |
|
"size" BIGINT, |
|
"uploaded_at" TIMESTAMPTZ(6), |
|
"upload_progress" DOUBLE PRECISION, |
|
"user_id" UUID NOT NULL, |
|
"parent_id" UUID, |
|
"deleted_at" TIMESTAMPTZ(6), |
|
"sharing_options" VARCHAR[], |
|
"signed_key" VARCHAR, |
|
"file_id" VARCHAR, |
|
"link_id" UUID, |
|
"forward_info" VARCHAR, |
|
|
|
CONSTRAINT "PK_6c16b9093a142e0e7613b04a3d9" PRIMARY KEY ("id") |
|
); |
|
|
|
|
|
CREATE TABLE "rate_limits" ( |
|
"key" VARCHAR(255) NOT NULL, |
|
"points" INTEGER NOT NULL DEFAULT 0, |
|
"expire" BIGINT, |
|
|
|
CONSTRAINT "rate_limits_pkey" PRIMARY KEY ("key") |
|
); |
|
|
|
|
|
CREATE TABLE "usages" ( |
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"key" VARCHAR NOT NULL, |
|
"usage" BIGINT NOT NULL, |
|
"expire" TIMESTAMPTZ(6) NOT NULL, |
|
|
|
CONSTRAINT "PK_7d8e95b6dd4c0e87cad4972da13" PRIMARY KEY ("key") |
|
); |
|
|
|
|
|
CREATE TABLE "users" ( |
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(), |
|
"username" VARCHAR NOT NULL, |
|
"name" VARCHAR, |
|
"email" VARCHAR, |
|
"tg_id" VARCHAR, |
|
"plan" VARCHAR, |
|
"settings" JSONB, |
|
"role" VARCHAR, |
|
|
|
CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id") |
|
); |
|
|
|
|
|
CREATE TABLE "waitings" ( |
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|
"id" UUID NOT NULL DEFAULT uuid_generate_v4(), |
|
"email" VARCHAR NOT NULL, |
|
|
|
CONSTRAINT "PK_f0cfe98441cf0fb92db66ae71c4" PRIMARY KEY ("id") |
|
); |
|
|
|
|
|
CREATE INDEX "files_link_id_idx" ON "files"("link_id"); |
|
|
|
|
|
CREATE INDEX "files_message_id_idx" ON "files"("message_id"); |
|
|
|
|
|
CREATE INDEX "files_parent_id_idx" ON "files"("parent_id"); |
|
|
|
|
|
CREATE INDEX "files_user_id_idx" ON "files"("user_id"); |
|
|
|
|
|
CREATE INDEX "tg_id" ON "users"("tg_id"); |
|
|
|
|
|
ALTER TABLE "files" ADD CONSTRAINT "files_links_fkey" FOREIGN KEY ("link_id") REFERENCES "files"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
|
|
|
|
|
ALTER TABLE "files" ADD CONSTRAINT "files_files_fkey" FOREIGN KEY ("parent_id") REFERENCES "files"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
|
|
|
|
|
ALTER TABLE "files" ADD CONSTRAINT "files_users_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
|
|