# Новостной интерфейс для KonturAI

Этот модуль реализует полноценный интерфейс для работы с новостным парсером согласно API документации.

## 🚀 Возможности

### 📰 Лента новостей (`/news`)

-   **Отображение новостей** с заголовком, источником, датой и превью текста
-   **Пагинация** с поддержкой "бесконечной прокрутки" и классической пагинации
-   **Сортировка** по дате публикации, дате добавления, заголовку и источнику
-   **Фильтрация** по источнику и датам
-   **Быстрые фильтры** (сегодня, неделя, месяц)
-   **Статистика** на странице с количеством новостей и активных фильтров

### 📊 Дашборд статистики (`/news/dashboard`)

-   **Общая статистика** с количеством новостей, источников и средним количеством на источник
-   **Статус системы** с проверкой состояния сервиса и MongoDB
-   **Круговая диаграмма** распределения новостей по источникам
-   **Детальная статистика** по каждому источнику

### ⚙️ Админ-панель (`/admin/news`)

-   **Управление парсером** с кнопками запуска парсинга
-   **Мониторинг состояния** сервиса и базы данных
-   **Результаты парсинга** с отображением обработанных новостей
-   **Статистика в реальном времени**

### 📄 Детальный просмотр новости (`/news/:id`)

-   **Полный текст** новости с форматированием
-   **Аналитика** (краткое содержание, тональность, теги, сущности)
-   **Техническая информация** (ID, URL, хеш, даты)
-   **Действия** (открыть оригинал, поделиться, вернуться)

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

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

```
src/
├── service/
│   └── NewsService.js          # Сервис для работы с API
├── config/
│   └── api.js                  # Конфигурация API
├── components/news/
│   └── NewsFilters.vue         # Компонент фильтров
└── views/news/
    ├── NewsList.vue            # Лента новостей
    ├── NewsDashboard.vue       # Дашборд статистики
    ├── NewsAdmin.vue           # Админ-панель
    └── NewsDetail.vue          # Детальный просмотр
```

### API Endpoints

-   `GET /api/parser/items` - получение новостей с фильтрацией и пагинацией
-   `GET /api/parser/stats` - статистика системы
-   `GET /api/parser/health` - статус сервиса
-   `GET /api/parser/health/mongodb` - статус MongoDB
-   `POST /api/parser/parse/all` - запуск парсинга всех источников
-   `POST /api/parser/parse/{source}` - запуск парсинга конкретного источника

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

Создайте файл `.env` в корне проекта:

```env
VUE_APP_API_URL=https://api.konturai.kz
```

## 🎨 UI/UX особенности

### Дизайн

-   **Современный интерфейс** с использованием PrimeVue компонентов
-   **Адаптивная верстка** для всех устройств
-   **Цветовая схема** с интуитивными индикаторами статуса
-   **Анимации и переходы** для улучшения пользовательского опыта

### Интерактивность

-   **Hover эффекты** на карточках новостей
-   **Загрузочные индикаторы** для всех асинхронных операций
-   **Уведомления** об успешных операциях и ошибках
-   **Tooltips** для дополнительной информации

### Производительность

-   **Ленивая загрузка** компонентов
-   **Кэширование** данных статистики
-   **Оптимизированные запросы** с минимальным количеством API вызовов

## 🔧 Настройка и запуск

1. **Установите зависимости:**

    ```bash
    npm install
    ```

2. **Настройте API URL:**

    ```bash
    echo "VUE_APP_API_URL=http://your-api-server:8080" > .env
    ```

3. **Запустите в режиме разработки:**

    ```bash
    npm run dev
    ```

4. **Соберите для продакшена:**
    ```bash
    npm run build
    ```

## 📱 Навигация

### Основное меню

-   **Home** → New Dashboard
-   **Новости** → Лента новостей, Статистика
-   **Admin** → Users, Управление парсером

### Маршруты

-   `/news` - лента новостей
-   `/news/dashboard` - статистика
-   `/news/:id` - детальный просмотр новости
-   `/admin/news` - управление парсером

## 🎯 Особенности реализации

### Фильтрация

-   **Источник**: выпадающий список с динамической загрузкой
-   **Даты**: календарь с поддержкой диапазонов
-   **Сортировка**: поле и направление
-   **Размер страницы**: 10, 20, 50, 100 новостей

### Пагинация

-   **Классическая**: кнопки страниц с информацией
-   **Бесконечная**: кнопка "Загрузить еще"
-   **Навигация**: первая, предыдущая, следующая, последняя

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

-   **Graceful degradation** при недоступности API
-   **Информативные сообщения** об ошибках
-   **Retry механизмы** для критических операций

### Аналитика

-   **Chart.js** для визуализации данных
-   **Цветовое кодирование** источников
-   **Процентное соотношение** в статистике

## 🔮 Планы развития

-   [ ] **WebSocket** для обновлений в реальном времени
-   [ ] **Поиск** по содержимому новостей
-   [ ] **Избранное** и закладки
-   [ ] **Экспорт** данных в различных форматах
-   [ ] **Уведомления** о новых новостях
-   [ ] **Темная тема** интерфейса
-   [ ] **Мобильное приложение** на базе Capacitor

## 📞 Поддержка

При возникновении проблем:

1. Проверьте конфигурацию API URL
2. Убедитесь, что бэкенд сервис запущен
3. Проверьте консоль браузера на наличие ошибок
4. Обратитесь к документации API

---

**Создано с ❤️ для эффективной работы с новостными данными**
