content: {-# LANGUAGE QuasiQuotes #-}
  
  module Simplex.Chat.Store.SQLite.Migrations.M20220304_msg_quotes where
  
  import Database.SQLite.Simple (Query)
  import Database.SQLite.Simple.QQ (sql)
  
  m20220304_msg_quotes :: Query
  m20220304_msg_quotes =
    [sql|
      ALTER TABLE messages ADD COLUMN shared_msg_id BLOB;
      ALTER TABLE messages ADD COLUMN shared_msg_id_user INTEGER; -- 1 for user messages, NULL for received messages
      CREATE INDEX idx_messages_shared_msg_id ON messages (shared_msg_id);
      CREATE UNIQUE INDEX idx_messages_direct_shared_msg_id ON messages (connection_id, shared_msg_id_user, shared_msg_id);
      CREATE UNIQUE INDEX idx_messages_group_shared_msg_id ON messages (group_id, shared_msg_id_user, shared_msg_id);
  
      ALTER TABLE chat_items ADD COLUMN shared_msg_id BLOB;
      ALTER TABLE chat_items ADD COLUMN quoted_shared_msg_id BLOB; -- from MessageRef in QuotedMsg
      ALTER TABLE chat_items ADD COLUMN quoted_sent_at TEXT; -- from MessageRef in QuotedMsg
      ALTER TABLE chat_items ADD COLUMN quoted_content TEXT; -- from MsgContent in QuotedMsg (JSON)
      ALTER TABLE chat_items ADD COLUMN quoted_sent INTEGER; -- from MessageRef, 1 for sent, 0 for received, NULL for messages without quote
      ALTER TABLE chat_items ADD COLUMN quoted_member_id BLOB; -- from MessageRef
      CREATE INDEX idx_chat_items_shared_msg_id ON chat_items (shared_msg_id);
  |]
  