from pydantic import BaseModel, Field, field_validator from libs.helper import EmailStr from libs.password import valid_password class LoginPayloadBase(BaseModel): email: EmailStr password: str class ForgotPasswordSendPayload(BaseModel): email: EmailStr language: str | None = None class ForgotPasswordCheckPayload(BaseModel): email: EmailStr code: str token: str = Field(min_length=1) class ForgotPasswordResetPayload(BaseModel): token: str = Field(min_length=1) new_password: str password_confirm: str @field_validator("new_password", "password_confirm") @classmethod def validate_password(cls, value: str) -> str: return valid_password(value)