from enum import Enum as VanillaEnum from sqlalchemy import INTEGER, BIGINT, Enum from sqlalchemy.orm import Mapped, mapped_column from db.base import Base class TicketStatus(VanillaEnum): OPEN = "OPEN" CLOSED = "CLOSED" PENDING = "PENDING" class Ticket(Base): __tablename__ = "tickets" id: Mapped[int] = mapped_column( INTEGER, autoincrement=True, unique=True, nullable=False, primary_key=True ) creator_id: Mapped[int] = mapped_column(BIGINT, nullable=False) status: Mapped[TicketStatus] = mapped_column( Enum(TicketStatus), nullable=False, default=TicketStatus.PENDING ) thread_id: Mapped[int] = mapped_column(BIGINT, nullable=True, unique=True)