defmodule Doorman.Device do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :binary_id, autogenerate: true} @derive {Poison.Encoder, only: [:id, :token, :platform, :user_id, :last_sent, :inserted_at, :updated_at]} schema "devices" do field :token, :string field :platform, :string field :user_id, :binary_id field :last_sent, :utc_datetime timestamps() end @required_fields ~w(token platform)a @optional_fields ~w(user_id last_sent)a @doc """ Creates a changeset based on the `model` and `params`. If no params are provided, an invalid changeset is returned with no validation performed. """ def changeset(model, params \\ :empty) do model |> cast(params, @required_fields ++ @optional_fields) |> validate_required(@required_fields) end end