package protocol

/*修改手机号-验证旧手机验证码 */
type CheckSmsCodeRequest struct {
	Captcha string `json:"captcha" valid:"Required"`
}
type CheckSmsCodeResponse struct {
}

/*修改手机号*/
type ChangePhoneRequest struct {
	Phone   string `json:"phone" valid:"Mobile"`
	Captcha string `json:"captcha" valid:"Required"`
}
type ChangePhoneResponse struct {
}

/*ResetPassword */
type ResetPasswordRequest struct {
	NewPwd     string `json:"newPwd" valid:"Required"`
	ConfirmPwd string `json:"confirmPwd" valid:"Required"`
}
type ResetPasswordResponse struct {
}

/*ChangePassword */
type ChangePasswordRequest struct {
	NewPwd     string `json:"newPwd" valid:"Required"`
	ConfirmPwd string `json:"confirmPwd" valid:"Required"`
	OldPwd     string `json:"oldPwd" valid:"Required"`
}
type ChangePasswordResponse struct {
}

/*UserCompanys */
type UserCompanysRequest struct {
}
type UserCompanysResponse struct {
	Companys []Company `json:"companys"`
}

/*SwitchCompany */
type SwitchCompanyRequest struct {
	CompanyId int64 `json:"companyId" valid:"Required"`
}
type SwitchCompanyResponse struct {
	AuthCode string `json:"authCode"`
}

/*用户信息 UserInfo */
type UserInfoRequest struct {
}
type UserInfoResponse struct {
	User User `json:"user"`
}

//用户统计信息
/*UserStatistics */
type UserStatisticsRequest struct {
	TypeTotal int64 `json:"typeTotal" valid:"Required"`
}
type UserStatisticsResponse struct {
	Totals []TypeTotalItem `json:"totals"`
}

type User struct {
	UserId     int64  `json:"uid"`
	MUserId    int64  `json:"muid"` //中台用户ID
	Name       string `json:"uname"`
	Phone      string `json:"phone"`
	Image      Avatar `json:"image"`
	Department Dep    `json:"dep"`
	Position   Job    `json:"job"`
	ImToken    string `json:"imToken"`

	//companys
	CompanyId   int       `json:"companyId"`
	Company     Company   `json:"company"` //公司名称
	Companys    []Company `json:"companys"`
	Departments []Dep     `json:"deps"`
	Positions   []Job     `json:"jobs"`
}

//公司
type Company struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
	CId  int64  `json:"cid"` //统一用户中心公司编号
}

//部门
type Dep struct {
	Id   int    `json:"id"`
	Name string `json:"name"`
	Time int64  `json:"-"`
}

//岗位
type Job struct {
	Id    int    `json:"id"`
	Name  string `json:"name"`
	Level int    `json:"level"`
}

type TypeTotalItem struct {
	Type       int64 `json:"type"`       //类型
	Total      int   `json:"total"`      //总数
	HaveUpdate int   `json:"haveUpdate"` //是否含有更新(0无更新,1有更新)
}

/*Permission 用户权限*/
type PermissionRequest struct {
	ChanceId int64 `json:"chanceId"`
}
type PermissionResponse struct {
	Check         int     `json:"-"`
	DepartmentIds []int64 `json:"-"` //指定部门编号

	EditScore        int `json:"editScore"`        //修改评分  1:允许 0:不允许
	EditPublicStatus int `json:"editPublicStatus"` //修改公开状态 1:允许 0:不允许
	CloseChance      int `json:"-"`                //关闭机会 1:允许 0:不允许
	EditChance       int `json:"editChance"`       //编辑机会 1:允许 0:不允许
}