{-# LANGUAGE QuasiQuotes #-}

module Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240124_file_redirect where

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

m20240124_file_redirect :: Query
m20240124_file_redirect :: Query
m20240124_file_redirect =
    [sql|
ALTER TABLE snd_files ADD COLUMN redirect_size INTEGER;
ALTER TABLE snd_files ADD COLUMN redirect_digest BLOB;

ALTER TABLE rcv_files ADD COLUMN redirect_id INTEGER REFERENCES rcv_files ON DELETE SET NULL;
ALTER TABLE rcv_files ADD COLUMN redirect_entity_id BLOB;
ALTER TABLE rcv_files ADD COLUMN redirect_size INTEGER;
ALTER TABLE rcv_files ADD COLUMN redirect_digest BLOB;

CREATE INDEX idx_rcv_files_redirect_id on rcv_files(redirect_id);
|]

down_m20240124_file_redirect :: Query
down_m20240124_file_redirect :: Query
down_m20240124_file_redirect =
    [sql|
DROP INDEX idx_rcv_files_redirect_id;

ALTER TABLE snd_files DROP COLUMN redirect_size;
ALTER TABLE snd_files DROP COLUMN redirect_digest;

ALTER TABLE rcv_files DROP COLUMN redirect_id;
ALTER TABLE rcv_files DROP COLUMN redirect_entity_id;
ALTER TABLE rcv_files DROP COLUMN redirect_size;
ALTER TABLE rcv_files DROP COLUMN redirect_digest;
|]