defmodule TopPosterServer.User do use Ecto.Schema import Ecto.Changeset @type t :: %__MODULE__{ id: String.t(), posts: non_neg_integer() } @primary_key {:id, :string, []} schema "users" do field :posts, :integer, default: 0 end def changeset(user, params \\ %{}) do user |> cast(params, [:id, :posts]) |> validate_required([:id, :posts]) end end