"""Domain models for Turfslot utilities."""

from __future__ import annotations

from dataclasses import dataclass
from datetime import datetime
from typing import ClassVar, Tuple


@dataclass(frozen=True)
class SportSlot:
    """Represents a validated booking request for a single court and sport."""

    sport_type: str
    court_id: str
    start_time: datetime
    end_time: datetime
    duration_hours: float

    SUPPORTED_SPORTS: ClassVar[Tuple[str, ...]] = ("BADMINTON", "TABLE_TENNIS", "TENNIS")


@dataclass(frozen=True)
class Court:
    """Metadata about a specific court that can be priced."""

    court_id: str
    sport_type: str
    name: str
    hourly_rate: float
