package contract_request

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

type ContractBatchdownloadRequest struct {
	// <ext>core:true;format:string;deprecated:false</ext> 【下载方式】下载方式 【作用】 1、同步下载：下载时将限制文件数量，调用接口后将立即返回下载的文件。文件数量限制可在【电子签章后台-自定义配置】中进行修改。 2、异步下载：若需要下载大量文件，可选择异步下载，异步下载不限制文件数量。调用接口后可使用返回的 batchId （批量操作id）调用 查看批量下载电子签约结果（<docs>/contract/batchdownload/status</docs>）查询操作结果，获取下载的文件 【传参】 取值范围：false（同步下载）,true（异步下载);不传值默认为:false（同步下载）
	AsyncDownLoad string `json:"asyncDownLoad,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【压缩包打包方式】压缩包打包方式 【作用】 1、分类后压缩后打包：每份电子签约的文件分别放在单独的文件夹后，对每个文件夹压缩，再对所有压缩包统一打包为1个压缩包文件 2、分类后不压缩打包：每份电子签约的文件分别放在单独的文件夹后，不对文件夹压缩，直接统一打包为1个压缩包文件 【传参】 取值范围：SEPARATE_ZIPS（分类后压缩后打包），SEPARATE_FOLDERS（分类后不压缩后打包）；不传值默认为：SEPARATE_ZIPS（分类后压缩后打包）
	PackagingMode string `json:"packagingMode,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【电子签约文件id】电子签约文件id 【作用】 查询需批量下载的电子签约文件集合 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	ContractIds string `json:"contractIds,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【下载文件类型】下载文件类型 【作用】 指定需下载的文件类型 【传参】 取值范围：NORMAL(电子签约正文)，ATTACHMENT(附件)，OFFLINE(线下签署文件)，BRIEF(签署摘要)，EVIDENCE(存证报告) ,TERMINATION(作废声明)；可选多项；不传值默认为：全部下载。
	DownloadItems string `json:"downloadItems,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需批量下载的电子签约文件集合 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizIds string `json:"bizIds,omitempty"`
}

func (obj ContractBatchdownloadRequest) GetUrl() string {
	return "/contract/batchdownload"
}

func (obj ContractBatchdownloadRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewGetHttpParameter()
	parameter.AddParam("asyncDownLoad", obj.AsyncDownLoad)
	parameter.AddParam("packagingMode", obj.PackagingMode)
	parameter.AddParam("contractIds", obj.ContractIds)
	parameter.AddParam("downloadItems", obj.DownloadItems)
	parameter.AddParam("bizIds", obj.BizIds)
	return parameter
}
