Files
localiserd/lib/localiser/domain/schema/sensor.ex
T

32 lines
812 B
Elixir

defmodule Localiser.Domain.Schema.Sensor do
use Ecto.Schema
import Ecto.Changeset
alias Localiser.Domain.Schema.Room
alias Localiser.Domain.Schema.SensorCalibration
schema "sensors" do
field :sensor_id, :string
field :confirmed, :boolean, default: false
field :firmware_version, :string
field :x, :float
field :y, :float
field :floor_x, :float, virtual: true
field :floor_y, :float, virtual: true
belongs_to :room, Room
has_many :calibrations, SensorCalibration
timestamps(type: :utc_datetime)
end
@doc false
def changeset(sensor, attrs) do
sensor
|> cast(attrs, [:sensor_id, :confirmed, :firmware_version, :room_id, :x, :y])
|> validate_required([:sensor_id])
|> unique_constraint(:sensor_id)
|> assoc_constraint(:room)
end
end