diff --git a/app/database/chat.py b/app/database/chat.py index 3dfb0cb..d92e1b0 100644 --- a/app/database/chat.py +++ b/app/database/chat.py @@ -93,7 +93,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]): target_user_id = next(u for u in users if u != user.id) target_name = await session.exec(select(User.username).where(User.id == target_user_id)) return target_name.one() - return channel.name + return channel.channel_name @included @staticmethod @@ -208,7 +208,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]): class ChatChannel(ChatChannelModel, table=True): __tablename__: str = "chat_channels" - name: str = Field(sa_column=Column(VARCHAR(50), index=True)) + channel_name: str = Field(sa_column=Column(name="name", type_=VARCHAR(50), index=True)) @classmethod async def get(cls, channel: str | int, session: AsyncSession) -> "ChatChannel | None": @@ -218,7 +218,7 @@ class ChatChannel(ChatChannelModel, table=True): channel_ = result.first() if channel_ is not None: return channel_ - result = await session.exec(select(ChatChannel).where(ChatChannel.name == channel)) + result = await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel)) return result.first() @classmethod diff --git a/app/router/notification/channel.py b/app/router/notification/channel.py index 4428572..bde6d35 100644 --- a/app/router/notification/channel.py +++ b/app/router/notification/channel.py @@ -99,7 +99,7 @@ async def join_channel( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") @@ -126,7 +126,7 @@ async def leave_channel( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") @@ -182,14 +182,14 @@ async def get_channel( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") # 立即提取需要的属性 channel_type = db_channel.type - channel_name = db_channel.name + channel_name = db_channel.channel_name users = [] if channel_type == ChannelType.PM: @@ -270,7 +270,7 @@ async def create_channel( channel_name = f"pm_{current_user.id}_{req.target_id}" else: channel_name = req.channel.name if req.channel else "Unnamed Channel" - result = await session.exec(select(ChatChannel).where(ChatChannel.name == channel_name)) + result = await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel_name)) channel = result.first() if channel is None: diff --git a/app/router/notification/message.py b/app/router/notification/message.py index f5b2d5b..3789d8f 100644 --- a/app/router/notification/message.py +++ b/app/router/notification/message.py @@ -87,7 +87,7 @@ async def send_message( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") @@ -95,7 +95,7 @@ async def send_message( # 立即提取所有需要的属性,避免后续延迟加载 channel_id = db_channel.channel_id channel_type = db_channel.type - channel_name = db_channel.name + channel_name = db_channel.channel_name user_id = current_user.id # 对于多人游戏房间,在发送消息前进行Redis键检查 @@ -169,7 +169,7 @@ async def get_message( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found") @@ -231,7 +231,7 @@ async def mark_as_read( if channel.isdigit(): db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() else: - db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first() + db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first() if db_channel is None: raise HTTPException(status_code=404, detail="Channel not found")