create :create do
primary? true
accept [:price, :payment_type]
argument :property_id, :uuid, allow_nil?: false
change fn changeset, %{actor: actor} ->
Ash.Changeset.force_change_attribute(changeset, :offeror_id, actor.id)
end
change set_attribute(:property_id, arg(:property_id))
end
create :place_offer do
accept [:price, :payment_type]
argument :property_id, :uuid, allow_nil?: false
manual fn changeset, %{actor: actor} ->
%{
attributes: %{price: price, payment_type: payment_type},
arguments: %{property_id: property_id}
} = changeset
with %Ash.Flow.Result{valid?: true, result: result} <-
Flows.MakeOffer.run!(price, payment_type, property_id, actor: actor) do
{:ok, result}
else
{:error, error} ->
{:error, error}
end
end
end
create :create do
primary? true
accept [:price, :payment_type]
argument :property_id, :uuid, allow_nil?: false
change fn changeset, %{actor: actor} ->
Ash.Changeset.force_change_attribute(changeset, :offeror_id, actor.id)
end
change set_attribute(:property_id, arg(:property_id))
end
create :place_offer do
accept [:price, :payment_type]
argument :property_id, :uuid, allow_nil?: false
manual fn changeset, %{actor: actor} ->
%{
attributes: %{price: price, payment_type: payment_type},
arguments: %{property_id: property_id}
} = changeset
with %Ash.Flow.Result{valid?: true, result: result} <-
Flows.MakeOffer.run!(price, payment_type, property_id, actor: actor) do
{:ok, result}
else
{:error, error} ->
{:error, error}
end
end
end