更新
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
from datetime import datetime
|
||||
from sqlalchemy import Column, Integer, String, Boolean, DateTime, ForeignKey, Text, UniqueConstraint
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import Column, Integer, String, Boolean, DateTime, ForeignKey, Index, Text, UniqueConstraint
|
||||
from sqlalchemy.orm import relationship, validates
|
||||
from .database import Base
|
||||
from utils.log_limits import bound_error_log_content, bound_message_log_content
|
||||
|
||||
|
||||
class User(Base):
|
||||
@@ -204,10 +205,23 @@ class MessageLog(Base):
|
||||
reply_content = Column(Text, nullable=True) # 回复的消息
|
||||
status = Column(String(50), default="received") # received, replied, ignored, failed
|
||||
error_message = Column(Text, nullable=True)
|
||||
created_at = Column(DateTime, default=datetime.utcnow)
|
||||
created_at = Column(DateTime, default=datetime.utcnow, index=True)
|
||||
|
||||
account = relationship("Account", back_populates="logs")
|
||||
|
||||
__table_args__ = (
|
||||
Index("ix_message_logs_account_created_at", "account_id", "created_at"),
|
||||
Index("ix_message_logs_status_account_id", "status", "account_id"),
|
||||
)
|
||||
|
||||
@validates("message_content", "reply_content")
|
||||
def _bound_message_content(self, _key, value):
|
||||
return bound_message_log_content(value) if value is not None else None
|
||||
|
||||
@validates("error_message")
|
||||
def _bound_error_content(self, _key, value):
|
||||
return bound_error_log_content(value) if value is not None else None
|
||||
|
||||
|
||||
class ReceivedMessageLog(Base):
|
||||
"""接收消息原始日志:仅记录收到的消息,内容原样保存。"""
|
||||
@@ -225,6 +239,14 @@ class ReceivedMessageLog(Base):
|
||||
raw_content = Column(Text, nullable=False)
|
||||
created_at = Column(DateTime, default=datetime.utcnow, index=True)
|
||||
|
||||
__table_args__ = (
|
||||
Index(
|
||||
"ix_received_message_logs_account_created_at",
|
||||
"account_id",
|
||||
"created_at",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class FollowWelcomeLog(Base):
|
||||
"""关注欢迎语去重表:每个账号对每个新粉丝只发送一次欢迎语(重启后仍生效)。"""
|
||||
@@ -255,6 +277,10 @@ class SystemLog(Base):
|
||||
detail = Column(Text, nullable=True) # 详细原因
|
||||
created_at = Column(DateTime, default=datetime.utcnow, index=True)
|
||||
|
||||
__table_args__ = (
|
||||
Index("ix_system_logs_account_created_at", "account_id", "created_at"),
|
||||
)
|
||||
|
||||
|
||||
class PaymentOrder(Base):
|
||||
"""账号额度购买订单。"""
|
||||
|
||||
Reference in New Issue
Block a user