fix(models): Add MicrodaoActivity and related classes to models_city
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user