diff --git a/IMAGE_GENERATION_FRONTEND.md b/IMAGE_GENERATION_FRONTEND.md
new file mode 100644
index 0000000..1c3dd51
--- /dev/null
+++ b/IMAGE_GENERATION_FRONTEND.md
@@ -0,0 +1,524 @@
+# Документация для фронтенда: Генерация изображений для постов
+
+## Обзор изменений
+
+В систему добавлена автоматическая генерация изображений для постов в социальных сетях. Теперь при создании маркетинговой стратегии для каждого поста автоматически генерируется уникальное изображение с помощью OpenAI DALL-E API. Изображения сохраняются в MinIO и прикрепляются к постам при публикации в Facebook.
+
+---
+
+## Новые поля в API
+
+### 1. PostCalendarItem (Календарь постов)
+
+В объекте `PostCalendarItem` добавлены два новых поля для работы с изображениями:
+
+| Поле | Тип | Описание | Обязательное |
+| --------------- | ------ | ------------------------------------------------------------------- | ------------ |
+| `imageUrl` | string | Путь к изображению в MinIO (используется для получения изображения) | Нет |
+| `imageFilename` | string | Имя файла изображения в MinIO | Нет |
+
+**Важно:**
+
+- Поля могут быть `null`, если генерация изображения не удалась
+- В этом случае пост публикуется без изображения
+- Оба поля содержат одинаковое значение (имя файла в MinIO)
+
+### 2. PostingTask (Задачи публикации)
+
+В объекте `PostingTask` также добавлены поля для изображений:
+
+| Поле | Тип | Описание | Обязательное |
+| --------------- | ------ | ----------------------------- | ------------ |
+| `imageUrl` | string | Путь к изображению в MinIO | Нет |
+| `imageFilename` | string | Имя файла изображения в MinIO | Нет |
+
+---
+
+## Изменения в API эндпоинтах
+
+### GET `/api/marketing/strategy/{strategyId}`
+
+Ответ теперь включает поля изображений в каждом элементе календаря постов.
+
+#### Пример ответа
+
+```json
+{
+ "success": true,
+ "data": {
+ "strategyId": "507f1f77bcf86cd799439011",
+ "analysisId": "507f1f77bcf86cd799439012",
+ "status": "completed",
+ "strategy": {
+ "postCalendar": [
+ {
+ "publishDate": "2024-01-15T10:00:00",
+ "platform": "Facebook",
+ "contentType": "пост",
+ "theme": "Презентация нового продукта",
+ "postText": "Мы рады представить наш новый продукт...",
+ "hashtags": ["#новинка", "#продукт", "#маркетинг"],
+ "publishTime": "10:00",
+ "imageUrl": "post_image_1705312800000_1234567890.png",
+ "imageFilename": "post_image_1705312800000_1234567890.png"
+ }
+ ]
+ }
+ }
+}
+```
+
+### GET `/api/marketing/analysis/{analysisId}/strategy`
+
+Аналогично, ответ включает поля изображений в календаре постов.
+
+---
+
+## Получение изображений
+
+### Способ 1: Через MinIO API (рекомендуется)
+
+Если у вас есть доступ к MinIO API, используйте `imageUrl` или `imageFilename` для получения изображения:
+
+```
+GET {minio-endpoint}/{bucket-name}/{imageFilename}
+```
+
+Где:
+
+- `minio-endpoint` - адрес вашего MinIO сервера (например, `http://92.38.48.166:9000`)
+- `bucket-name` - имя bucket (обычно `konturai`)
+- `imageFilename` - значение из поля `imageFilename` или `imageUrl`
+
+### Способ 2: Через бэкенд API (если реализован)
+
+Если бэкенд предоставляет эндпоинт для получения изображений, используйте его:
+
+```
+GET /api/marketing/images/{imageFilename}
+```
+
+**Примечание:** На данный момент такой эндпоинт не реализован. При необходимости его можно добавить.
+
+---
+
+## Рекомендации по отображению
+
+### 1. Проверка наличия изображения
+
+Всегда проверяйте наличие изображения перед отображением:
+
+```javascript
+// Пример на JavaScript/TypeScript
+const PostCard = ({ post }) => {
+ const hasImage = post.imageUrl && post.imageFilename;
+
+ return (
+
+
{post.theme}
+
{post.postText}
+
+ {hasImage ? (
+ {
+ // Fallback если изображение не загрузилось
+ e.target.style.display = 'none';
+ }}
+ />
+ ) : (
+
Изображение не сгенерировано
+ )}
+
+
+ {post.hashtags.map((tag) => (
+ #{tag}
+ ))}
+
+
+ );
+};
+```
+
+### 2. Обработка ошибок загрузки
+
+Всегда предусматривайте fallback для случаев, когда:
+
+- Изображение не сгенерировано (`imageUrl` = `null`)
+- Изображение не найдено в MinIO
+- Ошибка при загрузке изображения
+
+```javascript
+const [imageError, setImageError] = useState(false);
+
+const handleImageError = () => {
+ setImageError(true);
+};
+
+return (
+ <>
+ {post.imageUrl && !imageError ? (
+
+ ) : (
+