from django import forms

from flats.models import Building, Floor, Flat


class BuildingForm(forms.ModelForm):
    class Meta:
        model = Building
        fields = ["name", "total_floors"]
        widgets = {"name": forms.TextInput(attrs={"class": "form-control"}),
                   "total_floors": forms.NumberInput(attrs={"class": "form-control", "min": 0})}


class FloorForm(forms.ModelForm):
    class Meta:
        model = Floor
        fields = ["floor_name", "floor_number"]
        widgets = {"floor_name": forms.TextInput(attrs={"class": "form-control", "placeholder": "e.g. Ground, 1st, 2nd"}),
                   "floor_number": forms.NumberInput(attrs={"class": "form-control"})}


class FlatForm(forms.ModelForm):
    class Meta:
        model = Flat
        fields = [
            "flat_no", "owner", "share_percent", "size_sqft", "parking_count",
            "construction_cost", "paid_amount", "status", "notes",
        ]
        widgets = {
            "flat_no": forms.TextInput(attrs={"class": "form-control"}),
            "owner": forms.Select(attrs={"class": "form-select"}),
            "share_percent": forms.NumberInput(attrs={"class": "form-control", "step": "0.01"}),
            "size_sqft": forms.NumberInput(attrs={"class": "form-control", "step": "0.01"}),
            "parking_count": forms.NumberInput(attrs={"class": "form-control", "min": 0}),
            "construction_cost": forms.NumberInput(attrs={"class": "form-control", "step": "0.01"}),
            "paid_amount": forms.NumberInput(attrs={"class": "form-control", "step": "0.01"}),
            "status": forms.Select(attrs={"class": "form-select"}),
            "notes": forms.Textarea(attrs={"class": "form-control", "rows": 3}),
        }
