# Изменения в API: Интеграция v2 анализа

## Обзор изменений

Добавлена возможность опционального создания и сохранения v2 анализа вместе с обычным анализом. Все v2 анализы сохраняются в MongoDB и доступны через новые эндпойнты.

---

## 1. POST `/api/marketing/analysis/start` - Обновлен

### Новый query параметр:

-   **`generateV2`** (boolean, опционально, по умолчанию `false`)
    -   Если `true`, вместе с обычным анализом создается и сохраняется v2 анализ
    -   Оба анализа автоматически связываются между собой

### Изменения в ответе:

**Если `generateV2=false` (по умолчанию):**

```json
{
    "success": true,
    "message": "Анализ запущен успешно",
    "data": {
        "analysisId": "string",
        "status": "processing",
        "estimatedCompletionTime": "2024-01-01T12:00:00",
        "message": "Комплексный анализ (...) запущен успешно..."
    }
}
```

**Если `generateV2=true`:**

```json
{
    "success": true,
    "message": "Анализ запущен успешно",
    "data": {
        "analysisId": "string",
        "status": "processing",
        "estimatedCompletionTime": "2024-01-01T12:00:00",
        "message": "Комплексный анализ (...) запущен успешно...",
        "v2AnalysisId": "string" // ← НОВОЕ ПОЛЕ
    }
}
```

### Пример использования:

```javascript
// Создание обычного анализа
POST /api/marketing/analysis/start
Body: { ... }

// Создание обычного анализа + v2 анализа
POST /api/marketing/analysis/start?generateV2=true
Body: { ... }
```

---

## 2. GET `/api/marketing/analysis/my` - Обновлен

### Новое поле в ответе:

Каждый элемент в списке теперь содержит опциональное поле `v2AnalysisId`:

```json
{
    "success": true,
    "data": [
        {
            "analysisId": "string",
            "businessNiche": "string",
            "product": "string",
            // ... другие поля ...
            "v2AnalysisId": "string" // ← НОВОЕ ПОЛЕ (может быть null)
        }
    ]
}
```

**Примечание:** Поле `v2AnalysisId` будет присутствовать только если для данного анализа был создан связанный v2 анализ.

---

## 3. GET `/api/marketing/analysis/{id}` - Обновлен

### Новое поле в ответе:

Эндпойнт теперь возвращает опциональное поле `v2AnalysisId`:

```json
{
  "success": true,
  "data": {
    "analysisId": "string",
    "status": "string",
    "createdAt": "2024-01-01T12:00:00",
    "completedAt": "2024-01-01T12:00:00",
    "v2AnalysisId": "string",  // ← НОВОЕ ПОЛЕ (может быть null)
    "report": { ... }
  }
}
```

**Примечание:** Поле `v2AnalysisId` будет присутствовать только если для данного анализа был создан связанный v2 анализ.

---

## 4. GET `/api/marketing/analysis/v2/{id}` - Новый эндпойнт

### Описание:

Получение сохраненного v2 анализа по ID.

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

-   **Path:** `id` (string) - ID v2 анализа
-   **Header:** `Authorization` (JWT токен)

### Ответ:

**Успешный ответ (200):**

```json
{
  "success": true,
  "data": {
    "reportTitle": "string",
    "sections": {
      "marketOverview": { ... },
      "targetAudience": { ... },
      "competitiveEnvironment": { ... },
      // ... другие секции ...
    }
  }
}
```

**Ошибки:**

-   `401` - Не авторизован
-   `404` - Анализ не найден
-   `403` - Нет доступа к этому анализу

### Пример использования:

```javascript
GET /api/marketing/analysis/v2/507f1f77bcf86cd799439011
Authorization: Bearer <token>
```

---

## 5. POST `/api/marketing/analysis/start/v2` - Без изменений

Эндпойнт работает как прежде - создает только v2 анализ без связи с обычным анализом.

---

## Рекомендации для фронтенда

1. **При создании анализа:**

    - Используйте `generateV2=true` если нужен v2 анализ сразу
    - Сохраняйте `v2AnalysisId` из ответа для последующего доступа

2. **При отображении списка анализов:**

    - Проверяйте наличие поля `v2AnalysisId`
    - Если поле присутствует, можно показать кнопку/ссылку для просмотра v2 анализа

3. **При получении конкретного анализа:**

    - Поле `v2AnalysisId` доступно в ответе `GET /api/marketing/analysis/{id}`
    - Используйте это поле для навигации к v2 анализу

4. **При получении v2 анализа:**
    - Используйте `GET /api/marketing/analysis/v2/{id}` для получения полных данных
    - Обрабатывайте случаи, когда v2 анализ может быть не найден (404)

---

## Обратная совместимость

✅ Все изменения обратно совместимы:

-   Существующие запросы без `generateV2` работают как прежде
-   Поле `v2AnalysisId` опционально и не ломает существующий код
-   Новые эндпойнты не влияют на старую функциональность
