586 B · text 5af55d9
defmodule GitGud.Federation.InstanceBlock do
use Ecto.Schema
import Ecto.Changeset
@severities ~w(silence suspend)
schema "fed_instance_blocks" do
field :host, :string
field :severity, :string, default: "suspend"
field :reason, :string
timestamps(type: :utc_datetime)
end
def changeset(b, attrs) do
b
|> cast(attrs, [:host, :severity, :reason])
|> validate_required([:host])
|> validate_length(:host, max: 250)
|> validate_inclusion(:severity, @severities)
|> unique_constraint(:host)
end
def severities, do: @severities
end