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)
|