from __future__ import annotations from uuid import UUID from pydantic import BaseModel, Field from .operations import VectorSelectionBBox class OrthophotoAcquireRequest(BaseModel): bbox: VectorSelectionBBox area_id: UUID | None = None product_key: str = "most_recent" force_refresh: bool = False resolution_m: float | None = Field(default=None, ge=0.1, le=2.0) class OrthophotoProductRead(BaseModel): key: str display_name: str observation_label: str temporal_granularity: str native_resolution_m: float supports_detection: bool color_mode: str catalog_url: str limitation_message: str provider: str coverage_zone: str attribution: str license_note: str class OrthophotoAcquisitionResult(BaseModel): output_dataset_id: UUID reused: bool provider: str product_key: str display_name: str observation_label: str temporal_granularity: str supports_detection: bool layer: str width: int height: int resolution_m: float bbox_epsg4326: list[float] bbox_epsg31370: list[float] attribution: str limitation_message: str