from django import forms
from .models import Member


class EntranceLoginForm(forms.Form):
    """
    エントランスページのパスワード入力フォーム
    """
    password = forms.CharField(
        max_length=100,
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'パスワードを入力してください',
        }),
        label='パスワード'
    )


class MemberRegistrationForm(forms.ModelForm):
    """
    イベント参加申込フォーム
    """
    privacy_policy_agreed = forms.BooleanField(
        required=True,
        label='プライバシーポリシーに同意する',
        widget=forms.CheckboxInput(attrs={
            'class': 'form-check-input',
        })
    )

    class Meta:
        model = Member
        fields = [
            'company_name',
            'company_name_kana',
            'department',
            'position',
            'full_name',
            'email',
            'phone_number',
            'occupation',
            'questionnaire_response',
            'free_comment',
            'privacy_policy_agreed',
        ]
        widgets = {
            'company_name': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': '会社名',
            }),
            'company_name_kana': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': 'カナ',
            }),
            'department': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': '部署名',
            }),
            'position': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': '役職名',
            }),
            'full_name': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': '氏名',
            }),
            'email': forms.EmailInput(attrs={
                'class': 'form-control',
                'placeholder': 'メールアドレス',
            }),
            'phone_number': forms.TextInput(attrs={
                'class': 'form-control',
                'placeholder': '電話番号',
            }),
            'occupation': forms.Select(attrs={
                'class': 'form-control',
            }),
            'questionnaire_response': forms.Textarea(attrs={
                'class': 'form-control',
                'rows': 4,
                'placeholder': 'アンケートへの回答',
            }),
            'free_comment': forms.Textarea(attrs={
                'class': 'form-control',
                'rows': 4,
                'placeholder': '自由記入欄',
            }),
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 必須フィールドを明示
        self.fields['company_name'].required = True
        self.fields['full_name'].required = True
        self.fields['email'].required = True
