syntax = "v1"

info (
	title: "websocket"// TODO: add title
	desc: // TODO: add description
	author: ""
	email: ""
)

import "basic.api"
service websocket {
	//websocket数据交互
	@handler DataTransferHandler
	get /api/websocket/data_transfer(request) returns (response);
	//云渲染完了通知接口
	@handler RenderNotifyHandler
	post /api/websocket/render_notify(RenderNotifyReq) returns (response);
	//注册回调
	@handler RegisterAccountNotifyHandler
	post /api/websocket/register_account_notify(RegisterAccountNotifyReq) returns (response);
	//登录回调
	@handler LoginNotifyHandler
	post /api/websocket/login_notify(LoginNotifyReq) returns (response);
}

//渲染完了通知接口
type RenderNotifyReq {
	TaskId  string `json:"task_id"` //任务id
	UserId  int64  `json:"user_id"`
	GuestId int64  `json:"guest_id"`
	Image   string `json:"image"`
}
//注册回调
type RegisterAccountNotifyReq {
	Data RegisterAccountData `json:"data"`
	Time int64               `json:"time,optional"` //utc时间戳(用于验证签名)
	Sign string              `json:"sign,optional"` //签名
}
type RegisterAccountData {
	WebsocketConnId string                 `json:"websocket_conn_id"` //连接标识
	Info            map[string]interface{} `json:"info"`
}
//登录回调
type LoginNotifyReq {
	Data LoginNotifyData `json:"data"`
	Time int64           `json:"time,optional"` //utc时间戳(用于验证签名)
	Sign string          `json:"sign,optional"` //签名
}
type LoginNotifyData {
	WebsocketConnId string                 `json:"websocket_conn_id"` //连接标识
	Info            map[string]interface{} `json:"info"`
}