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 ContractAuditRequest struct {
	// <ext>core:true;format:string</ext> 【电子签约文件id】电子签约文件id 【作用】 查询需审批的电子签约文件。 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准
	ContractId *int64 `json:"contractId,omitempty"`
	// <ext>core:true;format:string</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需审批的电子签约文件。 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准
	BizId string `json:"bizId,omitempty"`
	// <ext>core:true</ext> 【签署方名称】签署方名称 【作用】 按签署方名称查询需进行文件审批的签署方 【传参】 1、若签署方不存在，则接口报错。若签署节点编号未传入，则对指定签署方下的第一个待审批节点进行审批。 2、若签署方下无待“审批中”节点，则接口报错。
	TenantName string `json:"tenantName"`
	// <ext>core:true</ext> 【表单域】表单域 【作用】 1、在签署文档中设置好的表单域中填写内容 2、支持文本域和选择框域
	Forms []*common.ContractAuditFormsRequest `json:"forms,omitempty"`
	// <ext>core:true</ext> 【签署方编号】签署方编号 【作用】 通过传入发起文件添加（单位/个人）签署方时，业务系统为签署方自定义传入的ID查询需进行文件审批的签署方
	SignatoryNo string `json:"signatoryNo,omitempty"`
	// <ext>core:true</ext> 【审批节点编号】审批节点编号 【作用】 按签署节点编号查询需进行文件审批的签署节点 【传参】 1、若签署节点不存在，则接口报错 2、若签署节点非“审批中”状态，则接口报错
	ActionNo string `json:"actionNo,omitempty"`
}

func (obj ContractAuditRequest) GetUrl() string {
	return "/contract/audit"
}

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