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

Запись на занятия

Зачем нужно

Запись на занятия позволяет ученику или родителю выбрать доступный учебный слот без обращения к менеджеру.

Кто использует

  • ученик;
  • родитель;
  • преподаватель;
  • координатор.

Сценарии

  • посмотреть доступные занятия;
  • записаться;
  • отменить запись;
  • перенести запись;
  • попасть в лист ожидания;
  • увидеть конфликт расписания.

Данные

  • class slot;
  • booking;
  • booking status;
  • cancellation;
  • waitlist entry;
  • entitlement check.

Правила

  • Запись возможна только при наличии права доступа или разрешённого пробного сценария.
  • LMS не владеет оплатой, но проверяет доступ.
  • Отмена и перенос должны сохранять историю.

API

Канонические операции описаны в ../api-map.md: GET/POST /booking/slots, POST /booking/slots/{slotId}/hold, POST /booking/slots/{slotId}/book, POST /bookings/{bookingId}/cancel и POST /bookings/{bookingId}/move.

Серверная часть

Серверная часть проверяет конфликты, лимиты мест, entitlement и идемпотентность записи.

Интерфейс

  • список слотов;
  • календарное представление;
  • подтверждение записи;
  • состояния ожидания, отмены и конфликта.

Интеграции

  • CRM/billing — доступы;
  • calendar — отображение;
  • teacher tools — видимость записи;
  • notifications — напоминания.

Безопасность

Пользователь может записывать только себя или ребёнка, которым имеет право управлять.

Нестандартные случаи

  • место заняли одновременно;
  • слот отменён преподавателем;
  • доступ истёк во время записи;
  • часовой пояс пользователя отличается.

Готовность

  • пользователь записывается без ручной помощи;
  • конфликты и лимиты обрабатываются;
  • запись отражается в календаре и у преподавателя.