from pydantic import BaseModel, Field from uuid import UUID from datetime import datetime from fastapi_demo.app.domain.status import AssetStatus class AssetCreate(BaseModel): name: str = Field(min_length=1) serial: str | None = None class AssetOut(BaseModel): id: UUID name: str serial: str | None status: AssetStatus revision: int updated_at: datetime class AssetTransitionIn(BaseModel): to_status: AssetStatus expected_revision: int note: str | None = None class AssetEventOut(BaseModel): asset_id: UUID from_status: AssetStatus to_status: AssetStatus at: datetime note: str | None = None