-- 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",
--       "alerting_relative_count",
--       "alerting_around_count",
--       "alerting_connect_count",
--       "acknowledged_relative_count",
--       "acknowledged_around_count",
--       "acknowledged_connect_count"
--
--     )
--     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",
--       "alerting_relative_count",
--       "alerting_around_count",
--       "alerting_connect_count",
--       "acknowledged_relative_count",
--       "acknowledged_around_count",
--       "acknowledged_connect_count"
--     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",
--         "device_id",
--         "content_type",
--         "text",
--         "audio_file_uuid",
--         "location",
--         "created_at"
--     )
--     SELECT
--         v_archived_alert_id,
--         "user_id",
--         "device_id",
--         "content_type",
--         "text",
--         "audio_file_uuid",
--         "location",
--         "created_at"
--     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$;
