defmodule Microwaveprop.Propagation.GridScore do @moduledoc false use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} schema "propagation_scores" do field :lat, :float field :lon, :float field :valid_time, :utc_datetime field :band_mhz, :integer field :score, :integer field :factors, :map timestamps(type: :utc_datetime) end @type t :: %__MODULE__{} @fields ~w(lat lon valid_time band_mhz score factors)a @spec changeset(t() | Ecto.Changeset.t(), map()) :: Ecto.Changeset.t() def changeset(grid_score, attrs) do grid_score |> cast(attrs, @fields) |> validate_required(@fields) |> unique_constraint([:lat, :lon, :valid_time, :band_mhz]) end end