from pydantic import BaseModel, EmailStr, field_validator class VerifyEmailRequest(BaseModel): token: str class SendVerificationRequest(BaseModel): email: EmailStr class ForgotPasswordRequest(BaseModel): email: EmailStr class ResetPasswordRequest(BaseModel): token: str password: str password_confirmation: str @field_validator("password") @classmethod def password_min_length(cls, v: str) -> str: if len(v) < 8: raise ValueError("Kata sandi minimal 8 karakter") return v @field_validator("password_confirmation") @classmethod def passwords_match(cls, v: str, info) -> str: if "password" in info.data and v != info.data["password"]: raise ValueError("Konfirmasi kata sandi tidak cocok") return v