28 lines
1.5 KiB
SQL
Executable File
28 lines
1.5 KiB
SQL
Executable File
-- Аудиты: статусы, индекс сложности, данные осмотра по пунктам/подпунктам
|
||
|
||
-- Статус аудита: новый, в работе, завершён
|
||
ALTER TABLE development_audits ADD COLUMN IF NOT EXISTS status VARCHAR(20) DEFAULT 'new';
|
||
UPDATE development_audits SET status = 'completed' WHERE status IS NULL OR status = '';
|
||
ALTER TABLE development_audits ALTER COLUMN status SET DEFAULT 'new';
|
||
ALTER TABLE development_audits ALTER COLUMN status SET NOT NULL;
|
||
DO $$ BEGIN
|
||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'development_audits_status_check') THEN
|
||
ALTER TABLE development_audits ADD CONSTRAINT development_audits_status_check
|
||
CHECK (status IN ('new', 'in_progress', 'completed'));
|
||
END IF;
|
||
END $$;
|
||
|
||
-- Индекс сложности дома (0–100)
|
||
ALTER TABLE development_audits ADD COLUMN IF NOT EXISTS complexity_index NUMERIC(5, 2);
|
||
DO $$ BEGIN
|
||
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'development_audits_complexity_index_check') THEN
|
||
ALTER TABLE development_audits ADD CONSTRAINT development_audits_complexity_index_check
|
||
CHECK (complexity_index IS NULL OR (complexity_index >= 0 AND complexity_index <= 100));
|
||
END IF;
|
||
END $$;
|
||
|
||
-- Данные осмотра: пункты и подпункты (JSONB)
|
||
ALTER TABLE development_audits ADD COLUMN IF NOT EXISTS inspection_data JSONB DEFAULT '{}';
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_dev_audits_status ON development_audits(status);
|