数据库的信息重构为dataclass

This commit is contained in:
UnCLAS-Prommer
2025-08-17 17:11:32 +08:00
parent d74beef4b4
commit 3481234d2b
18 changed files with 243 additions and 206 deletions

View File

@@ -2,19 +2,20 @@ import traceback
from typing import List, Any, Optional
from peewee import Model # 添加 Peewee Model 导入
from src.config.config import global_config
from src.config.config import global_config
from src.common.data_models.database_data_model import DatabaseMessages
from src.common.database.database_model import Messages
from src.common.logger import get_logger
logger = get_logger(__name__)
def _model_to_dict(model_instance: Model) -> dict[str, Any]:
def _model_to_instance(model_instance: Model) -> DatabaseMessages:
"""
将 Peewee 模型实例转换为字典。
"""
return model_instance.__data__
return DatabaseMessages(**model_instance.__data__)
def find_messages(
@@ -24,7 +25,7 @@ def find_messages(
limit_mode: str = "latest",
filter_bot=False,
filter_command=False,
) -> List[dict[str, Any]]:
) -> List[DatabaseMessages]:
"""
根据提供的过滤器、排序和限制条件查找消息。
@@ -112,7 +113,7 @@ def find_messages(
query = query.order_by(*peewee_sort_terms)
peewee_results = list(query)
return [_model_to_dict(msg) for msg in peewee_results]
return [_model_to_instance(msg) for msg in peewee_results]
except Exception as e:
log_message = (
f"使用 Peewee 查找消息失败 (filter={message_filter}, sort={sort}, limit={limit}, limit_mode={limit_mode}): {e}\n"