Files
mealie/mealie/schema/user/user_passwords.py
Michael Genson 7a107584c7 feat: Upgrade to Pydantic V2 (#3134)
* bumped pydantic
2024-02-11 16:47:37 +00:00

45 lines
1.0 KiB
Python

from pydantic import UUID4, ConfigDict
from sqlalchemy.orm import selectinload
from sqlalchemy.orm.interfaces import LoaderOption
from mealie.schema._mealie import MealieModel
from ...db.models.users import PasswordResetModel, User
from .user import PrivateUser
class ForgotPassword(MealieModel):
email: str
class PasswordResetToken(MealieModel):
token: str
class ValidateResetToken(MealieModel):
token: str
class ResetPassword(ValidateResetToken):
email: str
password: str
passwordConfirm: str
class SavePasswordResetToken(MealieModel):
user_id: UUID4
token: str
class PrivatePasswordResetToken(SavePasswordResetToken):
user: PrivateUser
model_config = ConfigDict(from_attributes=True)
@classmethod
def loader_options(cls) -> list[LoaderOption]:
return [
selectinload(PasswordResetModel.user).joinedload(User.group),
selectinload(PasswordResetModel.user).joinedload(User.favorite_recipes),
selectinload(PasswordResetModel.user).joinedload(User.tokens),
]