package v2contract_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 V2ContractSignbylegalpersonRequest struct {
	Contract *common.SignSilentContract `json:"contract"`
	Company  *common.CompanyRequest     `json:"company"`
	// <ext>core:true</ext> 【签署位置】签署位置 【作用】 用于指定签署位置 【特殊说明】 1、若用印流程中无预设签署位置，则此处必传签署位置 2、若用印流程中有预设位置，且本参数传入了签署位置，则两个位置都会进行签署
	Stampers []*common.V2ContractSignbylegalpersonStampersRequest `json:"stampers,omitempty"`
	// <ext>core:true/ext> 【表单域】表单域 【作用】 1、在签署文档中设置好的表单域中填写内容 2、支持文本域和选择框域
	Forms []*common.V2ContractSignbylegalpersonFormsRequest `json:"forms,omitempty"`
	// <ext>core:true</ext> 【签署方编号】签署方编号 【作用】 一份签署文件中，法人单位存在于多个签署方时，根据签署方编号指定本次签署的签署方
	SignatoryNo string `json:"signatoryNo,omitempty"`
	// <ext>core:true</ext> 【签署动作编号】签署动作编号 【作用】 一个签署方下存在多个签署动作时，指定本次签署的签署动作
	ActionNo string `json:"actionNo,omitempty"`
	// <ext>core:true</ext>【静默签时是否需授权】静默签时是否需授权【作用】若存在特殊业务场景希望可以实现静默签署时无需授权，可通过该参数关闭授权校验【传参方式】默认true。true：授权后才可静默签；false：无需授权即可静默签
	NeedEmpower *bool `json:"needEmpower,omitempty"`
}

func (obj V2ContractSignbylegalpersonRequest) GetUrl() string {
	return "/v2/contract/signbylegalperson"
}

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