# -*- coding: utf-8 -*-
"""
Django Forms for Account Management

This module contains all forms used in the accounts app for user management,
profile updates, authentication, and role assignments.
"""

from django import forms
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
from django.contrib.auth import get_user_model
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
import pytz

from .models import User, Profile, Department, Role, UserRole

User = get_user_model()


class LoginForm(AuthenticationForm):
    """Custom login form with Bootstrap styling."""
    
    username = forms.EmailField(
        widget=forms.EmailInput(attrs={
            'class': 'form-control',
            'placeholder': 'Email address',
            'required': True
        })
    )
    
    password = forms.CharField(
        widget=forms.PasswordInput(attrs={
            'class': 'form-control',
            'placeholder': 'Password',
            'required': True
        })
    )
    
    remember_me = forms.BooleanField(
        required=False,
        widget=forms.CheckboxInput(attrs={
            'class': 'form-check-input'
        })
    )
