-- Новости компании: блок на сводке и реестр в офисе
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 'Новости компании: черновики и публикации с уведомлением по отделам/сотрудникам';
