Added users support, made CRUD for users. Updated receipts feature
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
CREATE TABLE families
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
owner_id BIGINT NOT NULL REFERENCES users (id),
|
||||
telegram_chat_id BIGINT NOT NULL,
|
||||
telegram_chat_name TEXT,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_families_owner_id ON families (owner_id);
|
||||
|
||||
CREATE UNIQUE INDEX idx_families_chat_id ON families (telegram_chat_id);
|
||||
@@ -1 +0,0 @@
|
||||
DROP TABLE IF EXISTS telegram_chats;
|
||||
@@ -1,9 +0,0 @@
|
||||
CREATE TABLE telegram_chats
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
telegram_id BIGINT UNIQUE NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_telegram_chats_telegram_id ON telegram_chats (telegram_id);
|
||||
@@ -1,12 +0,0 @@
|
||||
CREATE TABLE families
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
owner_id BIGINT NOT NULL REFERENCES users (id),
|
||||
telegram_chat_id BIGINT NOT NULL UNIQUE REFERENCES telegram_chats (id),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_families_owner_id ON families (owner_id);
|
||||
|
||||
CREATE UNIQUE INDEX idx_families_chat_id ON families (telegram_chat_id);
|
||||
@@ -0,0 +1,19 @@
|
||||
CREATE TABLE family_threads
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
family_id BIGINT NOT NULL REFERENCES families (id) ON DELETE CASCADE,
|
||||
type TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
telegram_topic_id BIGINT NOT NULL,
|
||||
is_system BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
created_by BIGINT NOT NULL REFERENCES users (id),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
|
||||
UNIQUE (family_id, telegram_topic_id)
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX idx_unique_system_threads ON family_threads (family_id, type) WHERE is_system = TRUE;
|
||||
|
||||
CREATE INDEX idx_threads_family_id ON family_threads (family_id);
|
||||
|
||||
CREATE INDEX idx_threads_family_type ON family_threads (family_id, type);
|
||||
@@ -1,27 +0,0 @@
|
||||
CREATE TYPE thread_type AS ENUM (
|
||||
'expenses',
|
||||
'movies',
|
||||
'schedule',
|
||||
'recipes',
|
||||
'custom'
|
||||
);
|
||||
|
||||
CREATE TABLE threads
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
family_id BIGINT NOT NULL REFERENCES families (id) ON DELETE CASCADE,
|
||||
type thread_type NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
telegram_topic_id BIGINT NOT NULL,
|
||||
is_system BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
created_by BIGINT NOT NULL REFERENCES users (id),
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
|
||||
UNIQUE (family_id, telegram_topic_id)
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX idx_unique_system_threads ON threads (family_id, type) WHERE is_system = TRUE;
|
||||
|
||||
CREATE INDEX idx_threads_family_id ON threads (family_id);
|
||||
|
||||
CREATE INDEX idx_threads_family_type ON threads(family_id, type);
|
||||
Reference in New Issue
Block a user