-- PR Отложенные посты (для одобрения перед публикацией)
CREATE TABLE IF NOT EXISTS pr_scheduled_posts (
  id                        BIGSERIAL PRIMARY KEY,
  title                     TEXT NOT NULL,
  content                   TEXT NOT NULL,
  channel_ids               JSONB DEFAULT '[]', -- массив ID каналов из pr_smm_channels
  scheduled_at              TIMESTAMPTZ NOT NULL,
  status                    VARCHAR(20) NOT NULL DEFAULT 'draft' CHECK (status IN ('draft', 'pending_approval', 'approved', 'rejected', 'edited', 'published')),
  topic_id                  BIGINT REFERENCES pr_post_topics(id) ON DELETE SET NULL,
  created_at                TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  created_by                TEXT,
  approved_at               TIMESTAMPTZ,
  approved_by               TEXT,
  rejection_reason          TEXT,
  edited_content            TEXT, -- если статус edited, здесь новая версия
  published_at              TIMESTAMPTZ
);

CREATE INDEX IF NOT EXISTS idx_pr_scheduled_posts_scheduled ON pr_scheduled_posts(scheduled_at DESC);
CREATE INDEX IF NOT EXISTS idx_pr_scheduled_posts_status ON pr_scheduled_posts(status);
CREATE INDEX IF NOT EXISTS idx_pr_scheduled_posts_topic ON pr_scheduled_posts(topic_id);

COMMENT ON TABLE pr_scheduled_posts IS 'Отложенные посты для одобрения перед публикацией';
