package user_request

import (
	"encoding/json"
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common"
)

type UserChangecontactUrlRequest struct {
	UserInfoRequest *common.UserInfoRequest `json:"userInfoRequest"`
	// <ext>core:true</ext> 【要修改的内容】要修改的内容 【传参】 取值范围：MOBILE（手机号），EMAIL（邮箱）；不传值默认为：MOBILE（手机号）
	ModifyType string `json:"modifyType,omitempty"`
	// <ext>core:true</ext> 【是否使用三要素预校验】是否使用三要素预校验 【作用】 该参数仅对修改手机号生效。不填时允许新手机号验证通过后使用三要素进行预校验，校验通过后可直接换绑 【传参】 取值范围：true（是），false（否）；不传值默认为：true（是）
	ThreeFactoryCheck *bool `json:"threeFactoryCheck,omitempty"`
	// <ext>core:true</ext> 【可用验证方式】可用验证方式 【传参】 取值范围：PIN（旧账号验证码校验），FACE（人脸识别校验） ；可选多项；不传值默认为：PIN（旧账号验证码校验），FACE（人脸识别校验）
	VerifyTypeList []string `json:"verifyTypeList,omitempty"`
	// <ext>core:false</ext> 【页面语言】页面语言 【传参】 取值范围：ZH_CN(中文)，EN_US(英文)，JP(日文)；不传值默认为：ZH_CN(中文)。
	Language string `json:"language,omitempty"`
	// <ext>core:false</ext> 【链接过期时间】链接过期时间 【作用】 用于设置获取到的链接在多长时间后过期，单位：秒； 【传参】 当该参数不传值时，其有效期将被设置为 “管理控制台-设置-开放平台-接口页面有效期配置-接口页面默认有效期“对应的秒数； 当传入的值大于“管理控制台-设置-开放平台-接口页面有效期配置-接口页面最大有效期天数“对应的秒数时，将被设置为该秒数。
	ExpireTime string `json:"expireTime,omitempty"`
	// <ext>core:false</ext> 【变更完成跳转地址】变更完成跳转地址 【传参】 变更完成后，将跳转至指定的跳转地址
	SuccessChangeUrl string `json:"successChangeUrl,omitempty"`
	// <ext>core:false</ext> 【取消变更返回地址】取消变更返回地址 【传参】 用户取消变更后可跳转至指定的地址
	CancelChangeUrl string `json:"cancelChangeUrl,omitempty"`
	// <ext>core:false</ext> 【变更完成的回调地址】变更完成的回调地址 【传参】 变更完成后的将变更结果回调至指定地址
	SuccessChangeCallBackUrl string `json:"successChangeCallBackUrl,omitempty"`
	// 【移动端页面导航头部】移动端页面导航头部 【作用】 1、移动端内嵌页面默认带有头部导航区域，且区域内提供返回按钮，嵌入其他app时会与app自带的导航头部区域航重复 2、可通过本参数控制签入移动端页面时是否提供头部导航区域 【传参】 取值范围：true（隐藏导航头部），false（显示导航头部）；不传值默认为：false（显示导航头部）。
	HideHeader *bool `json:"hideHeader,omitempty"`
}

func (obj UserChangecontactUrlRequest) GetUrl() string {
	return "/user/changecontact/url"
}

func (obj UserChangecontactUrlRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	jsonBytes, _ := json.Marshal(obj)
	parameter.SetJsonParamer(string(jsonBytes))
	return parameter
}
