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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 03:04 +0000
1from typing import TYPE_CHECKING, Optional
3from sqlalchemy import Boolean, ForeignKey, String, orm
4from sqlalchemy.orm import Mapped, mapped_column
6from .._model_base import BaseMixins, SqlAlchemyBase
7from .._model_utils.auto_init import auto_init
8from .._model_utils.guid import GUID
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
15class GroupEventNotifierOptionsModel(SqlAlchemyBase, BaseMixins):
16 __tablename__ = "group_events_notifier_options"
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)
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)
25 user_signup: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
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)
31 mealplan_entry_created: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
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)
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)
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)
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)
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)
53 @auto_init()
54 def __init__(self, **_) -> None:
55 pass
58class GroupEventNotifierModel(SqlAlchemyBase, BaseMixins):
59 __tablename__ = "group_events_notifiers"
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)
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)
75 options: Mapped[GroupEventNotifierOptionsModel] = orm.relationship(
76 GroupEventNotifierOptionsModel, uselist=False, cascade="all, delete-orphan"
77 )
79 @auto_init()
80 def __init__(self, **_) -> None:
81 pass