Coverage for opt/mealie/lib/python3.12/site-packages/mealie/schema/user/user_passwords.py: 96%
25 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 03:04 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 03:04 +0000
1from pydantic import UUID4, ConfigDict
2from sqlalchemy.orm import selectinload
3from sqlalchemy.orm.interfaces import LoaderOption
5from mealie.schema._mealie import MealieModel
7from ...db.models.users import PasswordResetModel, User
8from .user import PrivateUser
11class ForgotPassword(MealieModel):
12 email: str
15class PasswordResetToken(MealieModel):
16 token: str
19class ValidateResetToken(MealieModel):
20 token: str
23class ResetPassword(ValidateResetToken):
24 email: str
25 password: str
26 passwordConfirm: str
29class SavePasswordResetToken(MealieModel):
30 user_id: UUID4
31 token: str
34class PrivatePasswordResetToken(SavePasswordResetToken):
35 user: PrivateUser
36 model_config = ConfigDict(from_attributes=True)
38 @classmethod
39 def loader_options(cls) -> list[LoaderOption]:
40 return [
41 selectinload(PasswordResetModel.user).joinedload(User.group),
42 selectinload(PasswordResetModel.user).joinedload(User.household),
43 selectinload(PasswordResetModel.user).joinedload(User.tokens),
44 ]