from datetime import datetime, timedelta import pytz OMAN_TZ = pytz.timezone("Asia/Muscat") def utc_now_iso() -> str: return datetime.utcnow().replace(microsecond=0).isoformat() + "Z" def muscat_now() -> datetime: return datetime.now(OMAN_TZ) local_now = muscat_now def local_date_str() -> str: return muscat_now().strftime("%Y-%m-%d") def muscat_date_str() -> str: return local_date_str() def business_day_for_close(now: datetime | None = None) -> str: if now is None: now = muscat_now() if now.hour < 6: return (now.date() - timedelta(days=1)).isoformat() return now.date().isoformat() business_date_for_closing = business_day_for_close def should_auto_close(now: datetime | None = None) -> bool: if now is None: now = muscat_now() return now.hour >= 6