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

53 statements  

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

1from typing import TYPE_CHECKING, Optional 

2 

3from sqlalchemy import Boolean, ForeignKey, String, orm 

4from sqlalchemy.orm import Mapped, mapped_column 

5 

6from .._model_base import BaseMixins, SqlAlchemyBase 

7from .._model_utils.auto_init import auto_init 

8from .._model_utils.guid import GUID 

9 

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

11 from ..group import Group 

12 from .household import Household 

13 

14 

15class GroupEventNotifierOptionsModel(SqlAlchemyBase, BaseMixins): 

16 __tablename__ = "group_events_notifier_options" 

17 

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

19 event_notifier_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("group_events_notifiers.id"), nullable=False) 

20 

21 recipe_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

22 recipe_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

23 recipe_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

24 

25 user_signup: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

26 

27 data_migrations: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

28 data_export: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

29 data_import: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

30 

31 mealplan_entry_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

32 

33 shopping_list_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

34 shopping_list_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

35 shopping_list_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

36 

37 cookbook_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

38 cookbook_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

39 cookbook_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

40 

41 tag_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

42 tag_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

43 tag_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

44 

45 category_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

46 category_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

47 category_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

48 

49 label_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

50 label_updated: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

51 label_deleted: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False) 

52 

53 @auto_init() 

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

55 pass 

56 

57 

58class GroupEventNotifierModel(SqlAlchemyBase, BaseMixins): 

59 __tablename__ = "group_events_notifiers" 

60 

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

62 name: Mapped[str] = mapped_column(String, nullable=False) 

63 enabled: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False) 

64 apprise_url: Mapped[str] = mapped_column(String, nullable=False) 

65 

66 group: Mapped[Optional["Group"]] = orm.relationship( 

67 "Group", back_populates="group_event_notifiers", single_parent=True 

68 ) 

69 group_id: Mapped[GUID | None] = mapped_column(GUID, ForeignKey("groups.id"), index=True) 

70 household: Mapped[Optional["Household"]] = orm.relationship( 

71 "Household", back_populates="group_event_notifiers", single_parent=True 

72 ) 

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

74 

75 options: Mapped[GroupEventNotifierOptionsModel] = orm.relationship( 

76 GroupEventNotifierOptionsModel, uselist=False, cascade="all, delete-orphan" 

77 ) 

78 

79 @auto_init() 

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

81 pass