Files
mkd/backend/migrations/add_applications_manual_fields.sql
2026-02-04 00:17:04 +05:00

67 lines
4.0 KiB
SQL
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Миграция: source и поля для ручной карточки заявки (диспетчерская)
-- Выполнить: psql -d mkd_control_center -f migrations/add_applications_manual_fields.sql
DO $$
BEGIN
-- source: 'doma' | 'manual'
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'source') THEN
ALTER TABLE applications ADD COLUMN source VARCHAR(20) NOT NULL DEFAULT 'doma';
END IF;
-- Откуда поступила заявка (Звонок, Заявка с сайта и т.д.)
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'source_channel') THEN
ALTER TABLE applications ADD COLUMN source_channel TEXT;
END IF;
-- Заявка от жителя (true) / не от жителя (false)
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'is_from_resident') THEN
ALTER TABLE applications ADD COLUMN is_from_resident BOOLEAN DEFAULT true;
END IF;
-- Телефон, ФИО (для не от жителя)
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'contact_phone') THEN
ALTER TABLE applications ADD COLUMN contact_phone TEXT;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'contact_name') THEN
ALTER TABLE applications ADD COLUMN contact_name TEXT;
END IF;
-- Классификатор: место инцидента, тип работ, в чём проблема
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'place_incident') THEN
ALTER TABLE applications ADD COLUMN place_incident TEXT;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'work_type') THEN
ALTER TABLE applications ADD COLUMN work_type TEXT;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'problem_detail') THEN
ALTER TABLE applications ADD COLUMN problem_detail TEXT;
END IF;
-- Чекбоксы: аварийная, платная, гарантийная
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'is_emergency') THEN
ALTER TABLE applications ADD COLUMN is_emergency BOOLEAN DEFAULT false;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'is_paid') THEN
ALTER TABLE applications ADD COLUMN is_paid BOOLEAN DEFAULT false;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'is_warranty') THEN
ALTER TABLE applications ADD COLUMN is_warranty BOOLEAN DEFAULT false;
END IF;
-- Назначение: исполнитель, ответственный, наблюдатели
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'executor_name') THEN
ALTER TABLE applications ADD COLUMN executor_name TEXT;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'responsible_name') THEN
ALTER TABLE applications ADD COLUMN responsible_name TEXT;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'observers_text') THEN
ALTER TABLE applications ADD COLUMN observers_text TEXT;
END IF;
-- Отображать заявку в мобильном приложении жителя
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'applications' AND column_name = 'show_in_app') THEN
ALTER TABLE applications ADD COLUMN show_in_app BOOLEAN DEFAULT false;
END IF;
END $$;