real back

This commit is contained in:
mixa
2026-06-22 22:39:08 +03:00
parent 27600872a8
commit c78212263b
38 changed files with 6884 additions and 479 deletions

View File

@@ -2,13 +2,13 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto;
DO $$
BEGIN
CREATE TYPE content_type AS ENUM ('news', 'article', 'video', 'audio', 'graphic', 'event_announcement');
CREATE TYPE content_type AS ENUM ('news', 'article', 'video', 'audio', 'graphic', 'event');
EXCEPTION WHEN duplicate_object THEN NULL;
END $$;
DO $$
BEGIN
CREATE TYPE content_status AS ENUM ('draft', 'moderation', 'review', 'published', 'archived');
CREATE TYPE content_status AS ENUM ('draft', 'moderation', 'review', 'published', 'returned', 'archived');
EXCEPTION WHEN duplicate_object THEN NULL;
END $$;
@@ -76,6 +76,9 @@ CREATE TABLE IF NOT EXISTS speakers (
display_name TEXT NOT NULL,
role_description TEXT,
biography TEXT,
topics_csv TEXT NOT NULL DEFAULT '',
materials_count INTEGER NOT NULL DEFAULT 0,
subscribers_count INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
@@ -107,6 +110,12 @@ CREATE TABLE IF NOT EXISTS content_items (
author_user_id UUID REFERENCES users(id) ON DELETE SET NULL,
author_label TEXT,
speaker_id UUID REFERENCES speakers(id) ON DELETE SET NULL,
duration TEXT,
image_tone TEXT NOT NULL DEFAULT '',
moderator_comment TEXT,
review_comment TEXT,
rating_average DOUBLE PRECISION NOT NULL DEFAULT 0,
rating_count INTEGER NOT NULL DEFAULT 0,
published_at TIMESTAMPTZ,
archived_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
@@ -132,6 +141,15 @@ CREATE TABLE IF NOT EXISTS media_files (
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS stored_file_blobs (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
mime_type TEXT NOT NULL,
size_bytes BIGINT NOT NULL CHECK (size_bytes >= 0),
data BYTEA NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS subscriptions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,