22 lines
600 B
Python
22 lines
600 B
Python
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)
|