diff --git a/app/database/__init__.py b/app/database/__init__.py index 328710a..7140ea1 100644 --- a/app/database/__init__.py +++ b/app/database/__init__.py @@ -12,7 +12,7 @@ from .beatmapset import ( BeatmapsetResp, ) from .beatmapset_ratings import BeatmapRating -from .best_score import BestScore +from .best_scores import PPBestScore from .chat import ( ChannelType, ChatChannel, @@ -28,22 +28,16 @@ from .counts import ( from .daily_challenge import DailyChallengeStats, DailyChallengeStatsResp from .events import Event from .favourite_beatmapset import FavouriteBeatmapset -from .lazer_user import ( - MeResp, - User, - UserResp, -) -from .multiplayer_event import MultiplayerEvent, MultiplayerEventResp -from .notification import Notification, UserNotification -from .password_reset import PasswordReset -from .playlist_attempts import ( +from .item_attempts_count import ( ItemAttemptsCount, ItemAttemptsResp, PlaylistAggregateScore, ) +from .multiplayer_event import MultiplayerEvent, MultiplayerEventResp +from .notification import Notification, UserNotification +from .password_reset import PasswordReset from .playlist_best_score import PlaylistBestScore from .playlists import Playlist, PlaylistResp -from .pp_best_score import PPBestScore from .rank_history import RankHistory, RankHistoryResp, RankTop from .relationship import Relationship, RelationshipResp, RelationshipType from .room import APIUploadedRoom, Room, RoomResp @@ -62,6 +56,12 @@ from .statistics import ( UserStatisticsResp, ) from .team import Team, TeamMember, TeamRequest +from .total_score_best_scores import BestScore +from .user import ( + MeResp, + User, + UserResp, +) from .user_account_history import ( UserAccountHistory, UserAccountHistoryResp, diff --git a/app/database/achievement.py b/app/database/achievement.py index fcaacf4..ca5580c 100644 --- a/app/database/achievement.py +++ b/app/database/achievement.py @@ -24,7 +24,7 @@ from sqlmodel import ( from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: - from .lazer_user import User + from .user import User class UserAchievementBase(SQLModel, UTCBaseModel): diff --git a/app/database/auth.py b/app/database/auth.py index 11995d8..443ba8c 100644 --- a/app/database/auth.py +++ b/app/database/auth.py @@ -19,7 +19,7 @@ from sqlmodel import ( ) if TYPE_CHECKING: - from .lazer_user import User + from .user import User class OAuthToken(UTCBaseModel, SQLModel, table=True): diff --git a/app/database/beatmap.py b/app/database/beatmap.py index ab849e6..ff920b1 100644 --- a/app/database/beatmap.py +++ b/app/database/beatmap.py @@ -23,7 +23,7 @@ from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: from app.fetcher import Fetcher - from .lazer_user import User + from .user import User class BeatmapOwner(SQLModel): diff --git a/app/database/beatmap_playcounts.py b/app/database/beatmap_playcounts.py index af99f29..2635d6a 100644 --- a/app/database/beatmap_playcounts.py +++ b/app/database/beatmap_playcounts.py @@ -20,7 +20,7 @@ from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: from .beatmap import Beatmap, BeatmapResp from .beatmapset import BeatmapsetResp - from .lazer_user import User + from .user import User class BeatmapPlaycounts(AsyncAttrs, SQLModel, table=True): diff --git a/app/database/beatmapset.py b/app/database/beatmapset.py index 8754a02..fa9abf4 100644 --- a/app/database/beatmapset.py +++ b/app/database/beatmapset.py @@ -5,7 +5,7 @@ from app.config import settings from app.models.beatmap import BeatmapRankStatus, Genre, Language 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 sqlalchemy import JSON, Boolean, Column, DateTime, Text diff --git a/app/database/beatmapset_ratings.py b/app/database/beatmapset_ratings.py index 07627b4..48ab0c1 100644 --- a/app/database/beatmapset_ratings.py +++ b/app/database/beatmapset_ratings.py @@ -1,7 +1,7 @@ from __future__ import annotations 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 diff --git a/app/database/pp_best_score.py b/app/database/best_scores.py similarity index 98% rename from app/database/pp_best_score.py rename to app/database/best_scores.py index ad82114..ac3b44b 100644 --- a/app/database/pp_best_score.py +++ b/app/database/best_scores.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING from app.database.statistics import UserStatistics from app.models.score import GameMode -from .lazer_user import User +from .user import User from sqlmodel import ( BigInteger, diff --git a/app/database/chat.py b/app/database/chat.py index a56c6e4..f0d1c47 100644 --- a/app/database/chat.py +++ b/app/database/chat.py @@ -2,7 +2,7 @@ from datetime import datetime from enum import Enum 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.utils import utcnow diff --git a/app/database/counts.py b/app/database/counts.py index 57e2b46..2390c2d 100644 --- a/app/database/counts.py +++ b/app/database/counts.py @@ -11,7 +11,7 @@ from sqlmodel import ( ) if TYPE_CHECKING: - from .lazer_user import User + from .user import User class CountBase(SQLModel): diff --git a/app/database/daily_challenge.py b/app/database/daily_challenge.py index 5c9e520..98626c3 100644 --- a/app/database/daily_challenge.py +++ b/app/database/daily_challenge.py @@ -17,7 +17,7 @@ from sqlmodel import ( from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: - from .lazer_user import User + from .user import User class DailyChallengeStatsBase(SQLModel, UTCBaseModel): diff --git a/app/database/events.py b/app/database/events.py index 2df37b4..617a08e 100644 --- a/app/database/events.py +++ b/app/database/events.py @@ -18,7 +18,7 @@ from sqlmodel import ( ) if TYPE_CHECKING: - from .lazer_user import User + from .user import User class EventType(str, Enum): diff --git a/app/database/favourite_beatmapset.py b/app/database/favourite_beatmapset.py index c59521c..308bc30 100644 --- a/app/database/favourite_beatmapset.py +++ b/app/database/favourite_beatmapset.py @@ -1,7 +1,7 @@ import datetime 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 sqlmodel import ( diff --git a/app/database/field_utils.py b/app/database/field_utils.py deleted file mode 100644 index 5f18134..0000000 --- a/app/database/field_utils.py +++ /dev/null @@ -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) diff --git a/app/database/playlist_attempts.py b/app/database/item_attempts_count.py similarity index 99% rename from app/database/playlist_attempts.py rename to app/database/item_attempts_count.py index ccb7704..a4487c2 100644 --- a/app/database/playlist_attempts.py +++ b/app/database/item_attempts_count.py @@ -1,5 +1,5 @@ -from .lazer_user import User, UserResp from .playlist_best_score import PlaylistBestScore +from .user import User, UserResp from pydantic import BaseModel from sqlalchemy.ext.asyncio import AsyncAttrs diff --git a/app/database/playlist_best_score.py b/app/database/playlist_best_score.py index 411797d..43d8c88 100644 --- a/app/database/playlist_best_score.py +++ b/app/database/playlist_best_score.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING -from .lazer_user import User +from .user import User from redis.asyncio import Redis from sqlmodel import ( diff --git a/app/database/rank_history.py b/app/database/rank_history.py index 8124501..6ecd6a9 100644 --- a/app/database/rank_history.py +++ b/app/database/rank_history.py @@ -21,7 +21,7 @@ from sqlmodel import ( from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: - from .lazer_user import User + from .user import User class RankHistory(SQLModel, table=True): diff --git a/app/database/relationship.py b/app/database/relationship.py index a6d109e..f792f31 100644 --- a/app/database/relationship.py +++ b/app/database/relationship.py @@ -1,6 +1,6 @@ from enum import Enum -from .lazer_user import User, UserResp +from .user import User, UserResp from pydantic import BaseModel from sqlmodel import ( diff --git a/app/database/room.py b/app/database/room.py index f4844b1..647b7ca 100644 --- a/app/database/room.py +++ b/app/database/room.py @@ -1,6 +1,6 @@ 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.models.model import UTCBaseModel from app.models.multiplayer_hub import ServerMultiplayerRoom @@ -14,8 +14,8 @@ from app.models.room import ( ) from app.utils import utcnow -from .lazer_user import User, UserResp from .playlists import Playlist, PlaylistResp +from .user import User, UserResp from sqlalchemy.ext.asyncio import AsyncAttrs from sqlmodel import ( diff --git a/app/database/room_participated_user.py b/app/database/room_participated_user.py index 4ef6526..b57e72b 100644 --- a/app/database/room_participated_user.py +++ b/app/database/room_participated_user.py @@ -15,8 +15,8 @@ from sqlmodel import ( ) if TYPE_CHECKING: - from .lazer_user import User from .room import Room + from .user import User class RoomParticipatedUser(AsyncAttrs, SQLModel, table=True): diff --git a/app/database/score.py b/app/database/score.py index fb1065f..1aaf8b8 100644 --- a/app/database/score.py +++ b/app/database/score.py @@ -38,17 +38,17 @@ from app.utils import utcnow from .beatmap import Beatmap, BeatmapResp from .beatmapset import BeatmapsetResp -from .best_score import BestScore +from .best_scores import PPBestScore from .counts import MonthlyPlaycounts from .events import Event, EventType -from .lazer_user import User, UserResp from .playlist_best_score import PlaylistBestScore -from .pp_best_score import PPBestScore from .relationship import ( Relationship as DBRelationship, RelationshipType, ) 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 redis.asyncio import Redis diff --git a/app/database/score_token.py b/app/database/score_token.py index 32eba89..f6762bb 100644 --- a/app/database/score_token.py +++ b/app/database/score_token.py @@ -5,7 +5,7 @@ from app.models.score import GameMode from app.utils import utcnow from .beatmap import Beatmap -from .lazer_user import User +from .user import User from sqlalchemy import Column, DateTime, Index from sqlalchemy.orm import Mapped diff --git a/app/database/statistics.py b/app/database/statistics.py index 55a6200..2529b7f 100644 --- a/app/database/statistics.py +++ b/app/database/statistics.py @@ -23,7 +23,7 @@ from sqlmodel import ( from sqlmodel.ext.asyncio.session import AsyncSession if TYPE_CHECKING: - from .lazer_user import User, UserResp + from .user import User, UserResp class UserStatisticsBase(SQLModel): @@ -122,7 +122,7 @@ class UserStatisticsResp(UserStatisticsBase): "progress": int(math.fmod(obj.level_current, 1) * 100), } 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) s.user = user @@ -149,7 +149,7 @@ class UserStatisticsResp(UserStatisticsBase): 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( UserStatistics.user_id, diff --git a/app/database/team.py b/app/database/team.py index afdc42c..7788f99 100644 --- a/app/database/team.py +++ b/app/database/team.py @@ -8,7 +8,7 @@ from sqlalchemy import Column, DateTime from sqlmodel import BigInteger, Field, ForeignKey, Relationship, SQLModel if TYPE_CHECKING: - from .lazer_user import User + from .user import User class Team(SQLModel, UTCBaseModel, table=True): diff --git a/app/database/best_score.py b/app/database/total_score_best_scores.py similarity index 98% rename from app/database/best_score.py rename to app/database/total_score_best_scores.py index eaaa5d8..963678c 100644 --- a/app/database/best_score.py +++ b/app/database/total_score_best_scores.py @@ -4,7 +4,7 @@ from app.calculator import calculate_score_to_level from app.database.statistics import UserStatistics from app.models.score import GameMode, Rank -from .lazer_user import User +from .user import User from sqlmodel import ( JSON, diff --git a/app/database/lazer_user.py b/app/database/user.py similarity index 99% rename from app/database/lazer_user.py rename to app/database/user.py index 8d34778..053c1b0 100644 --- a/app/database/lazer_user.py +++ b/app/database/user.py @@ -261,11 +261,11 @@ class UserResp(UserBase): ) -> "UserResp": from app.dependencies.database import get_redis - from .best_score import BestScore + from .best_scores import PPBestScore from .favourite_beatmapset import FavouriteBeatmapset - from .pp_best_score import PPBestScore from .relationship import Relationship, RelationshipResp, RelationshipType from .score import Score, get_user_first_score_count + from .total_score_best_scores import BestScore ruleset = ruleset or obj.playmode diff --git a/app/middleware/verify_session.py b/app/middleware/verify_session.py index 2124ab5..76277fc 100644 --- a/app/middleware/verify_session.py +++ b/app/middleware/verify_session.py @@ -11,7 +11,7 @@ from typing import ClassVar from app.auth import get_token_by_access_token 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.dependencies.database import get_redis, with_db from app.log import logger diff --git a/app/router/lio.py b/app/router/lio.py index 1fbc048..8d3d960 100644 --- a/app/router/lio.py +++ b/app/router/lio.py @@ -7,10 +7,10 @@ import json from typing import Any 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.room import Room 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.fetcher import get_fetcher from app.dependencies.storage import get_storage_service diff --git a/app/router/notification/__init__.py b/app/router/notification/__init__.py index d4c0b8b..176fbdb 100644 --- a/app/router/notification/__init__.py +++ b/app/router/notification/__init__.py @@ -1,8 +1,8 @@ from __future__ import annotations from app.config import settings -from app.database.lazer_user import User from app.database.notification import Notification, UserNotification +from app.database.user import User from app.dependencies.database import Database from app.dependencies.user import get_client_user from app.models.chat import ChatEvent diff --git a/app/router/notification/banchobot.py b/app/router/notification/banchobot.py index 5b1a7ed..c140650 100644 --- a/app/router/notification/banchobot.py +++ b/app/router/notification/banchobot.py @@ -12,9 +12,9 @@ from app.const import BANCHOBOT_ID from app.database import ChatMessageResp from app.database.beatmap import Beatmap 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.statistics import UserStatistics, get_rank +from app.database.user import User from app.dependencies.fetcher import get_fetcher from app.exception import InvokeException from app.models.mods import APIMod, get_available_mods, mod_to_save diff --git a/app/router/notification/channel.py b/app/router/notification/channel.py index 9f76d7e..bc251ca 100644 --- a/app/router/notification/channel.py +++ b/app/router/notification/channel.py @@ -10,7 +10,7 @@ from app.database.chat import ( SilenceUser, 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.param import BodyOrForm from app.dependencies.user import get_current_user diff --git a/app/router/notification/message.py b/app/router/notification/message.py index 2a58af0..6470c36 100644 --- a/app/router/notification/message.py +++ b/app/router/notification/message.py @@ -10,7 +10,7 @@ from app.database.chat import ( SilenceUser, 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.param import BodyOrForm from app.dependencies.user import get_current_user diff --git a/app/router/notification/server.py b/app/router/notification/server.py index 7fe8859..778338c 100644 --- a/app/router/notification/server.py +++ b/app/router/notification/server.py @@ -4,8 +4,8 @@ import asyncio from typing import overload 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.user import User from app.dependencies.database import ( DBFactory, get_db_factory, diff --git a/app/router/private/avatar.py b/app/router/private/avatar.py index 3530c4e..e37596f 100644 --- a/app/router/private/avatar.py +++ b/app/router/private/avatar.py @@ -2,7 +2,7 @@ from __future__ import annotations import hashlib -from app.database.lazer_user import User +from app.database.user import User from app.dependencies.database import Database from app.dependencies.storage import get_storage_service from app.dependencies.user import get_client_user diff --git a/app/router/private/beatmapset.py b/app/router/private/beatmapset.py index 3c78028..ba3c4ee 100644 --- a/app/router/private/beatmapset.py +++ b/app/router/private/beatmapset.py @@ -3,8 +3,8 @@ from __future__ import annotations from app.database.beatmap import Beatmap from app.database.beatmapset import Beatmapset from app.database.beatmapset_ratings import BeatmapRating -from app.database.lazer_user import User from app.database.score import Score +from app.database.user import User from app.dependencies.database import Database from app.dependencies.user import get_client_user from app.service.beatmapset_update_service import get_beatmapset_update_service diff --git a/app/router/private/cover.py b/app/router/private/cover.py index adc44c5..04f8d1b 100644 --- a/app/router/private/cover.py +++ b/app/router/private/cover.py @@ -2,7 +2,7 @@ from __future__ import annotations 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.storage import get_storage_service from app.dependencies.user import get_client_user diff --git a/app/router/private/oauth.py b/app/router/private/oauth.py index d3561dc..f4f5d78 100644 --- a/app/router/private/oauth.py +++ b/app/router/private/oauth.py @@ -3,7 +3,7 @@ from __future__ import annotations import secrets 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.user import get_client_user diff --git a/app/router/private/score.py b/app/router/private/score.py index 44fdc2a..75225bd 100644 --- a/app/router/private/score.py +++ b/app/router/private/score.py @@ -1,7 +1,7 @@ from __future__ import annotations -from app.database.lazer_user import User from app.database.score import Score +from app.database.user import User from app.dependencies.database import Database, get_redis from app.dependencies.storage import get_storage_service from app.dependencies.user import get_client_user diff --git a/app/router/private/team.py b/app/router/private/team.py index 26ac527..681cd13 100644 --- a/app/router/private/team.py +++ b/app/router/private/team.py @@ -2,8 +2,8 @@ from __future__ import annotations import hashlib -from app.database.lazer_user import BASE_INCLUDES, User, UserResp 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.storage import get_storage_service from app.dependencies.user import get_client_user diff --git a/app/router/private/totp.py b/app/router/private/totp.py index 3fa3ef3..2435567 100644 --- a/app/router/private/totp.py +++ b/app/router/private/totp.py @@ -9,7 +9,7 @@ from app.auth import ( ) from app.const import BACKUP_CODE_LENGTH 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.user import get_client_user from app.models.totp import FinishStatus, StartCreateTotpKeyResp diff --git a/app/router/private/username.py b/app/router/private/username.py index 8f2f6e3..571cd40 100644 --- a/app/router/private/username.py +++ b/app/router/private/username.py @@ -3,7 +3,7 @@ from __future__ import annotations from app.auth import validate_username from app.config import settings 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.user import get_client_user from app.utils import utcnow diff --git a/app/router/v1/public_user.py b/app/router/v1/public_user.py index a29d830..1f5df71 100644 --- a/app/router/v1/public_user.py +++ b/app/router/v1/public_user.py @@ -2,8 +2,8 @@ from __future__ import annotations from typing import Literal -from app.database.lazer_user import User from app.database.statistics import UserStatistics +from app.database.user import User from app.dependencies.database import Database, get_redis from app.log import logger from app.models.score import GameMode diff --git a/app/router/v1/score.py b/app/router/v1/score.py index 27e8240..ccbcf4f 100644 --- a/app/router/v1/score.py +++ b/app/router/v1/score.py @@ -3,7 +3,7 @@ from __future__ import annotations from datetime import datetime, timedelta 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.dependencies.database import Database from app.models.mods import int_to_mods, mod_to_save, mods_to_int diff --git a/app/router/v1/user.py b/app/router/v1/user.py index fdb28b2..77e0369 100644 --- a/app/router/v1/user.py +++ b/app/router/v1/user.py @@ -3,8 +3,8 @@ from __future__ import annotations from datetime import datetime from typing import Literal -from app.database.lazer_user import User from app.database.statistics import UserStatistics, UserStatisticsResp +from app.database.user import User from app.dependencies.database import Database, get_redis from app.log import logger from app.models.score import GameMode diff --git a/app/router/v2/relationship.py b/app/router/v2/relationship.py index 431098e..b028951 100644 --- a/app/router/v2/relationship.py +++ b/app/router/v2/relationship.py @@ -1,7 +1,7 @@ from __future__ import annotations 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.database import Database from app.dependencies.user import get_client_user, get_current_user diff --git a/app/router/v2/room.py b/app/router/v2/room.py index 7b20413..6a42dbc 100644 --- a/app/router/v2/room.py +++ b/app/router/v2/room.py @@ -5,13 +5,13 @@ from typing import Literal from app.database.beatmap import Beatmap, BeatmapResp 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.playlist_attempts import ItemAttemptsCount, ItemAttemptsResp from app.database.playlists import Playlist, PlaylistResp from app.database.room import APIUploadedRoom, Room, RoomResp from app.database.room_participated_user import RoomParticipatedUser from app.database.score import Score +from app.database.user import User, UserResp from app.dependencies.database import Database, get_redis from app.dependencies.user import get_client_user, get_current_user from app.models.room import RoomCategory, RoomStatus diff --git a/app/router/v2/score.py b/app/router/v2/score.py index 7472fbb..ff5765f 100644 --- a/app/router/v2/score.py +++ b/app/router/v2/score.py @@ -18,7 +18,7 @@ from app.database import ( from app.database.achievement import process_achievements from app.database.counts import ReplayWatchedCount 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 ( PlaylistBestScore, get_position, diff --git a/app/router/v2/tags.py b/app/router/v2/tags.py index af124ef..99fccb2 100644 --- a/app/router/v2/tags.py +++ b/app/router/v2/tags.py @@ -2,8 +2,8 @@ from __future__ import annotations from app.database.beatmap import Beatmap from app.database.beatmap_tags import BeatmapTagVote -from app.database.lazer_user import User from app.database.score import Score +from app.database.user import User from app.dependencies.database import get_db from app.dependencies.user import get_client_user from app.models.score import Rank diff --git a/app/router/v2/user.py b/app/router/v2/user.py index ed3a076..7ff444a 100644 --- a/app/router/v2/user.py +++ b/app/router/v2/user.py @@ -12,10 +12,10 @@ from app.database import ( User, UserResp, ) +from app.database.best_scores import PPBestScore 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.user import SEARCH_INCLUDED from app.dependencies.api_version import APIVersion from app.dependencies.database import Database, get_redis from app.dependencies.user import get_current_user diff --git a/app/service/create_banchobot.py b/app/service/create_banchobot.py index 0393396..16605c5 100644 --- a/app/service/create_banchobot.py +++ b/app/service/create_banchobot.py @@ -1,8 +1,8 @@ from __future__ import annotations from app.const import BANCHOBOT_ID -from app.database.lazer_user import User from app.database.statistics import UserStatistics +from app.database.user import User from app.dependencies.database import with_db from app.models.score import GameMode diff --git a/app/service/daily_challenge.py b/app/service/daily_challenge.py index 1d421c2..c0f5aac 100644 --- a/app/service/daily_challenge.py +++ b/app/service/daily_challenge.py @@ -6,11 +6,11 @@ from math import ceil from app.const import BANCHOBOT_ID 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.playlists import Playlist from app.database.room import Room from app.database.score import Score +from app.database.user import User from app.dependencies.database import get_redis, with_db from app.dependencies.scheduler import get_scheduler from app.log import logger diff --git a/app/service/optimized_message.py b/app/service/optimized_message.py index 06a5d99..c68f5c1 100644 --- a/app/service/optimized_message.py +++ b/app/service/optimized_message.py @@ -10,7 +10,7 @@ from app.database.chat import ( ChatMessageResp, MessageType, ) -from app.database.lazer_user import User +from app.database.user import User from app.log import logger from app.service.message_queue import message_queue @@ -71,7 +71,7 @@ class OptimizedMessageService: # 创建临时响应对象(简化版本,用于立即响应) from datetime import datetime - from app.database.lazer_user import UserResp + from app.database.user import UserResp # 创建基本的用户响应对象 user_resp = UserResp( diff --git a/app/service/osu_rx_statistics.py b/app/service/osu_rx_statistics.py index b53082c..ed82189 100644 --- a/app/service/osu_rx_statistics.py +++ b/app/service/osu_rx_statistics.py @@ -2,8 +2,8 @@ from __future__ import annotations from app.config import settings from app.const import BANCHOBOT_ID -from app.database.lazer_user import User from app.database.statistics import UserStatistics +from app.database.user import User from app.dependencies.database import with_db from app.models.score import GameMode diff --git a/app/service/recalculate_banned_beatmap.py b/app/service/recalculate_banned_beatmap.py index 6010e2b..0ed4d78 100644 --- a/app/service/recalculate_banned_beatmap.py +++ b/app/service/recalculate_banned_beatmap.py @@ -6,7 +6,7 @@ import json from app.calculator import calculate_pp from app.config import settings 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.statistics import UserStatistics from app.dependencies.database import get_redis, with_db diff --git a/app/service/redis_message_system.py b/app/service/redis_message_system.py index 1f15a59..2ca6d99 100644 --- a/app/service/redis_message_system.py +++ b/app/service/redis_message_system.py @@ -15,7 +15,7 @@ import time from typing import Any 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.log import logger from app.utils import bg_tasks diff --git a/app/service/user_cache_service.py b/app/service/user_cache_service.py index f95bcfc..ae0022e 100644 --- a/app/service/user_cache_service.py +++ b/app/service/user_cache_service.py @@ -12,8 +12,8 @@ from typing import TYPE_CHECKING, Any from app.config import settings from app.const import BANCHOBOT_ID from app.database import User, UserResp -from app.database.lazer_user import SEARCH_INCLUDED from app.database.score import LegacyScoreResp, ScoreResp +from app.database.user import SEARCH_INCLUDED from app.dependencies.database import with_db from app.log import logger from app.models.score import GameMode diff --git a/app/signalr/hub/multiplayer.py b/app/signalr/hub/multiplayer.py index e294984..345de1d 100644 --- a/app/signalr/hub/multiplayer.py +++ b/app/signalr/hub/multiplayer.py @@ -7,11 +7,11 @@ from typing import override from app.database import Room from app.database.beatmap import Beatmap from app.database.chat import ChannelType, ChatChannel -from app.database.lazer_user import User from app.database.multiplayer_event import MultiplayerEvent from app.database.playlists import Playlist from app.database.relationship import Relationship, RelationshipType 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.fetcher import get_fetcher from app.exception import InvokeException diff --git a/tools/recalculate.py b/tools/recalculate.py index 791488d..97f8dfb 100644 --- a/tools/recalculate.py +++ b/tools/recalculate.py @@ -14,7 +14,7 @@ from app.config import settings from app.const import BANCHOBOT_ID from app.database import BestScore, UserStatistics 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.dependencies.database import engine, get_redis from app.dependencies.fetcher import get_fetcher