45 lines
1.6 KiB
SQL
45 lines
1.6 KiB
SQL
-- ═══════════════════════════════════════════════════════════════
|
|
-- 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
|