-- ═══════════════════════════════════════════════════════════════ -- v_org_leadership: add bio and primary organization -- -- The view already carries the rules for who counts as current and -- public. Adding the two columns the people tiles need keeps those -- rules in one place instead of being restated by each route. -- -- Additive only — attachLeadership does SELECT * and shapeLeader -- picks fields by name, so existing callers are unaffected. -- -- PRAGMA user_version; -- check before renumbering this file -- ═══════════════════════════════════════════════════════════════ DROP VIEW IF EXISTS v_org_leadership; CREATE VIEW v_org_leadership AS SELECT a.org_id, a.team_id, t.name AS team_name, t.sort_order AS team_sort_order, a.person_id, a.title, a.role, a.is_owner, a.sort_order, p.display_name, p.sort_name, p.pronouns, p.tagline, p.photo, p.public_email, p.location_label, p.bio, o.id AS primary_org_id, o.name AS primary_org_name FROM affiliations a JOIN people p ON p.id = a.person_id AND p.is_published = 1 LEFT JOIN teams t ON t.id = a.team_id LEFT JOIN organizations o ON o.id = p.primary_org_id WHERE a.is_public = 1 AND a.ended_on IS NULL ORDER BY a.org_id, a.is_owner DESC, a.sort_order, p.sort_name; PRAGMA user_version = 0; -- ← set to this migration's number