-- Could not auto-generate a down migration. -- Please write an appropriate down migration for the SQL below: -- CREATE OR REPLACE FUNCTION public.archive_alert(p_id integer) -- RETURNS void -- LANGUAGE plpgsql -- AS $function$ -- DECLARE -- v_archived_alert_id INTEGER; -- BEGIN -- -- Insert the selected alert into the archived_alert table -- INSERT INTO archived_alert ( -- "alert_id", -- "user_id", -- "phone_number_id", -- "device_id", -- "location", -- "alert_tag", -- "created_at", -- "call_emergency", -- "notify_around", -- "notify_relatives", -- "level", -- "subject", -- "accuracy", -- "altitude", -- "altitude_accuracy", -- "heading", -- "speed", -- "radius", -- "address", -- "what3words", -- "nearest_place", -- "uuid", -- "code", -- "notified_count", -- "closed_at", -- "keep_open_at", -- "updated_at", -- "suggest_close_sent", -- "suggest_keep_open_sent", -- "closed_by" -- ) -- SELECT -- "id", -- "user_id", -- "phone_number_id", -- "device_id", -- "location", -- "alert_tag", -- "created_at", -- "call_emergency", -- "notify_around", -- "notify_relatives", -- "level", -- "subject", -- "accuracy", -- "altitude", -- "altitude_accuracy", -- "heading", -- "speed", -- "radius", -- "address", -- "what3words", -- "nearest_place", -- "uuid", -- "code", -- "notified_count", -- "closed_at", -- "keep_open_at", -- "updated_at", -- "suggest_close_sent", -- "suggest_keep_open_sent", -- "closed_by" -- FROM "alert" -- WHERE "id" = p_id -- RETURNING "id" INTO v_archived_alert_id; -- -- -- Insert related alerted records into the archived_alerted table -- INSERT INTO -- "alerted" ( -- "archived_alert_id", -- "user_id", -- "opened_once", -- "created_at", -- "near_location", -- "opened", -- "device_id", -- "initial_location", -- "notification_sent", -- "notification_sent_at", -- "initial_distance", -- "geomatch_method", -- "reason", -- "updated_at", -- "coming_help", -- "relative_user_id" -- ) -- SELECT -- v_archived_alert_id, -- "user_id", -- "opened_once", -- "created_at", -- "near_location", -- "opened", -- "device_id", -- "initial_location", -- "notification_sent", -- "notification_sent_at", -- "initial_distance", -- "geomatch_method", -- "reason", -- "updated_at", -- "coming_help", -- "relative_user_id" -- FROM "alerting" -- WHERE "alert_id" = p_id; -- -- -- Insert related messages into the archived_message table -- INSERT INTO archived_message ( -- "archived_alert_id", -- "user_id", -- "content", -- "created_at", -- "updated_at" -- -- Add other fields here except "id" -- ) -- SELECT -- v_archived_alert_id, -- "user_id", -- "content", -- "created_at", -- "updated_at" -- -- Add other fields here -- FROM "message" -- WHERE "alert_id" = p_id; -- -- -- Delete the messages from the message table -- DELETE FROM "message" -- WHERE "alert_id" = p_id; -- -- -- Delete the alert from the alert table -- DELETE FROM "alert" -- WHERE id = p_id; -- -- END; -- $function$;