from enum import Enum as PyEnum from sqlalchemy import Column, Integer, String, DateTime, Enum, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.domain.models import Base class AppealStatusEnum(PyEnum): NEW = 'новое' IN_PROGRESS = 'в работе' WAITING_FOR_USER_RESPONSE = 'ожидание ответа пользователя' WAITING_FOR_SPECIALIST_RESPONSE = 'ожидание ответа специалиста' RESOLVED = 'решено' CLOSED = 'закрыто' REJECTED = 'отклонено' class Appeal(Base): __tablename__ = 'appeals' id = Column(Integer, primary_key=True, autoincrement=True) message = Column(String, nullable=False) created_date = Column(DateTime, nullable=False, default=func.utcnow) status = Column(Enum(AppealStatusEnum), nullable=False, default=AppealStatusEnum.NEW) topic_id = Column(Integer, ForeignKey('appeals_topics.id'), nullable=False) user_id = Column(Integer, ForeignKey('users.id'), nullable=False) topic = relationship('AppealsTopic', back_populates='appeals') user = relationship('User', back_populates='appeals')