37622-vm/core/booking.py
Flatlogic Bot 2a479c82a7 2.2
2026-01-20 17:13:37 +00:00

29 lines
1.1 KiB
Python

from .models import Booking, Service, Contact
from datetime import datetime, timedelta
def create_booking(contact_phone_number: str, service_name: str, booking_time_str: str) -> str:
"""
Creates a booking for a given service at a specific time.
"""
try:
contact = Contact.objects.get(phone_number=contact_phone_number)
service = Service.objects.get(name__iexact=service_name)
booking_time = datetime.fromisoformat(booking_time_str)
end_time = booking_time + timedelta(minutes=service.duration)
booking = Booking.objects.create(
contact=contact,
service=service,
start_time=booking_time,
end_time=end_time,
status='scheduled',
)
return f"Booking confirmed for {service.name} at {booking_time.strftime('%Y-%m-%d %H:%M')}."
except Contact.DoesNotExist:
return "Error: Contact not found."
except Service.DoesNotExist:
return f"Error: Service '{service_name}' not found."
except Exception as e:
return f"Error: Could not create booking. {e}"