defmodule Marketplace.Markets.Property.Offer.Actions.AcceptOffer.Changes.ChangePropertyToPending do
@moduledoc false
alias Marketplace.Markets.Property
use Ash.Resource.Change
@impl true
def change(changeset, _, _) do
Ash.Changeset.before_action(
changeset,
fn changeset ->
property_id = Ash.Changeset.get_data(changeset, :property_id)
change_property_to_pending!(property_id)
changeset
end,
append?: true
)
end
defp change_property_to_pending!(property_id) do
%{id: property_id} |> Property.get_any!() |> Property.update!(%{status: :pending})
end
end
defmodule Marketplace.Markets.Property.Offer.Actions.AcceptOffer.Changes.ChangePropertyToPending do
@moduledoc false
alias Marketplace.Markets.Property
use Ash.Resource.Change
@impl true
def change(changeset, _, _) do
Ash.Changeset.before_action(
changeset,
fn changeset ->
property_id = Ash.Changeset.get_data(changeset, :property_id)
change_property_to_pending!(property_id)
changeset
end,
append?: true
)
end
defp change_property_to_pending!(property_id) do
%{id: property_id} |> Property.get_any!() |> Property.update!(%{status: :pending})
end
end