from __future__ import annotations from uuid import UUID from pydantic import BaseModel from .operations import VectorSelectionBBox class GrbAcquireRequest(BaseModel): bbox: VectorSelectionBBox area_id: UUID | None = None product_key: str = "buildings" force_refresh: bool = False class GrbProductRead(BaseModel): key: str display_name: str reference_layer_name: str collections: list[str] geometry_types: list[str] source_crs: str authority_level: str catalog_url: str attribution: str license_note: str limitation_message: str class GrbAcquisitionResult(BaseModel): output_dataset_id: UUID reused: bool provider: str product_key: str display_name: str reference_layer_name: str collections: list[str] feature_count: int candidate_feature_count: int page_count: int bbox_epsg4326: list[float] source_version: str attribution: str limitation_message: str