Миллион изменений, создание вкладки "Расписание занятий"
This commit is contained in:
112
docs/API.md
112
docs/API.md
@@ -233,110 +233,56 @@ CRUD доступен по:
|
||||
| `PUT` | `/api/admin/schedule-rules/{id}` | Обновить правило |
|
||||
| `DELETE` | `/api/admin/schedule-rules/{id}` | Удалить правило |
|
||||
|
||||
---
|
||||
### `GET /api/lesson-types`
|
||||
|
||||
## Расписание (Lessons, deprecated)
|
||||
Справочник типов занятий для конструктора правил расписания.
|
||||
|
||||
Старые эндпоинты ещё физически есть в коде до удаления старых контроллеров и таблиц. Новый просмотр расписания использует `GET /api/schedule`, а новые seed-данные создаются сразу в динамической модели.
|
||||
|
||||
### `GET /api/users/lessons`
|
||||
|
||||
Список всех занятий с разрешёнными именами (преподаватель, группа, дисциплина, аудитория).
|
||||
|
||||
**Ответ:**
|
||||
**Ответ:**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"teacherName": "Тестовый преподаватель",
|
||||
"groupName": "ИВТ-21-1",
|
||||
"classroomName": "101 Ленинская",
|
||||
"educationFormName": "Бакалавриат",
|
||||
"subjectName": "Высшая математика",
|
||||
"typeLesson": "Лекция",
|
||||
"lessonFormat": "Очно",
|
||||
"day": "Понедельник",
|
||||
"week": "Верхняя",
|
||||
"time": "11:40 - 13:10"
|
||||
}
|
||||
{ "id": 1, "name": "Лекция" },
|
||||
{ "id": 2, "name": "Практика" }
|
||||
]
|
||||
```
|
||||
|
||||
### `GET /api/users/lessons/{teacherId}`
|
||||
---
|
||||
|
||||
Занятия конкретного преподавателя.
|
||||
## Кафедры и специальности
|
||||
|
||||
### `POST /api/users/lessons/create`
|
||||
### Кафедры
|
||||
|
||||
Создание занятия.
|
||||
| Метод | URL | Назначение |
|
||||
|-------|-----|------------|
|
||||
| `GET` | `/api/departments` | Список кафедр |
|
||||
| `POST` | `/api/departments` | Создать кафедру |
|
||||
| `PUT` | `/api/departments/{id}` | Обновить кафедру |
|
||||
| `DELETE` | `/api/departments/{id}` | Удалить кафедру |
|
||||
|
||||
**Тело запроса:**
|
||||
**Тело создания/обновления:**
|
||||
```json
|
||||
{
|
||||
"teacherId": 2,
|
||||
"groupId": 1,
|
||||
"subjectId": 1,
|
||||
"lessonFormat": "Очно",
|
||||
"typeLesson": "Лекция",
|
||||
"classroomId": 1,
|
||||
"day": "Понедельник",
|
||||
"week": "Верхняя",
|
||||
"time": "11:40 - 13:10"
|
||||
"departmentName": "Кафедра ИБ",
|
||||
"departmentCode": 1
|
||||
}
|
||||
```
|
||||
|
||||
**Валидация:**
|
||||
### Специальности
|
||||
|
||||
| Поле | Правило |
|
||||
|------|---------|
|
||||
| `teacherId` | Обязателен, ≠ 0 |
|
||||
| `groupId` | Обязателен, ≠ 0 |
|
||||
| `subjectId` | Обязателен, ≠ 0 |
|
||||
| `lessonFormat` | `Очно` или `Онлайн` |
|
||||
| `typeLesson` | `Лекция`, `Практическая работа`, `Лабораторная работа` |
|
||||
| `classroomId` | Обязателен, ≠ 0 |
|
||||
| `day` | Пн–Сб (на русском) |
|
||||
| `week` | `Верхняя`, `Нижняя`, `Обе` |
|
||||
| `time` | Обязателен |
|
||||
| Метод | URL | Назначение |
|
||||
|-------|-----|------------|
|
||||
| `GET` | `/api/specialties` | Список специальностей |
|
||||
| `POST` | `/api/specialties` | Создать специальность |
|
||||
| `PUT` | `/api/specialties/{id}` | Обновить специальность |
|
||||
| `DELETE` | `/api/specialties/{id}` | Удалить специальность |
|
||||
|
||||
|
||||
### `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": "Занятие успешно обновлено"
|
||||
"specialityName": "Программная инженерия",
|
||||
"specialityCode": "09.03.04"
|
||||
}
|
||||
```
|
||||
|
||||
### `DELETE /api/users/lessons/delete/{lessonId}`
|
||||
|
||||
Удаление занятия.
|
||||
|
||||
### `GET /api/users/lessons/ping`
|
||||
|
||||
Проверка доступности контроллера. Возвращает строку `pong`.
|
||||
|
||||
---
|
||||
|
||||
## Группы
|
||||
@@ -375,11 +321,13 @@ CRUD доступен по:
|
||||
"groupSize": 12,
|
||||
"educationFormId": 1,
|
||||
"departmentId": 1,
|
||||
"course": 2,
|
||||
"yearStartStudy": 2026,
|
||||
"specialityCode": 1
|
||||
}
|
||||
```
|
||||
|
||||
`specialityCode` исторически содержит ID записи из `/api/specialties`; текущий курс вычисляется из `yearStartStudy`.
|
||||
|
||||
### `DELETE /api/groups/{id}`
|
||||
|
||||
Удаление группы.
|
||||
|
||||
Reference in New Issue
Block a user