33 lines
1.2 KiB
Python
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')
|