from sqlalchemy import Column, String, Text, DateTime, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base import datetime Base = declarative_base() class ChatGroup(Base): __tablename__ = 'chat_groups' id = Column(String(64), primary_key=True) # 企业微信群ID name = Column(String(255)) class User(Base): __tablename__ = 'users' id = Column(String(64), primary_key=True) # 企业微信用户ID name = Column(String(255)) class GroupUser(Base): __tablename__ = 'group_users' id = Column(String(64), primary_key=True) group_id = Column(String(64), ForeignKey('chat_groups.id')) user_id = Column(String(64), ForeignKey('users.id')) group = relationship("ChatGroup", backref="members") user = relationship("User", backref="groups") class GroupSMSAccount(Base): __tablename__ = 'group_sms_accounts' id = Column(String(64), primary_key=True) group_id = Column(String(64), ForeignKey('chat_groups.id')) sms_account = Column(String(64)) group = relationship("ChatGroup", backref="sms_accounts") class MessageHistory(Base): __tablename__ = 'message_history' id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(String(64)) conversation_id = Column(String(64)) role = Column(String(10)) # 'user' 或 'assistant' content = Column(Text) timestamp = Column(DateTime, default=datetime.datetime.utcnow)