from __future__ import annotations from uuid import UUID from pydantic import BaseModel, Field from .operations import VectorSelectionBBox class SpwTerrainAcquireRequest(BaseModel): bbox: VectorSelectionBBox area_id: UUID | None = None product_key: str = "spw_mnt_1m_2021_2022" resolution_m: float | None = Field(default=None, ge=1.0, le=10.0) force_refresh: bool = False class SpwTerrainProductRead(BaseModel): key: str display_name: str surface_model: str source_filename: str native_resolution_m: float analysis_resolution_m: float source_crs: str vertical_reference: str acquisition_period: str catalog_url: str attribution: str license_note: str limitation_message: str coverage_zones: list[str] configured: bool status: str class SpwTerrainAcquisitionResult(BaseModel): output_dataset_id: UUID reused: bool provider: str product_key: str display_name: str surface_model: str native_resolution_m: float resolution_m: float width: int height: int valid_pixel_count: int nodata_value: float bbox_epsg4326: list[float] bbox_epsg3812: list[float] vertical_reference: str acquisition_period: str attribution: str limitation_message: str