defmodule Microwaveprop.Radio.Qso do @moduledoc false use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @foreign_key_type :binary_id schema "qsos" do field :station1, :string field :station2, :string field :qso_timestamp, :utc_datetime field :grid1, :string field :grid2, :string field :pos1, :map field :pos2, :map field :mode, :string field :band, :decimal field :distance_km, :decimal timestamps(type: :utc_datetime) end @required_fields ~w(station1 station2 qso_timestamp mode band)a @optional_fields ~w(grid1 grid2 pos1 pos2 distance_km)a def changeset(qso, attrs) do qso |> cast(attrs, @required_fields ++ @optional_fields) |> validate_required(@required_fields) end end