package ark

// ARKShopConfig  总配置

type Config struct {
	Mysql     Mysql                  `json:"Mysql"`     //数据库
	General   General                `json:"General"`   //概述
	Kits      map[string]Kit         `json:"Kits"`      //礼包？
	ShopItems map[string]interface{} `json:"ShopItems"` //商品
	SellItems map[string]SellItem    `json:"SellItems"` //回收
	Messages  Messages               `json:"Messages"`  //消息
}

type Mysql struct {
	UseMysql  bool   `json:"UseMysql"`  //是否使用mysql
	MysqlHost string `json:"MysqlHost"` //mysql地址
	MysqlUser string `json:"MysqlUser"` //mysql用户名
	MysqlPass string `json:"MysqlPass"` //mysql密码
	MysqlDB   string `json:"MysqlDB"`   //mysql数据库
	MysqlPort int    `json:"MysqlPort"` //mysql端口
}

// General 概述
type General struct {
	Discord                       Discord           `json:"Discord"`           //联系方式
	TimedPointsReward             TimedPointsReward `json:"TimedPointsReward"` //计时积分奖励
	UseOriginalTradeCommandWithUI bool              `json:"UseOriginalTradeCommandWithUI"`
	ItemsPerPage                  int               `json:"ItemsPerPage"`        //每页项目数
	ShopDisplayTime               float64           `json:"ShopDisplayTime"`     //店铺展示时间
	ShopTextSize                  float64           `json:"ShopTextSize"`        //店铺文字大小
	DbPathOverride                string            `json:"DbPathOverride"`      //db文件位置
	DefaultKit                    string            `json:"DefaultKit"`          //默认礼包？
	GiveDinosInCryopods           bool              `json:"GiveDinosInCryopods"` //在低温仓给恐龙
	UseSoulTraps                  bool              `json:"UseSoulTraps"`        //使用灵魂陷阱？
	CryoLimitedTime               bool              `json:"CryoLimitedTime"`     //低温仓有限时间？
}

type Discord struct {
	Enabled    bool   `json:"Enabled"`    //启用
	SenderName string `json:"SenderName"` //发件人
	URL        string `json:"URL"`        //地址
}

type TimedPointsReward struct {
	Enabled      bool             `json:"Enabled"`      //启用
	Interval     int              `json:"Interval"`     //间隔（应该是分钟为单位）
	StackRewards bool             `json:"StackRewards"` //堆栈奖励
	Groups       map[string]Group `json:"Groups"`       //vip 组(key: vip名称（英文），金额)
}

type Group struct {
	Amount int `json:"Amount"` //金额
}

