from sqlalchemy import Column, Integer, String, Enum, TIMESTAMP, text
from db.session import Base
import enum
from sqlalchemy.orm import relationship


class SectionStatus(str, enum.Enum):
    active = "active"
    inactive = "inactive"
    deleted = "deleted"


class Section(Base):
    __tablename__ = "sections"

    id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    name = Column(String(255), nullable=True)
    key = Column(String(255), nullable=True)
    status = Column(
        Enum(SectionStatus),
        nullable=False,
        server_default="active"
    )
    created_at = Column(
        TIMESTAMP,
        nullable=False,
        server_default=text("CURRENT_TIMESTAMP")
    )
    updated_at = Column(
        TIMESTAMP,
        nullable=False,
        server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
    )

    permissions = relationship("Permission", back_populates="section", cascade="all, delete-orphan")
