package auth_request

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

type UserauthNoticeRequest struct {
	// <ext>core:true</ext> 【手机号】手机号 【传参】 1、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 2、手机号和邮箱必传其一，均传入以手机号为准。 3、若根据手机号查询不到用户，则将根据传入的手机号创建新用户。
	Mobile string `json:"mobile,omitempty"`
	// <ext>core:true</ext> 【邮箱】邮箱 【传参】 1、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 2、手机号和邮箱必传其一，均传入以手机号为准。 3、若根据邮箱查询不到用户，则将根据传入的邮箱创建新用户。
	Email string `json:"email,omitempty"`
	// <ext>core:true</ext> 【证件号】证件号 【传参】 支持传入用户证件号，包括居民身份证、护照号、港澳居民来往内地通行证等。
	CardNo string `json:"cardNo,omitempty"`
	// <ext>core:true</ext> 【证件号与用户认证信息不匹配场景下的处理策略】证件号与用户认证信息不匹配场景下的处理策略 【作用】 repeat（认证模式）为false（初次认证）时，可能存在传入的要认证用户手机号、邮箱已被其他注册且已实名认证。例如： 接口传入张三的证件号以及手机号获取认证页面，但是手机号已经在系统存在并且实名认证为了李四的证件号，此时证件号不一致，接口将会报错避免信息传入错误的情况。 但线下实际可能是手机号李四不用了，由张三在进行实际的使用。因此需要将手机号从李四的账号解绑，将手机号绑定给张三获取认页面。 本参数支持指定接口报错还是进行手机号解绑并创建新账号。 创建新账号：账号已经换人使用，此时需创建新账号，需要将传入的身份信息（姓名与证件号）与账号信息创建新账号，并将所有被占用的账号信息与原账号解绑，并绑定至当前新创建账号中。 接口报错：账号的所有人未发生变更，业务系统存储的证件信息有误，此时接口需报错。 【传参】 取值范围：ERROR（接口报错），CREATE_NEW_USER（创建新用户） ；不传值默认为：ERROR（接口报错）。
	CardNoNotMatchStrategy string `json:"cardNoNotMatchStrategy,omitempty"`
	// <ext>core:true;format:color</ext>【自定义页面主题色】自定义页面主题色【作用】可根据组织的品牌风格，自定义页面的主题颜色，如红色、蓝色【传参】RGB颜色(16进制)，例如：#A67A7A。
	ThemeColor string `json:"themeColor,omitempty"`
	// <ext>core:true</ext> 【页面语言】页面语言 【作用】 1、用于指定链接页面使用的语言 2、英文和日文页面为付费功能，请确认开通英文版系统和日文版系统后使用 【传参】 取值范围：ZH_CN（中文），EN_US（英文），JP（日文）；默认为：ZH_CN（中文）。
	Language string `json:"language,omitempty"`
	// <ext>core:true</ext> 【证件类型】证件类型 【传参】 取值范围：IDCARD（二代身份证），PASSPORT（护照），HKMP（港澳通行证），MTPS（台胞证） ；不传值默认为：IDCARD（二代身份证）。
	PaperType string `json:"paperType,omitempty"`
	// <ext>core:true</ext> 【用户姓名】用户姓名
	Name string `json:"name,omitempty"`
	// <ext>core:true</ext> 【认证可修改字段】认证可修改字段 【作用】 可通过该参数控制用户打开实名认证连接后，接口传入的参数是否允许用户自行修改 【传参】 1、不传值时：默认除了手机号以外所有参数都允许修改。  2、传值为NONE时：接口传入的所有参数都不允许修改。  3、传值为除了NONE以外的其他值时：传入的值可以修改。 4、取值范围： NONE（都不允许修改），NAME（用户姓名），CARDNO（证件号），MOBILE（手机号），BANKNO（银行卡号），BANKPHONE（银行卡预留手机号），CARDIMGS（证件照）；可选多项。 【特殊说明】 重新认证时证件号不允许修改
	ModifyFields []string `json:"modifyFields,omitempty"`
	// <ext>core:true</ext> 【链接有效期】链接有效期 【作用】 1、用于设置获取到的链接在多长时间后过期 2、该参数不传值时，其有效期将使用电子签章管理后台-设置-开放平台-接口页面有效期配置-个人认证接口页面默认有效期设置的秒数， 当此值为“默认”时，其有效期使用电子签章管理后台-设置-开放平台-接口页面有效期配置-接口页面默认有效期设置的秒数 3、参数传入时长超过电子签章管理后台设置的“接口页面最大有效期天数”时，将以接口传入的有效期为准 【传参】 最小值：1（包含）。单位：秒。
	ExpireTime *int64 `json:"expireTime,omitempty"`
}

func (obj UserauthNoticeRequest) GetUrl() string {
	return "/userauth/notice"
}

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