package gd_management

type TGdUser struct {
	Id         uint64 `json:"-"        description:""`
	Name       string `json:"name"     description:""`
	Phone      string `json:"phone"    description:""`
	Password   string `json:"password" description:""`
	Email      string `json:"email"    description:""`
	CreateTime string `json:"-"        description:""`
	UpdateTime string `json:"-"        description:""`
}

type TGdMerchants struct {
	Id              uint64 `json:"-"                description:""`
	AppKey          string `json:"app_key"          description:""`
	AppSecret       string `json:"app_secret"       description:""`
	AppPassword     string `json:"app_password"     description:""`
	UserId          uint64 `json:"-"                description:""`
	MerchantName    string `json:"merchant_name"    description:"商户名"`
	CompanyName     string `json:"company_name"     description:"公司名"`
	SocialCode      string `json:"social_code"      description:"商户信用码"`
	Address         string `json:"address"          description:"商户地址"`
	ContactName     string `json:"contact_name"     description:"联系人"`
	ContactNumber   string `json:"contact_number"   description:"联系号码"`
	MerchantLicense string `json:"merchant_license" description:"营业执照"`
	IpWhitelist     string `json:"ip_whitelist"     description:"IP白名单"`
	AuthStatus      int    `json:"auth_status"      description:"认证状态"`
	WarningEnable   bool   `json:"warning_enable"   description:"是否启用用量预警"`
	Password        string `json:"password"         description:""`
	Email           string `json:"email"            description:""`
	IsHttpCode      int64  `json:"is_http_code"`
}

type ManagementAddUserMerchantReq struct {
	UserInfo     TGdUser      `json:"user_info"     description:"用户基本信息"`
	MerchantInfo TGdMerchants `json:"merchant_info" description:"用户公司信息"`
}

type ManagementAddUserMerchantReply struct {
	MerchantId uint64 `json:"merchant_id" description:""`
	AppKey     string `json:"app_key"     description:""`
	AppSecret  string `json:"app_secret"                 desccription:""`
}

type ManagementUpdateUserMerchantReq struct {
	MerchantId   uint64       `json:"merchant_id"   description:""`
	UserInfo     TGdUser      `json:"user_info"     description:"用户基本信息"`
	MerchantInfo TGdMerchants `json:"merchant_info" description:"用户公司信息"`
}

type ManagementUpdateUserMerchantReply struct{}

type UserMerchantItem struct {
	User              TGdUser      `json:"user"                 description:""`
	Merchant          TGdMerchants `json:"merchant"             description:""`
	DataApiOrderCount int          `json:"data_api_order_count"`
	H5ApiOrderCount   int          `json:"h5_api_order_count"   description:""`
	TotalCost         float64      `json:"total_cost"           description:""`
	MerchantId        int64        `json:"merchant_id"          description:""`
}

type ManagementGetUserMerchantListReq struct {
	PageNumber int    `json:"page_number" description:""`
	IsAll      bool   `json:"is_all"`
	ApiIds     string `json:"api_ids"`
	DataApiId  int64  `json:"data_api_id"`
}

type ManagementGetUserMerchantListReply struct {
	Total        int                `json:"total"         description:""`
	PageSize     int                `json:"page_size"     description:""`
	PageNumber   int                `json:"page_number"   description:""`
	MerchantList []UserMerchantItem `json:"merchant_list" description:"商户列表"`
}

type DataApiInfo struct {
	DataApiName string `json:"data_api_name"`
	UseCount    int64  `json:"-"`
	ComboType   int    `json:"combo_type"`
	DayCount    int64  `json:"-"`
	TotalCount  int64  `json:"-"`
	EndTime     int64  `json:"-"`
	LeftCount   int64  `json:"left_count"`
	LeftDay     int64  `json:"left_day"`
	Status      string `json:"status"`
	StatusCode  int    `json:"status_code"`
	Alias       string `json:"alias"`
}

