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 ContractPrintdetailRequest struct {
	// <ext>inner-type:Json<ContractInfo>;core:true</ext> 【电子签约文件】电子签约文件 【作用】 查询需获取打印记录的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。 2、传入多项时，按顺序仅取第1项参数进行查询
	ContractInfo string `json:"contractInfo,omitempty"`
	// <ext>core:true;format:date</ext> 【结束日期】结束日期 【作用】 查询到指定日期的文件打印记录 【传参】 1、日期格式：yyyy-MM-dd。例如：2023-05-12。 2、不传值默认为：当前日期。
	EndDate            string               `json:"endDate,omitempty"`
	ContractInfoObject *common.ContractInfo `json:"contractInfoObject,omitempty"`
	// <ext>core:true;format:date</ext> 【开始日期】开始日期 【作用】 查询从指定日期开始的文件打印记录 【传参】 1、日期格式：yyyy-MM-dd。例如：2023-05-12。 2、不传值默认为：从最早时间开始查询。
	StartDate string `json:"startDate,omitempty"`
}

func (obj ContractPrintdetailRequest) GetUrl() string {
	return "/contract/printDetail"
}

func (obj ContractPrintdetailRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewGetHttpParameter()
	parameter.AddParam("endDate", obj.EndDate)
	parameter.AddParam("startDate", obj.StartDate)
	if obj.ContractInfoObject != nil {
		jsonBytes, _ := json.Marshal(obj.ContractInfoObject)
		parameter.AddParam("contractInfo", string(jsonBytes))
	} else {
		parameter.AddParam("contractInfo", obj.ContractInfo)
	}
	return parameter
}
