from typing import Protocol class BookingRepository(Protocol): """Persistence interface used by scheduling and confirmation.""" @property def technicians(self) -> dict[str, Technician]: """Return technicians keyed by id.""" def list_bookings(self) -> list[Booking]: """Return all confirmed bookings.""" def create_booking( self, option: TimeOption, details: BookingDetails, price: float ) -> Booking: """Persist a booking after re-checking overlap; raise ValueError if taken."""