Update init.sql

This commit is contained in:
2025-06-06 10:09:23 +03:30
committed by GitHub
parent 7991457bc8
commit c930d663dc
+13 -21
View File
@@ -31,61 +31,53 @@ CREATE TABLE IF NOT EXISTS messages (
send_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, send_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20), -- SEND,DELIVERED,READ status VARCHAR(20), -- SEND,DELIVERED,READ
reply_to_id UUID REFERENCES messages(message_id) ON DELETE SET NULL, --(Bouns) reply_to_id UUID REFERENCES messages(message_id) ON DELETE SET NULL, --(Bouns)
is_edited BOOLEAN, --(Bonus) is_edited BOOLEAN DEFAULT FALSE, --(Bonus)
original_message_id UUID REFERENCES message_id, --(Bonus) original_message_id UUID REFERENCES messages(message_id)
forwarded_by UUID REFERENCES users(internal_uuid), --(Bouns) ON DELETE SET NULL, --(Bonus)
forwarded_from UUID REFERENCES users(internal_uuid) --(Bouns) forwarded_by UUID REFERENCES users(internal_uuid) ON DELETE SET NULL, --(Bouns)
forwarded_from UUID REFERENCES users(internal_uuid) ON DELETE SET NULL --(Bouns)
); );
CREATE TABLE IF NOT EXISTS private_chat ( CREATE TABLE IF NOT EXISTS private_chat (
chat_id UUID PRIMARY KEY, chat_id UUID PRIMARY KEY,
user1-id UUID REFERENCES users(internal_uuid) ON DELETE SET NULL, user1_id UUID REFERENCES users(internal_uuid) ON DELETE SET NULL,
user2_id UUID REFERENCES users(internal_uuid) ON DELETE SET NULL, user2_id UUID REFERENCES users(internal_uuid) ON DELETE SET NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT unique_users UNIQUE (user1_id, user2_id) CONSTRAINT unique_users UNIQUE (user1_id, user2_id)
); );
CREATE TABLE IF NOT EXISTS groups ( CREATE TABLE IF NOT EXISTS groups (
internal_uuid UUID PRIMARY KEY,
group_id VARCHAR(70) UNIQUE, group_id VARCHAR(70) UNIQUE,
internal_uuid UUID,
group_name VARCHAR(100), group_name VARCHAR(100),
creator_id UUID REFERENCES users(internal_uuid), creator_id UUID REFERENCES users(internal_uuid),
image_url TEXT, image_url TEXT,
description TEXT, description TEXT
PRIMARY KEY (group_id, internal_uuid)
); );
CREATE TABLE IF NOT EXISTS group_members ( CREATE TABLE IF NOT EXISTS group_members (
group_id UUID REFERENCES groups(group_id), group_id UUID REFERENCES groups(internal_uuid) ON DELETE CASCADE,
user_id UUID REFERENCES users(internal_uuid), user_id UUID REFERENCES users(internal_uuid),
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
role VARCHAR(20) DEFAULT 'member', -- member/admin/owner role VARCHAR(20) DEFAULT 'member', -- member/admin/owner
PRIMARY KEY (group_id, user_id) PRIMARY KEY (group_id, user_id)
); );
CREATE TABLE IF NOT EXISTS channels ( CREATE TABLE IF NOT EXISTS channels (
channel_id VARCHAR(70) UNIQUE, channel_id VARCHAR(70) UNIQUE,
internal_uuid UUID, internal_uuid UUID PRIMARY KEY,,
channel_name VARCHAR(100), channel_name VARCHAR(100),
creator_id UUID REFERENCES users(internal_uuid), creator_id UUID REFERENCES users(internal_uuid),
image_url TEXT, image_url TEXT,
description TEXT, description TEXT
PRIMARY KEY (channel_id, internal_uuid)
); );
CREATE TABLE IF NOT EXISTS channel_subscribers ( CREATE TABLE IF NOT EXISTS channel_subscribers (
channel_id UUID REFERENCES channels(channel_id), channel_id UUID REFERENCES channels(internal_uuid) ON DELETE CASCADE,
user_id UUID REFERENCES users(internal_uuid), user_id UUID REFERENCES users(internal_uuid),
subscribed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, subscribed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (channel_id, user_id) PRIMARY KEY (channel_id, user_id)
); );
--(Bouns) --(Bouns)
CREATE TABLE IF NOT EXISTS channel_admins ( CREATE TABLE IF NOT EXISTS channel_admins (
channel_id UUID REFERENCES channels(channel_id), channel_id UUID REFERENCES channels(channel_id),