refactor(database): rename filename to find the models by table name easily

This commit is contained in:
MingxuanGame
2025-10-03 03:33:47 +00:00
parent 40670c094b
commit 37b4eadf79
58 changed files with 76 additions and 115 deletions

View File

@@ -12,7 +12,7 @@ from .beatmapset import (
BeatmapsetResp, BeatmapsetResp,
) )
from .beatmapset_ratings import BeatmapRating from .beatmapset_ratings import BeatmapRating
from .best_score import BestScore from .best_scores import PPBestScore
from .chat import ( from .chat import (
ChannelType, ChannelType,
ChatChannel, ChatChannel,
@@ -28,22 +28,16 @@ from .counts import (
from .daily_challenge import DailyChallengeStats, DailyChallengeStatsResp from .daily_challenge import DailyChallengeStats, DailyChallengeStatsResp
from .events import Event from .events import Event
from .favourite_beatmapset import FavouriteBeatmapset from .favourite_beatmapset import FavouriteBeatmapset
from .lazer_user import ( from .item_attempts_count import (
MeResp,
User,
UserResp,
)
from .multiplayer_event import MultiplayerEvent, MultiplayerEventResp
from .notification import Notification, UserNotification
from .password_reset import PasswordReset
from .playlist_attempts import (
ItemAttemptsCount, ItemAttemptsCount,
ItemAttemptsResp, ItemAttemptsResp,
PlaylistAggregateScore, PlaylistAggregateScore,
) )
from .multiplayer_event import MultiplayerEvent, MultiplayerEventResp
from .notification import Notification, UserNotification
from .password_reset import PasswordReset
from .playlist_best_score import PlaylistBestScore from .playlist_best_score import PlaylistBestScore
from .playlists import Playlist, PlaylistResp from .playlists import Playlist, PlaylistResp
from .pp_best_score import PPBestScore
from .rank_history import RankHistory, RankHistoryResp, RankTop from .rank_history import RankHistory, RankHistoryResp, RankTop
from .relationship import Relationship, RelationshipResp, RelationshipType from .relationship import Relationship, RelationshipResp, RelationshipType
from .room import APIUploadedRoom, Room, RoomResp from .room import APIUploadedRoom, Room, RoomResp
@@ -62,6 +56,12 @@ from .statistics import (
UserStatisticsResp, UserStatisticsResp,
) )
from .team import Team, TeamMember, TeamRequest from .team import Team, TeamMember, TeamRequest
from .total_score_best_scores import BestScore
from .user import (
MeResp,
User,
UserResp,
)
from .user_account_history import ( from .user_account_history import (
UserAccountHistory, UserAccountHistory,
UserAccountHistoryResp, UserAccountHistoryResp,

View File

@@ -24,7 +24,7 @@ from sqlmodel import (
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class UserAchievementBase(SQLModel, UTCBaseModel): class UserAchievementBase(SQLModel, UTCBaseModel):

View File

@@ -19,7 +19,7 @@ from sqlmodel import (
) )
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class OAuthToken(UTCBaseModel, SQLModel, table=True): class OAuthToken(UTCBaseModel, SQLModel, table=True):

View File

@@ -23,7 +23,7 @@ from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from app.fetcher import Fetcher from app.fetcher import Fetcher
from .lazer_user import User from .user import User
class BeatmapOwner(SQLModel): class BeatmapOwner(SQLModel):

View File

@@ -20,7 +20,7 @@ from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from .beatmap import Beatmap, BeatmapResp from .beatmap import Beatmap, BeatmapResp
from .beatmapset import BeatmapsetResp from .beatmapset import BeatmapsetResp
from .lazer_user import User from .user import User
class BeatmapPlaycounts(AsyncAttrs, SQLModel, table=True): class BeatmapPlaycounts(AsyncAttrs, SQLModel, table=True):

View File

@@ -5,7 +5,7 @@ from app.config import settings
from app.models.beatmap import BeatmapRankStatus, Genre, Language from app.models.beatmap import BeatmapRankStatus, Genre, Language
from app.models.score import GameMode from app.models.score import GameMode
from .lazer_user import BASE_INCLUDES, User, UserResp from .user import BASE_INCLUDES, User, UserResp
from pydantic import BaseModel, field_validator, model_validator from pydantic import BaseModel, field_validator, model_validator
from sqlalchemy import JSON, Boolean, Column, DateTime, Text from sqlalchemy import JSON, Boolean, Column, DateTime, Text

View File

@@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from app.database.beatmapset import Beatmapset from app.database.beatmapset import Beatmapset
from app.database.lazer_user import User from app.database.user import User
from sqlmodel import BigInteger, Column, Field, ForeignKey, Relationship, SQLModel from sqlmodel import BigInteger, Column, Field, ForeignKey, Relationship, SQLModel

View File

@@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.models.score import GameMode from app.models.score import GameMode
from .lazer_user import User from .user import User
from sqlmodel import ( from sqlmodel import (
BigInteger, BigInteger,

View File

@@ -2,7 +2,7 @@ from datetime import datetime
from enum import Enum from enum import Enum
from typing import Self from typing import Self
from app.database.lazer_user import RANKING_INCLUDES, User, UserResp from app.database.user import RANKING_INCLUDES, User, UserResp
from app.models.model import UTCBaseModel from app.models.model import UTCBaseModel
from app.utils import utcnow from app.utils import utcnow

View File

@@ -11,7 +11,7 @@ from sqlmodel import (
) )
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class CountBase(SQLModel): class CountBase(SQLModel):

View File

@@ -17,7 +17,7 @@ from sqlmodel import (
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class DailyChallengeStatsBase(SQLModel, UTCBaseModel): class DailyChallengeStatsBase(SQLModel, UTCBaseModel):

View File

@@ -18,7 +18,7 @@ from sqlmodel import (
) )
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class EventType(str, Enum): class EventType(str, Enum):

View File

@@ -1,7 +1,7 @@
import datetime import datetime
from app.database.beatmapset import Beatmapset from app.database.beatmapset import Beatmapset
from app.database.lazer_user import User from app.database.user import User
from sqlalchemy.ext.asyncio import AsyncAttrs from sqlalchemy.ext.asyncio import AsyncAttrs
from sqlmodel import ( from sqlmodel import (

View File

@@ -1,39 +0,0 @@
"""
数据库字段类型工具
提供处理数据库和 Pydantic 之间类型转换的工具
"""
from typing import Any
from pydantic import field_validator
from sqlalchemy import Boolean
def bool_field_validator(field_name: str):
"""为特定布尔字段创建验证器,处理数据库中的 0/1 整数"""
@field_validator(field_name, mode="before")
@classmethod
def validate_bool_field(cls, v: Any) -> bool:
"""将整数 0/1 转换为布尔值"""
if isinstance(v, int):
return bool(v)
return v
return validate_bool_field
def create_bool_field(**kwargs):
"""创建一个带有正确 SQLAlchemy 列定义的布尔字段"""
from sqlmodel import Column, Field
# 如果没有指定 sa_column则使用 Boolean 类型
if "sa_column" not in kwargs:
# 处理 index 参数
index = kwargs.pop("index", False)
if index:
kwargs["sa_column"] = Column(Boolean, index=True)
else:
kwargs["sa_column"] = Column(Boolean)
return Field(**kwargs)

View File

@@ -1,5 +1,5 @@
from .lazer_user import User, UserResp
from .playlist_best_score import PlaylistBestScore from .playlist_best_score import PlaylistBestScore
from .user import User, UserResp
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy.ext.asyncio import AsyncAttrs from sqlalchemy.ext.asyncio import AsyncAttrs

View File

@@ -1,6 +1,6 @@
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from .lazer_user import User from .user import User
from redis.asyncio import Redis from redis.asyncio import Redis
from sqlmodel import ( from sqlmodel import (

View File

@@ -21,7 +21,7 @@ from sqlmodel import (
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class RankHistory(SQLModel, table=True): class RankHistory(SQLModel, table=True):

View File

@@ -1,6 +1,6 @@
from enum import Enum from enum import Enum
from .lazer_user import User, UserResp from .user import User, UserResp
from pydantic import BaseModel from pydantic import BaseModel
from sqlmodel import ( from sqlmodel import (

View File

@@ -1,6 +1,6 @@
from datetime import datetime from datetime import datetime
from app.database.playlist_attempts import PlaylistAggregateScore from app.database.item_attempts_count import PlaylistAggregateScore
from app.database.room_participated_user import RoomParticipatedUser from app.database.room_participated_user import RoomParticipatedUser
from app.models.model import UTCBaseModel from app.models.model import UTCBaseModel
from app.models.multiplayer_hub import ServerMultiplayerRoom from app.models.multiplayer_hub import ServerMultiplayerRoom
@@ -14,8 +14,8 @@ from app.models.room import (
) )
from app.utils import utcnow from app.utils import utcnow
from .lazer_user import User, UserResp
from .playlists import Playlist, PlaylistResp from .playlists import Playlist, PlaylistResp
from .user import User, UserResp
from sqlalchemy.ext.asyncio import AsyncAttrs from sqlalchemy.ext.asyncio import AsyncAttrs
from sqlmodel import ( from sqlmodel import (

View File

@@ -15,8 +15,8 @@ from sqlmodel import (
) )
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User
from .room import Room from .room import Room
from .user import User
class RoomParticipatedUser(AsyncAttrs, SQLModel, table=True): class RoomParticipatedUser(AsyncAttrs, SQLModel, table=True):

View File

@@ -38,17 +38,17 @@ from app.utils import utcnow
from .beatmap import Beatmap, BeatmapResp from .beatmap import Beatmap, BeatmapResp
from .beatmapset import BeatmapsetResp from .beatmapset import BeatmapsetResp
from .best_score import BestScore from .best_scores import PPBestScore
from .counts import MonthlyPlaycounts from .counts import MonthlyPlaycounts
from .events import Event, EventType from .events import Event, EventType
from .lazer_user import User, UserResp
from .playlist_best_score import PlaylistBestScore from .playlist_best_score import PlaylistBestScore
from .pp_best_score import PPBestScore
from .relationship import ( from .relationship import (
Relationship as DBRelationship, Relationship as DBRelationship,
RelationshipType, RelationshipType,
) )
from .score_token import ScoreToken from .score_token import ScoreToken
from .total_score_best_scores import BestScore
from .user import User, UserResp
from pydantic import BaseModel, field_serializer, field_validator from pydantic import BaseModel, field_serializer, field_validator
from redis.asyncio import Redis from redis.asyncio import Redis

View File

@@ -5,7 +5,7 @@ from app.models.score import GameMode
from app.utils import utcnow from app.utils import utcnow
from .beatmap import Beatmap from .beatmap import Beatmap
from .lazer_user import User from .user import User
from sqlalchemy import Column, DateTime, Index from sqlalchemy import Column, DateTime, Index
from sqlalchemy.orm import Mapped from sqlalchemy.orm import Mapped

View File

@@ -23,7 +23,7 @@ from sqlmodel import (
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User, UserResp from .user import User, UserResp
class UserStatisticsBase(SQLModel): class UserStatisticsBase(SQLModel):
@@ -122,7 +122,7 @@ class UserStatisticsResp(UserStatisticsBase):
"progress": int(math.fmod(obj.level_current, 1) * 100), "progress": int(math.fmod(obj.level_current, 1) * 100),
} }
if "user" in include: if "user" in include:
from .lazer_user import RANKING_INCLUDES, UserResp from .user import RANKING_INCLUDES, UserResp
user = await UserResp.from_db(await obj.awaitable_attrs.user, session, include=RANKING_INCLUDES) user = await UserResp.from_db(await obj.awaitable_attrs.user, session, include=RANKING_INCLUDES)
s.user = user s.user = user
@@ -149,7 +149,7 @@ class UserStatisticsResp(UserStatisticsBase):
async def get_rank(session: AsyncSession, statistics: UserStatistics, country: str | None = None) -> int | None: async def get_rank(session: AsyncSession, statistics: UserStatistics, country: str | None = None) -> int | None:
from .lazer_user import User from .user import User
query = select( query = select(
UserStatistics.user_id, UserStatistics.user_id,

View File

@@ -8,7 +8,7 @@ from sqlalchemy import Column, DateTime
from sqlmodel import BigInteger, Field, ForeignKey, Relationship, SQLModel from sqlmodel import BigInteger, Field, ForeignKey, Relationship, SQLModel
if TYPE_CHECKING: if TYPE_CHECKING:
from .lazer_user import User from .user import User
class Team(SQLModel, UTCBaseModel, table=True): class Team(SQLModel, UTCBaseModel, table=True):

View File

@@ -4,7 +4,7 @@ from app.calculator import calculate_score_to_level
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.models.score import GameMode, Rank from app.models.score import GameMode, Rank
from .lazer_user import User from .user import User
from sqlmodel import ( from sqlmodel import (
JSON, JSON,

View File

@@ -261,11 +261,11 @@ class UserResp(UserBase):
) -> "UserResp": ) -> "UserResp":
from app.dependencies.database import get_redis from app.dependencies.database import get_redis
from .best_score import BestScore from .best_scores import PPBestScore
from .favourite_beatmapset import FavouriteBeatmapset from .favourite_beatmapset import FavouriteBeatmapset
from .pp_best_score import PPBestScore
from .relationship import Relationship, RelationshipResp, RelationshipType from .relationship import Relationship, RelationshipResp, RelationshipType
from .score import Score, get_user_first_score_count from .score import Score, get_user_first_score_count
from .total_score_best_scores import BestScore
ruleset = ruleset or obj.playmode ruleset = ruleset or obj.playmode

View File

@@ -11,7 +11,7 @@ from typing import ClassVar
from app.auth import get_token_by_access_token from app.auth import get_token_by_access_token
from app.const import SUPPORT_TOTP_VERIFICATION_VER from app.const import SUPPORT_TOTP_VERIFICATION_VER
from app.database.lazer_user import User from app.database.user import User
from app.database.verification import LoginSession from app.database.verification import LoginSession
from app.dependencies.database import get_redis, with_db from app.dependencies.database import get_redis, with_db
from app.log import logger from app.log import logger

View File

@@ -7,10 +7,10 @@ import json
from typing import Any from typing import Any
from app.database.chat import ChannelType, ChatChannel # ChatChannel 模型 & 枚举 from app.database.chat import ChannelType, ChatChannel # ChatChannel 模型 & 枚举
from app.database.lazer_user import User
from app.database.playlists import Playlist as DBPlaylist from app.database.playlists import Playlist as DBPlaylist
from app.database.room import Room from app.database.room import Room
from app.database.room_participated_user import RoomParticipatedUser from app.database.room_participated_user import RoomParticipatedUser
from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.fetcher import get_fetcher from app.dependencies.fetcher import get_fetcher
from app.dependencies.storage import get_storage_service from app.dependencies.storage import get_storage_service

View File

@@ -1,8 +1,8 @@
from __future__ import annotations from __future__ import annotations
from app.config import settings from app.config import settings
from app.database.lazer_user import User
from app.database.notification import Notification, UserNotification from app.database.notification import Notification, UserNotification
from app.database.user import User
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user
from app.models.chat import ChatEvent from app.models.chat import ChatEvent

View File

@@ -12,9 +12,9 @@ from app.const import BANCHOBOT_ID
from app.database import ChatMessageResp from app.database import ChatMessageResp
from app.database.beatmap import Beatmap from app.database.beatmap import Beatmap
from app.database.chat import ChannelType, ChatChannel, ChatMessage, MessageType from app.database.chat import ChannelType, ChatChannel, ChatMessage, MessageType
from app.database.lazer_user import User
from app.database.score import Score, get_best_id from app.database.score import Score, get_best_id
from app.database.statistics import UserStatistics, get_rank from app.database.statistics import UserStatistics, get_rank
from app.database.user import User
from app.dependencies.fetcher import get_fetcher from app.dependencies.fetcher import get_fetcher
from app.exception import InvokeException from app.exception import InvokeException
from app.models.mods import APIMod, get_available_mods, mod_to_save from app.models.mods import APIMod, get_available_mods, mod_to_save

View File

@@ -10,7 +10,7 @@ from app.database.chat import (
SilenceUser, SilenceUser,
UserSilenceResp, UserSilenceResp,
) )
from app.database.lazer_user import User, UserResp from app.database.user import User, UserResp
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.param import BodyOrForm from app.dependencies.param import BodyOrForm
from app.dependencies.user import get_current_user from app.dependencies.user import get_current_user

View File

@@ -10,7 +10,7 @@ from app.database.chat import (
SilenceUser, SilenceUser,
UserSilenceResp, UserSilenceResp,
) )
from app.database.lazer_user import User from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.param import BodyOrForm from app.dependencies.param import BodyOrForm
from app.dependencies.user import get_current_user from app.dependencies.user import get_current_user

View File

@@ -4,8 +4,8 @@ import asyncio
from typing import overload from typing import overload
from app.database.chat import ChannelType, ChatChannel, ChatChannelResp, ChatMessageResp from app.database.chat import ChannelType, ChatChannel, ChatChannelResp, ChatMessageResp
from app.database.lazer_user import User
from app.database.notification import UserNotification, insert_notification from app.database.notification import UserNotification, insert_notification
from app.database.user import User
from app.dependencies.database import ( from app.dependencies.database import (
DBFactory, DBFactory,
get_db_factory, get_db_factory,

View File

@@ -2,7 +2,7 @@ from __future__ import annotations
import hashlib import hashlib
from app.database.lazer_user import User from app.database.user import User
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.storage import get_storage_service from app.dependencies.storage import get_storage_service
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user

View File

@@ -3,8 +3,8 @@ from __future__ import annotations
from app.database.beatmap import Beatmap from app.database.beatmap import Beatmap
from app.database.beatmapset import Beatmapset from app.database.beatmapset import Beatmapset
from app.database.beatmapset_ratings import BeatmapRating from app.database.beatmapset_ratings import BeatmapRating
from app.database.lazer_user import User
from app.database.score import Score from app.database.score import Score
from app.database.user import User
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user
from app.service.beatmapset_update_service import get_beatmapset_update_service from app.service.beatmapset_update_service import get_beatmapset_update_service

View File

@@ -2,7 +2,7 @@ from __future__ import annotations
import hashlib import hashlib
from app.database.lazer_user import User, UserProfileCover from app.database.user import User, UserProfileCover
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.storage import get_storage_service from app.dependencies.storage import get_storage_service
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
import secrets import secrets
from app.database.auth import OAuthClient, OAuthToken from app.database.auth import OAuthClient, OAuthToken
from app.database.lazer_user import User from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user

View File

@@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from app.database.lazer_user import User
from app.database.score import Score from app.database.score import Score
from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.storage import get_storage_service from app.dependencies.storage import get_storage_service
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user

View File

@@ -2,8 +2,8 @@ from __future__ import annotations
import hashlib import hashlib
from app.database.lazer_user import BASE_INCLUDES, User, UserResp
from app.database.team import Team, TeamMember, TeamRequest from app.database.team import Team, TeamMember, TeamRequest
from app.database.user import BASE_INCLUDES, User, UserResp
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.storage import get_storage_service from app.dependencies.storage import get_storage_service
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user

View File

@@ -9,7 +9,7 @@ from app.auth import (
) )
from app.const import BACKUP_CODE_LENGTH from app.const import BACKUP_CODE_LENGTH
from app.database.auth import TotpKeys from app.database.auth import TotpKeys
from app.database.lazer_user import User from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user
from app.models.totp import FinishStatus, StartCreateTotpKeyResp from app.models.totp import FinishStatus, StartCreateTotpKeyResp

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
from app.auth import validate_username from app.auth import validate_username
from app.config import settings from app.config import settings
from app.database.events import Event, EventType from app.database.events import Event, EventType
from app.database.lazer_user import User from app.database.user import User
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user
from app.utils import utcnow from app.utils import utcnow

View File

@@ -2,8 +2,8 @@ from __future__ import annotations
from typing import Literal from typing import Literal
from app.database.lazer_user import User
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.log import logger from app.log import logger
from app.models.score import GameMode from app.models.score import GameMode

View File

@@ -3,7 +3,7 @@ from __future__ import annotations
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Literal from typing import Literal
from app.database.pp_best_score import PPBestScore from app.database.best_scores import PPBestScore
from app.database.score import Score, get_leaderboard from app.database.score import Score, get_leaderboard
from app.dependencies.database import Database from app.dependencies.database import Database
from app.models.mods import int_to_mods, mod_to_save, mods_to_int from app.models.mods import int_to_mods, mod_to_save, mods_to_int

View File

@@ -3,8 +3,8 @@ from __future__ import annotations
from datetime import datetime from datetime import datetime
from typing import Literal from typing import Literal
from app.database.lazer_user import User
from app.database.statistics import UserStatistics, UserStatisticsResp from app.database.statistics import UserStatistics, UserStatisticsResp
from app.database.user import User
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.log import logger from app.log import logger
from app.models.score import GameMode from app.models.score import GameMode

View File

@@ -1,7 +1,7 @@
from __future__ import annotations from __future__ import annotations
from app.database import Relationship, RelationshipResp, RelationshipType, User from app.database import Relationship, RelationshipResp, RelationshipType, User
from app.database.lazer_user import UserResp from app.database.user import UserResp
from app.dependencies.api_version import APIVersion from app.dependencies.api_version import APIVersion
from app.dependencies.database import Database from app.dependencies.database import Database
from app.dependencies.user import get_client_user, get_current_user from app.dependencies.user import get_client_user, get_current_user

View File

@@ -5,13 +5,13 @@ from typing import Literal
from app.database.beatmap import Beatmap, BeatmapResp from app.database.beatmap import Beatmap, BeatmapResp
from app.database.beatmapset import BeatmapsetResp from app.database.beatmapset import BeatmapsetResp
from app.database.lazer_user import User, UserResp from app.database.item_attempts_count import ItemAttemptsCount, ItemAttemptsResp
from app.database.multiplayer_event import MultiplayerEvent, MultiplayerEventResp from app.database.multiplayer_event import MultiplayerEvent, MultiplayerEventResp
from app.database.playlist_attempts import ItemAttemptsCount, ItemAttemptsResp
from app.database.playlists import Playlist, PlaylistResp from app.database.playlists import Playlist, PlaylistResp
from app.database.room import APIUploadedRoom, Room, RoomResp from app.database.room import APIUploadedRoom, Room, RoomResp
from app.database.room_participated_user import RoomParticipatedUser from app.database.room_participated_user import RoomParticipatedUser
from app.database.score import Score from app.database.score import Score
from app.database.user import User, UserResp
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.user import get_client_user, get_current_user from app.dependencies.user import get_client_user, get_current_user
from app.models.room import RoomCategory, RoomStatus from app.models.room import RoomCategory, RoomStatus

View File

@@ -18,7 +18,7 @@ from app.database import (
from app.database.achievement import process_achievements from app.database.achievement import process_achievements
from app.database.counts import ReplayWatchedCount from app.database.counts import ReplayWatchedCount
from app.database.daily_challenge import process_daily_challenge_score from app.database.daily_challenge import process_daily_challenge_score
from app.database.playlist_attempts import ItemAttemptsCount from app.database.item_attempts_count import ItemAttemptsCount
from app.database.playlist_best_score import ( from app.database.playlist_best_score import (
PlaylistBestScore, PlaylistBestScore,
get_position, get_position,

View File

@@ -2,8 +2,8 @@ from __future__ import annotations
from app.database.beatmap import Beatmap from app.database.beatmap import Beatmap
from app.database.beatmap_tags import BeatmapTagVote from app.database.beatmap_tags import BeatmapTagVote
from app.database.lazer_user import User
from app.database.score import Score from app.database.score import Score
from app.database.user import User
from app.dependencies.database import get_db from app.dependencies.database import get_db
from app.dependencies.user import get_client_user from app.dependencies.user import get_client_user
from app.models.score import Rank from app.models.score import Rank

View File

@@ -12,10 +12,10 @@ from app.database import (
User, User,
UserResp, UserResp,
) )
from app.database.best_scores import PPBestScore
from app.database.events import Event from app.database.events import Event
from app.database.lazer_user import SEARCH_INCLUDED
from app.database.pp_best_score import PPBestScore
from app.database.score import LegacyScoreResp, Score, ScoreResp, get_user_first_scores from app.database.score import LegacyScoreResp, Score, ScoreResp, get_user_first_scores
from app.database.user import SEARCH_INCLUDED
from app.dependencies.api_version import APIVersion from app.dependencies.api_version import APIVersion
from app.dependencies.database import Database, get_redis from app.dependencies.database import Database, get_redis
from app.dependencies.user import get_current_user from app.dependencies.user import get_current_user

View File

@@ -1,8 +1,8 @@
from __future__ import annotations from __future__ import annotations
from app.const import BANCHOBOT_ID from app.const import BANCHOBOT_ID
from app.database.lazer_user import User
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.database.user import User
from app.dependencies.database import with_db from app.dependencies.database import with_db
from app.models.score import GameMode from app.models.score import GameMode

View File

@@ -6,11 +6,11 @@ from math import ceil
from app.const import BANCHOBOT_ID from app.const import BANCHOBOT_ID
from app.database.daily_challenge import DailyChallengeStats from app.database.daily_challenge import DailyChallengeStats
from app.database.lazer_user import User
from app.database.playlist_best_score import PlaylistBestScore from app.database.playlist_best_score import PlaylistBestScore
from app.database.playlists import Playlist from app.database.playlists import Playlist
from app.database.room import Room from app.database.room import Room
from app.database.score import Score from app.database.score import Score
from app.database.user import User
from app.dependencies.database import get_redis, with_db from app.dependencies.database import get_redis, with_db
from app.dependencies.scheduler import get_scheduler from app.dependencies.scheduler import get_scheduler
from app.log import logger from app.log import logger

View File

@@ -10,7 +10,7 @@ from app.database.chat import (
ChatMessageResp, ChatMessageResp,
MessageType, MessageType,
) )
from app.database.lazer_user import User from app.database.user import User
from app.log import logger from app.log import logger
from app.service.message_queue import message_queue from app.service.message_queue import message_queue
@@ -71,7 +71,7 @@ class OptimizedMessageService:
# 创建临时响应对象(简化版本,用于立即响应) # 创建临时响应对象(简化版本,用于立即响应)
from datetime import datetime from datetime import datetime
from app.database.lazer_user import UserResp from app.database.user import UserResp
# 创建基本的用户响应对象 # 创建基本的用户响应对象
user_resp = UserResp( user_resp = UserResp(

View File

@@ -2,8 +2,8 @@ from __future__ import annotations
from app.config import settings from app.config import settings
from app.const import BANCHOBOT_ID from app.const import BANCHOBOT_ID
from app.database.lazer_user import User
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.database.user import User
from app.dependencies.database import with_db from app.dependencies.database import with_db
from app.models.score import GameMode from app.models.score import GameMode

View File

@@ -6,7 +6,7 @@ import json
from app.calculator import calculate_pp from app.calculator import calculate_pp
from app.config import settings from app.config import settings
from app.database.beatmap import BannedBeatmaps, Beatmap from app.database.beatmap import BannedBeatmaps, Beatmap
from app.database.pp_best_score import PPBestScore from app.database.best_scores import PPBestScore
from app.database.score import Score, calculate_user_pp from app.database.score import Score, calculate_user_pp
from app.database.statistics import UserStatistics from app.database.statistics import UserStatistics
from app.dependencies.database import get_redis, with_db from app.dependencies.database import get_redis, with_db

View File

@@ -15,7 +15,7 @@ import time
from typing import Any from typing import Any
from app.database.chat import ChatMessage, ChatMessageResp, MessageType from app.database.chat import ChatMessage, ChatMessageResp, MessageType
from app.database.lazer_user import RANKING_INCLUDES, User, UserResp from app.database.user import RANKING_INCLUDES, User, UserResp
from app.dependencies.database import get_redis_message, with_db from app.dependencies.database import get_redis_message, with_db
from app.log import logger from app.log import logger
from app.utils import bg_tasks from app.utils import bg_tasks

View File

@@ -12,8 +12,8 @@ from typing import TYPE_CHECKING, Any
from app.config import settings from app.config import settings
from app.const import BANCHOBOT_ID from app.const import BANCHOBOT_ID
from app.database import User, UserResp from app.database import User, UserResp
from app.database.lazer_user import SEARCH_INCLUDED
from app.database.score import LegacyScoreResp, ScoreResp from app.database.score import LegacyScoreResp, ScoreResp
from app.database.user import SEARCH_INCLUDED
from app.dependencies.database import with_db from app.dependencies.database import with_db
from app.log import logger from app.log import logger
from app.models.score import GameMode from app.models.score import GameMode

View File

@@ -7,11 +7,11 @@ from typing import override
from app.database import Room from app.database import Room
from app.database.beatmap import Beatmap from app.database.beatmap import Beatmap
from app.database.chat import ChannelType, ChatChannel from app.database.chat import ChannelType, ChatChannel
from app.database.lazer_user import User
from app.database.multiplayer_event import MultiplayerEvent from app.database.multiplayer_event import MultiplayerEvent
from app.database.playlists import Playlist from app.database.playlists import Playlist
from app.database.relationship import Relationship, RelationshipType from app.database.relationship import Relationship, RelationshipType
from app.database.room_participated_user import RoomParticipatedUser from app.database.room_participated_user import RoomParticipatedUser
from app.database.user import User
from app.dependencies.database import get_redis, with_db from app.dependencies.database import get_redis, with_db
from app.dependencies.fetcher import get_fetcher from app.dependencies.fetcher import get_fetcher
from app.exception import InvokeException from app.exception import InvokeException

View File

@@ -14,7 +14,7 @@ from app.config import settings
from app.const import BANCHOBOT_ID from app.const import BANCHOBOT_ID
from app.database import BestScore, UserStatistics from app.database import BestScore, UserStatistics
from app.database.beatmap import Beatmap from app.database.beatmap import Beatmap
from app.database.pp_best_score import PPBestScore from app.database.best_scores import PPBestScore
from app.database.score import Score, calculate_playtime, calculate_user_pp from app.database.score import Score, calculate_playtime, calculate_user_pp
from app.dependencies.database import engine, get_redis from app.dependencies.database import engine, get_redis
from app.dependencies.fetcher import get_fetcher from app.dependencies.fetcher import get_fetcher