Files
Claper/lib/claper/accounts/role.ex
2025-11-20 10:44:06 +01:00

32 lines
656 B
Elixir

defmodule Claper.Accounts.Role do
use Ecto.Schema
import Ecto.Changeset
@type t :: %__MODULE__{
id: integer(),
name: String.t(),
permissions: map(),
inserted_at: NaiveDateTime.t(),
updated_at: NaiveDateTime.t()
}
schema "roles" do
field :name, :string
field :permissions, :map, default: %{}
has_many :users, Claper.Accounts.User
timestamps()
end
@doc """
Changeset for creating or updating a role.
"""
def changeset(role, attrs) do
role
|> cast(attrs, [:name, :permissions])
|> validate_required([:name])
|> unique_constraint(:name)
end
end