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 SealViewurlRequest struct {
	// <ext>core:true;format:string</ext> 【印章id】印章id
	SealId *int64 `json:"sealId,omitempty"`
	// <ext>core:true</ext> 【印章名称】印章名称 【特殊说明】 系统中可能存在同名印章，使用印章名称查询印章时，需要同时传入印章所属法人单位
	SealName string `json:"sealName,omitempty"`
	// <ext>core:true</ext> 【印章自定义字段】印章自定义字段 【特殊说明】 1、若传入多个自定义字段，则取各个字段匹配到的印章的交集 2、若自定义字段配到多个印章时则返回错误信息
	SealCustomFields []*common.SealCustomField `json:"sealCustomFields,omitempty"`
	CompanyRequest   *common.CompanyRequest    `json:"companyRequest,omitempty"`
	// <ext>core:true</ext> 【印章形式】印章形式 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）；不传值默认为：ELECTRONIC（电子印章）。
	Category string                  `json:"category,omitempty"`
	ViewUser *common.UserInfoRequest `json:"viewUser,omitempty"`
	// <ext>core:true</ext> 【不可查看查看的页面范围】不可查看查看的页面范围 【作用】 若印章详情页部分的信息不可用户可见时，可传入不可见的页面内容 【传参】 1、取值范围：AUTHORIZATION（人员权限管理），STATISTICS（用印统计），LIFECYCLE（印章生命周期），WARNING_RECORD（印章预警），AUTO_SIGN（用印流程自动盖章授权-只有电子印章有），SILENCE_SIGN（静默签授权-只有电子印章有），APPLIER_STAMPING（申请人用印授权 -只有物理印章有），TRACKING（用印轨迹-只有物理印章有），URGENT_LOG（紧急用印记录 -只有物理印章有）；可选多项。 2、不传值默认查看所有。
	NotAllowViewTab []string `json:"notAllowViewTab,omitempty"`
	// 【链接有效期】链接有效期 【作用】 1、用于设置获取到的链接在多长时间后过期 2、参数不传值时，链接有效期取电子签章管理后台设置的“接口页面默认有效期  3、参数传入时长超过电子签章管理后台设置的“接口页面最大有效期天数”时，将以后台设置的有效期为准 【传参】 最小值：1。单位：秒。
	ExpireTime *int64 `json:"expireTime,omitempty"`
	// 【链接访问次数】链接访问次数 【作用】 1、限制链接访问次数，若超过次数则链接失效 2、若不传值，则访问次数无限制；若传入具体数值，则链接在访问所传具体值次数后失效，无法继续访问 【传参】 最小值：1。单位：次。
	VisitNum *int64 `json:"visitNum,omitempty"`
	// 【链接失效后跳转地址】链接失效后跳转地址 【作用】 当链接页面失败后页面自动跳转至指定地址（如：超过访问次数、链接已超过有效期）
	InvalidToPage string `json:"invalidToPage,omitempty"`
	// 【页面语言】页面语言 【作用】 1、用于指定链接页面使用的语言 2、英文和日文页面为付费功能，请确认开通英文版系统和日文版系统后使用 【传参】 取值范围：ZH_CN(中文)，EN_US(英文)，JP(日文)；不传值默认为：ZH_CN（中文）。
	Language  string            `json:"language,omitempty"`
	PageStyle *common.PageStyle `json:"pageStyle,omitempty"`
	// 【移动端页面导航头部】移动端页面导航头部 【作用】 1、移动端内嵌页面默认带有头部导航区域，且区域内提供返回按钮，嵌入其他app时会与app自带的导航头部区域航重复 2、可通过本参数控制签入移动端页面时是否提供头部导航区域 【传参】 取值范围：true（隐藏导航头部），false（显示导航头部）；不传值默认为：false（显示导航头部）。
	HideHeader *bool `json:"hideHeader,omitempty"`
}

func (obj SealViewurlRequest) GetUrl() string {
	return "/seal/viewurl"
}

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