bmc_hub/migrations/030_ticket_contacts_flexible_roles.sql

29 lines
1.1 KiB
SQL

-- Gør ticket contact roller fleksible
-- Fjern CHECK constraint og tillad custom roller
-- Drop den eksisterende constraint
ALTER TABLE tticket_contacts
DROP CONSTRAINT IF EXISTS tticket_contacts_role_check;
-- Tilføj index for bedre performance på rolle-søgninger
CREATE INDEX IF NOT EXISTS idx_tticket_contacts_role_lower ON tticket_contacts(LOWER(role));
-- Opdater eksisterende roller til at følge naming convention (lowercase med underscore)
UPDATE tticket_contacts SET role = LOWER(REPLACE(role, ' ', '_'));
-- Kommentar på kolonnen med eksempler
COMMENT ON COLUMN tticket_contacts.role IS 'Kontaktens rolle på ticket. Standard roller: primary, requester, assignee, cc, observer. Custom roller: ekstern_it, third_party, electrician, consultant, etc.';
-- View til at få oversigt over alle brugte roller
CREATE OR REPLACE VIEW vw_ticket_contact_roles AS
SELECT
role,
COUNT(*) as usage_count,
COUNT(DISTINCT ticket_id) as tickets_count,
MAX(added_at) as last_used
FROM tticket_contacts
GROUP BY role
ORDER BY usage_count DESC;
COMMENT ON VIEW vw_ticket_contact_roles IS 'Oversigt over alle brugte roller på tickets med statistik';