package protocol

//指定的请求头字段
const (
	// HeaderAccessToken  string = "x-mmm-accesstoken"
	HeaderAccessToken  string = "Authorization"
	HeaderRefreshToken string = "x-mmm-refreshtoken"
)

//用来存储从token中解析出来的内容对应的键名
const (
	HeaderCompanyid string = "header_companyid"
	HeaderUserid    string = "header_userid"
)

//BaseHeader 请求的header数据
//减少在具体业务方法中使用 this.Ctx.Input.Header("xxxx")
type BaseHeader struct {
	AccessToken  string
	RefreshToken string
}

//RequestLogin 登录请求
type RequestLogin struct {
	Account  string `json:"account"`
	Password string `json:"password"`
}

//ResponseLogin 登录响应
type ResponseLogin struct {
	Access LoginAuthToken `json:"access"`
}

type LoginAuthToken struct {
	AccessToken    string `json:"access_token"`
	ExpiresIn      int64  `json:"expires_in"`
	RefreshToken   string `json:"refresh_token"`
	RefreshExpires int64  `json:"refresh_expires"`
}

//RequestSwapCompany 切换公司
type RequestSwapCompany struct {
	CompanyId int64 `json:"company_id"`
}

// ResponseSwapCompany ...
type ResponseSwapCompany struct {
	LoginAuthToken
}

//ResponseMeInfo 用户个人的me信息
type ResponseMeInfo struct {
	NickName    string      `json:"nick_name"`
	Icon        string      `json:"icon"`
	Companyid   int64       `json:"company_id"`
	Companyname string      `json:"company_name"`
	Logo        string      `json:"logo"`
	Companys    []MeCompany `json:"-"`
	// Menu
}

type MeCompany struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
	Logo string `json:"logo"`
}