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
@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
@spec changeset(t() | Ecto.Changeset.t(t()), map()) :: Ecto.Changeset.t(t())
Splits a comma-separated skills string into a list, trimming blanks.
Translated label for a status value (for UI display).