package logic

import (
	"fmt"
	"fusenapi/constants"
	"fusenapi/utils/auth"
	"fusenapi/utils/websocket_data"
)

// *******************************合图相关begin******************************
// 发送合图完毕阶段通知消息
func (w *wsConnectItem) sendCombineImageStepResponseMessage(requestId, combineImage string, sizeId, modelId, templateId int64, debugData *auth.DebugData) {
	combineTakesTime := ""
	uploadCombineImageTakesTime := ""
	if w.debug != nil { //开启debug
		//开了缓存
		if w.debug.IsCache != 0 {
			combineTakesTime = "cache"
			uploadCombineImageTakesTime = "cache"
		}
		if debugData != nil && debugData.DiffTimeLogoCombine > 0 {
			combineTakesTime = fmt.Sprintf("%dms", debugData.DiffTimeLogoCombine)
		}
		if debugData != nil && debugData.DiffTimeUploadFile > 0 {
			uploadCombineImageTakesTime = fmt.Sprintf("%dms", debugData.DiffTimeUploadFile)
		}
		w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_COMBINE_IMAGE, websocket_data.CombineImageRspMsg{
			RequestId:    requestId,
			CombineImage: combineImage,
			CombineRelative: &websocket_data.CombineRelative{
				SizeId:     sizeId,
				ModelId:    modelId,
				TemplateId: templateId,
			},
			CombineProcessTime: &websocket_data.CombineProcessTime{
				CombineTakesTime:            combineTakesTime,
				UploadCombineImageTakesTime: uploadCombineImageTakesTime,
			},
		}))
	} else {
		w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_COMBINE_IMAGE, websocket_data.CombineImageRspMsg{
			RequestId:    requestId,
			CombineImage: combineImage,
		}))
	}

}

// 发送组装unity需要的数据完毕消息
func (w *wsConnectItem) sendAssembleRenderDataStepResponseMessage(requestId string) {
	if w.debug == nil {
		return
	}
	w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_ASSEMBLE_RENDER_DATA, websocket_data.ToUnityRspMsg{RequestId: requestId}))
}

// 发送组装数据到unity完毕阶段通知消息
func (w *wsConnectItem) sendRenderDataToUnityStepResponseMessage(requestId string) {
	//统计unity处理数
	increaseUnityRequestCount(w.userId, w.guestId)
	if w.debug == nil {
		return
	}
	w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_SEND_DATA_TO_UNITY, websocket_data.AssembleRenderDataRspMsg{RequestId: requestId}))
}

// 发送渲染最终结果数据到前端
func (w *wsConnectItem) sendRenderResultData(data websocket_data.RenderImageRspMsg) {
	//没开启debug
	if w.debug == nil {
		data.RenderProcessTime = nil
	}
	w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_RENDER_IMAGE, data))
}

// *******************************合图相关end******************************