V128: Assignee on projects (and sub-projects).
Lets a whole project be assigned to a Department / Team / Person, exactly like
a task (phoenix_kit_project_assignments) already can. Because a sub-project
is a project (V127), this single set of columns covers both top-level
projects and sub-projects — a sub-project's assignee lives on its own project
row.
Adds to phoenix_kit_projects:
assigned_team_uuid→ FKphoenix_kit_staff_teams(uuid) ON DELETE SET NULLassigned_department_uuid→ FKphoenix_kit_staff_departments(uuid) ON DELETE SET NULLassigned_person_uuid→ FKphoenix_kit_staff_people(uuid) ON DELETE SET NULLCHECK num_nonnulls(team, department, person) <= 1— at most one assignee (the same single-assignee rule the assignments table uses).- a partial index per FK for "what's assigned to X" lookups.
ON DELETE SET NULL so removing a team/department/person un-assigns the
project rather than deleting it. Idempotent DO-blocks throughout.