Версия 1.6¶
Дата: 17.09.2026
Изменения¶
API — новые группы эндпоинтов¶
- Профессии — CRUD для профессий, отраслей и направлений; фильтры по
direction_id,industry_id, поиск по названию - Компетенции — CRUD (
/competences) - Организации — CRUD (
/organizations) - Профессии в действии — полная группа эндпоинтов:
- CMS: видеосценарии (CRUD), ветки (создание, обновление, удаление)
- Показ: создание сессии, получение активной, остановка, состояние, голосование
- Мобильный клиент: join, vote
API — WebSocket¶
- Добавлена страница «WebSocket API» (
api/websocket.md) — описание эндпоинтов для обновлений в реальном времени - Викторина —
ws://host/api/v1/quiz/sessions/{id}/ws: событияsession_state,question_started,votes_update,question_revealed,round_finished,session_finished - Профессии в действии —
ws://host/api/v1/interactive-video/sessions/{id}/ws: событияphase_changed,votes_updated,scenario_finished,session_finished - Описание WebSocket добавлено в
quiz.yaml(комментарий с примерами событий)
API — синхронизация таймера¶
- QuizTimerState — заменён
remainingнаends_at(абсолютный UNIX timestamp в мс) +remaining_at_pause(для паузы) - Клиент вычисляет:
remaining = ends_at - now. Решает проблему рассинхронизации при задержках сети - Аналогичная модель таймера в
InteractiveVideoState.voting_point.timer
Сущности — интерактивное видео¶
- Переименование:
VideoScenario→InteractiveVideoScenario,VideoScenarioBranch→InteractiveVideoScenarioBranch - Новое поле
promptвInteractiveVideoScenarioBranch— текст вопроса в точке выбора (для веток с дочерними вариантами) - Обновлены связи в
File(VideoScenario→InteractiveVideoScenario)
Интерфейсы — LED-экран¶
- Профессии в действии (
led-screen/professions-active.md): - WebSocket-подключение для уведомлений
- Фазы показа:
playing,waiting,result - Синхронизация таймера через
ends_at - Формат QR-кода для подключения зрителей
- Привязка элементов интерфейса к полям API (
prompt,text,winner_branch_id,votes) - Викторина (
led-screen/quiz.md): - WebSocket-подключение для обновлений в реальном времени
- Описание событий при подключении
Интерфейсы — мобильный клиент¶
- Ответ (
mobile-client/answer.md): - API голосования для «Профессии в действии» (
POST /interactive-video/sessions/{sessionId}/vote) - Подключение по QR-коду (извлечение
session_id,device_id) - Восстановление сессии для интерактивного видео
- WebSocket-обновления для викторины и интерактивного видео
Интерфейсы — планшет оператора¶
- Профессии в действии (
operator-tablet/professions.md): - Восстановление сессии (
GET /interactive-video/sessions/active) - Выбор конкретных видеосценариев (опционально)
- API-привязки для запуска/остановки
- Управление раундом (
operator-tablet/round-control.md): - WebSocket-подключение для обновлений
Интерфейсы — административный портал¶
- Разделение страницы «Видеосценарии и аватары» → две отдельные страницы:
- «Видеосценарии» (
admin-portal/video-scenarios.md) — только интерактивные видео - «Аватары профессий» (
admin-portal/profession-avatars.md) — новая страница
CMS — видеосценарии¶
- Добавлен раздел «API» с эндпоинтами для видеосценариев и веток
- Новое поле «Текст вопроса» в карточке ветки — вопрос, показываемый после видео (для веток с дочерними вариантами)
- Обновлены правила валидации и элементы карточки
LED-платформа — заставка¶
- Добавлен API запуска показа видеосценариев из заставки (
POST /interactive-video/sessions,stop,state) - Оператор может выбрать конкретные видеосценарии
Концепция¶
- Обновлена блок-схема:
VideoScenario→InteractiveVideoScenario
Уточнения¶
- Теги API — переименованы: «Интерактивное видео» → «Профессии в действии» (CMS, Оператор, LED, Зритель)
- Сущность «Организации» — объединены
EducationalInstitutionиEmployerв единую сущностьOrganizationс типомeducation(учебное заведение) илиemployer(работодатель)