增加注释

This commit is contained in:
2025-12-02 14:09:01 +08:00
parent d77f06ad9a
commit 71cc36c7a5
4 changed files with 250 additions and 38 deletions

View File

@@ -1,7 +1,16 @@
/**
* package models
* 作用:定义项目中所有的数据结构,包括 HTTP 请求/响应载荷、数据库模型、Redis 消息格式以及常量定义。
*/
package models
import "time"
/**
* SendMessagePayload
* 结构体:客户端发送消息的请求载荷。
* 用途:用于解析 WebSocket 或 HTTP POST 请求体中的 JSON 数据。
*/
// 统一消息结构(发送方使用)
type SendMessagePayload struct {
RequestType string `json:"request_type"` // 消息类型
@@ -17,6 +26,10 @@ type SendMessagePayload struct {
CallStatus string `json:"call_status,omitempty"` // 通话状态:invite/accepted/rejected/ended/candidate
}
/**
* SendToUserPayload
* 结构体:仅通过用户ID发送消息的简化载荷。
*/
// 通过用户ID发送消息的结构
type SendToUserPayload struct {
RoomId string `json:"room_id"` // 发送者用户ID
@@ -30,6 +43,11 @@ type SendToUserPayload struct {
CallStatus string `json:"call_status,omitempty"` // 通话状态:invite/accepted/rejected/ended/candidate/offer/answer
}
/**
* XkChatMessage
* 结构体:数据库模型,对应 xk_chat_messages 表(假设)。
* 用途:持久化存储聊天记录。
*/
// 聊天消息记录模型
type XkChatMessage struct {
ID uint `gorm:"primaryKey" json:"id"`
@@ -44,6 +62,11 @@ type XkChatMessage struct {
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` // 创建时间
}
/**
* ClientReceivedMessage
* 结构体:客户端最终接收到的消息格式。
* 用途:服务端推送到客户端的 JSON 结构。
*/
// 客户端接收消息结构(最终格式)
type ClientReceivedMessage struct {
ID int `json:"id"` // 房间号
@@ -62,6 +85,11 @@ type ClientReceivedMessage struct {
CallStatus string `json:"call_status,omitempty"` // 通话状态:invite/accepted/rejected/ended/candidate/offer/answer
}
/**
* RedisMessage
* 结构体:Redis Pub/Sub 消息结构。
* 用途:用于跨节点消息转发。
*/
// Redis 消息结构
type RedisMessage struct {
SenderNodeID string `json:"sender_node_id"` // 发送节点ID
@@ -75,6 +103,10 @@ type BindRequest struct {
ClientID string `json:"client_id"` // 客户端ID
}
/**
* CallSignal
* 结构体:WebRTC 信令数据载荷。
*/
// 通话信令结构
type CallSignal struct {
CallStatus string `json:"call_status"` // 动作: invite/accept/reject/end/candidate/offer/answer