priv/repo/migrations/20260505183000_harden_relyra_certificate_lifecycle_invariants.exs

defmodule Relyra.Repo.Migrations.HardenRelyraCertificateLifecycleInvariants do
  use Ecto.Migration

  def up do
    alter table(:relyra_connections) do
      add :lock_version, :integer, null: false, default: 1
    end

    create index(
             :relyra_connection_certificates,
             [:connection_record_id, :lifecycle_state],
             where: "role = 'signing' AND lifecycle_state = 'active'",
             name: :relyra_certificates_active_signing_idx
           )
  end

  def down do
    drop index(:relyra_connection_certificates, [:connection_record_id, :lifecycle_state],
           name: :relyra_certificates_active_signing_idx
         )

    alter table(:relyra_connections) do
      remove :lock_version
    end
  end
end