package seal_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 SealUpdateSignCheckTypeRequest struct {
	SealMultipleRequest *common.SealMultipleRequest `json:"sealMultipleRequest"`
	// <ext>core:true</ext> 【修改签署校验方式】修改签署校验方式 【作用】 1.修改该电子印章在签署时所需使用的校验方式 2.可在管理后台-印章设置-单位印章-印章管理设置-电子印章设置中设置的可选校验方式，设置后接口仅可传入支持的校验方式 【传参】 取值范围：NONE（签署人身份校验并使用云证书），OTP_TOKEN（动态口令校验并使用云证书），UKEY（Ukey校验并使用设备内证书）；不传值则不做修改。
	SignCheckType string `json:"signCheckType,omitempty"`
	// <ext>core:true</ext> 【绑定ukey】绑定ukey 【作用】 指定Ukey校验并使用设备内证书时，可传入ukey设备号。使用该印章需要使用绑定的ukey进行签署，需确保ukey内证书主体与印章所属法人单位一致。 【传参】 1.checkType（签署校验方式）为UKEY（Ukey校验并使用设备内证书）时，可传入当前参数绑定Ukey 2.传入Ukey设备号，支持传入多个，传参方式为:[\"设备号1\",\"设备号2\"]，传入后会全量替换所有内容，不传值则不做修改。
	BindUkeys []string `json:"bindUkeys,omitempty"`
	// <ext>core:true</ext> 【绑定动态令牌】绑定动态令牌 【作用】 动态口令校验并使用云证书时，可传入动态令牌设备号。使用该印章需要使用绑定的动态令牌进行身份校验，签署时仍使用云证书进行签署。 【传参】 1.checkType（签署校验方式）为OTP_TOKEN（动态口令校验并使用云证书）时，可传入当前参数绑定动态令牌 2.传入动态令牌设备号，支持传入多个，传参方式为:[\"设备号1\",\"设备号2\"]，传入后会全量替换所有内容，不传值则不做修改。
	BindOptTokens []*common.SealUpdateSignCheckTypeBindOptTokensRequest `json:"bindOptTokens,omitempty"`
	OperatorInfo  *common.UserInfoRequest                               `json:"operatorInfo"`
}

func (obj SealUpdateSignCheckTypeRequest) GetUrl() string {
	return "/seal/update/sign/check/type"
}

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