create table if not exists room_message ( id uuid not null primary key, seq bigint not null, room uuid not null, sender_type varchar(255) not null, sender_id uuid, thread uuid, content text not null, content_type varchar(255) not null, edited_at timestamp with time zone, send_at timestamp with time zone not null, revoked timestamp with time zone, revoked_by uuid, in_reply_to uuid, content_tsv tsvector, model_id uuid, thinking_content text ); create index if not exists idx_room_message_room_seq on room_message (room, seq); create index if not exists idx_room_message_thread on room_message (thread); create index if not exists idx_room_message_send_at on room_message (send_at); create index if not exists idx_room_message_content_tsv on room_message using gin (content_tsv); create index if not exists idx_room_message_model_id on room_message (model_id) where (model_id IS NOT NULL);