package config

// Yaml2Go
type Server struct {
	Redis  Redis  `json:"redis" yaml:"redis"`
	Log    Log    `json:"log" yaml:"log"`
	System System `json:"system" yaml:"system"`
	Jwt    Jwt    `json:"jwt" yaml:"jwt"`
	Mysql  Mysql  `json:"mysql" yaml:"mysql"`
	Cq119  CQ119  `json:"cq119" yaml:"cq119"`
}

// Cache
type Cache struct {
	RefrushTokenExpire int `json:"refrush_token_expire" yaml:"refrushTokenExpire"`
	TokenExpire        int `json:"token_expire" yaml:"tokenExpire"`
}

// System
type System struct {
	Port int `json:"port" yaml:"port"`
}

// Redis
type Redis struct {
	Host     string `json:"host" yaml:"host"`
	Password string `json:"password" yaml:"password"`
	Cache    Cache  `json:"cache" yaml:"cache"`
	Db    int  `json:"db" yaml:"db"`
}

// Log
type Log struct {
	Path  string `json:"path" yaml:"path"`
	Name  string `json:"name" yaml:"name"`
	Level int    `json:"level" yaml:"level"`
	CallLogUrl    string    `json:"callLogUrl"   yaml:"callLogUrl"`
}

// Jwt
type Jwt struct {
	Signkey string `json:"signkey" yaml:"signkey"`
}

// Conn
type Conn struct {
	MaxIdleConn   int `json:"max_idle_conn" yaml:"maxIdleConn"`
	MaxOpenConn   int `json:"max_open_conn" yaml:"maxOpenConn"`
}

// Mysql
type Mysql struct {
	Charset  string `json:"charset" yaml:"charset"`
	Loc      string `json:"loc" yaml:"loc"`
	Conn     Conn   `json:"conn" yaml:"conn"`
	Host     string `json:"host" yaml:"host"`
	Database string `json:"database" yaml:"database"`
	Username string `json:"username" yaml:"username"`
	Password string    `json:"password" yaml:"password"`
}

type CQ119 struct{
	Username string `json:"username" yaml:"username"`
	Password string    `json:"password" yaml:"password"`
	LoginUrl string  `json:"loginUrl" yaml:"loginUrl"`
}