-- PR График публикации (календарь тем для постов)
CREATE TABLE IF NOT EXISTS pr_post_topics (
  id                        BIGSERIAL PRIMARY KEY,
  title                     TEXT NOT NULL,
  description               TEXT,
  scheduled_date            DATE, -- дата планируемой публикации (может быть NULL для старых записей)
  month                     VARCHAR(7) NOT NULL, -- формат YYYY-MM для фильтрации
  status                    VARCHAR(20) NOT NULL DEFAULT 'draft' CHECK (status IN ('draft', 'pending_approval', 'approved', 'rejected')),
  created_at                TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  created_by                TEXT,
  approved_at               TIMESTAMPTZ,
  approved_by               TEXT,
  rejection_reason          TEXT,
  created_at_month          VARCHAR(7) GENERATED ALWAYS AS (TO_CHAR(created_at, 'YYYY-MM')) STORED
);

CREATE INDEX IF NOT EXISTS idx_pr_post_topics_month ON pr_post_topics(month DESC);
CREATE INDEX IF NOT EXISTS idx_pr_post_topics_scheduled_date ON pr_post_topics(scheduled_date);
CREATE INDEX IF NOT EXISTS idx_pr_post_topics_status ON pr_post_topics(status);

COMMENT ON TABLE pr_post_topics IS 'График публикации (календарь тем) - план публикаций на месяц. По этим темам создаются посты с контентом.';
