feat: add MicroDAO balance checks and DAARION.city integration

- Update Wallet Service: balance checks (1 DAARION for create, 0.01 for usage)
- Update DAOFactory Service: use new balance checks
- Add DB migration: teams type field and city_links table
- Add DAARION.city seed data
- Create teams API routes with balance validation
- Add DAARION.city remote repository
- Add sync scripts and documentation
This commit is contained in:
Apple
2025-11-15 08:56:14 -08:00
parent c552199eed
commit 582ab75b03
13 changed files with 994 additions and 25 deletions

179
IMPLEMENTATION_PLAN.md Normal file
View File

@@ -0,0 +1,179 @@
# План реалізації: Console + DAARION.city + Створення MicroDAO
## 📋 Поточний стан проєкту
### ✅ Що вже є:
- Базова структура React + TypeScript
- Wallet Service (перевірка балансів DAAR/DAARION)
- DAOFactory Service (створення DAO)
- PDP Service (перевірка політик)
- БД міграції (teams, channels, messages)
- Onboarding компоненти
### ❌ Що потрібно додати:
- Console UI (адмін-панель)
- Перевірка стейкінгу (замість балансу)
- Таблиця `staking` в БД
- Поле `type` в таблиці `teams` (city, platform, community)
- DAARION.city як перше MicroDAO (seed дані)
- Створення MicroDAO з перевіркою стейкінгу
- Admin роль з перевіркою 0.01 DAARION
---
## ❓ Питання для уточнення
### 1. Console / Адмін-панель
**Q1.1:** Що таке "console консоль"?
- [ ] Окрема сторінка `/console` на сайті DAARION.city?
- [ ] Вбудований віджет на існуючій сторінці?
- [ ] Окремий піддомен `console.daarion.city`?
**Q1.2:** Які функції мають бути в console?
- [ ] Створення нового MicroDAO
- [ ] Перегляд списку існуючих MicroDAO
- [ ] Управління DAARION.city як SuperDAO
- [ ] Перегляд міських платформ (GREENFOOD, EnergyUnion)
- [ ] Wallet інтерфейс (баланси, стейкінг)
- [ ] Інші функції?
**Q1.3:** Технічний стек для console?
- [ ] React компонент на існуючому сайті DAARION.city?
- [ ] Який фреймворк? (Next.js, Vite, інше)
- [ ] Чи є вже існуючий код console?
---
### 2. Порог для створення MicroDAO
**Q2.1:** Уточнення порогу
- В документації: "1 DAAR **або** 0.01 DAARION"
- Ти кажеш: "мінімум **1 DAARION у стейкінгу**"
**Питання:**
- [ ] Правильно: **1 DAARION у стейкінгу** (не просто баланс)?
- [ ] Чи можна альтернатива: 1 DAAR у стейкінгу?
**Q2.2:** Перевірка стейкінгу
- Де зберігається інформація про стейкінг? (таблиця `staking`?)
- Як перевіряється стейкінг перед створенням MicroDAO?
- Чи потрібна перевірка через Wallet Service або on-chain?
---
### 3. Роль Admin та 0.01 DAARION
**Q3.1:** Роль Admin
- [ ] Це роль в конкретному MicroDAO?
- [ ] Чи це глобальна роль в DAARION.city?
**Q3.2:** 0.01 DAARION для Admin
- [ ] Це мінімум для отримання ролі Admin?
- [ ] Це мінімум для запрошення інших користувачів?
- [ ] Це мінімум для постійного використання (maintenance fee)?
**Q3.3:** Перевірка перед запрошенням
- [ ] Перевіряється баланс або стейкінг?
- [ ] Чи потрібна перевірка при кожному запрошенні?
---
### 4. Міські платформи
**Q4.1:** Які саме міські платформи вже існують?
- [ ] GREENFOOD
- [ ] EnergyUnion
- [ ] WaterUnion
- [ ] Інші?
**Q4.2:** Як вони об'єднані?
- [ ] Через `city_links` таблицю?
- [ ] Чи вони вже створені як MicroDAO типу "platform"?
- [ ] Чи потрібно їх створити зараз?
**Q4.3:** Відображення в console
- [ ] Як окремий розділ "Міські платформи"?
- [ ] Чи як частина дерева MicroDAO?
---
### 5. UI для створення MicroDAO
**Q5.1:** Форма чи діалог?
- [ ] Форма з полями (назва, опис, тип)
- [ ] Діалог з агентом (як в onboarding)
- [ ] Інше?
**Q5.2:** Які поля обов'язкові?
- [ ] Назва
- [ ] Опис
- [ ] Тип (community, guild, lab, personal)
- [ ] Інші?
---
## 🎯 Пропозиція плану реалізації
### Фаза 1: Backend Foundation
1. ✅ Додати таблицю `staking` в БД
2. ✅ Додати поле `type` в таблицю `teams` (city, platform, community, guild, lab, personal)
3. ✅ Додати таблицю `city_links` (parent_team_id, child_team_id, relation_type)
4. ✅ Оновити Wallet Service для перевірки стейкінгу
5. ✅ Оновити DAOFactory Service для перевірки стейкінгу (1 DAARION)
6. ✅ Додати seed дані для DAARION.city (type='city', slug='daarion')
### Фаза 2: Console UI
1. ✅ Створити сторінку `/console`
2. ✅ Компонент "Створити MicroDAO" (з перевіркою стейкінгу)
3. ✅ Компонент "Список MicroDAO" (включаючи DAARION.city)
4. ✅ Компонент "Міські платформи" (якщо є)
5. ✅ Компонент "Wallet" (баланси, стейкінг)
### Фаза 3: Створення MicroDAO
1. ✅ API endpoint `POST /api/v1/teams` (з перевіркою стейкінгу)
2. ✅ UI форма/діалог для створення
3. ✅ Автоматичне створення DAO через DAOFactory
4. ✅ Автоматичне призначення ролі Owner
### Фаза 4: Admin роль та запрошення
1. ✅ Перевірка 0.01 DAARION для ролі Admin
2. ✅ API endpoint для запрошення користувачів
3. ✅ Перевірка стейкінгу перед запрошенням
---
## 🚀 Швидкий старт (після відповідей)
Після отримання відповідей на питання, я можу:
1. **Створити міграції БД** для:
- Таблиця `staking`
- Поле `type` в `teams`
- Таблиця `city_links`
- Seed дані для DAARION.city
2. **Оновити сервіси**:
- Wallet Service (перевірка стейкінгу)
- DAOFactory Service (перевірка 1 DAARION staked)
- PDP Service (політики для стейкінгу)
3. **Створити Console UI**:
- Сторінка `/console`
- Компоненти для створення MicroDAO
- Компоненти для перегляду списку
4. **Інтегрувати все разом**
---
## 📝 Наступні кроки
**Зараз:** Відповісти на питання вище
**Після відповідей:** Я створю детальний план реалізації та почну розробку
---
**Останнє оновлення:** 2024-11-14