package serializer

import (
	"github.com/fonchain_enterprise/fonchain-approval/api/approval"
	"github.com/fonchain_enterprise/fonchain-approval/pkg/e"
	"github.com/fonchain_enterprise/fonchain-approval/pkg/model"
)

//BuildSetting 处理单个detail返回
func BuildSetting(entity *model.ApprovalSetting) *approval.SettingRequest {
	var copyUsers []*approval.CopyUser
	var approvalUser []*approval.ApprovalUser

	for _, copyUser := range entity.CopyUsers {
		temp := &approval.CopyUser{
			ID:   copyUser.ID,
			Name: copyUser.Name,
		}

		copyUsers = append(copyUsers, temp)
	}

	for _, approvaUser := range entity.ApprovalUsers {
		temp := &approval.ApprovalUser{
			ID:   approvaUser.ID,
			Name: approvaUser.Name,
		}

		approvalUser = append(approvalUser, temp)
	}

	response := &approval.SettingRequest{
		ID:            entity.ID,
		Domain:        entity.Domain,
		KeyWord:       entity.KeyWord,
		CopyUsers:     copyUsers,
		ApprovalUsers: approvalUser,
	}
	if entity.ApprovalType != nil {
		response.IsCustom = e.Is_IsCustom_Yes
		response.CustomizeInfo = BuildKeyInfo(entity.ApprovalType.KeyJson)
		if model.IsSystemType(entity.ApprovalType.KeyWord) == true {
			response.IsCustom = e.Is_IsCustom_No
		}
	}

	return response
}