Научиться выделять зоны ответственности разных сущностей и проектировать связи между ними.
‼️ Реализация данной лабы должна переиспользовать логику Lab 0. Так же она должна поддерживать с ней обратную совместимость, что значит, что использованиеIIsuServiceотдельно от сервиса данной лабораторной не должно нарушать инвариант её логики.
Реализация системы записи студентов на ОГНП.
Курс ОГНП - дополнительные занятия, которые могут изучать студенты. Каждый курс реализуется определенным мегафакультетом. Курс изучается в несколько потоков с ограниченным количеством мест. У каждого потока есть свое расписание - список пар, которые проводятся в течение недели.
Пара - описание временного интервала, в который группа занимается. Пара должна быть ассоциирована с группой, временем, преподавателем и аудиторией.
Студенты могут записываться на два разных курса ОГНП. Студент не может записаться на ОГНП, которое представляет мегафакультет его учебной группы. Каждая учебная группа принадлежат определенному мегафакультету, который определяется из названия группы, например М3105 - ИТИП(ТИНТ), К3104 - СУИР(КТУ). Каждая учебная группа имеет список пар. При записи студента должна быть проверка на то, что пары его учебной группы не пересекаются с парами потока ОГНП.
- Добавление нового курса ОГНП
- Запись студента на определенный ОГНП
- Возможность снять запись
- Получение потоков по курсу
- Получение списка студентов в определенной группе ОГНП
- Получение списка не записавшихся на курсы студентов по группе