defmodule Mv.Membership.JoinRequest.Changes.ConfirmRequest do @moduledoc """ Sets the join request to submitted (confirmation link clicked). Used by the confirm action after the user clicks the confirmation link. Token hash is kept so that a second click (idempotent) can still find the record and return success without changing it. """ use Ash.Resource.Change @spec change(Ash.Changeset.t(), keyword(), Ash.Resource.Change.context()) :: Ash.Changeset.t() def change(changeset, _opts, _context) do changeset |> Ash.Changeset.force_change_attribute(:status, :submitted) |> Ash.Changeset.force_change_attribute(:submitted_at, DateTime.utc_now()) end end