farmbot_os/farmbot_core/lib/asset_storage/peripheral.ex

27 lines
626 B
Elixir
Raw Normal View History

defmodule Farmbot.Asset.Peripheral do
2017-09-20 10:10:04 -06:00
@moduledoc """
Peripherals are descriptors for pins/modes.
"""
alias Farmbot.Asset.Peripheral
2017-09-20 10:10:04 -06:00
use Ecto.Schema
import Ecto.Changeset
@primary_key {:local_id, :binary_id, autogenerate: true}
2017-09-20 10:10:04 -06:00
schema "peripherals" do
field(:id, :integer)
2017-10-11 16:53:00 -06:00
field(:pin, :integer)
field(:mode, :integer)
field(:label, :string)
2017-09-20 10:10:04 -06:00
end
2017-09-20 13:06:09 -06:00
@required_fields [:id, :pin, :mode, :label]
2017-09-20 10:10:04 -06:00
def changeset(%Peripheral{} = peripheral, params \\ %{}) do
2017-09-20 10:10:04 -06:00
peripheral
|> cast(params, @required_fields)
|> validate_required(@required_fields)
|> unique_constraint(:id)
end
end