import pendulum from models import BookingFilter, Club from pendulum import DateTime from tests.fixtures import a_booking_filter def retrieve_booking_datetime( a_booking_filter: BookingFilter, a_club: Club ) -> DateTime: """ Utility to retrieve the booking datetime from the booking filter and the club :param a_booking_filter: the booking filter that contains the date to book :param a_club: the club which has the number of days before the date and the booking time """ booking_opening = a_club.booking_platform.booking_opening opening_time = pendulum.parse(booking_opening.opening_time) booking_hour = opening_time.hour booking_minute = opening_time.minute date_to_book = a_booking_filter.date return date_to_book.subtract(days=booking_opening.days_before).at( booking_hour, booking_minute )