27 lines
1.1 KiB
SQL
27 lines
1.1 KiB
SQL
-- Migration to support DMs and Message Editing
|
|
ALTER TABLE messages ADD COLUMN updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP;
|
|
|
|
-- Support for DMs in channels table
|
|
ALTER TABLE channels MODIFY COLUMN server_id INT NULL;
|
|
ALTER TABLE channels MODIFY COLUMN type ENUM('text', 'voice', 'dm') DEFAULT 'text';
|
|
|
|
-- Track members in channels (especially for DMs)
|
|
CREATE TABLE IF NOT EXISTS channel_members (
|
|
channel_id INT NOT NULL,
|
|
user_id INT NOT NULL,
|
|
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (channel_id, user_id),
|
|
FOREIGN KEY (channel_id) REFERENCES channels(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|
|
|
|
-- Notifications: Track last read message per channel per user
|
|
CREATE TABLE IF NOT EXISTS channel_last_read (
|
|
channel_id INT NOT NULL,
|
|
user_id INT NOT NULL,
|
|
last_read_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (channel_id, user_id),
|
|
FOREIGN KEY (channel_id) REFERENCES channels(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
);
|