diff --git a/docs/API.md b/docs/API.md index f8e40c3..675c31c 100644 --- a/docs/API.md +++ b/docs/API.md @@ -53,8 +53,8 @@ **Ответ:** ```json [ - { "id": 1, "username": "admin", "role": "ADMIN" }, - { "id": 2, "username": "Тестовый преподаватель", "role": "TEACHER" } + { "id": 1, "username": "admin", "role": "ADMIN", "fullName": "Иванов Админ Иванович", "jobTitle": "Доцент", "departmentName": "Кафедра ИБ" }, + { "id": 2, "username": "Тестовый преподаватель", "role": "TEACHER", "fullName": "Петров Препод Петрович", "jobTitle": "Профессор", "departmentName": "Кафедра ВТ" } ] ``` @@ -62,6 +62,10 @@ Список только преподавателей (роль `TEACHER`). +### `GET /api/users/teachers/{departmentId}` + +Список преподавателей привязанных к конкретной кафедре (роль `TEACHER`, код кафедры `departmentId`). + ### `POST /api/users` Создание пользователя. @@ -69,16 +73,21 @@ **Тело запроса:** ```json { - "username": "Новый преподаватель", - "password": "password123", - "role": "TEACHER" + "username": "teacher1", + "password": "password", + "role": "TEACHER", + "fullName": "Test Teacher", + "jobTitle": "Proffessor", + "departmentId": 1 } ``` **Валидация:** -- `username` — обязателен +- `username` — обязателен и уникален - `password` — минимум 4 символа - `role` — `ADMIN`, `TEACHER` или `STUDENT` +- `fullName` — обязателен +- `departmentId` — обязателен ### `DELETE /api/users/{id}` @@ -92,7 +101,7 @@ Список всех занятий с разрешёнными именами (преподаватель, группа, дисциплина, аудитория). -**Ответ:** +**Ответ:** ```json [ { @@ -135,6 +144,7 @@ ``` **Валидация:** + | Поле | Правило | |------|---------| | `teacherId` | Обязателен, ≠ 0 | @@ -147,10 +157,36 @@ | `week` | `Верхняя`, `Нижняя`, `Обе` | | `time` | Обязателен | + ### `PUT /api/users/lessons/update/{lessonId}` Обновление занятия. Поддерживает partial update — передаются только изменённые поля. +**Тело ответа:** +```json +{ + "id": 5, + "teacherId": 1, + "groupId": 1, + "subjectId": 2, + "LessonFormat": "Онлайн", + "typeLesson": "Практическая работа", + "classroomId": 3, + "day": "Понедельник", + "week": "Верхняя", + "time": "9:40 - 11:10", + "updatedFields": { + "teacherId": 1, + "subjectId": 2, + "lessonFormat": "Онлайн", + "classroomId": 3, + "day": "Понедельник", + "time": "9:40 - 11:10" + }, + "message": "Занятие успешно обновлено" +} +``` + ### `DELETE /api/users/lessons/delete/{lessonId}` Удаление занятия. @@ -175,20 +211,30 @@ "name": "ИВТ-21-1", "groupSize": 25, "educationFormId": 1, - "educationFormName": "Бакалавриат" + "educationFormName": "Бакалавриат", + "departmentId": 1, + "course": 3, + "specialityCode": 1 } ] ``` +### `GET /api/groups/{departmentId}` + +Список всех групп привязанных к конкретной кафедре. + ### `POST /api/groups` Создание группы. ```json { - "name": "ИБ-31м", - "groupSize": 20, - "educationFormId": 2 + "name": "ИВТ-11", + "groupSize": 12, + "educationFormId": 1, + "departmentId": 1, + "course": 2, + "specialityCode": 1 } ``` @@ -249,10 +295,26 @@ Список всех дисциплин. +```json +{ + "name": "Физика", + "code": null, + "departmentId": 1 +} +``` + +### `GET /api/subjects/{departmentId}` + +Список всех дисциплин привязанных к кафедре. + ### `POST /api/subjects` ```json -{ "name": "Физика" } +{ + "name": "Физика", + "code": null, + "departmentId": 1 +} ``` ### `DELETE /api/subjects/{id}`