baodan/api/insurance/models/wecom_group.py

34 lines
1.3 KiB
Python
Raw Normal View History

2026-07-12 14:17:18 +08:00
"""企微群聊配置模型。"""
from sqlalchemy import Column, Integer, String, Text, Boolean, TIMESTAMP, func
from insurance.db.compat import db
class WeComGroupConfig(db.Model):
"""企微群聊配置,用于按 chatid 精准回复。"""
__tablename__ = "wecom_group_configs"
id = Column(Integer, primary_key=True, autoincrement=True)
chatid = Column(String(128), unique=True, nullable=False, index=True)
aibotid = Column(String(128))
name = Column(String(128))
webhook_url = Column(Text)
status = Column(String(16), default="active")
auto_discovered = Column(Boolean, default=True)
created_at = Column(TIMESTAMP, server_default=func.now())
updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now())
last_seen_at = Column(TIMESTAMP)
def to_dict(self):
return {
"id": str(self.id),
"chatid": self.chatid,
"aibotid": self.aibotid,
"name": self.name,
"webhook_url": self.webhook_url,
"status": self.status,
"auto_discovered": self.auto_discovered,
"created_at": str(self.created_at) if self.created_at else None,
"updated_at": str(self.updated_at) if self.updated_at else None,
"last_seen_at": str(self.last_seen_at) if self.last_seen_at else None,
}