"""Pydantic schemas for CoordComponentState.""" from datetime import datetime from typing import Optional from pydantic import BaseModel, Field class CoordComponentStateUpsert(BaseModel): """Input schema for upserting a component state.""" state: str = Field(..., description="State: deployed, building, stable, broken, unknown", max_length=50) version: Optional[str] = Field(None, description="Version string or git SHA", max_length=100) notes: Optional[str] = Field(None, description="Freeform notes") updated_by: str = Field(..., description="Session performing this update", max_length=200) class CoordComponentStateResponse(BaseModel): """Output schema for a component state.""" project_key: str component: str state: str version: Optional[str] notes: Optional[str] updated_by: str created_at: datetime updated_at: datetime model_config = {"from_attributes": True}