defmodule Aprsme.Repo.Migrations.DropPacketsNotifyTrigger do
  use Ecto.Migration

  @moduledoc """
  Removes the per-row `packets_notify_insert` trigger. Packet broadcasts are
  now produced directly from `Aprsme.PacketConsumer` after batch insert,
  eliminating DB-side JSON serialization and LISTEN/NOTIFY overhead.

  The `aprs_events` channel (for bad packets) is untouched.
  """

  def up do
    execute("SET LOCAL statement_timeout = '0'")

    execute("DROP TRIGGER IF EXISTS packets_notify_insert ON packets")
    execute("DROP FUNCTION IF EXISTS notify_packets_insert() CASCADE")
  end

  def down do
    # Recreating the function/trigger here would require duplicating the full
    # JSON payload definition from prior migrations. Leaving as a no-op; if a
    # rollback is truly needed, restore from the prior migrations that defined
    # it (e.g. 20250728230000_add_missing_fields_to_packet_notify.exs).
    :ok
  end
end
