from pydantic import BaseModel, Field from typing import Optional from datetime import datetime from app.models.site import Site class CoverageSettings(BaseModel): radius: float = 10000.0 resolution: float = 200.0 min_signal: float = -105.0 max_signal: float = -65.0 class Project(BaseModel): id: Optional[str] = None name: str = "global" created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) sites: list[Site] = [] settings: CoverageSettings = Field(default_factory=CoverageSettings)