39 lines
3.0 KiB
SQL
39 lines
3.0 KiB
SQL
-- 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;
|