{-# LANGUAGE QuasiQuotes #-}

module Simplex.Chat.Store.SQLite.Migrations.M20230505_chat_item_versions where

import Database.SQLite.Simple (Query)
import Database.SQLite.Simple.QQ (sql)

m20230505_chat_item_versions :: Query
m20230505_chat_item_versions :: Query
m20230505_chat_item_versions =
  [sql|
CREATE TABLE chat_item_versions ( -- contains versions only for edited chat items, including current version
  chat_item_version_id INTEGER PRIMARY KEY AUTOINCREMENT,
  chat_item_id INTEGER NOT NULL REFERENCES chat_items ON DELETE CASCADE,
  msg_content TEXT NOT NULL,
  item_version_ts TEXT NOT NULL,
  created_at TEXT NOT NULL DEFAULT(datetime('now')),
  updated_at TEXT NOT NULL DEFAULT(datetime('now'))
);

CREATE INDEX idx_chat_item_versions_chat_item_id ON chat_item_versions(chat_item_id);
|]

down_m20230505_chat_item_versions :: Query
down_m20230505_chat_item_versions :: Query
down_m20230505_chat_item_versions =
  [sql|
DROP INDEX idx_chat_item_versions_chat_item_id;

DROP TABLE chat_item_versions;
|]