Modules
Staff module for PhoenixKit.
Thin wrapper around PhoenixKit.Activity.log/1 so callers don't need to
duplicate the Code.ensure_loaded?/1 guard and rescue clause everywhere.
Safe to call from any LiveView — never crashes the caller.
CRUD for departments.
Atom → translated-string dispatcher for Staff context errors.
Gettext backend for staff-module-specific UI strings.
Tiny locale-aware date/time formatting helpers used by the staff UI.
Centralized path helpers for the Staff module.
Real-time updates for the staff module, backed by
PhoenixKit.PubSub.Manager (the shared in-process PubSub server).
Top-level organizational unit containing teams.
A person on staff. Always linked to a PhoenixKit user (decision A for MVP);
the user_uuid FK is required.
Join between Person and Skill — a person's assignment of a skill,
carrying zero or more of the skill's own proficiency levels.
A skill that can be assigned to staff people.
A team inside a department.
Join between Team and Person — represents a person's membership on a team.
Skills: CRUD for the Skill taxonomy plus person↔skill assignment
(with proficiency level).
Context for staff (people) and team memberships.
Team membership management — the person ↔ team join.
Read-model / reporting over the staff org: the upcoming-birthdays widget and the full department → team → people org tree.
CRUD for teams.
daisyUI boxed tab switcher for staff detail pages.
Create or edit a department.
Show a department with its teams.
List departments.
Cross-LV helpers shared by the staff admin LiveViews.
Staff org overview — departments, teams, and people.
List staff, with soft-delete (trash / restore / permanent delete) + bulk actions.
Create or edit a staff person.
Show a staff person's full profile and team memberships.
Create or edit a skill, including its per-skill proficiency levels.
Show a skill and manage which people have it, at which of the skill's own proficiency levels.
List skills.
Create or edit a team.
Show a team and manage its memberships.
List teams across all departments.