28 lines
675 B
Python
28 lines
675 B
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ChangeDetectionRequest(BaseModel):
|
|
source_dataset_id: UUID
|
|
target_dataset_id: UUID
|
|
iou_threshold: float = Field(default=0.8, ge=0.0, le=1.0)
|
|
include_unchanged: bool = True
|
|
|
|
|
|
class ChangeDetectionSummary(BaseModel):
|
|
source_dataset_id: UUID
|
|
target_dataset_id: UUID
|
|
source_feature_count: int
|
|
target_feature_count: int
|
|
added_count: int
|
|
removed_count: int
|
|
unchanged_count: int
|
|
iou_threshold: float
|
|
warnings: list[str] = Field(default_factory=list)
|
|
generated_at: datetime
|
|
geojson: dict
|