"""Utilities for date/time query operations.""" from datetime import UTC, date, datetime, time def date_to_start_datetime(d: date) -> datetime: """Convert a date to datetime at start of day (00:00:00) in UTC.""" return datetime.combine(d, time.min, tzinfo=UTC) def date_to_end_datetime(d: date) -> datetime: """Convert a date to datetime at end of day (23:59:59.999999) in UTC.""" return datetime.combine(d, time.max, tzinfo=UTC) def date_range_to_datetime_range( start_date: date, end_date: date ) -> tuple[datetime, datetime]: """ Convert a date range to datetime range. Returns: Tuple of (start_datetime, end_datetime) where: - start_datetime is start_date at 00:00:00 UTC - end_datetime is end_date at 23:59:59.999999 UTC """ return date_to_start_datetime(start_date), date_to_end_datetime(end_date)