feat(lessons): «Быстрый урок» — одиночный урок без ручного создания курса

Учитель жмёт «Быстрый урок» в каталоге (theory.html) → урок создаётся в скрытом личном
курсе-контейнере и сразу открывается редактор. Возни с курсом нет.

- Миграция 059: courses.is_personal (ADD COLUMN).
- POST /api/lessons/quick (teacher/admin): get-or-create личный контейнер (is_personal=1,
  один на учителя, опубликован) + создаёт урок, возвращает lessonId.
- Каталог курсов скрывает личные контейнеры от всех, кроме владельца (courseController.list).
- Свои быстрые уроки учитель видит как курс «Мои материалы» (открыв его в каталоге).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-03 20:42:14 +03:00
parent 7e640e4207
commit 6be8a505eb
5 changed files with 63 additions and 1 deletions
+1
View File
@@ -13,6 +13,7 @@ router.post('/:id/comments', c.addComment);
router.delete('/:id/comments/:cid', c.deleteComment);
// Teacher/admin only
router.post('/quick', requireRole('teacher','admin'), c.quickLesson);
router.post('/', requireRole('teacher','admin'), c.create);
router.put('/:id', requireRole('teacher','admin'), c.update);
router.delete('/:id', requireRole('teacher','admin'), c.remove);