33 lines
1.2 KiB
Python

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.infrastructure.database.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')