from __future__ import annotations from datetime import datetime from typing import Literal from uuid import UUID from pydantic import BaseModel class ProjectCreate(BaseModel): name: str description: str | None = None region: str | None = "Belgium and Belgian North Sea" class ProjectUpdate(BaseModel): name: str | None = None description: str | None = None region: str | None = None status: Literal["active", "archived"] | None = None class ProjectRead(BaseModel): id: UUID name: str description: str | None = None region: str status: str created_at: datetime | None = None updated_at: datetime | None = None model_config = {"from_attributes": True} class ProjectListItem(ProjectRead): pass class ProjectList(BaseModel): items: list[ProjectRead] total: int limit: int offset: int class ProjectDeleteResult(BaseModel): deleted: bool