from django import forms

from ats.models import ApplicationNote, Interview
from jobs.models import JobApplication


class ApplicationStatusForm(forms.ModelForm):
    class Meta:
        model = JobApplication
        fields = ['status', 'rating']
        widgets = {
            'status': forms.Select(attrs={'class': 'form-control'}),
            'rating': forms.NumberInput(attrs={'class': 'form-control', 'min': 1, 'max': 5}),
        }


class ApplicationNoteForm(forms.ModelForm):
    class Meta:
        model = ApplicationNote
        fields = ['body']
        widgets = {
            'body': forms.Textarea(attrs={
                'rows': 3,
                'placeholder': 'Add a private note about this candidate…',
                'class': 'form-control',
            }),
        }


class InterviewForm(forms.ModelForm):
    class Meta:
        model = Interview
        fields = ['scheduled_at', 'location', 'meeting_url', 'notes', 'status']
        widgets = {
            'scheduled_at': forms.DateTimeInput(attrs={'type': 'datetime-local', 'class': 'form-control'}),
            'location': forms.TextInput(attrs={'placeholder': 'Office address or room', 'class': 'form-control'}),
            'meeting_url': forms.URLInput(attrs={'placeholder': 'https://meet.example.com/…', 'class': 'form-control'}),
            'notes': forms.Textarea(attrs={'rows': 2, 'class': 'form-control'}),
            'status': forms.Select(attrs={'class': 'form-control'}),
        }


class BulkStatusForm(forms.Form):
    application_ids = forms.CharField(widget=forms.HiddenInput())
    status = forms.ChoiceField(choices=JobApplication.Status.choices)
