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 SealUkeyRemoteConnectPageRequest struct {
	SealMultipleRequest *common.SealMultipleRequest `json:"sealMultipleRequest"`
	// <ext>core:true</ext> 【申请事由】申请事由 【传参】 最大长度：200（包含）。
	ApplyReason string `json:"applyReason,omitempty"`
	// <ext>core:true</ext> 【附件集合】附件集合 【传参说明】 1、支持传入pdf,ofd,xlsx,pptx,docx,doc,wps,xls,ppt,png,webp,tiff,xml,xht,xhtml,htm,html,txt,jpg,jpeg,gif,avi,zip,rar,rtf,cs,mp4,md，不传时默认pdf。 2、至多传10份。
	OpenAttachmentRequests []*common.OpenAttachmentRequest `json:"openAttachmentRequests,omitempty"`
	OperatorInfo           *common.UserInfoRequest         `json:"operatorInfo"`
	// <ext>core:true</ext> 【回调地址】回调地址 【作用】 完成连接后将告知业务系统连接成功
	CallbackUrl string `json:"callbackUrl,omitempty"`
	// 【链接访问次数 】链接访问次数  【作用】 1、限制链接访问次数，若超过次数则链接失效 2、若不传值，则访问次数无限制；若传入具体数值，则链接在访问所传具体值次数后失效，无法继续访问  【传参】  最小值：1。单位：次。
	VisitNum *int64 `json:"visitNum,omitempty"`
	// 【链接有效期】链接有效期 【作用】 1、用于设置获取到的链接在多长时间后过期 2、参数不传值时，链接有效期取电子签章管理后台设置的“接口页面默认有效期  3、参数传入时长超过电子签章管理后台设置的“接口页面最大有效期天数”时，将以后台设置的有效期为准 【传参】 最小值：1。单位：秒。
	ExpireTime *int64 `json:"expireTime,omitempty"`
	// 【操作完成自动关闭页面】操作完成自动关闭页面 【作用】 用户在链接页面完成远程连接操作时，系统是否自动关闭链接页面 【传参】 取值范围：true（自动关闭），false（不自动关闭）；不传值默认为：false（不自动关闭）。
	AutoClosePage *bool `json:"autoClosePage,omitempty"`
	// 【完成远程连接跳转页面地址】完成远程连接跳转页面地址 【作用】 1、完成远程连接时会跳转至传入地址 2、仅当autoClosePage（操作完成自动关闭页面）传值为false（不自动关闭）时生效
	SuccessPage string `json:"successPage,omitempty"`
	// 【链接失效后跳转地址】链接失效后跳转地址 【作用】 当链接页面失效后页面自动跳转至指定地址（如：超过访问次数、链接已超过有效期）
	InvalidToPage string `json:"invalidToPage,omitempty"`
	// 【页面语言】页面语言 【作用】 1、用于指定链接页面使用的语言 2、英文和日文页面为付费功能，请确认开通英文版系统和日文版系统后使用 【传参】 取值范围：ZH_CN(中文)，EN_US(英文)，JP(日文)；不传值默认为：ZH_CN（中文）。
	Language string `json:"language,omitempty"`
	// 【自定义页面主题色】自定义页面主题色 【作用】 可根据组织的品牌风格，自定义页面的主题颜色，如红色、蓝色 【传参】 RGB颜色(16进制)，例如：#A67A7A。
	ThemeColor string `json:"themeColor,omitempty"`
}

func (obj SealUkeyRemoteConnectPageRequest) GetUrl() string {
	return "/seal/ukey/remote/connect/page"
}

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