lib/ident/role/model.ex
defmodule Rivet.Ident.Role do
use TypedEctoSchema
use Rivet.Ecto.Model, id_type: :intid
import EctoEnum
defenum(Type, global: 0, domain: 1, mixed: 2)
typed_schema "ident_roles" do
field(:name, Rivet.Utils.Ecto.Atom)
field(:description, :string)
field(:type, Type, default: :global)
many_to_many(:actions, Rivet.Ident.Action, join_through: Rivet.Ident.RoleMap, unique: true)
end
use Rivet.Ecto.Collection,
not_found: :atom,
required: [:name, :description],
update: [:description, :name, :type]
end