from __future__ import annotations from datetime import datetime from uuid import UUID from pydantic import BaseModel class AreaCreate(BaseModel): name: str geometry: dict crs: str | None = "EPSG:4326" class AreaUpdate(BaseModel): name: str | None = None geometry: dict | None = None crs: str | None = None class AreaRead(BaseModel): id: UUID project_id: UUID name: str original_crs: str | None area_m2: float | None created_at: datetime | None = None geometry_type: str | None = None geometry: dict | None = None model_config = {"from_attributes": True} class AreaListItem(AreaRead): pass class AreaList(BaseModel): items: list[AreaRead] total: int limit: int offset: int class MunicipalitySearchItem(BaseModel): niscode: str name: str name_nl: str | None = None name_fr: str | None = None name_de: str | None = None class MunicipalitySearchList(BaseModel): items: list[MunicipalitySearchItem] total: int