type UserMerchantItemNew struct {
	Id              int64         `json:"id"`
	Name            string        `json:"name"`
	Phone           string        `json:"phone"`
	Email           string        `json:"email"`
	MerchantName    string        `json:"merchant_name"`
	CompanyName     string        `json:"company_name"`
	SocialCode      string        `json:"social_code"`
	Address         string        `json:"address"`
	ContactName     string        `json:"contact_name"`
	ContactNumber   string        `json:"contact_number"`
	MerchantLicense string        `json:"merchant_license"`
	IpWhitelist     string        `json:"ip_whitelist"`
	AuthStatus      int           `json:"auth_status"`
	AppKey          string        `json:"app_key"`
	AppSecret       string        `json:"app_secret"`
	DataApiInfo     []DataApiInfo `json:"data_api_info"`
	WarningEnable   bool          `json:"warning_enable"`
	Memail          string        `json:"memail"`
	IsHttpCode      int8          `json:"is_http_code"`
	Balance         float64       `json:"balance"`
	MerchantType    int           `json:"merchant_type"`
	Arrearage       float64       `json:"arrearage"`
	AppPassword     string        `json:"app_password"`
}

type ManagementGetUserMerchantListNewReq struct {
	PageNumber   int    `json:"page_number" description:""`
	IsAll        bool   `json:"is_all"`
	Search       string `json:"search"`
	DataApiId    string `json:"data_api_id"`
	Status       string `json:"status"`
	StatusCode   int    `json:"status_code"`
	MerchantId   int64  `json:"merchant_id"`
	MerchantType int    `json:"merchant_type"`
}

type ManagementGetUserMerchantListNewReply struct {
	Total        int                   `json:"total"         description:""`
	PageSize     int                   `json:"page_size"     description:""`
	PageNumber   int                   `json:"page_number"   description:""`
	MerchantList []UserMerchantItemNew `json:"merchant_list" description:"商户列表"`
}

type ManagementSetUserMerchantAuthStateReq struct {
	State      int    `json:"state"       description:""`
	MerchantId uint64 `json:"merchant_id" description:""`
}
type ManagementSetUserMerchantAuthStateReply struct{}

type GetMerchantInfoReq struct {
	Id int64 `json:"id"`
}

type GetMerchantInfoReply struct {
	AppKey          string `json:"app_key"          description:""`
	AppSecret       string `json:"app_secret"       description:""`
	UserId          int64  `json:"user_id"          description:""`
	MerchantName    string `json:"merchant_name"    description:"商户名，公司名"`
	SocialCode      string `json:"social_code"      description:"商户信用码"`
	Address         string `json:"address"          description:"商户地址"`
	ContactName     string `json:"contact_name"     description:"联系人"`
	ContactNumber   string `json:"contact_number"   description:"联系号码"`
	MerchantLicense string `json:"merchant_license" description:"营业执照"`
	IpWhitelist     string `json:"ip_whitelist"     description:"IP白名单"`
	AuthStatus      int    `json:"auth_status"      description:"认证状态0 待认证，1认证通过， 2认证不通过"`
}

type ManagementGetUserMerchantAuthListNewReq struct {
	PageNumber   int    `json:"page_number" description:""`
	Phone        string `json:"phone"`
	MerchantName string `json:"merchant_name"`
	MerchantId   int64  `json:"merchant_id"`
	StartTime    string `json:"start_time"`
	EndTime      string `json:"end_time"`
}

type UserMerchantAuthItem struct {
	Id              int64  `json:"id"`
	Name            string `json:"name"`
	Phone           string `json:"phone"`
	MerchantName    string `json:"merchant_name"`
	CreateTime      string `json:"create_time"`
	AuthStatus      int    `json:"auth_status"`
	CompanyName     string `json:"company_name"`
	SocialCode      string `json:"social_code"`
	Address         string `json:"address"`
	MerchantLicense string `json:"merchant_license"`
	ContactName     string `json:"contact_name"`
	ContactNumber   string `json:"contact_number"`
}

type ManagementGetUserMerchantAuthListNewReply struct {
	Total        int                    `json:"total"         description:""`
	PageSize     int                    `json:"page_size"     description:""`
	PageNumber   int                    `json:"page_number"   description:""`
	MerchantList []UserMerchantAuthItem `json:"merchant_list" description:"商户列表"`
}
