from sqlalchemy import Boolean, Column, Integer, String, Text, JSON
from src.apps.base.models.base import Base
from src.core.utils.enums import SettingsInputFieldTypes


class SiteSettings(Base):
    """
    SiteSettings Model: ORM class for SiteSettings Entity
    """

    __tablename__ = "site_settings"

    id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    key = Column(String(255))
    value = Column(Text)
    label = Column(Text)
    group = Column(String(255))
    field_type = Column(String(50), default=SettingsInputFieldTypes.INPUT)
    field_options = Column(JSON, nullable=True)
    is_visible = Column(Boolean, nullable=True)
    is_required = Column(Boolean, nullable=True)
    is_encrypted = Column(Boolean, nullable=True)
