From 75fc962c9a2dde39630f6265cb3522e8b165afe1 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Fri, 1 Mar 2024 01:17:48 +0200 Subject: [PATCH] make first migration to implement database --- migrations/1_init.sql | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 migrations/1_init.sql diff --git a/migrations/1_init.sql b/migrations/1_init.sql new file mode 100644 index 0000000..76c8aaa --- /dev/null +++ b/migrations/1_init.sql @@ -0,0 +1,44 @@ +CREATE TABLE "user" +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + tg_id INTEGER NOT NULL UNIQUE, + can_download INTEGER NOT NULL, + is_admin INTEGER NOT NULL +); + +CREATE TABLE "chat" +( + tg_id INTEGER PRIMARY KEY, + can_download INTEGER NOT NULL +); + +CREATE TABLE "link" +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + domain TEXT NOT NULL UNIQUE, + path TEXT, + download_allowed INTEGER NOT NULL, + auto_download INTEGER NOT NULL +); + +CREATE INDEX idx_link_domain + ON "link"(domain); + +CREATE TABLE "request" +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + requested_by INTEGER NOT NULL UNIQUE, + approved_by INTEGER UNIQUE, + message TEXT, + is_approved INTEGER NOT NULL, + + FOREIGN KEY(requested_by) REFERENCES "user"(id), + FOREIGN KEY(approved_by) REFERENCES "user"(id) +); + +CREATE TRIGGER "approve" +AFTER UPDATE OF is_approved ON "request" +WHEN new.is_approved = 1 +BEGIN + UPDATE user SET can_download = 1 WHERE user.id = new.requested_by; +END; \ No newline at end of file