24 lines
1.4 KiB
SQL
Executable File
24 lines
1.4 KiB
SQL
Executable File
-- 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 'Отложенные посты для одобрения перед публикацией';
|