from pydantic import BaseModel, EmailStr from typing import Optional, List, Any class LoginRequest(BaseModel): email: str password: str class SessionItem(BaseModel): userId: int email: str fullname: Optional[str] = "" firstName: Optional[str] = "" username: Optional[str] = "" roles: List[str] = [] token: str class SessionResponse(BaseModel): operationStatus: str # "SUCCESS" or "ERROR" operationMessage: str # "Login Success" or "Login Failed" item: Optional[SessionItem] = None class RegistrationRequest(BaseModel): email: str password: Optional[str] = None new_password: Optional[str] = None confirm_password: Optional[str] = None fullName: Optional[str] = None first_name: Optional[str] = None last_name: Optional[str] = None username: Optional[str] = None account_id: Optional[Any] = None mob_no: Optional[Any] = None gender: Optional[str] = None date_of_birth: Optional[str] = None how_you_know_aboutus: Optional[str] = None accesstype: Optional[str] = None class SendEmailRequest(BaseModel): email: str password: Optional[str] = None fullName: Optional[str] = None username: Optional[str] = None account_id: Optional[Any] = None recaptcha: Optional[Any] = None class EmailExistsRequest(BaseModel): email: str class UserResponse(BaseModel): userId: int email: str username: str fullName: Optional[str] = None firstName: Optional[str] = None roles: List[str] = [] status: Optional[str] = "ACTIVE"