From 6ed5a2d3477717c074dc07ad42bed1a93effd0bf Mon Sep 17 00:00:00 2001 From: jimmy-sketch Date: Thu, 24 Jul 2025 12:30:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=20UserAchievement=20=E7=B1=BB?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 UserAchievement 类中添加 to_db_model 方法,用于将用户成就信息转换为数据库模型 - 该方法接受 user_id 参数,结合 achievement_id 和 achieved_at 字段,创建并返回一个 LazerUserAchievement 实例 - 此更新为用户成就数据的持久化存储提供了便利 --- app/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/models.py b/app/models.py index ca42b27..2f0ad6e 100644 --- a/app/models.py +++ b/app/models.py @@ -5,6 +5,7 @@ from enum import Enum from typing import Optional from pydantic import BaseModel +from app.database import LazerUserAchievement # 添加数据库模型导入 class GameMode(str, Enum): @@ -83,6 +84,14 @@ class UserAchievement(BaseModel): achieved_at: datetime achievement_id: int + # 添加数据库模型转换方法 + def to_db_model(self, user_id: int) -> LazerUserAchievement: + return LazerUserAchievement( + user_id=user_id, + achievement_id=self.achievement_id, + achieved_at=self.achieved_at + ) + class RankHighest(BaseModel): rank: int