Coverage for opt/mealie/lib/python3.12/site-packages/mealie/db/models/household/preferences.py: 93%

28 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 03:04 +0000

1from typing import TYPE_CHECKING, Optional 

2 

3import sqlalchemy as sa 

4import sqlalchemy.orm as orm 

5from sqlalchemy.ext.associationproxy import AssociationProxy, association_proxy 

6from sqlalchemy.orm import Mapped, mapped_column 

7 

8from .._model_base import BaseMixins, SqlAlchemyBase 

9from .._model_utils.auto_init import auto_init 

10from .._model_utils.guid import GUID 

11 

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

13 from .household import Household 

14 

15 

16class HouseholdPreferencesModel(SqlAlchemyBase, BaseMixins): 

17 __tablename__ = "household_preferences" 

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

19 

20 household_id: Mapped[GUID | None] = mapped_column(GUID, sa.ForeignKey("households.id"), nullable=False, index=True) 

21 household: Mapped[Optional["Household"]] = orm.relationship("Household", back_populates="preferences") 

22 group_id: AssociationProxy[GUID] = association_proxy("household", "group_id") 

23 

24 private_household: Mapped[bool | None] = mapped_column(sa.Boolean, default=True) 

25 lock_recipe_edits_from_other_households: Mapped[bool | None] = mapped_column(sa.Boolean, default=True) 

26 first_day_of_week: Mapped[int | None] = mapped_column(sa.Integer, default=0) 

27 

28 # Recipe Defaults 

29 recipe_public: Mapped[bool | None] = mapped_column(sa.Boolean, default=True) 

30 recipe_show_nutrition: Mapped[bool | None] = mapped_column(sa.Boolean, default=False) 

31 recipe_show_assets: Mapped[bool | None] = mapped_column(sa.Boolean, default=False) 

32 recipe_landscape_view: Mapped[bool | None] = mapped_column(sa.Boolean, default=False) 

33 recipe_disable_comments: Mapped[bool | None] = mapped_column(sa.Boolean, default=False) 

34 

35 # Deprecated 

36 recipe_disable_amount: Mapped[bool | None] = mapped_column(sa.Boolean, default=True) 

37 

38 @auto_init() 

39 def __init__(self, **_) -> None: 

40 pass