много всего и тестовые данные
This commit is contained in:
15
docs/API.md
15
docs/API.md
@@ -597,6 +597,7 @@ GET /api/schedule?groupId=1&startDate=2026-04-27&endDate=2026-05-03
|
||||
| Метод | URL | Назначение |
|
||||
|-------|-----|------------|
|
||||
| `GET` | `/api/admin/academic-calendars` | Список графиков, фильтры `academicYearId`, `specialtyId`, `profileId` |
|
||||
| `GET` | `/api/admin/academic-calendars/page` | Страница графиков: `query`, `academicYearId`, `page`, `size` |
|
||||
| `GET` | `/api/admin/academic-calendars/options` | Асинхронный поиск совместимых графиков для комбобокса |
|
||||
| `GET` | `/api/admin/academic-calendars/{id}` | Один график |
|
||||
| `POST` | `/api/admin/academic-calendars` | Создать график |
|
||||
@@ -624,6 +625,13 @@ GET /api/schedule?groupId=1&startDate=2026-04-27&endDate=2026-05-03
|
||||
название автоматически как `код специальности — профиль обучения — форма обучения — учебный год`.
|
||||
Отдельного пользовательского названия у календарного графика нет.
|
||||
|
||||
`GET /api/admin/academic-calendars/page` возвращает `PageResponse` с полями
|
||||
`items`, `page`, `size`, `totalItems`, `totalPages`, `first`, `last`.
|
||||
Нумерация страниц начинается с 0, размер по умолчанию 25, сервер ограничивает его диапазоном 1–100.
|
||||
Поиск `query` без учёта регистра охватывает название графика, учебный год, код и название
|
||||
специальности, профиль и форму обучения. Сортировка: начало учебного года по убыванию,
|
||||
затем название и ID по возрастанию.
|
||||
|
||||
`GET /api/admin/academic-calendars/options` принимает `query`, `academicYearId`,
|
||||
`specialtyId`, `profileId`, `studyFormId`, `selectedId` и `limit` (`1..50`). Поиск
|
||||
выполняется по составному названию, учебному году, коду/названию специальности, профилю и
|
||||
@@ -718,11 +726,18 @@ CRUD доступен по:
|
||||
| Метод | URL | Назначение |
|
||||
|-------|-----|------------|
|
||||
| `GET` | `/api/admin/schedule-rules` | Список правил, фильтры `semesterId`, `groupId`, `versionId` |
|
||||
| `GET` | `/api/admin/schedule-rules/page` | Страница правил: обязательный `versionId`, параметры `query`, `page`, `size` |
|
||||
| `GET` | `/api/admin/schedule-rules/{id}` | Одно правило |
|
||||
| `POST` | `/api/admin/schedule-rules` | Создать правило |
|
||||
| `PUT` | `/api/admin/schedule-rules/{id}` | Обновить правило |
|
||||
| `DELETE` | `/api/admin/schedule-rules/{id}` | Архивировать правило |
|
||||
|
||||
`GET /api/admin/schedule-rules/page` возвращает тот же формат `PageResponse`;
|
||||
`page` по умолчанию 0, `size` — 25 (ограничение 1–100). Правила выбранной версии,
|
||||
кроме архивных, сортируются по ID по убыванию. `query` ищет по названию дисциплины,
|
||||
названию группы или точному ID. Сначала БД выбирает страницу ID, затем загружаются
|
||||
группы и слоты только этих правил; пагинация не выполняется в памяти над полной коллекцией.
|
||||
|
||||
`timeSlotId` должен ссылаться на базовый слот (`scopeApplyMode = DEFAULT`). Субботняя и ручные сетки не выбираются в правиле напрямую.
|
||||
|
||||
Создание, изменение и архивирование правил разрешены внутри версии со статусом `PUBLISHED`
|
||||
|
||||
Reference in New Issue
Block a user