Coverage for opt/mealie/lib/python3.12/site-packages/mealie/db/models/labels.py: 85%
24 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 17:29 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 17:29 +0000
1from typing import TYPE_CHECKING 1a
3from sqlalchemy import ForeignKey, String, UniqueConstraint, orm 1a
4from sqlalchemy.orm import Mapped, mapped_column 1a
6from mealie.db.models._model_base import BaseMixins, SqlAlchemyBase 1a
8from ._model_utils.auto_init import auto_init 1a
9from ._model_utils.guid import GUID 1a
11if TYPE_CHECKING: 11 ↛ 12line 11 didn't jump to line 12 because the condition on line 11 was never true1a
12 from .group.group import Group
13 from .household.shopping_list import ShoppingListItem, ShoppingListMultiPurposeLabel
14 from .recipe import IngredientFoodModel
17class MultiPurposeLabel(SqlAlchemyBase, BaseMixins): 1a
18 __tablename__ = "multi_purpose_labels" 1a
19 __table_args__ = (UniqueConstraint("name", "group_id", name="multi_purpose_labels_name_group_id_key"),) 1a
21 id: Mapped[GUID] = mapped_column(GUID, default=GUID.generate, primary_key=True) 1a
22 name: Mapped[str] = mapped_column(String(255), nullable=False) 1a
23 color: Mapped[str] = mapped_column(String(10), nullable=False, default="") 1a
25 group_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("groups.id"), nullable=False, index=True) 1a
26 group: Mapped["Group"] = orm.relationship("Group", back_populates="labels") 1a
28 shopping_list_items: Mapped["ShoppingListItem"] = orm.relationship("ShoppingListItem", back_populates="label") 1a
29 foods: Mapped["IngredientFoodModel"] = orm.relationship("IngredientFoodModel", back_populates="label") 1a
30 shopping_lists_label_settings: Mapped[list["ShoppingListMultiPurposeLabel"]] = orm.relationship( 1a
31 "ShoppingListMultiPurposeLabel", back_populates="label", cascade="all, delete, delete-orphan"
32 )
34 @auto_init() 1a
35 def __init__(self, **_) -> None: 1a
36 pass 1bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM