-- Migration v1.6.0: Fixes for broadcast recipient_ids + feature keys + categories + engineer permissions

-- 1. Add recipient_ids column to bot_broadcasts if missing
ALTER TABLE bot_broadcasts ADD COLUMN IF NOT EXISTS recipient_ids JSONB DEFAULT '[]'::jsonb;

-- 2. Fix feature_key auto_notifications → notifications
UPDATE bot_features SET feature_key = 'notifications' WHERE feature_key = 'auto_notifications';

-- 3. Fix feature_key commercial_offer → commercial (match code)
UPDATE bot_features SET feature_key = 'commercial' WHERE feature_key = 'commercial_offer';

-- 4. Replace categories with new set
DELETE FROM bot_categories;
INSERT INTO bot_categories (name, description, icon_emoji, keywords, sort_order) VALUES
('Аудит безопасности', 'Независимая оценка систем видеонаблюдения, СКУД, ОПС', '🔍', '["аудит","безопасность","оценка","видеонаблюдение","скуд","опс"]', 1),
('Сервисное обслуживание / SLA', 'Абонентское обслуживание по SLA-контракту', '🛡️', '["сервис","sla","абонентский","обслуживание","контракт"]', 2),
('Реагирование на инциденты', 'Срочное реагирование при нештатных ситуациях', '🚨', '["инцидент","реагирование","срочный","нештатный","авария"]', 3),
('Технический надзор', 'Контроль качества при монтаже и пусконаладке', '📐', '["надзор","технический","контроль","качество","монтаж","пусконаладка"]', 4),
('Проектная документация', 'Разработка и согласование проектной документации', '📄', '["проект","документация","разработка","согласование"]', 5),
('Риск-инжиниринг', 'Оценка рисков, BCP, DRP, стратегия безопасности', '⚡', '["риск","инжиниринг","bcp","drp","стратегия","безопасность"]', 6),
('Общий вопрос', 'Консультация или вопрос вне указанных категорий', '💬', '["консультация","вопрос","общий","другое"]', 7)
ON CONFLICT DO NOTHING;

-- 5. Add bot_* menu permissions for engineer role
INSERT INTO role_menu_permissions (role, menu_key, visible) VALUES
    ('engineer', 'bot_analytics', true),
    ('engineer', 'bot_users', true),
    ('engineer', 'bot_conversations', true),
    ('engineer', 'bot_tickets', true),
    ('engineer', 'bot_handoffs', true),
    ('engineer', 'bot_notifications', true),
    ('engineer', 'bot_risk_questions', true),
    ('engineer', 'bot_broadcasts', true),
    ('engineer', 'bot_storage', true)
ON CONFLICT (role, menu_key) DO NOTHING;

-- 6. Drop stale view if exists
DROP VIEW IF EXISTS bot_dashboard;
