# 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. Застосувати міграції БД ```bash # На 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-дані ```bash 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`: ```bash #!/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: ```bash 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`