package conv

import (
	"encoding/json"
	"gadmin/utility"
	"github.com/sirupsen/logrus"
)

var Talents = new(cTalents)

type cTalents struct {
	version string
	lst     []*Talent
}

// Talent 前端样式
type Talent struct {
	TalentId    int    `json:"talent_Id"`
	TalentName  string `json:"talent_name"`
	Description string `json:"description"`
	Unit        int    `json:"unit"`
	Quality     int    `json:"quality"`
	MaxLevel    int    `json:"max_level"`
	BaseValue   string `json:"base_value"`
	ValueUp     string `json:"value_up"`
}

func (j *cTalents) Extract(version string) {
	logrus.Info("cTalents Extract...")
	j.setVersion(version).convert().save()
}

func (j *cTalents) setVersion(version string) *cTalents {
	j.version = version
	return j
}

func (j *cTalents) convert() *cTalents {
	b, err := GetUrlBody(j.version, "talent.json")
	if err != nil {
		logrus.Fatalf("GetUrlBody err:%+v", err)
	}

	if err = json.Unmarshal(b, &j.lst); err != nil {
		logrus.Fatalf("conv.cTalents convert err:%v", err)
	}

	return j
}

func (j *cTalents) save() {
	filePath := utility.LocalJsonPath(j.version, "talent.json")
	SaveJsonPath(filePath, j.lst)
}
