from django import forms

from apps.rims.fleet.models import MaintenanceRecord, TripLog, Vehicle, VehicleBooking


class VehicleForm(forms.ModelForm):
    class Meta:
        model = Vehicle
        fields = [
            "registration", "make", "model", "year", "fuel_type",
            "seating_capacity", "status", "assigned_driver",
            "insurance_expiry", "next_service_date", "notes",
        ]
        widgets = {
            "insurance_expiry": forms.DateInput(attrs={"type": "date"}),
            "next_service_date": forms.DateInput(attrs={"type": "date"}),
            "notes": forms.Textarea(attrs={"rows": 3}),
        }


class VehicleBookingForm(forms.ModelForm):
    class Meta:
        model = VehicleBooking
        fields = ["vehicle", "purpose", "destination", "departure_datetime", "return_datetime", "passengers", "notes"]
        widgets = {
            "departure_datetime": forms.DateTimeInput(attrs={"type": "datetime-local"}),
            "return_datetime": forms.DateTimeInput(attrs={"type": "datetime-local"}),
            "notes": forms.Textarea(attrs={"rows": 3}),
        }


class TripLogForm(forms.ModelForm):
    class Meta:
        model = TripLog
        fields = ["driver", "odometer_start", "odometer_end", "fuel_added_litres", "fuel_cost", "notes"]
        widgets = {
            "notes": forms.Textarea(attrs={"rows": 3}),
        }


class MaintenanceRecordForm(forms.ModelForm):
    class Meta:
        model = MaintenanceRecord
        fields = [
            "maintenance_type", "date", "odometer", "cost",
            "service_provider", "description", "next_due_date",
        ]
        widgets = {
            "date": forms.DateInput(attrs={"type": "date"}),
            "next_due_date": forms.DateInput(attrs={"type": "date"}),
            "description": forms.Textarea(attrs={"rows": 3}),
        }
