# forms.py
from django import forms
from datetime import datetime, timedelta
from django.conf import settings

PACKAGE_CHOICES = [
    ("A", "Package A"),
    ("B", "Package B"),
    ("C", "Package C"),
]

class ReservationInlineGuestForm(forms.Form):
    PACKAGE_ROOM_MAP = {
        "A": [settings.OHIP_ROOM_TYPE1, settings.OHIP_ROOM_TYPE2, settings.OHIP_ROOM_TYPE3],
        "B": [settings.OHIP_ROOM_TYPE4, settings.OHIP_ROOM_TYPE5, settings.OHIP_ROOM_TYPE6],
        "C": [settings.OHIP_ROOM_TYPE7, settings.OHIP_ROOM_TYPE8, settings.OHIP_ROOM_TYPE9],
    }

    PACKAGE_CHOICES = [
        (key, f"Package {key} ({', '.join(room_types)})")
        for key, room_types in PACKAGE_ROOM_MAP.items()
    ]

    first_name = forms.CharField(max_length=100, label="First Name")
    last_name = forms.CharField(max_length=100, label="Last Name")
    arrival_date = forms.DateField(label="Arrival Date", widget=forms.DateInput(attrs={"type": "date"}))
    departure_date = forms.DateField(label="Departure Date", required=False, widget=forms.DateInput(attrs={"type": "date", "readonly": "readonly"}))
    package = forms.ChoiceField(label="Room Package", choices=PACKAGE_CHOICES)

    def clean(self):
        cleaned_data = super().clean()
        arrival_date = cleaned_data.get("arrival_date")
        if arrival_date:
            cleaned_data["departure_date"] = arrival_date + timedelta(days=5)
        return cleaned_data
