package model

import (
	"encoding/json"
	"mongo.games.com/goserver/core/logger"
	"os"
)

type ThirdConfigData struct {
	Platform  string
	AgentName string
	AgentKey  string
}
type GameConfig struct {
	DgConfig  []ThirdConfigData //Dg的配置信息
	HboConfig []ThirdConfigData //Hbo的配置信息
}

var GameConfigPath = "../data/thrconfig.json"
var GameConfigData = &GameConfig{}

func InitGameConfig() {
	buf, err := os.ReadFile(GameConfigPath)
	if err != nil {
		logger.Logger.Error("InitGameParam os.ReadFile error ->", err)
	}

	err = json.Unmarshal(buf, GameConfigData)
	if err != nil {
		logger.Logger.Error("InitGameParam json.Unmarshal error ->", err)
		return
	}
}

func GetDgConfigByPlatform(platform string) (string, string, string) {

	for _, value := range GameConfigData.DgConfig {
		if value.Platform == platform {
			return value.AgentName, value.AgentKey, "DG"
		}
	}
	for _, value := range GameConfigData.HboConfig {
		if value.Platform == platform {
			return value.AgentName, value.AgentKey, "HBO"
		}
	}
	return "", "", ""
}

func OnlyGetDgConfigByPlatform(platform string) (string, string, string) {

	for _, value := range GameConfigData.DgConfig {
		if value.Platform == platform {
			return value.AgentName, value.AgentKey, "DG"
		}
	}
	return "", "", ""
}

func OnlyGetHboConfigByPlatform(platform string) (string, string, string) {
	for _, value := range GameConfigData.HboConfig {
		if value.Platform == platform {
			return value.AgentName, value.AgentKey, "HBO"
		}
	}
	return "", "", ""
}

func GetAllDgAgent() []string {
	agentNameArr := []string{}
	for _, value := range GameConfigData.DgConfig {
		agentNameArr = append(agentNameArr, value.AgentName)
	}
	return agentNameArr
}

func GetAllHboAgent() []string {
	agentNameArr := []string{}
	for _, value := range GameConfigData.HboConfig {
		agentNameArr = append(agentNameArr, value.AgentName)
	}
	return agentNameArr
}
