fix(database): 将reulest_id字段的类型改为GameMode以与app/models/scores.py中的无用定义匹配

This commit is contained in:
jimmy-sketch
2025-07-26 08:46:01 +08:00
parent 002c89edff
commit 6001e59999

View File

@@ -2,17 +2,19 @@
from datetime import datetime from datetime import datetime
import math import math
from typing import Literal from typing import Literal, TYPE_CHECKING, List
from app.models.score import Rank, APIMod from app.models.score import Rank, APIMod, GameMode
from .beatmap import Beatmap, BeatmapResp from .beatmap import Beatmap, BeatmapResp
from .beatmapset import Beatmapset, BeatmapsetResp from .beatmapset import Beatmapset, BeatmapsetResp
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy import Column, DateTime, JSON from sqlalchemy import Column, DateTime, JSON
from sqlmodel import BigInteger, Field, Relationship, SQLModel from sqlmodel import BigInteger, Field, Relationship, SQLModel, JSON as SQLModeJSON
if TYPE_CHECKING:
from .user import User
class ScoreBase(SQLModel): class ScoreBase(SQLModel):
# 基本字段 # 基本字段
@@ -33,7 +35,7 @@ class ScoreBase(SQLModel):
preserve: bool = Field(default=True) preserve: bool = Field(default=True)
rank: Rank rank: Rank
room_id: int | None = Field(default=None) # multiplayer room_id: int | None = Field(default=None) # multiplayer
ruleset_id: Literal[0, 1, 2, 3] = Field(index=True) ruleset_id: GameMode = Field(index=True)
started_at: datetime = Field(sa_column=Column(DateTime)) started_at: datetime = Field(sa_column=Column(DateTime))
total_score: int = Field(default=0, sa_column=Column(BigInteger)) total_score: int = Field(default=0, sa_column=Column(BigInteger))
type: str type: str
@@ -107,4 +109,4 @@ class ScoreResp(ScoreBase):
count_large_tick_miss=score.nlarge_tick_miss, count_large_tick_miss=score.nlarge_tick_miss,
count_slider_tail_hit=score.nslider_tail_hit, count_slider_tail_hit=score.nslider_tail_hit,
) )
return s return s