"""Schemas de contratación (booking)."""
from datetime import datetime

from pydantic import BaseModel, Field


class BookingCreateIn(BaseModel):
    musician_id: int
    service_type: str
    mode: str = "express"                 # express | scheduled
    scheduled_at: datetime | None = None  # requerido si mode == scheduled
    lat: float | None = Field(default=None, ge=-90, le=90)
    lng: float | None = Field(default=None, ge=-180, le=180)
    address: str | None = None
    notes: str | None = None


class BookingOut(BaseModel):
    id: int
    client_id: int
    musician_id: int
    service_type: str
    mode: str
    scheduled_at: datetime | None = None
    status: str
    address: str | None = None
    notes: str | None = None
    price: float | None = None
    currency: str
    created_at: datetime

    model_config = {"from_attributes": True}


class BookingStatusIn(BaseModel):
    # accepted | rejected | completed | cancelled
    status: str
