content: {-# LANGUAGE QuasiQuotes #-}
  
  module Simplex.Chat.Store.SQLite.Migrations.M20240402_item_forwarded where
  
  import Database.SQLite.Simple (Query)
  import Database.SQLite.Simple.QQ (sql)
  
  m20240402_item_forwarded :: Query
  m20240402_item_forwarded =
    [sql|
  ALTER TABLE chat_items ADD COLUMN fwd_from_tag TEXT;
  ALTER TABLE chat_items ADD COLUMN fwd_from_chat_name TEXT;
  ALTER TABLE chat_items ADD COLUMN fwd_from_msg_dir INTEGER;
  ALTER TABLE chat_items ADD COLUMN fwd_from_contact_id INTEGER REFERENCES contacts ON DELETE SET NULL;
  ALTER TABLE chat_items ADD COLUMN fwd_from_group_id INTEGER REFERENCES groups ON DELETE SET NULL;
  ALTER TABLE chat_items ADD COLUMN fwd_from_chat_item_id INTEGER REFERENCES chat_items ON DELETE SET NULL;
  
  CREATE INDEX idx_chat_items_fwd_from_contact_id ON chat_items(fwd_from_contact_id);
  CREATE INDEX idx_chat_items_fwd_from_group_id ON chat_items(fwd_from_group_id);
  CREATE INDEX idx_chat_items_fwd_from_chat_item_id ON chat_items(fwd_from_chat_item_id);
  |]
  
  down_m20240402_item_forwarded :: Query
  down_m20240402_item_forwarded =
    [sql|
  DROP INDEX idx_chat_items_fwd_from_contact_id;
  DROP INDEX idx_chat_items_fwd_from_group_id;
  DROP INDEX idx_chat_items_fwd_from_chat_item_id;
  
  ALTER TABLE chat_items DROP COLUMN fwd_from_tag;
  ALTER TABLE chat_items DROP COLUMN fwd_from_chat_name;
  ALTER TABLE chat_items DROP COLUMN fwd_from_msg_dir;
  ALTER TABLE chat_items DROP COLUMN fwd_from_contact_id;
  ALTER TABLE chat_items DROP COLUMN fwd_from_group_id;
  ALTER TABLE chat_items DROP COLUMN fwd_from_chat_item_id;
  |]
  