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 ContractEditOperatorsRequest struct {
	ContractInfo *common.ContractRequest `json:"contractInfo"`
	ActionInfo   *common.ActionInfo      `json:"actionInfo,omitempty"`
	// <ext>core:true</ext> 【签署人】签署人 【作用】 指定签署节点修改后的新签署人 【传参】 1、参数必传其一，传入多个参数时只按参数中最高优先级查询，优先级为用户id>联系方式>手机号>邮箱>成员编号>证件号>第三方业务系统用户id>登录账号。 2、若用户不存在时，将会报错。
	ActionOperators     []*common.UserInfoRequest   `json:"actionOperators,omitempty"`
	SealMultipleRequest *common.SealMultipleRequest `json:"sealMultipleRequest,omitempty"`
	// <ext>core:true</ext> 【修改类型】修改类型 【作用】 1、修改签署节点数据信息时为全量更新或是增量更新 2、全量更新则传入的新数据信息覆盖原数据信息，增量更新则为在原数据信息基础上增加接口新传入的数据信息 【传参】 取值范围：ALL_UPDATE(全量更新)，INCREASE_UPDATE(增量更新)；不传值默认为：ALL_UPDATE(全量更新)。
	EditType string                  `json:"editType,omitempty"`
	Operator *common.UserInfoRequest `json:"operator,omitempty"`
}

func (obj ContractEditOperatorsRequest) GetUrl() string {
	return "/contract/edit/operators"
}

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