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) {
	if w.debug == nil {
		return
	}
	combineTakesTime := ""
	uploadCombineImageTakesTime := ""
	//开了缓存
	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,
		SizeId:       sizeId,
		ModelId:      modelId,
		TemplateId:   templateId,
		CombineProcessTime: &websocket_data.CombineProcessTime{
			CombineTakesTime:            combineTakesTime,
			UploadCombineImageTakesTime: uploadCombineImageTakesTime,
		},
	}))
}

// 发送组装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******************************