from datetime import datetime, time from typing import Optional from domain.abri.models import SlotCode _MIDDAY = time(12, 0) def slot_for_confirmed_time(confirmed_time: Optional[str]) -> SlotCode: if confirmed_time is None or confirmed_time.strip() == "": return "AD" parsed = datetime.strptime(confirmed_time.strip(), "%H:%M").time() return "AM" if parsed < _MIDDAY else "PM"