- Add migrations 109-112: read_receipts, delivered_status, message_reactions, messages extra columns - Create ReadReceipt, DeliveredStatus, MessageReaction GORM models - Update Message model with EditedAt, Status, IsPinned, Metadata fields - Enrich ChatMessageRepository with cursor pagination, search, soft delete - Create ReadReceiptRepository, DeliveredStatusRepository, ReactionRepository - Create ChatPubSubService with Redis PubSub and in-memory fallback
10 lines
586 B
SQL
10 lines
586 B
SQL
-- Migration 110: Create delivered_status table (v0.502 CH1-01)
|
|
CREATE TABLE IF NOT EXISTS delivered_status (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
message_id UUID NOT NULL REFERENCES messages(id) ON DELETE CASCADE,
|
|
delivered_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
CONSTRAINT uq_delivered_status_user_message UNIQUE (user_id, message_id)
|
|
);
|
|
CREATE INDEX idx_delivered_status_message_id ON delivered_status(message_id);
|
|
CREATE INDEX idx_delivered_status_user_id ON delivered_status(user_id);
|