34 lines
810 B
Python
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
|