package model

type Config struct {
	LogLevel    string      `json:"loglevel"`
	ServerLevel string      `json:"serverlevel"`
	DomainName  string      `json:"domainname"`
	BaWebSocket BaWebSocket `json:"bawebsocket"`
	HbApi       HbApi       `json:"hbapi"`
	HbGather    HbGather    `json:"hbgather"`
	HbContract  HbContract  `json:"hbcontract"`
	BaGather    BaGather    `json:"bagather"`
	Redis       Redis       `json:"redis"`
	Mongodb     Mongodb     `json:"mongodb"`
	ShareGather ShareGather `json:"sharegather"`
	FinnhubUs   FinnhubUs   `json:"finnhubus"`
	Bourse      Bourse      `json:"bourse"`
	ALiYun      ALiYun      `json:"aliyun"`
	TgBot       TgBot       `json:"tgbot"`
	SendIn      SendIn      `json:"sendin"`
	PhpHost     PhpHost     `json:"phphost"`
}

type PhpHost struct {
	URL string `json:"url"`
}

type SendIn struct {
	URL    string  `json:"url"`
	Symbol string  `json:"symbol"`
	Price  float64 `json:"price"`
	Vol    int64   `json:"vol"`
}

type TgBot struct {
	URL    string `json:"url"`
	ChatId int64  `json:"chatid"`
	Server string `json:"server"`
	NoWarn string `json:"nowarn"`
}

type HbApi struct {
	HbSpotsApiHost    string
	HbContractApiHost string
	PHPHost           string
}

type BaWebSocket struct {
	BaHost      string
	BaAccessKey string
	BaAccountId string
	BaSubUid    int
	BaSubUids   string
	BaSecretKey string
}

type HbGather struct {
	HbHost      string
	HbAccessKey string
	HbAccountId string
	HbSubUid    int
	HbSubUids   string
	HbSecretKey string
}

type HbContract struct {
	HbContractSecretKey string
	HbContractSubUids   string
	HbContractSubUid    int
	HbContractAccountId string
	HbContractAccessKey string
	HbContractHost      string
}

type BaGather struct {
	BaSecretKey string
	BaSubUids   string
	BaSubUid    int
	BaAccountId string
	BaAccessKey string
	BaHost      string
}

type Redis struct {
	Server   string
	Port     string
	PassWord string
	DbTen    int
	DbEleven int
	DbUser   int
	DbMore   string
	NoPinAss string
	FullPush int
	AddrList string
}

type Mongodb struct {
	DbHost         string
	DbUser         string
	DbPort         string
	Password       string
	DbBase         string
	Table          int
	AddrList       string
	RedisToMongodb string // mongodb-redis
}

type Mysql struct {
	driver         string
	datasource     string
	maxElementSize int
}

type FinnhubUs struct {
	FinnhubKey     string
	FinnhubHost    string
	FinnhubWss     string
	ForwardingHost string
	DispenseWss    string
}

type ShareGather struct {
	RapidApiKey      string
	RapidApiHost     string
	FinancialKey     string
	FinancialHost    string
	FinancialWsUs    string
	AlphavantageKey  string
	AlphavantageHost string
	PolygonHost      string
	PolygonWss       string
	PolygonKey       string
	MysCode          string
	UsCode           string
	ListUrl          string
}

type ALiYun struct {
	AccessKeyId     string
	AccessKeySecret string
	EndPoint        string
}

type Bourse struct {
	Driver         string
	Datasource     string
	Maxelementsize int
}