reports/docs/api/tasks.md

89 lines
3.2 KiB
Markdown
Raw Normal View History

# Задачи (SprintTask)
← [Сводка API](README.md)
Сущность **SprintTask** — задача, закрытая в [спринте](sprints.md). Содержит метрики по отдельной задаче.
## Связанные сущности
- [Спринты](sprints.md) — родительская сущность (`sprint_id` в БД, не возвращается в ответе)
- [Конфигурация](config.md) — `jira_url` для формирования ссылки на задачу в Jira
---
## Модель данных
### SprintTask
```json
{
"id": 101,
"task_type": "backend",
"task_key": "TS-1234",
"task_title": "Пример задачи",
"employee_name": "Иван Иванов",
"employee_role": "backend",
"estimate_seconds": 28800,
"total_time_seconds": 32400,
"take_in_work_datetime": "2026-01-14 10:00:00+04",
"resolution_datetime": "2026-01-20 16:30:00+04",
"lead_time_days": 5,
"recast_percentage": 12.5,
"efficiency_percentage": 45.0,
"review_count": 2,
"test_count": 1
}
```
| Поле | Тип | Описание |
|------|-----|----------|
| `id` | `integer` | Идентификатор записи в БД |
| `task_type` | `string` | Тип задачи |
| `task_key` | `string` | Ключ задачи в Jira |
| `task_title` | `string` | Заголовок задачи |
| `employee_name` | `string \| null` | ФИО исполнителя |
| `employee_role` | `string \| null` | Роль исполнителя |
| `estimate_seconds` | `integer` | Оценка в секундах |
| `total_time_seconds` | `integer` | Фактически затраченное время в секундах |
| `take_in_work_datetime` | `string \| null` | Дата и время взятия в работу |
| `resolution_datetime` | `string \| null` | Дата и время закрытия |
| `lead_time_days` | `integer \| null` | System Lead Time в рабочих днях |
| `recast_percentage` | `number \| null` | Переработка относительно оценки, % |
| `efficiency_percentage` | `number \| null` | КПД (Flow Efficiency), % |
| `review_count` | `integer` | Количество заходов на ревью |
| `test_count` | `integer` | Количество заходов на тестирование |
### Роли исполнителей (`employee_role`)
`analytic`, `backend`, `designer`, `frontend`, `qa`, `project`
### Ссылка на задачу в Jira
```
{jira_url}/browse/{task_key}
```
`jira_url` получается из [конфигурации](config.md): `GET /api/config`.
---
## Эндпоинты
### `GET /api/sprints/{sprintId}/tasks`
Возвращает [задачи](tasks.md), закрытые в указанном [спринте](sprints.md).
**Параметры пути**
| Параметр | Тип | Описание |
|----------|-----|----------|
| `sprintId` | `integer` | Идентификатор спринта |
**Ответ:** `200` — массив `SprintTask[]`, отсортированный по дате закрытия, затем по ключу задачи
**Пример**
```bash
curl http://localhost/api/sprints/42/tasks
```