35 lines
594 B
Elixir
35 lines
594 B
Elixir
defmodule Localiser.Domain.Floors do
|
|
import Ecto.Query
|
|
|
|
alias Localiser.Repo
|
|
alias Localiser.Domain.Schema.Floor
|
|
|
|
def list_floors do
|
|
Repo.all(Floor)
|
|
end
|
|
|
|
def get_floor!(id), do: Repo.get!(Floor, id)
|
|
|
|
def create_floor(attrs) do
|
|
%Floor{}
|
|
|> Floor.changeset(attrs)
|
|
|> Repo.insert()
|
|
end
|
|
|
|
def update_floor(%Floor{} = floor, attrs) do
|
|
floor
|
|
|> Floor.changeset(attrs)
|
|
|> Repo.update()
|
|
end
|
|
|
|
def delete_floor(%Floor{} = floor) do
|
|
Repo.delete(floor)
|
|
end
|
|
|
|
def list_floors_with_rooms do
|
|
Floor
|
|
|> preload(:rooms)
|
|
|> Repo.all()
|
|
end
|
|
end
|