package virtualData

import (
	"matchmaking-system/internal/data/socket/publicData"
	"matchmaking-system/internal/data/tradedeal/virtual"
	"matchmaking-system/internal/pkg/logging/applogger"
	"matchmaking-system/internal/pkg/logging/common"
)

// SecondOrderProcessing
//
//	@Description: 秒合约订单订阅处理
//	@param topIc
//	@param msg
//	@return *public.OrderSub
func SecondOrderProcessing(topIc string, msg virtual.ContractTallyCache) *publicData.OrderSub {
	price, err := publicData.CheckSymbol(topIc, msg.Symbol)
	if err != nil {
		applogger.Warn("%v SecondOrderProcessing.CheckSymbol.err:%v--%v", common.ErrSecond, msg.Symbol, err)
	}

	var faceValue string
	if msg.Order.System != nil {
		faceValue = msg.Order.System.FaceValue.String()
	}

	orderM := &publicData.OrderSub{
		OrderId:     msg.OrderId,
		Price:       price,
		Status:      msg.Status,
		Symbol:      topIc,
		Count:       0,
		OpenPrice:   msg.OpenPrice,
		Market:      msg.Symbol,
		OrderNumber: msg.Order.OrderNumber,
		TradeType:   msg.Order.TradeType,
		FaceValue:   faceValue,
		UserId:      msg.UserId,
	}

	return orderM
}