PhoenixKitStaff.Schemas.Person (PhoenixKitStaff v0.2.0)

Copy Markdown View Source

A person on staff. Always linked to a PhoenixKit user (decision A for MVP); the user_uuid FK is required.

All profile fields beyond the required user_uuid and status are optional — fill in whatever's relevant.

Summary

Functions

Splits a comma-separated skills string into a list, trimming blanks.

Translated label for a status value (for UI display).

Types

t()

@type t() :: %PhoenixKitStaff.Schemas.Person{
  __meta__: term(),
  bio: String.t() | nil,
  date_of_birth: Date.t() | nil,
  emergency_contact_name: String.t() | nil,
  emergency_contact_phone: String.t() | nil,
  emergency_contact_relationship: String.t() | nil,
  employment_end_date: Date.t() | nil,
  employment_start_date: Date.t() | nil,
  employment_type: String.t() | nil,
  inserted_at: DateTime.t() | nil,
  job_title: String.t() | nil,
  notes: String.t() | nil,
  personal_email: String.t() | nil,
  personal_phone: String.t() | nil,
  primary_department:
    PhoenixKitStaff.Schemas.Department.t()
    | Ecto.Association.NotLoaded.t()
    | nil,
  primary_department_uuid: UUIDv7.t() | nil,
  skills: String.t() | nil,
  status: String.t() | nil,
  team_memberships:
    [PhoenixKitStaff.Schemas.TeamMembership.t()]
    | Ecto.Association.NotLoaded.t(),
  updated_at: DateTime.t() | nil,
  user: PhoenixKit.Users.Auth.User.t() | Ecto.Association.NotLoaded.t() | nil,
  user_uuid: UUIDv7.t() | nil,
  uuid: UUIDv7.t() | nil,
  work_location: String.t() | nil,
  work_phone: String.t() | nil
}

Functions

changeset(person, attrs)

@spec changeset(t() | Ecto.Changeset.t(t()), map()) :: Ecto.Changeset.t(t())

employment_type_label(other)

employment_types()

skill_list(skills)

Splits a comma-separated skills string into a list, trimming blanks.

status_label(other)

Translated label for a status value (for UI display).

statuses()