fix(models): Add MicrodaoActivity and related classes to models_city

This commit is contained in:
Apple
2025-12-02 03:21:20 -08:00
parent 973b58f08f
commit 95c9a17a7a

View File

@@ -5,6 +5,7 @@ Pydantic Models для City Backend
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any from typing import Optional, List, Dict, Any
from datetime import datetime from datetime import datetime
from uuid import UUID
# ============================================================================= # =============================================================================
@@ -720,3 +721,45 @@ class DagiRouterSummary(BaseModel):
phantom: int = 0 phantom: int = 0
stale: int = 0 stale: int = 0
last_audit_at: Optional[datetime] = None last_audit_at: Optional[datetime] = None
# =============================================================================
# MicroDAO Activity & Dashboard
# =============================================================================
class MicrodaoActivity(BaseModel):
"""Activity feed item for MicroDAO"""
id: UUID
microdao_slug: str
kind: str # 'post', 'event', 'update'
title: Optional[str] = None
body: str
author_agent_id: Optional[UUID] = None
author_name: Optional[str] = None
created_at: datetime
class CreateMicrodaoActivity(BaseModel):
"""Request to create a new activity item"""
kind: str = Field(pattern="^(post|event|update)$")
title: Optional[str] = None
body: str
author_agent_id: Optional[UUID] = None
author_name: Optional[str] = None
class MicrodaoStats(BaseModel):
"""Statistics for MicroDAO dashboard"""
rooms_count: int
citizens_count: int
agents_count: int
last_update_at: Optional[datetime] = None
class MicrodaoDashboard(BaseModel):
"""Complete dashboard data for a MicroDAO"""
microdao: MicrodaoSummary
stats: MicrodaoStats
recent_activity: List[MicrodaoActivity]
rooms: List[CityRoomSummary]
citizens: List[PublicCitizenSummary]