type Messages struct {
	Sender                 string `json:"Sender"`                 //发件人
	BoughtItem             string `json:"BoughtItem"`             //已购买商品
	BoughtDino             string `json:"BoughtDino"`             //已购买恐龙
	BoughtBeacon           string `json:"BoughtBeacon"`           //已购买信标?
	BoughtExp              string `json:"BoughtExp"`              //已购买经验
	ReceivedPoints         string `json:"ReceivedPoints"`         //已获得积分
	HavePoints             string `json:"HavePoints"`             //拥有积分
	NoPoints               string `json:"NoPoints"`               //没有积分
	WrongId                string `json:"WrongId"`                //错误的id
	NoPermissionsKit       string `json:"NoPermissionsKit"`       //没有权限
	CantBuyKit             string `json:"CantBuyKit"`             //无法购买
	BoughtKit              string `json:"BoughtKit"`              //已购买礼包
	AvailableKits          string `json:"AvailableKits"`          //可用礼包
	NoKits                 string `json:"NoKits"`                 //没有礼包
	KitsLeft               string `json:"KitsLeft"`               //礼包剩余
	NoKitsLeft             string `json:"NoKitsLeft"`             //没有礼包
	CantGivePoints         string `json:"CantGivePoints"`         //无法发送积分
	RidingDino             string `json:"RidingDino"`             //正在骑乘恐龙
	SentPoints             string `json:"SentPoints"`             //已发送积分
	GotPoints              string `json:"GotPoints"`              //已获得积分
	NoPlayer               string `json:"NoPlayer"`               //没有玩家
	FoundMorePlayers       string `json:"FoundMorePlayers"`       //找到多个玩家
	BuyUsage               string `json:"BuyUsage"`               //购买命令
	ShopUsage              string `json:"ShopUsage"`              //商店命令
	KitUsage               string `json:"KitUsage"`               //交易命令
	BuyKitUsage            string `json:"BuyKitUsage"`            //购买礼包命令
	TradeUsage             string `json:"TradeUsage"`             //交易命令
	PointsCmd              string `json:"PointsCmd"`              //积分命令
	TradeCmd               string `json:"TradeCmd"`               //交易命令
	BuyCmd                 string `json:"BuyCmd"`                 //购买命令
	ShopCmd                string `json:"ShopCmd"`                //商店命令
	KitCmd                 string `json:"KitCmd"`                 //交易命令
	BuyKitCmd              string `json:"BuyKitCmd"`              //购买礼包命令
	SellCmd                string `json:"SellCmd"`                //出售命令
	ShopSellCmd            string `json:"ShopSellCmd"`            //商店出售命令
	SellUsage              string `json:"SellUsage"`              //出售命令
	NotEnoughItems         string `json:"NotEnoughItems"`         //没有足够的物品
	SoldItems              string `json:"SoldItems"`              //已出售物品
	BadLevel               string `json:"BadLevel"`               //错误的等级
	KitsListPrice          string `json:"KitsListPrice"`          //礼包列表价格
	KitsListFormat         string `json:"KitsListFormat"`         //礼包列表格式
	StoreListDino          string `json:"StoreListDino"`          //商店列表恐龙
	StoreListItem          string `json:"StoreListItem"`          //商店列表物品
	StoreListFormat        string `json:"StoreListFormat"`        //商店列表格式
	OnlyOnSpawnKit         string `json:"OnlyOnSpawnKit"`         //只能购买在出生点礼包
	HelpCmd                string `json:"HelpCmd"`                //帮助命令
	ShopMessage            string `json:"ShopMessage"`            //商店消息
	HelpMessage            string `json:"HelpMessage"`            //帮助消息
	RefundError            string `json:"RefundError"`            //退款错误
	ShopFindCmd            string `json:"ShopFindCmd"`            //商店查找命令
	ShopFindUsage          string `json:"ShopFindUsage"`          //商店查找用法
	ShopFindNotFound       string `json:"ShopFindNotFound"`       //商店查找不存在
	ShopFindTooManyResults string `json:"ShopFindTooManyResults"` //商店发现太多结果
	NoPermissionsStore     string `json:"NoPermissionsStore"`     //没有权限
}

// SellItem 允许玩家出售物资，以换取积分
type SellItem struct {
	Type        string `json:"Type"`        //类型，item
	Description string `json:"Description"` //描述
	Price       int    `json:"Price"`       //价格
	Amount      int    `json:"Amount"`      //数量
	Blueprint   string `json:"Blueprint"`   //图纸
}

// Kit 礼包
type Kit struct {
	DefaultAmount int       `json:"DefaultAmount"` //数量？
	Price         int       `json:"Price"`         //价格
	Description   string    `json:"Description"`   //描述
	Permissions   string    `json:"Permissions"`   //购买权限,例如"Admins,VIP1"
	Dinos         []Dino    `json:"Dinos"`         //恐龙
	Items         []Item    `json:"Items"`
	Commands      []Command `json:"Commands"`
}

// Item 物品信息
type Item struct {
	Amount         int     `json:"Amount"`         //金额
	Blueprint      string  `json:"Blueprint"`      //图纸
	Fixed          bool    `json:"Fixed"`          //固定
	ForceBlueprint bool    `json:"ForceBlueprint"` //
	Quality        float64 `json:"Quality"`        //质量
}
type Dino struct {
	Level     int    `json:"Level"`     //等级
	Neutered  bool   `json:"Neutered"`  //是否绝育
	Blueprint string `json:"Blueprint"` //指令？
}

type Command struct {
	Command   string `json:"Command"`
	DisplayAs string `json:"DisplayAs"`
}
