Coverage for opt/mealie/lib/python3.12/site-packages/mealie/db/models/recipe/comment.py: 89%
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 typing import TYPE_CHECKING
3from sqlalchemy import ForeignKey, String, orm
4from sqlalchemy.ext.associationproxy import AssociationProxy, association_proxy
5from sqlalchemy.orm import Mapped, mapped_column
7from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase
8from mealie.db.models._model_utils.auto_init import auto_init
9from mealie.db.models._model_utils.guid import GUID
11if TYPE_CHECKING: 11 ↛ 12line 11 didn't jump to line 12 because the condition on line 11 was never true
12 from ..users import User
13 from . import RecipeModel
16class RecipeComment(SqlAlchemyBase, BaseMixins):
17 __tablename__ = "recipe_comments"
18 id: Mapped[GUID] = mapped_column(GUID, primary_key=True, default=GUID.generate)
19 text: Mapped[str | None] = mapped_column(String)
21 # Recipe Link
22 recipe_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("recipes.id"), nullable=False, index=True)
23 recipe: Mapped["RecipeModel"] = orm.relationship("RecipeModel", back_populates="comments")
25 group_id: AssociationProxy[GUID] = association_proxy("recipe", "group_id")
26 household_id: AssociationProxy[GUID] = association_proxy("recipe", "household_id")
28 # User Link
29 user_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("users.id"), nullable=False, index=True)
30 user: Mapped["User"] = orm.relationship(
31 "User", back_populates="comments", single_parent=True, foreign_keys=[user_id]
32 )
34 @auto_init()
35 def __init__(self, **_) -> None:
36 pass
38 def update(self, text, **_) -> None:
39 self.text = text