Files
voidea/docs/backlog/export-formats-note.md

143 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Export Formats - VoIdea
**Дата:** 2026-05-10
**Статус:** Backlog (часть WebUI)
---
## Обзор
Экспорт идей в различных форматах для резервного копирования и интеграции.
---
## Поддерживаемые форматы
### 1. JSON
**Использование:** Резервное копирование, импорт в другие системы
```json
{
"version": "1.0.0",
"exported_at": "2026-05-10T12:00:00Z",
"ideas": [
{
"id": "uuid",
"title": "Моя идея",
"content": "Описание",
"created_at": "2026-05-01T10:00:00Z",
"updated_at": "2026-05-05T15:30:00Z",
"analysis": {
"coordinator": {...},
"organizer": {...}
}
}
]
}
```
### 2. Markdown
**Использование:** Интеграция с Obsidian, Notion, блогами
```markdown
# Моя идея
## Описание
Текст идеи
## Анализ
### Координатор
...
### Организатор
...
*Экспортировано: 2026-05-10*
```
### 3. PDF
**Использование:** Печать, отчёты, презентации
- Титульный лист с датой
- Оглавление
- Каждая идея — отдельная секция
- Анализ ИИ-агентов
### 4. CSV (опционально)
**Использование:** Аналитика, таблицы
```csv
id,title,created_at,analysis_count
uuid,Моя идея,2026-05-01,5
```
---
## API
```python
# Экспорт всех идей пользователя
GET /api/v1/export?format=json|markdown|pdf
# Экспорт одной идеи
GET /api/v1/ideas/{id}/export?format=json|markdown|pdf
# Параметры
?include_analysis=true # Включить ИИ-анализ
?include_metadata=true # Включить метаданные
```
---
## Обработка больших объёмов
1. **Асинхронная генерация** — Celery task
2. **Progress tracking** — WebSocket/SSE
3. **Download link** — после завершения
```python
# Celery task
@celery.task
def generate_export(user_id: UUID, format: str):
# 1. Создать задачу
export_task = create_export_task(user_id, format)
# 2. Генерация
result = await generate_file(export_task)
# 3. Уведомление
await notify_user(user_id, export_task.id)
return result
```
---
## Права доступа
- Экспорт только своих идей
- Анализ доступен только владельцу
- Логирование всех экспортов
---
## TODO
- [ ] Создать export service
- [ ] Реализовать JSON export
- [ ] Реализовать Markdown export
- [ ] Реализовать PDF export (weasyprint)
- [ ] Асинхронная генерация
- [ ] UI (кнопка экспорта)
- [ ] Тесты
- [ ] Документация
---
*Создано: 2026-05-10*
*Часть WebUI (Block 4)*