"""
User request schemas.
"""

from typing import Optional
from pydantic import EmailStr, Field
from src.apps.base.schemas.common import BaseSchema


class UserCreateRequestSchema(BaseSchema):
    """Schema for user creation requests."""
    
    email: EmailStr = Field(..., description="User's email address")
    first_name: Optional[str] = Field(None, max_length=100, description="User's first name")
    middle_name: Optional[str] = Field(None, max_length=100, description="User's middle name")
    last_name: Optional[str] = Field(None, max_length=100, description="User's last name")
    phone: Optional[str] = Field(None, max_length=20, description="User's phone number")
    password: Optional[str] = Field(None, description="User's password")
    is_active: bool = Field(True, description="Whether the user is active")
    is_verified: bool = Field(False, description="Whether the user is verified")


class UserUpdateRequestSchema(BaseSchema):
    """Schema for user update requests."""
    
    email: Optional[EmailStr] = Field(None, description="User's email address")
    first_name: Optional[str] = Field(None, max_length=100, description="User's first name")
    middle_name: Optional[str] = Field(None, max_length=100, description="User's middle name")
    last_name: Optional[str] = Field(None, max_length=100, description="User's last name")
    phone: Optional[str] = Field(None, max_length=20, description="User's phone number")
    is_active: Optional[bool] = Field(None, description="Whether the user is active")
    is_verified: Optional[bool] = Field(None, description="Whether the user is verified")
