33 lines
663 B
Python
33 lines
663 B
Python
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
|