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

1from pydantic import UUID4, ConfigDict 

2from sqlalchemy.orm import selectinload 

3from sqlalchemy.orm.interfaces import LoaderOption 

4 

5from mealie.schema._mealie import MealieModel 

6 

7from ...db.models.users import PasswordResetModel, User 

8from .user import PrivateUser 

9 

10 

11class ForgotPassword(MealieModel): 

12 email: str 

13 

14 

15class PasswordResetToken(MealieModel): 

16 token: str 

17 

18 

19class ValidateResetToken(MealieModel): 

20 token: str 

21 

22 

23class ResetPassword(ValidateResetToken): 

24 email: str 

25 password: str 

26 passwordConfirm: str 

27 

28 

29class SavePasswordResetToken(MealieModel): 

30 user_id: UUID4 

31 token: str 

32 

33 

34class PrivatePasswordResetToken(SavePasswordResetToken): 

35 user: PrivateUser 

36 model_config = ConfigDict(from_attributes=True) 

37 

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 ]