package v2auth_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 V2AuthCompanysignsilentUrlRequest struct {
	SealMultipleRequest *common.SealMultipleRequest `json:"sealMultipleRequest,omitempty"`
	AuthCompany         *common.CompanyRequest      `json:"authCompany,omitempty"`
	AuthUser            *common.SilentUserRequest   `json:"authUser"`
	// <ext>deprecated:true</ext> 【印章ID】印章ID 支持通过传入印章ID授权指定印章（功能尚未开放，敬请期待）
	SealIds []int64 `json:"sealIds,omitempty"`
	// <ext>core:true</ext> 【授权内容 】授权内容  【作用】 指定授权内容  1、仅授权印章：印章管理员可授权管理范围内的印章；授权后业务系统可使用授权印章调用单位印章静默签接口静默签署或调用业务数据签名接口进行数据签名  2、仅授权无外观签署 ：法人/单位印章管理员/印章管理授权人可不指定章面的情况下授权法人单位的数字证书进行无外观签署；授权后业务系统可在不指定印章的情况下，调用业务数据签名接口进行法人单位数据签名 【传参】 取值范围：AUTHORIZE_SEAL(授权印章)，AUTHORIZE_COMPANY_CERTIFICATE(授权无外观签署）；不传值默认为：AUTHORIZE_SEAL（授权印章）；可选多项。
	AuthInformation []string `json:"authInformation,omitempty"`
	// <ext>core:true</ext> 【默认自定义授权截止时间】默认自定义授权截止时间 【作用】 1、支持传入自定义的授权截止时间作为链接页面上的默认截止时间，可通过参数【是否可修改授权截止时间（authTimeModifiable）】控制页面上能否修改 2、仅在【电子签章控制台-印章设置-单位印章-印章管理设置-印章静默签授权配置-印章静默签授权可选授权时间】中勾选了可自定义授权截至时间时，传参生效；未勾选时链接页面的授权截止时间默认取控制台设置的默认时间 【传参】 日期格式：yyyy-MM-dd HH:mm:ss，yyyy-MM-dd；若传入的日期格式yyyy-MM-dd，则精确到当日23:59:59。
	AuthEndDate string `json:"authEndDate,omitempty"`
	// <ext>core:true</ext> 【是否可修改授权截止时间】是否可修改授权截止时间 【作用】 控制授权用户在链接页面是否允许修改授权截至时间 【传参】 取值范围：false（不允许修改），true（可修改）；不传值默认为：true（可修改）。
	AuthTimeModifiable *bool `json:"authTimeModifiable,omitempty"`
	// 【授权范围 】授权范围  【作用】 自定义约束授权的使用范围，限制业务系统仅能在自定义的授权范围内静默签（系统不做实际的限制，仅用于文字约束）。
	AuthScope string `json:"authScope,omitempty"`
	// 【是否可修改授权范围】是否可修改授权范围 【作用】 控制授权用户在链接页面是否允许修改接口传入的授权范围 【传参】 取值范围：true（可修改），false（不可修改）；不传值默认为：true（可修改）。
	AuthScopeModifiable *bool `json:"authScopeModifiable,omitempty"`
	// 【授权后跳转链接】授权后跳转链接 【作用】 授权完成（成功/失败）后，页面跳转至传入地址，未传值时会停留在当前页面
	CompleteToPage string `json:"completeToPage,omitempty"`
	// <ext>core:true</ext> 【授权回调地址】授权回调地址 【作用】 授权成功或取消后，向回调地址回调授权信息 【传参】 若接口未传入回调地址，则向应用配置的法人单位印章静默签署授权回调地址回调授权信息。
	CallbackUrl string `json:"callbackUrl,omitempty"`
	// <ext>core:true</ext> 【意愿校验方式】意愿校验方式 【作用】 1、已实名认证的用户在静默签授权过程中需要进行意愿校验，业务系统可通过传参控制用户可用的意愿校验方式和顺序 2、意愿校验时页面根据传入顺序显示意愿校验方式，第一个为默认方式，同时支持切换其他方式 3、不传值时，提供默认的意愿校验顺序（人脸识别、验证码、签署密码、Ukey） 【传参】 取值范围：FACEAUTH（人脸识别），PINAUTH（验证码），SIGNPASSWORDAUTH（签署密码），UKEYAUTH（Ukey验证）；可选多项。
	AuthorizedMode []string               `json:"authorizedMode,omitempty"`
	ApplyCompany   *common.CompanyRequest `json:"applyCompany,omitempty"`
	// 【链接访问次数】链接访问次数 【作用】 1、限制链接访问次数，若超过次数则链接失效 2、若不传值，则访问次数无限制；若传入具体数值，则链接在访问所传具体值次数后失效，无法继续访问 【传参】 最小值：1。单位：次。
	VisitNum *int64 `json:"visitNum,omitempty"`
	// 【页面语言】页面语言 【作用】 1、用于指定链接页面使用的语言 2、英文和日文页面为付费功能，请确认开通英文版系统和日文版系统后使用 【传参】 取值范围：ZH_CN(中文)，EN_US(英文)，JP(日文)；不传值默认为：ZH_CN（中文）。
	Language  string            `json:"language,omitempty"`
	PageStyle *common.PageStyle `json:"pageStyle,omitempty"`
	// 【链接有效期】链接有效期 【作用】 1、用于设置获取到的链接在多长时间后过期 2、参数不传值时，链接有效期取电子签章管理后台设置的“接口页面默认有效期  3、参数传入时长超过电子签章管理后台设置的“接口页面最大有效期天数”时，将以后台设置的有效期为准 【传参】 最小值：1。单位：秒。
	ExpireTime *int64 `json:"expireTime,omitempty"`
	// 【链接失效后跳转地址】链接失效后跳转地址 【作用】 当链接页面失效后页面自动跳转至指定地址（如：超过访问次数、链接已超过有效期）
	InvalidToPage string `json:"invalidToPage,omitempty"`
	// 【移动端页面导航头部】移动端页面导航头部 【作用】 1、移动端内嵌页面默认带有头部导航区域，且区域内提供返回按钮，嵌入其他app时会与app自带的导航头部区域航重复 2、可通过本参数控制签入移动端页面时是否提供头部导航区域 【传参】 取值范围：true（隐藏导航头部），false（显示导航头部）；不传值默认为：false（显示导航头部）。
	HideHeader *bool `json:"hideHeader,omitempty"`
}

func (obj V2AuthCompanysignsilentUrlRequest) GetUrl() string {
	return "/v2/auth/companysignsilent/url"
}

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