from typing import Protocol from uuid import UUID from fastapi_demo.app.schemas.asset import AssetOut, AssetEventOut class AssetsRepo(Protocol): def create(self, asset: AssetOut) -> None: ... def get(self, asset_id: UUID) -> AssetOut | None: ... def update(self, asset: AssetOut) -> None: ... def add_event(self, event: AssetEventOut) -> None: ... def list_events(self, asset_id: UUID) -> list[AssetEventOut]: ...