feat: 为 UserAchievement 类添加数据库模型转换方法

- 在 UserAchievement 类中添加 to_db_model 方法,用于将用户成就信息转换为数据库模型
- 该方法接受 user_id 参数,结合 achievement_id 和 achieved_at 字段,创建并返回一个 LazerUserAchievement 实例
- 此更新为用户成就数据的持久化存储提供了便利
This commit is contained in:
jimmy-sketch
2025-07-24 12:30:53 +08:00
parent 6647e5cd04
commit 6ed5a2d347

View File

@@ -5,6 +5,7 @@ from enum import Enum
from typing import Optional from typing import Optional
from pydantic import BaseModel from pydantic import BaseModel
from app.database import LazerUserAchievement # 添加数据库模型导入
class GameMode(str, Enum): class GameMode(str, Enum):
@@ -83,6 +84,14 @@ class UserAchievement(BaseModel):
achieved_at: datetime achieved_at: datetime
achievement_id: int 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): class RankHighest(BaseModel):
rank: int rank: int