from pydantic import BaseModel, Field
from typing import List, Optional
from datetime import datetime
class MoodArc(BaseModel):
start: str = Field(..., description="Starting emotional state (e.g., 'awkward')")
end: str = Field(..., description="Ending emotional state (e.g., 'curious')")
class SmallMomentScenario(BaseModel):
id: str = Field(..., description="Unique identifier for the scenario")
title: str = Field(..., description="Short human-readable name for the scenario")
created_at: datetime = Field(default_factory=datetime.utcnow)
learning_goal: str = Field(..., description="What the agent is intended to learn from this scenario")
setting: str = Field(..., description="Scene or physical/social context for the interaction")
mood_arc: MoodArc = Field(..., description="Emotional trajectory of the interaction")
social_trigger: str = Field(..., description="Event or moment that kicks off the interaction")
npc_persona_id: str = Field(..., description="Reference ID for the NPC's persona")
tags: Optional[List[str]] = Field(default_factory=list, description="Optional tags for classification or retrieval")
notes: Optional[str] = Field(None, description="Optional design notes or metadata")
dialogue_paths: Optional[List[str]] = Field(default_factory=list, description="Possible dialogue trajectory IDs")
complexity: Optional[str] = Field("simple", description="Optional difficulty level (simple, complex, branching, etc.)")