from pydantic import BaseModel
from typing import List

class TilePoint(BaseModel):
    lat: float
    lon: float

class TileResponse(BaseModel):
    total_tiles: int
    skipped_tiles: int
    points: List[TilePoint]

class JobCreateRequest(BaseModel):
    city: str
    country: str
    keywords: List[str]
    campaign_name : str
    zoom: int = 15
    step: int = 3
    radius: int = 500
    depth: int = 10
    email: bool = True
    fast_mode: bool = False
    max_time: int = 360
    proxies: List[str] = []

class LeadStatusUpdate(BaseModel):
    status: str # pending, approved, wait

class BulkLeadStatusUpdate(BaseModel):
    lead_ids: List[int]
    status: str

class RunStatusUpdate(BaseModel):
    status: str