++
This commit is contained in:
@@ -1,65 +1,65 @@
|
||||
from __future__ import annotations
|
||||
from enum import Enum
|
||||
from typing import Any, Literal
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.models.world import WorldBlueprint, WorldMetrics
|
||||
|
||||
|
||||
class SimulationStatus(str, Enum):
|
||||
GENERATING_WORLD = "generating_world"
|
||||
GENERATING_CITIZENS = "generating_citizens"
|
||||
RUNNING = "running"
|
||||
PAUSED = "paused"
|
||||
COMPLETED = "completed"
|
||||
ERROR = "error"
|
||||
|
||||
|
||||
class SpeedMode(str, Enum):
|
||||
LIVE = "live"
|
||||
FAST_FORWARD = "fast_forward"
|
||||
JUMP = "jump"
|
||||
|
||||
|
||||
class SimulationState(BaseModel):
|
||||
id: str
|
||||
status: SimulationStatus = SimulationStatus.GENERATING_WORLD
|
||||
speed_mode: SpeedMode = SpeedMode.LIVE
|
||||
rules_text: str = ""
|
||||
world_name: str = ""
|
||||
world_blueprint: WorldBlueprint | None = None
|
||||
agents_generated: int = 0
|
||||
agents_total: int = 25
|
||||
current_day: int = 0
|
||||
current_round: int = 0
|
||||
total_rounds: int = 0
|
||||
action_count: int = 0
|
||||
created_at: str = ""
|
||||
is_public: bool = False
|
||||
forked_from: str | None = None
|
||||
|
||||
|
||||
class SSEEvent(BaseModel):
|
||||
type: Literal[
|
||||
"status",
|
||||
"world_ready",
|
||||
"citizen_generated",
|
||||
"round_complete",
|
||||
"narrative",
|
||||
"fast_forward_summary",
|
||||
"metrics_update",
|
||||
"injection_result",
|
||||
"simulation_complete",
|
||||
"error",
|
||||
"cancelled",
|
||||
"life_event",
|
||||
"demographics_loaded",
|
||||
"anomaly_detected",
|
||||
"coherence_warning",
|
||||
]
|
||||
data: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class ForkRequest(BaseModel):
|
||||
fork_at_day: int
|
||||
changes: str | None = None
|
||||
from __future__ import annotations
|
||||
from enum import Enum
|
||||
from typing import Any, Literal
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.models.world import WorldBlueprint, WorldMetrics
|
||||
|
||||
|
||||
class SimulationStatus(str, Enum):
|
||||
GENERATING_WORLD = "generating_world"
|
||||
GENERATING_CITIZENS = "generating_citizens"
|
||||
RUNNING = "running"
|
||||
PAUSED = "paused"
|
||||
COMPLETED = "completed"
|
||||
ERROR = "error"
|
||||
|
||||
|
||||
class SpeedMode(str, Enum):
|
||||
LIVE = "live"
|
||||
FAST_FORWARD = "fast_forward"
|
||||
JUMP = "jump"
|
||||
|
||||
|
||||
class SimulationState(BaseModel):
|
||||
id: str
|
||||
status: SimulationStatus = SimulationStatus.GENERATING_WORLD
|
||||
speed_mode: SpeedMode = SpeedMode.LIVE
|
||||
rules_text: str = ""
|
||||
world_name: str = ""
|
||||
world_blueprint: WorldBlueprint | None = None
|
||||
agents_generated: int = 0
|
||||
agents_total: int = 25
|
||||
current_day: int = 0
|
||||
current_round: int = 0
|
||||
total_rounds: int = 0
|
||||
action_count: int = 0
|
||||
created_at: str = ""
|
||||
is_public: bool = False
|
||||
forked_from: str | None = None
|
||||
|
||||
|
||||
class SSEEvent(BaseModel):
|
||||
type: Literal[
|
||||
"status",
|
||||
"world_ready",
|
||||
"citizen_generated",
|
||||
"round_complete",
|
||||
"narrative",
|
||||
"fast_forward_summary",
|
||||
"metrics_update",
|
||||
"injection_result",
|
||||
"simulation_complete",
|
||||
"error",
|
||||
"cancelled",
|
||||
"life_event",
|
||||
"demographics_loaded",
|
||||
"anomaly_detected",
|
||||
"coherence_warning",
|
||||
]
|
||||
data: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class ForkRequest(BaseModel):
|
||||
fork_at_day: int
|
||||
changes: str | None = None
|
||||
|
||||
Reference in New Issue
Block a user