from typing import Any from pydantic import BaseModel, Field class SituationalAnalysisRequest(BaseModel): title: str = Field(..., min_length=1, max_length=200) objective: str = Field(..., min_length=1, max_length=1000) context: dict[str, Any] = Field(default_factory=dict) observations: list[str] = Field(default_factory=list) constraints: list[str] = Field(default_factory=list) preferred_model: str | None = Field(default=None, max_length=200) class SituationalAnalysisResponse(BaseModel): provider: str model: str content: str raw_response: dict[str, Any] = Field(default_factory=dict) class AIProviderStatusResponse(BaseModel): provider: str enabled: bool configured: bool model: str | None = None base_url: str | None = None