forked from admin/zeropost-engine
feat: editor_notes + /api/stats/live + tokens в getArticleBySlug
- БД: таблица editor_notes (title/content/author/tags/is_pinned/is_published) - routes/notes.js: CRUD заметок редактора - /api/stats/live: latest article, processing job, активность за 7 дней - getArticleBySlug: JOIN с generation_jobs для tokens_in/out
This commit is contained in:
@@ -142,6 +142,21 @@ const migrate = async () => {
|
||||
);
|
||||
`);
|
||||
|
||||
// editor_notes — короткие заметки от редактора-человека
|
||||
await query(`
|
||||
CREATE TABLE IF NOT EXISTS editor_notes (
|
||||
id SERIAL PRIMARY KEY,
|
||||
title VARCHAR(255),
|
||||
content TEXT NOT NULL,
|
||||
author VARCHAR(100) DEFAULT 'Редактор',
|
||||
tags JSONB DEFAULT '[]'::jsonb,
|
||||
is_pinned BOOLEAN DEFAULT false,
|
||||
is_published BOOLEAN DEFAULT true,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
`);
|
||||
|
||||
// индексы
|
||||
await query(`
|
||||
CREATE INDEX IF NOT EXISTS idx_channels_user ON channels(user_id);
|
||||
@@ -151,6 +166,7 @@ const migrate = async () => {
|
||||
CREATE INDEX IF NOT EXISTS idx_jobs_user ON generation_jobs(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_articles_slug ON articles(slug);
|
||||
CREATE INDEX IF NOT EXISTS idx_articles_status_pub ON articles(status, published_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_notes_pub ON editor_notes(is_published, created_at DESC);
|
||||
`);
|
||||
|
||||
console.log('[DB] Migrations applied');
|
||||
|
||||
Reference in New Issue
Block a user