Coverage for opt/mealie/lib/python3.12/site-packages/mealie/db/models/recipe/comment.py: 81%

25 statements  

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

1from typing import TYPE_CHECKING 1a

2 

3from sqlalchemy import ForeignKey, String, orm 1a

4from sqlalchemy.ext.associationproxy import AssociationProxy, association_proxy 1a

5from sqlalchemy.orm import Mapped, mapped_column 1a

6 

7from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase 1a

8from mealie.db.models._model_utils.auto_init import auto_init 1a

9from mealie.db.models._model_utils.guid import GUID 1a

10 

11if TYPE_CHECKING: 11 ↛ 12line 11 didn't jump to line 12 because the condition on line 11 was never true1a

12 from ..users import User 

13 from . import RecipeModel 

14 

15 

16class RecipeComment(SqlAlchemyBase, BaseMixins): 1a

17 __tablename__ = "recipe_comments" 1a

18 id: Mapped[GUID] = mapped_column(GUID, primary_key=True, default=GUID.generate) 1a

19 text: Mapped[str | None] = mapped_column(String) 1a

20 

21 # Recipe Link 

22 recipe_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("recipes.id"), nullable=False, index=True) 1a

23 recipe: Mapped["RecipeModel"] = orm.relationship("RecipeModel", back_populates="comments") 1a

24 

25 group_id: AssociationProxy[GUID] = association_proxy("recipe", "group_id") 1a

26 household_id: AssociationProxy[GUID] = association_proxy("recipe", "household_id") 1a

27 

28 # User Link 

29 user_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("users.id"), nullable=False, index=True) 1a

30 user: Mapped["User"] = orm.relationship( 1a

31 "User", back_populates="comments", single_parent=True, foreign_keys=[user_id] 

32 ) 

33 

34 @auto_init() 1a

35 def __init__(self, **_) -> None: 1a

36 pass 

37 

38 def update(self, text, **_) -> None: 1a

39 self.text = text