farmbot_os/farmbot_core/lib/asset_storage/peripheral.ex

27 lines
626 B
Elixir

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