defmodule Localiser.Domain.Schema.Room do use Ecto.Schema import Ecto.Changeset alias Localiser.Domain.Schema.Floor alias Localiser.Domain.Schema.Sensor schema "rooms" do field :name, :string field :width, :float field :height, :float field :offset_x, :float field :offset_y, :float belongs_to :floor, Floor has_many :sensors, Sensor timestamps(type: :utc_datetime) end @doc false def changeset(room, attrs) do room |> cast(attrs, [:name, :floor_id, :width, :height, :offset_x, :offset_y]) |> validate_required([:name, :floor_id]) |> assoc_constraint(:floor) end end