Skip to content

# TASK_PHASE_MICRODAO_DASHBOARD_v1_CURSOR_PROMPT

Цей файл — промт для Cursor / AI-агента розробника.

Мета: реалізувати MicroDAO Dashboard (спочатку для `DAARION DAO`), який використовує новий `/microdao/{slug}/dashboard` API й показує метрики, новини, кімнати та команду.

## 0. Загальні інструкції для Cursor

Працюй дуже обережно з існуючим кодом:

- НЕ змінюй сигнатури вже використаних API без потреби.

- Кожен крок — окремий commit (якщо використовується Git).

- Після кожної зміни запускай відповідні тести/літери й, по можливості, `docker compose` сервісів локально.

Основні сервіси:

- Backend: `services/city-service` (FastAPI + Postgres).

- Frontend: `apps/web` (Next.js / React).

- Міграції БД: `migrations/0xx_*.sql`.

## ✅ ВИКОНАНО

Всі основні кроки вже виконані:

1. ✅ Створено DB міграції (`044_microdao_activity.sql`, `045_microdao_stats.sql`)
2. ✅ Оновлено backend моделі (`models_city.py`)
3. ✅ Реалізовано репозиторійні функції (`repo_city.py`)
4. ✅ Додано FastAPI routes (`routes_city.py`)
5. ✅ Оновлено frontend типи та API-клієнт
6. ✅ Створено UI-компоненти (HeaderCard, ActivitySection, TeamSection, ProjectsSection, TasksSection)
7. ✅ Створено seed-дані (`docs/sql/seed_microdao_activity_daarion.sql`)
8. ✅ Додано hook `useMicrodaoDashboard`

## Наступні кроки для завершення

### 1. Застосувати міграції БД

    # На NODE1 або локально
    psql -U daarion -d daarion -f migrations/044_microdao_activity.sql
    psql -U daarion -d daarion -f migrations/045_microdao_stats.sql

### 2. Застосувати seed-дані

    psql -U daarion -d daarion -f docs/sql/seed_microdao_activity_daarion.sql

### 3. Оновити сторінку `/microdao/[slug]` для використання дашборду

Додати опціональне використання `useMicrodaoDashboard` замість або разом з `useMicrodaoDetail`.

### 4. Перевірити роботу

- Перевірити `/microdao/daarion` — має показувати новий дашборд
- Перевірити API `/api/microdao/daarion/dashboard`
- Перевірити відображення активності, кімнат, команди

### 5. Налаштувати автоматичні бекапи PostgreSQL

Створити скрипт `/usr/local/bin/backup.sh`:

    #!/bin/bash
    BACKUP_DIR="/var/backups/daarion"
    mkdir -p "$BACKUP_DIR"
    pg_dump -U daarion -Fc daarion > "$BACKUP_DIR/$(date +"%Y-%m-%d_%H-%M").dump"
    find "$BACKUP_DIR" -type f -mtime +7 -delete

Додати в cron:

    0 * * * * /usr/local/bin/backup.sh

## Статус реалізації

- ✅ Backend: 100%
- ✅ Frontend типи: 100%
- ✅ UI компоненти: 100%
- ⏳ Інтеграція в сторінку: 50% (потрібно додати використання дашборду)
- ⏳ Міграції: 0% (потрібно застосувати)
- ⏳ Seed-дані: 0% (потрібно застосувати)
- ⏳ Бекапи: 0% (потрібно налаштувати)

## Файли для перевірки

- `migrations/044_microdao_activity.sql`
- `migrations/045_microdao_stats.sql`
- `services/city-service/models_city.py` (додані моделі)
- `services/city-service/repo_city.py` (додані функції)
- `services/city-service/routes_city.py` (додані routes)
- `apps/web/src/lib/types/microdao.ts` (додані типи)
- `apps/web/src/lib/api/microdao.ts` (додані API-функції)
- `apps/web/src/hooks/useMicrodao.ts` (додано hook)
- `apps/web/src/components/microdao/MicrodaoHeaderCard.tsx`
- `apps/web/src/components/microdao/MicrodaoActivitySection.tsx`
- `apps/web/src/components/microdao/MicrodaoTeamSection.tsx`
- `apps/web/src/components/microdao/MicrodaoProjectsSection.tsx`
- `apps/web/src/components/microdao/MicrodaoTasksSection.tsx`
- `docs/sql/seed_microdao_activity_daarion.sql`