refactor(database): rename filename to find the models by table name easily
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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)
|
|
||||||
@@ -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
|
||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user