package others_request

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

type MobilesealDesCreateTaskRequest struct {
	// 【任务标题】任务标题 【作用】 本次加/解密任务的标题，如加密招投标文件时，可设置为“项目X01标-维森集团有限公司-投标文件”，用于扫码授权时展示 【传参】 最大长度：500（包含）。
	Title string `json:"title,omitempty"`
	// 【加/解密】加/解密 【作用】 指定本次任务类型 【传参】 取值范围：ENCRYPT（加密），DECRYPT（解密）。
	DesQrCodeType string `json:"desQrCodeType"`
	// 【待解密数据】待解密数据 【作用】 指定待解密数据，该数据需确保是用移动证书加密的 【传参】 desQrCodeType为DECRYPT（解密）时，该参数必传
	EncryptData string `json:"encryptData,omitempty"`
	// 【第三方业务系统本次加解密任务id】第三方业务系统本次加解密任务id 【作用】 可传入业务系统中唯一的任务id，方便后续查询与数据传输 【传参】 最大长度：200（包含）。
	BizId string `json:"bizId"`
	// 【授权提示文字】授权提示文字 【作用】 可传入授权时需提示的文字，辅助扫码用户对确认加/解密内容以及授权范围，例如“本次授权用于项目01标的投标文件加密，请您扫码授权” 【传参】 最大长度：500（包含）。
	AuthorizeInfo string `json:"authorizeInfo,omitempty"`
	// 【预览待加解密文件的链接地址】预览待加解密文件的链接地址 【作用】 可传入当前授权所需加解密文件的预览地址，辅助扫码用户确认签署内容，该链接建议可免登录
	PreviewUrl string `json:"previewUrl,omitempty"`
	// 【加解密主体类型】加解密主体类型 【作用】 不指定加解密主体时，可通过该参数控制使用个人身份还是单位身份进行加解密 【传参】 取值范围：PERSONAL(\"个人\")，ENTERPRISE(\"企业\")；不传值且未指定主体时可由扫码用户任意指定。
	TenantType string `json:"tenantType,omitempty"`
	// 【指定主体名称】指定主体名称 【作用】 指定法人单位或个人进行加解密 【传参】 1、若需指定主体，name与docId必传其一，均传入时，以docId为准。 2、传入指定主体信息后，加解密主体类型不生效。
	Name string `json:"name,omitempty"`
	// 【统一社会信用代码/工商注册号/个人证件号】统一社会信用代码/工商注册号/个人证件号 【作用】 指定法人单位或个人进行加解密 【传参】 1、若需指定主体，name与docId必传其一，均传入时，以docId为准。 2、传入指定主体信息后，加解密主体类型不生效。
	DocId string `json:"docId,omitempty"`
	// 【第三方业务系统操作人姓名】第三方业务系统操作人姓名 【作用】 可传入业务系统中进行移动签章的操作人，传入后将在手机app操作日志中进行记录，方便后期追溯 【传参】 若需要记录操作人，则名称必传，第三方业务系统操作人id选传
	UserName string `json:"userName,omitempty"`
	// 【第三方业务系统操作人id】第三方业务系统操作人id 【作用】 可传入业务系统中进行移动签章的操作人，传入后将在手机app操作日志中进行记录，方便后期追溯 【传参】 若需要记录操作人，则名称必传，第三方业务系统操作人id选传
	CustomerId string `json:"customerId,omitempty"`
	// 【操作人签署ip地址】操作人签署ip地址 【作用】 可传入业务系统中进行移动签章的操作人对应签署ip，传入后将在手机app操作日志中进行记录，方便后期追溯
	DesIp string `json:"desIp,omitempty"`
	// 【业务系统app前缀】业务系统app前缀 【作用】 若移动证书存储与业务系统app内，需要传入该参数，否则业务系统无法扫码授权 【传参】 可传入电子签章管理后台-【设置】-【自定义字段】-【H5页面激活/签署移动签章时提示前往APP操作的APP跳转地址】配置的app前缀，不传值默认为qys://。
	IntegrateLinkPre string `json:"integrateLinkPre,omitempty"`
}

func (obj MobilesealDesCreateTaskRequest) GetUrl() string {
	return "/mobileseal/des/create/task"
}

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