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 typing import Optional, List, Dict, Any
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
|
||||
# =============================================================================
|
||||
@@ -720,3 +721,45 @@ class DagiRouterSummary(BaseModel):
|
||||
phantom: int = 0
|
||||
stale: int = 0
|
||||
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