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

3.1 KiB
Raw Blame History

Export Formats - VoIdea

Дата: 2026-05-10 Статус: Backlog (часть WebUI)


Обзор

Экспорт идей в различных форматах для резервного копирования и интеграции.


Поддерживаемые форматы

1. 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, блогами

# Моя идея

## Описание
Текст идеи

## Анализ

### Координатор
...

### Организатор
...

*Экспортировано: 2026-05-10*

3. PDF

Использование: Печать, отчёты, презентации

  • Титульный лист с датой
  • Оглавление
  • Каждая идея — отдельная секция
  • Анализ ИИ-агентов

4. CSV (опционально)

Использование: Аналитика, таблицы

id,title,created_at,analysis_count
uuid,Моя идея,2026-05-01,5

API

# Экспорт всех идей пользователя
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 — после завершения
# 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)