# Функциональность отчётов

## Обзор

В приложение добавлена полная функциональность для работы с отчётами согласно техническому заданию. Система позволяет генерировать, просматривать и скачивать отчёты в форматах PDF и DOCX.

## Структура файлов

### Сервисы

-   `src/service/ReportService.js` - Основной сервис для работы с API отчётов

### Компоненты

-   `src/views/reports/ReportManager.vue` - Главная страница управления отчётами
-   `src/views/reports/ReportGenerator.vue` - Страница создания нового отчёта
-   `src/views/reports/ReportHistory.vue` - Страница истории отчётов

### Конфигурация

-   `src/config/api.js` - Обновлён с эндпоинтами для отчётов
-   `src/router/index.js` - Добавлены маршруты для страниц отчётов
-   `src/layout/AppMenu.vue` - Добавлен раздел "Отчёты" в меню

## Функциональность

### 1. Генерация отчётов

-   Создание отчётов с настраиваемыми параметрами
-   Поддержка форматов PDF и DOCX
-   Валидация формы с отображением ошибок
-   Автоматическое скачивание сгенерированного файла

### 2. История отчётов

-   Просмотр всех созданных отчётов
-   Пагинация и сортировка
-   Фильтрация по формату, дате и тексту
-   Статистика по отчётам

### 3. Скачивание отчётов

-   Скачивание отчётов из истории
-   Автоматическое определение имени файла
-   Обработка ошибок при скачивании

## API Endpoints

### Генерация отчёта

```
POST /api/parser/report/generate
```

**Параметры:**

-   `reportTitle` (string) - Заголовок отчёта
-   `authorName` (string) - Имя автора
-   `companyName` (string) - Название компании
-   `startDate` (string) - Дата начала (ISO 8601)
-   `endDate` (string) - Дата окончания (ISO 8601)
-   `format` (string) - Формат файла (PDF/DOCX)

### История отчётов

```
GET /api/parser/report/history?page=0&size=20&sort=createdAt,desc
```

**Параметры:**

-   `page` (int) - Номер страницы
-   `size` (int) - Размер страницы
-   `sort` (string) - Поле и направление сортировки

### Скачивание отчёта

```
GET /api/parser/report/history/{id}
```

## Использование

### 1. Создание отчёта

1. Перейдите в раздел "Отчёты" → "Создать отчёт"
2. Заполните обязательные поля:
    - Заголовок отчёта
    - Автор
    - Компания
    - Период (дата начала и окончания)
    - Формат файла
3. Нажмите "Сгенерировать отчёт"
4. Файл автоматически скачается

### 2. Просмотр истории

1. Перейдите в раздел "Отчёты" → "История отчётов"
2. Используйте фильтры для поиска нужных отчётов
3. Сортируйте по любому столбцу
4. Скачивайте отчёты кнопкой "Скачать"

### 3. Управление отчётами

1. Перейдите в раздел "Отчёты" → "Управление отчётами"
2. Здесь доступны все функции в одном интерфейсе

## Технические детали

### Валидация

-   Все обязательные поля проверяются перед отправкой
-   Проверка корректности дат (дата окончания должна быть позже даты начала)
-   Отображение ошибок валидации под соответствующими полями

### Обработка ошибок

-   Обработка HTTP ошибок (400, 401, 403, 404, 500)
-   Пользовательские сообщения об ошибках
-   Логирование ошибок в консоль

### UI/UX

-   Использование PrimeVue компонентов
-   Адаптивный дизайн
-   Индикаторы загрузки
-   Toast уведомления
-   Подтверждающие диалоги

## Зависимости

Функциональность использует существующие зависимости проекта:

-   Vue 3
-   PrimeVue 4
-   Vue Router 4

## Безопасность

-   Все запросы требуют авторизации (Bearer token)
-   Токен извлекается из localStorage
-   Обработка ошибок авторизации

## Расширения

Для будущих версий можно добавить:

-   Удаление отчётов
-   Редактирование отчётов
-   Предварительный просмотр отчётов
-   Шаблоны отчётов
-   Планировщик генерации отчётов
-   Уведомления о готовности отчётов
