# SMM Система Konturai

Полная реализация системы управления социальными сетями для фронтенда Vue.js приложения.

## 🚀 Реализованные компоненты

### 1. Сервисы (Services)

#### CampaignService

-   **Путь**: `src/service/CampaignService.js`
-   **Функции**: CRUD операции для кампаний
-   **API эндпоинты**:
    -   `GET /api/smm/campaigns` - получить все кампании
    -   `GET /api/smm/campaigns/{id}` - получить кампанию по ID
    -   `POST /api/smm/campaigns` - создать кампанию
    -   `PUT /api/smm/campaigns/{id}` - обновить кампанию
    -   `DELETE /api/smm/campaigns/{id}` - удалить кампанию

#### ChannelService

-   **Путь**: `src/service/ChannelService.js`
-   **Функции**: CRUD операции для каналов
-   **API эндпоинты**:
    -   `GET /api/smm/channels` - получить все каналы
    -   `GET /api/smm/channels/{id}` - получить канал по ID
    -   `POST /api/smm/channels` - создать канал
    -   `PUT /api/smm/channels/{id}` - обновить канал
    -   `DELETE /api/smm/channels/{id}` - удалить канал

#### ContentService

-   **Путь**: `src/service/ContentService.js`
-   **Функции**: CRUD операции для контента, одобрение, получение сообщений
-   **API эндпоинты**:
    -   `GET /api/smm/content` - получить весь контент
    -   `GET /api/smm/content/{id}` - получить контент по ID
    -   `POST /api/smm/content` - создать контент
    -   `PUT /api/smm/content/{id}` - обновить контент
    -   `DELETE /api/smm/content/{id}` - удалить контент
    -   `POST /api/smm/content/{id}/approve` - одобрить контент
    -   `GET /api/smm/content/{id}/messages` - получить сообщения контента

#### PublishingService

-   **Путь**: `src/service/PublishingService.js`
-   **Функции**: Публикация контента, проверка статуса, массовая публикация
-   **API эндпоинты**:
    -   `POST /api/smm/publishing/post/{contentId}` - опубликовать контент

#### AnalyticsService

-   **Путь**: `src/service/AnalyticsService.js`
-   **Функции**: Сбор аналитики, получение статистики
-   **API эндпоинты**:
    -   `POST /api/smm/analytics/collect-now` - запустить сбор аналитики

### 2. Типы данных

#### SMM Types

-   **Путь**: `src/types/smm.js`
-   **Содержит**:
    -   `CampaignStatus` - статусы кампаний (PLANNED, ACTIVE, COMPLETED)
    -   `ChannelType` - типы каналов (TELEGRAM, VK, INSTAGRAM)
    -   `ContentStatus` - статусы контента (DRAFT, PENDING_APPROVAL, APPROVED, PUBLISHED, FAILED)
    -   DTO классы для всех сущностей

### 3. Vue компоненты

#### CampaignList

-   **Путь**: `src/views/smm/CampaignList.vue`
-   **Функции**: Управление кампаниями с полным CRUD
-   **Особенности**:
    -   Таблица с фильтрацией и сортировкой
    -   Диалоги создания/редактирования
    -   Валидация форм
    -   Подтверждение удаления

#### ChannelList

-   **Путь**: `src/views/smm/ChannelList.vue`
-   **Функции**: Управление каналами
-   **Особенности**:
    -   Поддержка разных типов каналов
    -   Управление активностью каналов
    -   Валидация API ключей

#### ContentList

-   **Путь**: `src/views/smm/ContentList.vue`
-   **Функции**: Управление контентом
-   **Особенности**:
    -   Создание и редактирование контента
    -   Одобрение контента
    -   Публикация контента
    -   Просмотр детальной информации

#### AnalyticsDashboard

-   **Путь**: `src/views/smm/AnalyticsDashboard.vue`
-   **Функции**: Аналитика и статистика
-   **Особенности**:
    -   Статистические карточки
    -   Детальная статистика по всем модулям
    -   Ручной запуск сбора аналитики

