-- 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';
