Update init.sql
This commit is contained in:
+13
-21
@@ -31,61 +31,53 @@ CREATE TABLE IF NOT EXISTS messages (
|
||||
send_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
status VARCHAR(20), -- SEND,DELIVERED,READ
|
||||
reply_to_id UUID REFERENCES messages(message_id) ON DELETE SET NULL, --(Bouns)
|
||||
is_edited BOOLEAN, --(Bonus)
|
||||
original_message_id UUID REFERENCES message_id, --(Bonus)
|
||||
forwarded_by UUID REFERENCES users(internal_uuid), --(Bouns)
|
||||
forwarded_from UUID REFERENCES users(internal_uuid) --(Bouns)
|
||||
is_edited BOOLEAN DEFAULT FALSE, --(Bonus)
|
||||
original_message_id UUID REFERENCES messages(message_id)
|
||||
ON DELETE SET NULL, --(Bonus)
|
||||
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 (
|
||||
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,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT unique_users UNIQUE (user1_id, user2_id)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS groups (
|
||||
internal_uuid UUID PRIMARY KEY,
|
||||
group_id VARCHAR(70) UNIQUE,
|
||||
internal_uuid UUID,
|
||||
group_name VARCHAR(100),
|
||||
creator_id UUID REFERENCES users(internal_uuid),
|
||||
image_url TEXT,
|
||||
description TEXT,
|
||||
PRIMARY KEY (group_id, internal_uuid)
|
||||
description TEXT
|
||||
);
|
||||
|
||||
|
||||
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),
|
||||
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
role VARCHAR(20) DEFAULT 'member', -- member/admin/owner
|
||||
PRIMARY KEY (group_id, user_id)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS channels (
|
||||
channel_id VARCHAR(70) UNIQUE,
|
||||
internal_uuid UUID,
|
||||
internal_uuid UUID PRIMARY KEY,,
|
||||
channel_name VARCHAR(100),
|
||||
creator_id UUID REFERENCES users(internal_uuid),
|
||||
image_url TEXT,
|
||||
description TEXT,
|
||||
PRIMARY KEY (channel_id, internal_uuid)
|
||||
description TEXT
|
||||
|
||||
);
|
||||
|
||||
|
||||
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),
|
||||
subscribed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (channel_id, user_id)
|
||||
);
|
||||
|
||||
|
||||
--(Bouns)
|
||||
CREATE TABLE IF NOT EXISTS channel_admins (
|
||||
channel_id UUID REFERENCES channels(channel_id),
|
||||
|
||||
Reference in New Issue
Block a user