21 lines
522 B
Elixir
21 lines
522 B
Elixir
defmodule Webring.Invite do
|
|
use Ecto.Schema
|
|
import Ecto.Changeset
|
|
|
|
schema "invites" do
|
|
field(:code, :string)
|
|
field(:ends_at, :utc_datetime, default: ~U[2100-01-01 00:00:00Z])
|
|
field(:uses, :integer, default: 0)
|
|
field(:max_uses, :integer, default: -1)
|
|
field(:disabled, :boolean, default: false)
|
|
timestamps()
|
|
end
|
|
|
|
def changeset(invite, params) do
|
|
invite
|
|
|> cast(params, [:code, :ends_at, :uses, :disabled])
|
|
|> validate_required([:code])
|
|
|> unique_constraint(:code)
|
|
end
|
|
end
|