package reporter

import (
	"fmt"
	"path/filepath"

	"gopkg.in/ini.v1"
	"hnyfkj.com.cn/rtu/bxs-sy/baseapp"
)

type MQTTBroker struct {
	Address  string `ini:"BrokerAddress"` // 地址端口
	Username string `ini:"Username"`      // 用户名称
	Password string `ini:"Password"`      // 接入密码
}

type Img2FtpSvr struct {
	Address  string `ini:"ServerAddress"` // 地址端口
	Username string `ini:"Username"`      // 用户名称
	Password string `ini:"Password"`      // 接入密码
}

type Config struct {
	MQTTSrv MQTTBroker `ini:"MQTTSrv"`
	Img2Ftp Img2FtpSvr `ini:"Img2Ftp"`
}

var (
	CfgServers = &Config{}
)

func loadCfgServers() error {
	cfgFile := filepath.Join(baseapp.CFG_DIR, "config.ini")
	cfgIni, err := ini.Load(cfgFile)
	if err != nil {
		return err
	}

	if cfgIni.HasSection("MQTTSrv") {
		if err := cfgIni.Section("MQTTSrv").MapTo(&CfgServers.MQTTSrv); err != nil {
			return err
		}
	} else {
		return fmt.Errorf("配置文件\"%s\"缺少\"[MQTTSrv]\"节", cfgFile)
	}

	if cfgIni.HasSection("Img2Ftp") {
		if err := cfgIni.Section("Img2Ftp").MapTo(&CfgServers.Img2Ftp); err != nil {
			return err
		}
	} else {
		return fmt.Errorf("配置文件\"%s\"缺少\"[Img2Ftp]\"节", cfgFile)
	}

	return nil
}
