Files
juwan-backend/desc/api/chat.api
T
2026-02-27 19:17:01 +08:00

68 lines
1.8 KiB
Plaintext

syntax = "v1"
import "common.api"
type (
ChatSession {
Id string `json:"id"`
Type string `json:"type"` // order, consultation
OrderId string `json:"orderId,optional"`
Participants []SimpleUser `json:"participants"`
LastMessage string `json:"lastMessage"`
UnreadCount int `json:"unreadCount"`
}
ChatSessionListResp {
Items []ChatSession `json:"items"`
Meta PageMeta `json:"meta"`
}
ChatMessage {
Id string `json:"id"`
SessionId string `json:"sessionId"`
SenderId string `json:"senderId"`
Type string `json:"type"` // text, image, system
Content string `json:"content"`
CreatedAt string `json:"createdAt"`
}
ChatMessageListResp {
Items []ChatMessage `json:"items"`
Meta PageMeta `json:"meta"`
}
SendMessageReq {
Type string `json:"type"`
Content string `json:"content"`
}
)
@server(
prefix: api/v1/chat
group: chat
jwt: Auth
)
service juwan-api {
@doc "获取会话列表"
@handler ListSessions
get /sessions (PageReq) returns (ChatSessionListResp)
@doc "获取会话详情"
@handler GetSession
get /sessions/:id (EmptyResp) returns (ChatSession)
@doc "获取消息历史"
@handler ListMessages
get /sessions/:id/messages (PageReq) returns (ChatMessageListResp)
@doc "发送消息"
@handler SendMessage
post /sessions/:id/messages (SendMessageReq) returns (ChatMessage)
@doc "创建/获取订单会话"
@handler EnsureOrderSession
post /sessions/order (EmptyResp) returns (ChatSession)
@doc "创建咨询会话"
@handler CreateConsultation
post /sessions/consultation (EmptyResp) returns (ChatSession)
}