-- Новости компании: блок на сводке и реестр в офисе CREATE TABLE IF NOT EXISTS company_news ( id BIGSERIAL PRIMARY KEY, title TEXT NOT NULL, body TEXT, status VARCHAR(20) NOT NULL DEFAULT 'draft' CHECK (status IN ('draft', 'pending', 'published')), created_by BIGINT REFERENCES portal_users(id) ON DELETE SET NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), published_at TIMESTAMPTZ, notify_departments JSONB DEFAULT '[]', notify_employee_ids JSONB DEFAULT '[]' ); CREATE INDEX IF NOT EXISTS idx_company_news_status ON company_news(status); CREATE INDEX IF NOT EXISTS idx_company_news_created_at ON company_news(created_at DESC); CREATE INDEX IF NOT EXISTS idx_company_news_published_at ON company_news(published_at DESC NULLS LAST) WHERE status = 'published'; COMMENT ON TABLE company_news IS 'Новости компании: черновики и публикации с уведомлением по отделам/сотрудникам';