feat(shorts): короткие сообщения резидентов с ИИ-коррекцией
Таблица short_messages (резидент, дата занятия, тема, текст, отметка об использовании), CRUD API /api/shorts с мягким удалением и плановой очисткой через purge_at, ИИ-коррекция текста по профилю, страница shorts.html с массовым добавлением разбором строк «ФИО - текст».
This commit is contained in:
+18
@@ -458,3 +458,21 @@ INSERT INTO settings (key, value) VALUES ('lesson_ai_prompt', 'Ты — реда
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
INSERT INTO settings (key, value) VALUES ('notify_lesson_ai_formatted', 'false')
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS short_messages (
|
||||
id SERIAL PRIMARY KEY,
|
||||
resident VARCHAR(200) NOT NULL,
|
||||
lesson_date DATE NOT NULL,
|
||||
topic VARCHAR(500),
|
||||
message TEXT NOT NULL,
|
||||
used BOOLEAN NOT NULL DEFAULT false,
|
||||
used_at DATE,
|
||||
author_id INT REFERENCES users(id) ON DELETE SET NULL,
|
||||
deleted_at TIMESTAMPTZ,
|
||||
purge_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_short_messages_date ON short_messages(lesson_date DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_short_messages_deleted ON short_messages(deleted_at);
|
||||
|
||||
@@ -559,3 +559,30 @@ WHERE key = 'lesson_ai_prompt' AND value IN (
|
||||
INSERT INTO settings (key, value) VALUES ('notify_lesson_ai_formatted', 'false') ON CONFLICT (key) DO NOTHING;
|
||||
INSERT INTO settings (key, value) VALUES ('timezone', 'Europe/Moscow') ON CONFLICT (key) DO NOTHING;
|
||||
INSERT INTO settings (key, value) VALUES ('time_format', '24h') ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
-- Short messages table migration
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'short_messages') THEN
|
||||
CREATE TABLE short_messages (
|
||||
id SERIAL PRIMARY KEY,
|
||||
resident VARCHAR(200) NOT NULL,
|
||||
lesson_date DATE NOT NULL,
|
||||
topic VARCHAR(500),
|
||||
message TEXT NOT NULL,
|
||||
used BOOLEAN NOT NULL DEFAULT false,
|
||||
used_at DATE,
|
||||
deleted_at TIMESTAMPTZ,
|
||||
purge_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
CREATE INDEX idx_short_messages_date ON short_messages(lesson_date DESC);
|
||||
CREATE INDEX idx_short_messages_deleted ON short_messages(deleted_at);
|
||||
END IF;
|
||||
END$$;
|
||||
|
||||
ALTER TABLE short_messages ADD COLUMN IF NOT EXISTS used_at DATE;
|
||||
ALTER TABLE short_messages ADD COLUMN IF NOT EXISTS author_id INT REFERENCES users(id) ON DELETE SET NULL;
|
||||
|
||||
INSERT INTO settings (key, value) VALUES ('short_messages_retention_days', '365') ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
Reference in New Issue
Block a user