| from pydantic import BaseModel, EmailStr, field_validator | |
| from typing import Optional | |
| class LoginRequest(BaseModel): | |
| """Admin login request model""" | |
| email: EmailStr | |
| password: str | |
| def validate_email_required(cls, v): | |
| if not v or (isinstance(v, str) and not v.strip()): | |
| raise ValueError('Email is required') | |
| return v | |
| def validate_password(cls, v): | |
| if not v or (isinstance(v, str) and not v.strip()): | |
| raise ValueError('Password is required') | |
| return v | |
| class LoginResponse(BaseModel): | |
| """Login response model""" | |
| success: bool | |
| message: str | |
| token: Optional[str] = None | |
| admin_id: Optional[str] = None | |
| class ErrorResponse(BaseModel): | |
| """Error response model""" | |
| success: bool | |
| message: str | |
| error: Optional[str] = None | |