Files
wanderer/lib/wanderer_app/api/user_transaction.ex

71 lines
1.3 KiB
Elixir

defmodule WandererApp.Api.UserTransaction do
@moduledoc false
use Ash.Resource,
domain: WandererApp.Api,
data_layer: AshPostgres.DataLayer
postgres do
repo(WandererApp.Repo)
table("user_transaction_v1")
end
code_interface do
define(:new, action: :new)
end
actions do
default_accept [
:journal_ref_id,
:user_id,
:date,
:amount,
:corporation_id
]
defaults [:read]
create :new do
accept [:journal_ref_id, :user_id, :date, :amount, :corporation_id]
primary?(true)
argument :user_id, :uuid, allow_nil?: false
change manage_relationship(:user_id, :user, on_lookup: :relate, on_no_match: nil)
end
end
attributes do
uuid_primary_key :id
attribute :journal_ref_id, :integer do
allow_nil? false
end
attribute :corporation_id, :integer do
allow_nil? false
end
attribute :amount, :float do
allow_nil? false
end
attribute :date, :utc_datetime do
allow_nil? true
end
attribute :reason, :string
create_timestamp(:inserted_at)
update_timestamp(:updated_at)
end
relationships do
belongs_to :user, WandererApp.Api.User do
primary_key? true
allow_nil? false
attribute_writable? true
end
end
end