Перейти к основному содержимому

ADR-007. Иерархическая структура LMS

Контекст

Один и тот же курс может быть «модуль → урок → блок», другой — «интенсивный день → секция → активность». Без общей структуры разные курсы превращаются в несовместимые модели.

Решение

LMS-контент строится на универсальном узле lms_node с типами (module, lesson, block, section, intensive_day, ...) и явной иерархией. Контент-блоки lms_content_block живут внутри узлов.

Последствия

  • одна модель для разных форматов курсов;
  • консистентный API чтения дерева курса;
  • упрощение progress-агрегации.