from pydantic import BaseModel, Field
from datetime import datetime
from typing import List, Optional


class Alert(BaseModel):
    id: str

    event: str
    category: str
    tier: str

    headline: Optional[str] = None
    description: Optional[str] = None
    instruction: Optional[str] = None

    effective: Optional[datetime] = None
    expires: Optional[datetime] = None

    affected_counties: List[str] = Field(default_factory=list)

    population: Optional[int] = None
    homes: Optional[int] = None
    hospitals: Optional[int] = None
    schools: Optional[int] = None

    source: str = "NWS"

    radar_indicated: bool = False
    confirmed: bool = False
