fix(chat): fix pydantic warnings for channel name

This commit is contained in:
MingxuanGame
2026-01-11 16:38:03 +08:00
parent 8923d714a7
commit 96c8b70df6
3 changed files with 12 additions and 12 deletions

View File

@@ -93,7 +93,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]):
target_user_id = next(u for u in users if u != user.id) 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)) target_name = await session.exec(select(User.username).where(User.id == target_user_id))
return target_name.one() return target_name.one()
return channel.name return channel.channel_name
@included @included
@staticmethod @staticmethod
@@ -208,7 +208,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]):
class ChatChannel(ChatChannelModel, table=True): class ChatChannel(ChatChannelModel, table=True):
__tablename__: str = "chat_channels" __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 @classmethod
async def get(cls, channel: str | int, session: AsyncSession) -> "ChatChannel | None": async def get(cls, channel: str | int, session: AsyncSession) -> "ChatChannel | None":
@@ -218,7 +218,7 @@ class ChatChannel(ChatChannelModel, table=True):
channel_ = result.first() channel_ = result.first()
if channel_ is not None: if channel_ is not None:
return channel_ 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() return result.first()
@classmethod @classmethod

View File

@@ -99,7 +99,7 @@ async def join_channel(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")
@@ -126,7 +126,7 @@ async def leave_channel(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")
@@ -182,14 +182,14 @@ async def get_channel(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")
# 立即提取需要的属性 # 立即提取需要的属性
channel_type = db_channel.type channel_type = db_channel.type
channel_name = db_channel.name channel_name = db_channel.channel_name
users = [] users = []
if channel_type == ChannelType.PM: if channel_type == ChannelType.PM:
@@ -270,7 +270,7 @@ async def create_channel(
channel_name = f"pm_{current_user.id}_{req.target_id}" channel_name = f"pm_{current_user.id}_{req.target_id}"
else: else:
channel_name = req.channel.name if req.channel else "Unnamed Channel" 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() channel = result.first()
if channel is None: if channel is None:

View File

@@ -87,7 +87,7 @@ async def send_message(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")
@@ -95,7 +95,7 @@ async def send_message(
# 立即提取所有需要的属性,避免后续延迟加载 # 立即提取所有需要的属性,避免后续延迟加载
channel_id = db_channel.channel_id channel_id = db_channel.channel_id
channel_type = db_channel.type channel_type = db_channel.type
channel_name = db_channel.name channel_name = db_channel.channel_name
user_id = current_user.id user_id = current_user.id
# 对于多人游戏房间在发送消息前进行Redis键检查 # 对于多人游戏房间在发送消息前进行Redis键检查
@@ -169,7 +169,7 @@ async def get_message(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")
@@ -231,7 +231,7 @@ async def mark_as_read(
if channel.isdigit(): if channel.isdigit():
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first() db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
else: 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: if db_channel is None:
raise HTTPException(status_code=404, detail="Channel not found") raise HTTPException(status_code=404, detail="Channel not found")