package others_request

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

type CrossborderContractDownloadRequest struct {
	// <ext>core:true;format:string;deprecated:false</ext> 【操作人联系方式】操作人联系方式 【作用】 通过操作人联系方式查询对应的用户，记录为业务系统中下载文件的操作人，方便后期追溯 【传参】 1、可传入手机号或邮箱，但必须在电子签章系统存在且具有文件下载权限，否则报错。 2、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 3、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 4、传入此参数，name（操作人姓名）无效。若contract（操作人联系方式）、name（操作人姓名）均未传入，日志记录调用此接口的应用名称
	Contact string `json:"contact,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【跨境电子签约文件id】跨境电子签约文件id 【作用】 查询需下载的跨境电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	ContractId *int64 `json:"contractId,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需下载的跨境电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizId string `json:"bizId,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【下载文件类型】下载文件类型 【作用】 指定需下载的文件类型 【传参】 取值范围：NORMAL（电子签约正文），EVIDENCE（审计报告） ；可选多项。
	DownloadItems string `json:"downloadItems,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【操作人姓名】操作人姓名 【作用】 若操作人联系方式未传入，可传入业务系统中下载文件的操作人姓名，用于日志记录 【传参】 1、可传入操作人姓名例如张三 2、传入contact（操作人联系方式），则此参数无效。若contact（操作人联系方式）、name（操作人姓名）均未传入，日志记录调用此接口的应用名称
	Name string `json:"name,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【仅一份文件时是否压缩】仅一份文件时是否压缩 【作用】 当下载的文件仅有一份时，是否需要压缩下载 【传参】 取值范围：true（压缩），false（不压缩）；不传值默认为：true。
	NeedCompressForOneFile string `json:"needCompressForOneFile,omitempty"`
}

func (obj CrossborderContractDownloadRequest) GetUrl() string {
	return "/cross-border/contract/download"
}

func (obj CrossborderContractDownloadRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewGetHttpParameter()
	parameter.AddParam("contact", obj.Contact)
	parameter.AddParam("contractId", obj.ContractId)
	parameter.AddParam("bizId", obj.BizId)
	parameter.AddParam("downloadItems", obj.DownloadItems)
	parameter.AddParam("name", obj.Name)
	parameter.AddParam("needCompressForOneFile", obj.NeedCompressForOneFile)
	return parameter
}
