package websocket_data

import "fusenapi/constants"

// websocket数据交互基本数据类型
type DataTransferData struct {
	T constants.Websocket `json:"t"` //消息类型
	D interface{}         `json:"d"` //传递的消息
}

// websocket接受要云渲染处理的数据
type RenderImageReqMsg struct {
	RenderId               string     `json:"render_id"`                 //渲染id
	OnlyReturnCombineImage bool       `json:"only_return_combine_image"` //是否只返回刀版图
	RenderData             RenderData `json:"render_data"`
}
type RenderData struct {
	TemplateTag   string `json:"template_tag"`    //模板标签(必须)
	ProductId     int64  `json:"product_id"`      //产品id(必须)
	Website       string `json:"website"`         //网站(可选)
	Slogan        string `json:"slogan"`          //slogan(可选)
	Address       string `json:"address"`         //地址(可选)
	Phone         string `json:"phone"`           //电话(可选)
	Qrcode        string `json:"qrcode"`          //二维码(可选)
	ProductSizeId int64  `json:"product_size_id"` //尺寸id(可选)
	UserId        int64  `json:"user_id"`         //用户id(websocket连接建立再赋值)
	GuestId       int64  `json:"guest_id"`        //游客id(websocket连接建立再赋值)
	Logo          string `json:"logo"`            //log资源地址(websocket连接建立再赋值)
}

// websocket发送渲染完的数据
type RenderImageRspMsg struct {
	RenderId          string            `json:"render_id"`           //渲染id
	Image             string            `json:"image"`               //渲染结果图片
	RenderProcessTime RenderProcessTime `json:"render_process_time"` //流程耗时
}
type RenderProcessTime struct {
	CombineTakesTime                string `json:"combine_takes_time"`                   //合图需要时间
	UnityRenderTakesTime            string `json:"unity_render_takes_time"`              //unity渲染用时
	UploadCombineImageTakesTime     string `json:"upload_combine_image_takes_time"`      //上传刀版图耗时
	UploadUnityRenderImageTakesTime string `json:"upload_unity_render_image_takes_time"` //上传unity渲染结果图时间
}

// 合图返回数据
type CombineImageRspMsg struct {
	RenderId           string             `json:"render_id"`     //渲染id
	CombineImage       string             `json:"combine_image"` //刀版图
	CombineProcessTime CombineProcessTime `json:"combine_process_time"`
}
type CombineProcessTime struct {
	CombineTakesTime            string `json:"combine_takes_time"`              //合图时间
	UploadCombineImageTakesTime string `json:"upload_combine_image_takes_time"` //上传刀版图耗时
}

// 发送到组装渲染阶段信息返回数据
type AssembleRenderDataRspMsg struct {
	RenderId string `json:"render_id"` //渲染id
}

// 发送到unity阶段信息返回数据
type ToUnityRspMsg struct {
	RenderId string `json:"render_id"` //渲染id
}