Files
wanderer/lib/wanderer_app/api/map_solar_system_jumps.ex
Dmitry Popov 083e300ff5
Some checks failed
Build Test / 🚀 Deploy to test env (fly.io) (push) Has been cancelled
Build Test / 🛠 Build (1.17, 18.x, 27) (push) Has been cancelled
Build Develop / 🛠 Build (1.17, 18.x, 27) (push) Has been cancelled
🧪 Test Suite / Test Suite (push) Has been cancelled
Build Develop / 🛠 Build Docker Images (linux/amd64) (push) Has been cancelled
Build Develop / 🛠 Build Docker Images (linux/arm64) (push) Has been cancelled
Build Develop / merge (push) Has been cancelled
Build Develop / 🏷 Notify about develop release (push) Has been cancelled
chore: updated deps, fixed signatures and comments related issues
2025-11-21 14:23:44 +01:00

75 lines
1.5 KiB
Elixir

defmodule WandererApp.Api.MapSolarSystemJumps do
@moduledoc false
use Ash.Resource,
domain: WandererApp.Api,
data_layer: AshPostgres.DataLayer
postgres do
repo(WandererApp.Repo)
table("map_solar_system_jumps_v1")
end
code_interface do
define(:read,
action: :read
)
define(:find, action: :find)
end
actions do
default_accept [
:from_solar_system_id,
:to_solar_system_id
]
defaults [:read, :destroy]
update :update do
require_atomic? false
end
create :create do
primary? true
upsert? true
upsert_identity :solar_system_from_to
upsert_fields [
:from_solar_system_id,
:to_solar_system_id
]
end
read :find do
argument(:before_system_id, :integer, allow_nil?: false)
argument(:current_system_id, :integer, allow_nil?: false)
filter(
expr(
(from_solar_system_id == ^arg(:before_system_id) and
to_solar_system_id == ^arg(:current_system_id)) or
(to_solar_system_id == ^arg(:before_system_id) and
from_solar_system_id == ^arg(:current_system_id))
)
)
end
end
attributes do
uuid_primary_key :id
attribute :from_solar_system_id, :integer
attribute :to_solar_system_id, :integer
create_timestamp(:inserted_at)
update_timestamp(:updated_at)
end
identities do
identity :solar_system_from_to, [:from_solar_system_id, :to_solar_system_id] do
pre_check?(true)
end
end
end