from typing import Optional
from uuid import UUID

from pydantic import BaseModel


class CreatePlotRequest(BaseModel):
    plot_ref: str
    section_id: Optional[UUID] = None
    plot_type_id: Optional[UUID] = None
    status: str = "vacant"
    latitude: Optional[float] = None
    longitude: Optional[float] = None
    price_override: Optional[float] = None
    notes: Optional[str] = None
    is_veteran_section: bool = False


class UpdatePlotRequest(BaseModel):
    section_id: Optional[UUID] = None
    plot_type_id: Optional[UUID] = None
    latitude: Optional[float] = None
    longitude: Optional[float] = None
    price_override: Optional[float] = None
    notes: Optional[str] = None
    is_veteran_section: Optional[bool] = None


class ChangePlotStatusRequest(BaseModel):
    status: str  # vacant / reserved / occupied / hold
