Coverage for opt/mealie/lib/python3.12/site-packages/mealie/schema/recipe/recipe_comments.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-11-25 17:29 +0000

1from datetime import datetime 1a

2 

3from pydantic import UUID4, ConfigDict 1a

4from sqlalchemy.orm import joinedload 1a

5from sqlalchemy.orm.interfaces import LoaderOption 1a

6 

7from mealie.db.models.recipe import RecipeComment 1a

8from mealie.db.models.recipe.recipe import RecipeModel 1a

9from mealie.schema._mealie import MealieModel 1a

10from mealie.schema._mealie.mealie_model import UpdatedAtField 1a

11from mealie.schema.response.pagination import PaginationBase 1a

12 

13 

14class UserBase(MealieModel): 1a

15 id: UUID4 1a

16 username: str | None = None 1a

17 admin: bool 1a

18 full_name: str | None = None 1a

19 model_config = ConfigDict(from_attributes=True) 1a

20 

21 

22class RecipeCommentCreate(MealieModel): 1a

23 recipe_id: UUID4 1a

24 text: str 1a

25 

26 

27class RecipeCommentSave(RecipeCommentCreate): 1a

28 user_id: UUID4 1a

29 

30 

31class RecipeCommentUpdate(MealieModel): 1a

32 id: UUID4 1a

33 text: str 1a

34 

35 

36class RecipeCommentOut(RecipeCommentCreate): 1a

37 id: UUID4 1a

38 recipe_id: UUID4 1a

39 created_at: datetime 1a

40 updated_at: datetime = UpdatedAtField(...) 1a

41 user_id: UUID4 1a

42 user: UserBase 1a

43 model_config = ConfigDict(from_attributes=True) 1a

44 

45 @classmethod 1a

46 def loader_options(cls) -> list[LoaderOption]: 1a

47 return [ 1bcdefghijklmnopqrstuvwxyzA

48 joinedload(RecipeComment.user), 

49 joinedload(RecipeComment.recipe).joinedload(RecipeModel.user), 

50 ] 

51 

52 

53class RecipeCommentPagination(PaginationBase): 1a

54 items: list[RecipeCommentOut] 1a