api/app/schemas/auth.py

34 lines
810 B
Python

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