Добавил запрос на создание препода от кафедры
This commit is contained in:
62
docs/API.md
62
docs/API.md
@@ -147,6 +147,8 @@ Refresh-токен ротируется при каждом успешном о
|
||||
|
||||
Список преподавателей привязанных к конкретной кафедре (роль `TEACHER`, код кафедры `departmentId`). Ответ использует ту же структуру `UserResponse`, что и `GET /api/users`.
|
||||
|
||||
Выборка учитывает активные записи `teacher_department_assignments` на текущую дату и legacy-привязку `users.department_id`. Роль `DEPARTMENT` может запрашивать только свою кафедру.
|
||||
|
||||
### `POST /api/users`
|
||||
|
||||
Создание пользователя.
|
||||
@@ -165,7 +167,7 @@ Refresh-токен ротируется при каждом успешном о
|
||||
|
||||
**Валидация:**
|
||||
- `username` — обязателен и уникален
|
||||
- `password` — минимум 4 символа
|
||||
- `password` — минимум 8 символов
|
||||
- `role` — `ADMIN`, `EDUCATION_OFFICE`, `DEPARTMENT`, `SCHEDULE_VIEWER`, `TEACHER` или `STUDENT`
|
||||
- `fullName` — обязателен
|
||||
- `departmentId` — обязателен
|
||||
@@ -196,7 +198,40 @@ Refresh-токен ротируется при каждом успешном о
|
||||
|
||||
### `GET /api/users/teachers/by-department/{departmentId}?date=2026-06-01`
|
||||
|
||||
Список преподавателей кафедры на конкретную дату по таблице истории.
|
||||
Список преподавателей кафедры на конкретную дату по таблице истории и legacy-привязке `users.department_id`. Роль `DEPARTMENT` может запрашивать только свою кафедру.
|
||||
|
||||
---
|
||||
|
||||
## Заявки на создание преподавателей
|
||||
|
||||
Администратор просматривает и обрабатывает заявки кафедр на создание новых преподавателей.
|
||||
|
||||
| Метод | URL | Назначение |
|
||||
|-------|-----|------------|
|
||||
| `GET` | `/api/teacher-requests?status=PENDING` | Список заявок, опционально с фильтром статуса |
|
||||
| `POST` | `/api/teacher-requests/{id}/approve` | Одобрить заявку, скорректировать данные и создать преподавателя |
|
||||
| `POST` | `/api/teacher-requests/{id}/reject` | Отклонить заявку |
|
||||
|
||||
**Тело одобрения:**
|
||||
```json
|
||||
{
|
||||
"departmentId": 2,
|
||||
"username": "teacher.new",
|
||||
"password": "secure-pass",
|
||||
"fullName": "Новый Преподаватель",
|
||||
"jobTitle": "Доцент",
|
||||
"reviewComment": "Данные проверены"
|
||||
}
|
||||
```
|
||||
|
||||
Пароль задаёт только администратор при одобрении заявки. Сама заявка пароль не хранит.
|
||||
|
||||
**Тело отклонения:**
|
||||
```json
|
||||
{
|
||||
"reviewComment": "Нужно уточнить ФИО"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -539,10 +574,33 @@ GET /api/workload/teachers?departmentId=1&startDate=2026-05-20&endDate=2026-06-0
|
||||
| `GET` | `/api/department/subjects/{subjectId}/comments` | Комментарии дисциплины |
|
||||
| `POST` | `/api/department/subjects/{subjectId}/comments` | Добавить комментарий |
|
||||
| `GET` | `/api/department/teachers` | Преподаватели кафедры |
|
||||
| `POST` | `/api/department/teachers/{teacherId}/assignments` | Добавить существующего преподавателя на кафедру |
|
||||
| `GET` | `/api/department/teacher-requests` | Заявки кафедры на создание преподавателей |
|
||||
| `POST` | `/api/department/teacher-requests` | Создать заявку на нового преподавателя |
|
||||
| `GET` | `/api/department/schedule` | Расписание кафедры |
|
||||
|
||||
`GET /api/department/teachers` возвращает актуальных преподавателей кафедры по `teacher_department_assignments` и дополнительно учитывает старую привязку `users.department_id`, чтобы не терять преподавателей без записи в истории назначений.
|
||||
|
||||
`POST /api/department/teachers/{teacherId}/assignments` создаёт дополнительную открытую связь преподавателя с кафедрой (`is_primary=false`). Для роли `DEPARTMENT` кафедра берётся из текущего пользователя, администратор может передать `departmentId`.
|
||||
|
||||
```json
|
||||
{
|
||||
"departmentId": 2,
|
||||
"comment": "Совместительство"
|
||||
}
|
||||
```
|
||||
|
||||
`POST /api/department/teacher-requests` принимает логин, ФИО, должность и комментарий. Повторная pending-заявка с тем же логином запрещена.
|
||||
|
||||
```json
|
||||
{
|
||||
"username": "teacher.new",
|
||||
"fullName": "Новый Преподаватель",
|
||||
"jobTitle": "Доцент",
|
||||
"comment": "Нужен для дисциплин кафедры"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Кафедры и специальности
|
||||
|
||||
Reference in New Issue
Block a user