28 lines
1.8 KiB
Python
28 lines
1.8 KiB
Python
|
|
from datetime import datetime
|
||
|
|
|
||
|
|
from sqlalchemy import String, Text, JSON, Boolean, Integer, DateTime
|
||
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
||
|
|
from app.models.base import Base, UUIDMixin, TimestampMixin
|
||
|
|
|
||
|
|
|
||
|
|
class SiteSettings(Base, UUIDMixin, TimestampMixin):
|
||
|
|
__tablename__ = "site_settings"
|
||
|
|
|
||
|
|
site_name: Mapped[str] = mapped_column(String(255), nullable=False, default="")
|
||
|
|
tagline: Mapped[str | None] = mapped_column(String(500), nullable=True)
|
||
|
|
logo_url: Mapped[str | None] = mapped_column(String(2048), nullable=True)
|
||
|
|
footer_text: Mapped[str | None] = mapped_column(Text, nullable=True)
|
||
|
|
social_links: Mapped[dict] = mapped_column(JSON, nullable=False, default=dict)
|
||
|
|
automatic_member_notifications_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
nz_public_holiday_notifications_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
invoice_reminder_notifications_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
invoice_day_of_week: Mapped[int] = mapped_column(Integer, nullable=False, default=1)
|
||
|
|
admin_notifications_cleared_before: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
|
||
|
|
bookings_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
walks_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
messages_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
two_factor_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
audit_history_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
experiments_enabled: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True)
|
||
|
|
service_pricing: Mapped[dict] = mapped_column(JSON, nullable=False, default=dict)
|