package contract_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 ContractDownloadUrlRequest struct {
	ContractInfo *common.ContractRequest `json:"contractInfo"`
	Operator     *common.UserInfoRequest `json:"operator,omitempty"`
	// <ext>core:true;deprecated:false</ext> 【链接有效期】链接过期时间 【作用】  用于设置获取到的链接在多长时间后过期 【传参】 1、最小值：0。单位：分钟。 2、传参为0代表长期有效。
	ExpireTime *int64 `json:"expireTime"`
	// <ext>core:true</ext> 【下载可选项】下载可选项 【作用】 指定下载链接打开时，可选择下载的文件类型 【传参】 取值范围：NORMAL(签署文件)，BRIEF(签署摘要)，ATTACHMENT(附件)，SPONSOR_FILE(发起方内部附件)，EVIDENCE(存证报告) ,TERMINATION(作废声明)，OFFLINE(线下签署文件)；必传其一，可传多项。 【特殊说明】 当传入的文件类型不存在时，接口将报错不返回下载链接
	DownloadItems []string `json:"downloadItems"`
	// <ext>core:true</ext> 【仅一份文件时是否压缩】仅一份文件时是否压缩 【作用】 当链接下载的文件仅有一份时，是否需要压缩下载 【传参】 取值范围：true（压缩），false（不压缩）；不传值默认为：true（压缩）。
	NeedCompressForOneFile *bool `json:"needCompressForOneFile,omitempty"`
}

func (obj ContractDownloadUrlRequest) GetUrl() string {
	return "/contract/download/url"
}

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