package config

import (
	"cicv-data-closedloop/common/config/c_log"
	"gopkg.in/yaml.v2"
	"os"
)

type node struct {
	Name string `yaml:"name"`
	Ip   string `yaml:"ip"`
}

type restartCmd struct {
	Dir  string   `yaml:"dir"`
	Name string   `yaml:"name"`
	Args []string `yaml:"args"`
}

type localConfig struct {
	Type                 string     `yaml:"type"`                    // 机器人类型（不同机器人获取sn码方式不同）
	Node                 node       `yaml:"node"`                    // 节点信息
	RosparamPath         string     `yaml:"rosparam-path"`           // 获取oss配置的url
	UrlGetOssConfig      string     `yaml:"url-get-oss-config"`      // 获取oss配置的url
	OssBasePrefix        string     `yaml:"oss-base-prefix"`         // 云端配置文件的位置
	CloudConfigFilename  string     `yaml:"cloud-config-filename"`   // 云端配置文件名称
	CloudConfigLocalPath string     `yaml:"cloud-config-local-path"` // 将 oss 的配置文件下载到本地的位置
	RestartCmd           restartCmd `yaml:"restart-cmd"`             // 重启命令
	EquipmentNo          string     // 当前设备的编号
	SecretKey            string     // 当前设备的密钥
}

var (
	LocalConfig localConfig
)

func InitLocalConfig(localConfigPath string) {
	c_log.GlobalLogger.Info("初始化本地配置文件 - 开始：", localConfigPath)
	// 读取YAML文件内容
	content, err := os.ReadFile(localConfigPath)
	if err != nil {
		c_log.GlobalLogger.Error("读取本地配置文件失败。", err)
		os.Exit(-1)
	}

	// 解析YAML内容
	err = yaml.Unmarshal(content, &LocalConfig)
	if err != nil {
		c_log.GlobalLogger.Error("解析本地配置文件失败。", err)
		os.Exit(-1)
	}

	// history20240401：设备密钥需要获取sn码，设备编号同样。######由于执行命令需要环境变量，所以放到 c_cloud.go 中####
	/*
		# 例如，数据闭环平台参数
		equipment-no: pjibot-P1YNYD1M228000127
		secret-key: P1YNYD1M228000127
	*/

	c_log.GlobalLogger.Info("初始化本地配置文件 - 成功：", LocalConfig)

}
