from django import forms
from django.forms import inlineformset_factory
from .models import Alumni, AcademicHistory, Employment


class AlumniUpdateForm(forms.ModelForm):
    class Meta:
        model = Alumni
        fields = [
            'full_name',
            'gender',
            'contact_number',
            'passport',
            'region',
            'category',
            'chapter',
        ]

        widgets = {
            'full_name': forms.TextInput(attrs={'class': 'form-control'}),
            'gender': forms.Select(attrs={'class': 'form-select'}),
            'contact_number': forms.TextInput(attrs={'class': 'form-control'}),
            'passport': forms.FileInput(attrs={'class': 'form-control'}),
            'region': forms.Select(attrs={'class': 'form-select'}),
            'category': forms.Select(attrs={'class': 'form-select'}),
            'chapter': forms.Select(attrs={'class': 'form-select'}),
        }


AcademicHistoryFormSet = inlineformset_factory(
    Alumni,
    AcademicHistory,
    fields=[
        'student_id',
        'degree',
        'faculty',
        'department',
        'year_admitted',
        'year_completed',
    ],
    extra=1,
    can_delete=True,
    widgets={
        'student_id': forms.TextInput(attrs={'class': 'form-control'}),
        'degree': forms.TextInput(attrs={'class': 'form-control'}),
        'faculty': forms.TextInput(attrs={'class': 'form-control'}),
        'department': forms.TextInput(attrs={'class': 'form-control'}),
        'year_admitted': forms.NumberInput(attrs={'class': 'form-control'}),
        'year_completed': forms.NumberInput(attrs={'class': 'form-control'}),
    }
)


EmploymentFormSet = inlineformset_factory(
    Alumni,
    Employment,
    fields=[
        'employer',
        'job_title',
        'industry',
        'employment_status',
        'start_year',
        'is_current',
    ],
    extra=1,
    can_delete=True,
    widgets={
        'employer': forms.TextInput(attrs={'class': 'form-control'}),
        'job_title': forms.TextInput(attrs={'class': 'form-control'}),
        'industry': forms.TextInput(attrs={'class': 'form-control'}),
        'employment_status': forms.Select(attrs={'class': 'form-select'}),
        'start_year': forms.NumberInput(attrs={'class': 'form-control'}),
        'is_current': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
    }
)