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

Границы домена

Зачем нужно

Документ фиксирует, чем домен олимпиад владеет сам, какие данные берёт из соседних доменов и какие изменения не должен выполнять напрямую.

Назначение

Competitions отвечает за полный соревновательный цикл:

  • мероприятия, сезоны, туры и зачёты;
  • расписание, окна проведения и способы прохождения;
  • двухшаговую, предварительную и групповую регистрацию участников;
  • участников без аккаунта и процедуру claim access;
  • олимпиадные проекции Learning Workspace / Learning Group;
  • преподавательский режим с выбранной организацией и подслоями по ролям;
  • заявки площадок, публикацию площадок списком и на карте, выбор и смену площадки;
  • tour activity bindings, task structure and score snapshots; task-bank используется как content/source, LMS activity как runtime;
  • competition-facing refs отправки ответов, файлов, фото и сканов;
  • проверку работ через LMS/runtime или temporary adapter, scores, rankings и award status;
  • публикацию личных и публичных результатов;
  • генерацию олимпиадных документов;
  • публикацию прошедших материалов как training;
  • audit действий, влияющих на участие, работы и результаты.

Акторы

АкторЧто делает
Ученикпроходит тур в детском режиме, отправляет работу, смотрит результат
Родительрегистрирует ребёнка, дозаполняет данные, смотрит результаты и документы ребёнка
Преподавательв выбранной организации работает с Learning Groups, регистрирует группу или выбранных учеников, вносит ответы
Помощник преподавателяпомогает проводить тур и отправлять материалы по урезанным правам
Административный подслой выбранной организацииуправляет регистрациями, ролями помощников и отчётами в пределах organization role
Площадочный подслой выбранной организацииведёт заявку площадки, вместимость, списки, слоты и передачу работ
Администратор «Систематики»настраивает сезон, туры, регистрации, площадки, публикации, арбитраж и исключения
Методистсвязывает туры с LMS activity, task-bank source refs и проверяет score contract
Проверяющийпроверяет работы и выставляет баллы
Финансы/operationsвидит paid/free status через CRM
Сервисобрабатывает events, notifications, documents и integrations
Витринапоказывает публичный регламент, площадки списком/на карте, опубликованные результаты и ссылки на LMS-разбор/тренажёр

Что входит

  • competition_event, competition_season, competition_tour;
  • competition_grade_category, competition_track, competition_award_policy;
  • competition_participant, competition_registration, competition_season_participation, competition_tour_participation;
  • competition_group, competition_group_member как season-specific snapshot/projection от Learning Workspace / Learning Group;
  • competition_organization_role, competition_venue, competition_venue_assignment;
  • competition_access_claim;
  • competition_tour_activity_binding, competition_tour_task_structure, competition_tour_task_item, competition_training_publication;
  • competition_submission as attempt/submission ref, competition_submission_file as file ref, item score snapshots;
  • competition_check refs / temporary adapter checks, competition_score snapshots;
  • competition_result, competition_ranking, competition_publication;
  • competition_award_document, competition_document_generation_job;
  • competition_audit_log.

Что не входит

ОбластьГде живёт
Аккаунты, семьи, организации, роли входаidentity
Канонические задачи, версии, решения, answer keystask-bank; temporary content snapshot разрешён только внутри temporary LMS-compatible adapter
Activity runtime, attempts, responses, files, checking result, training attemptsLMS activity runtime или temporary adapter
Оплаты, счета, entitlement, клиентская коммуникацияCRM
Публичные лендинги, SEO, catalog cardsstorefront
Учебные курсы, progress и домашние заданияLMS
Канонические учебные пространства, группы и списки учеников преподавателяLearning Workspace / Learning Group
Управленческие dashboards и планыmanagement
Универсальные шаблоны документов вне олимпиадdocuments/certificates domain, если будет выделен

Источник истины

Competitions является источником истины для:

  • сезона, тура, зачёта и правил участия;
  • соревновательной записи участника;
  • регистрации, допуска и способа прохождения;
  • заявки площадки, approved venue, capacity policy и назначения участника на площадку;
  • олимпиадного submission и результата;
  • publication status результатов и работ;
  • олимпиадного award status и связи с документом;
  • audit соревновательных действий.

Competitions не владеет canonical problem, user account, payment, storefront page, LMS progress, Learning Workspace или Learning Group. competition_group не может использоваться как общий «список моих учеников» преподавателя.

Главные запреты

  • Нельзя хардкодить количество туров, классов, зачётов или формат проведения.
  • Нельзя хранить task-bank answer key как канонический источник внутри competitions. Temporary adapter может иметь locked answer/scoring snapshot только для конкретного тура до готовности LMS/task-bank.
  • Нельзя публиковать результаты до явного publication action.
  • Нельзя менять checked/locked submission без audit и reason.
  • Нельзя объединять StudentRecord автоматически только по ФИО.
  • Нельзя выдавать родителю/учителю доступ к чужой записи без claim/access rule.
  • Нельзя открывать paid registration без CRM entitlement/payment signal, если сезон платный.
  • Нельзя генерировать документ без finalized result и award policy.
  • Нельзя требовать official data package вне официального сценария, где это явно задано регламентом.
  • Нельзя хранить raw official data package values в competitions; СНИЛС, дата рождения ребёнка и родительские контакты живут в identity protected attributes/contact records.
  • Нельзя превращать текстовое поле «учитель» из анкеты участника в автоматическую связь с пользователем-преподавателем.
  • Нельзя уменьшать вместимость площадки ниже текущего числа активных назначений без административного процесса переноса/снятия участников.
  • Нельзя смешивать MVP-апелляцию результата с арбитражем подозрительных работ.
  • Нельзя считать тренировочную попытку LMS/тренажёра олимпиадной попыткой.

Контексты доступа

КонтекстПример
selfучастник видит свои туры, работы, результаты
familyродитель видит детей своей семьи
teacher_modeпреподавательский режим с выбранной организацией
learning_groupпреподаватель действует по выбранной Learning Group
teacher_admin_layerадминистративный подслой выбранной организации
teacher_venue_layerплощадочный подслой выбранной организации
checkerпроверяющий видит назначенные работы
systematika_adminадминистратор «Систематики» управляет сезоном
publicопубликованные результаты и материалы

Доменные инварианты

  • TourParticipation хранит delivery mode конкретного участника.
  • ResultTrack отделён от delivery mode.
  • SubmissionRef references tour, participant and LMS/adapter activity attempt; score snapshots reference locked activity item structure.
  • Registration может быть предварительной, требовать дозаполнения и переходить к approved только после второго шага.
  • Parent registration создаёт участие ребёнка, но tour attempt открывается в child mode.
  • Первый тур поддерживает пакетную отправку ответов по ученикам, lock после отправки и досылку новых учеников до окончания окна тура.
  • Result не публикуется без finalized/checking state.
  • Award document references finalized result and document generation job.
  • Access claim всегда аудируется.
  • Все изменения scores, rankings, awards и publications имеют actor/reason.