feat(chat): 聊天功能

This commit is contained in:
xingc
2025-04-03 17:27:05 +08:00
parent 70e0e5b034
commit 4d06b97cf4
4 changed files with 385 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
# -*- coding = utf-8 -*-
# @Time : 2025/3/8 下午10:54
# @File : schema.py
# @Software : PyCharm
# @Author : xingc
# @Desc :
from datetime import datetime
from typing import Literal, Optional, List
from pydantic import BaseModel, conint, UUID4
from core.base.schema import MessageType
from core.routers.user.schema import LiteUser
class ChatUser(LiteUser):
pass
class Message(BaseModel):
type: Literal[
'chat.new_message', 'chat.message_read'
]
message_guid: UUID4
message_type: MessageType
chat_guid: UUID4
receive_user: Optional[int] = None
body: str
class MessageOut(BaseModel):
type: Literal[
'chat.new_message', 'chat.send_status_reply'
]
code: Optional[int] = 200
status: Optional[Literal['ok', 'error']] = 'ok'
message_id: int
message_guid: UUID4
message_type: MessageType
chat_guid: UUID4
body: Optional[str] = None
friend_user: LiteUser
class Chat(BaseModel):
chat_guid: UUID4
friend_user: LiteUser
class ChatCreateIn(BaseModel):
recipient_user_id: int
class ChatUnreadOut(BaseModel):
chat_guid: UUID4
created_at: str
updated_at: str
recipient_user: LiteUser
last_message: str | None
unread_messages_count: int