| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- """业务域模型:反馈、建言、热线、二维码、附件"""
- import uuid
- from datetime import datetime
- from sqlalchemy import Column, DateTime, Integer, String, Text
- from sqlalchemy import JSON
- from app.core.database import Base
- def _uuid() -> str:
- return str(uuid.uuid4())
- class Feedback(Base):
- __tablename__ = "feedback"
- id = Column(String(64), primary_key=True, default=_uuid)
- biz_no = Column(String(64), nullable=False, unique=True, index=True)
- fb_type = Column(String(16), nullable=False) # 投诉 | 表扬
- target_name = Column(String(64), nullable=True)
- target_dept = Column(String(128), nullable=True)
- target_post = Column(String(64), nullable=True)
- content = Column(Text, nullable=False)
- reporter_name = Column(String(64), nullable=True)
- reporter_unit = Column(String(128), nullable=True)
- reporter_post = Column(String(64), nullable=True)
- reporter_phone = Column(String(32), nullable=True)
- attachments = Column(JSON, nullable=False, default=list)
- status = Column(String(16), nullable=False, default="待处理") # 待处理|处理中|已办结
- handle_remark = Column(Text, nullable=True)
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class Suggestion(Base):
- __tablename__ = "suggestion"
- id = Column(String(64), primary_key=True, default=_uuid)
- biz_no = Column(String(64), nullable=False, unique=True, index=True)
- content = Column(Text, nullable=False)
- contact_name = Column(String(64), nullable=True)
- contact_unit = Column(String(128), nullable=True)
- contact_post = Column(String(64), nullable=True)
- contact_phone = Column(String(32), nullable=True)
- attachments = Column(JSON, nullable=False, default=list)
- status = Column(String(16), nullable=False, default="待查阅") # 待查阅|已采纳|已回复
- handle_remark = Column(Text, nullable=True)
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class HotlineConfig(Base):
- __tablename__ = "hotline_config"
- id = Column(String(64), primary_key=True, default=_uuid)
- phone = Column(String(512), nullable=True, default="")
- email = Column(String(512), nullable=True, default="")
- address = Column(String(1024), nullable=True, default="")
- work_time = Column(String(255), nullable=True, default="")
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class QrcodeConfig(Base):
- __tablename__ = "qrcode_config"
- id = Column(String(64), primary_key=True, default=_uuid)
- land_url = Column(String(512), nullable=True, default="")
- title = Column(String(128), nullable=True, default="")
- image_url = Column(String(512), nullable=True, default="")
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class Attachment(Base):
- __tablename__ = "attachment"
- id = Column(String(64), primary_key=True, default=_uuid)
- file_name = Column(String(255), nullable=False)
- object_key = Column(String(512), nullable=False)
- url = Column(String(512), nullable=False)
- size = Column(Integer, nullable=True, default=0)
- biz_type = Column(String(32), nullable=True)
- biz_id = Column(String(64), nullable=True, index=True)
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
|