#### SmmDashboard

-   **Путь**: `src/views/smm/SmmDashboard.vue`
-   **Функции**: Главная панель SMM системы
-   **Особенности**:
    -   Обзор статистики
    -   Быстрые действия
    -   Последние кампании и контент

### 4. Маршрутизация

#### Добавленные маршруты

```javascript
{
    path: '/smm',
    name: 'smm-dashboard',
    component: () => import('@/views/smm/SmmDashboard.vue'),
    meta: { requiresAuth: true }
},
{
    path: '/smm/campaigns',
    name: 'smm-campaigns',
    component: () => import('@/views/smm/CampaignList.vue'),
    meta: { requiresAuth: true }
},
{
    path: '/smm/channels',
    name: 'smm-channels',
    component: () => import('@/views/smm/ChannelList.vue'),
    meta: { requiresAuth: true }
},
{
    path: '/smm/content',
    name: 'smm-content',
    component: () => import('@/views/smm/ContentList.vue'),
    meta: { requiresAuth: true }
},
{
    path: '/smm/analytics',
    name: 'smm-analytics',
    component: () => import('@/views/smm/AnalyticsDashboard.vue'),
    meta: { requiresAuth: true }
}
```

### 5. Навигация

#### Обновленное меню

Добавлен новый раздел "SMM Система" с пунктами:

-   SMM Панель (`/smm`)
-   Кампании (`/smm/campaigns`)
-   Каналы (`/smm/channels`)
-   Контент (`/smm/content`)
-   Аналитика (`/smm/analytics`)

## 🔧 Технические особенности

### Аутентификация

-   Все сервисы используют JWT токены из localStorage
-   Автоматическая проверка авторизации
-   Обработка ошибок аутентификации

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

-   Клиентская валидация всех форм
-   Проверка обязательных полей
-   Валидация форматов данных

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

-   Централизованная обработка ошибок
-   Toast уведомления для пользователя
-   Логирование ошибок в консоль

### UI/UX

-   Современный дизайн с PrimeVue компонентами
-   Адаптивная верстка
-   Интуитивная навигация
-   Подтверждения действий

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

### 1. Управление кампаниями

1. Перейдите в "SMM Система" → "Кампании"
2. Нажмите "Создать кампанию" для добавления новой кампании
3. Заполните форму с обязательными полями
4. Используйте фильтры и поиск для навигации по кампаниям

### 2. Управление каналами

1. Перейдите в "SMM Система" → "Каналы"
2. Добавьте каналы для Telegram, VK или Instagram
3. Укажите API ключи для каждого канала
4. Управляйте активностью каналов

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

1. Перейдите в "SMM Система" → "Контент"
2. Создайте контент, привязав к кампании
3. Настройте время публикации и приоритет
4. Одобрите контент для публикации
5. Опубликуйте контент в каналы

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

1. Перейдите в "SMM Система" → "Аналитика"
2. Просматривайте статистику по всем модулям
3. Запускайте сбор аналитики вручную
4. Отслеживайте эффективность публикаций

## 🚀 Готовность к использованию

Система полностью готова к использованию и включает:

-   ✅ Все API эндпоинты из документации
-   ✅ Полный CRUD для всех сущностей
-   ✅ Современный UI с PrimeVue
-   ✅ Адаптивный дизайн
-   ✅ Обработка ошибок
-   ✅ Валидация данных
-   ✅ Навигация и маршрутизация

## 🔗 Интеграция с бэкендом

Система готова к интеграции с бэкендом по адресу:

-   **Базовый URL**: `https://api.konturai.kz/api/smm`
-   **Аутентификация**: Bearer JWT токены
-   **Формат данных**: JSON
-   **Кодировка**: UTF-8

Все сервисы автоматически добавляют заголовки аутентификации и обрабатывают ответы API.
