package seal_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 SealApplyBatchAppendRequest struct {
	// <ext>core:true;format:string</ext> 【用印申请id】用印申请id 【作用】 查询需要补签的用印申请
	BusinessId *int64 `json:"businessId"`
	// <ext>deprecated:true</ext> 【补签申请人联系方式】补签申请人联系方式 【传参】 联系方式允许使用：手机号、电子邮箱
	Contact string `json:"contact,omitempty"`
	// <ext>deprecated:true</ext> 【补签申请人员工编号】补签申请人员工编号
	Number   string                  `json:"number,omitempty"`
	UserInfo *common.UserInfoRequest `json:"userInfo"`
	// <ext>core:true</ext> 【补签印章】补签印章 【作用】 指定需补签的印章，及补签次数 【传参】 1、章筒识别码、印章名称必传其一，均传入以章筒识别码为准。 2、若appendDevices（补签印章）不传值时，必须传入count（统一设置补签用印次数），对所有印章进行补签。 【特殊说明】 count 不传时此项必传
	AppendDevices []*common.SealApplyBatchAppendAppendDevicesRequest `json:"appendDevices,omitempty"`
	// 【统一设置补签用印次数】统一设置补签用印次数 【作用】 所有印章进行补签，统一设置每个印章的补签用印次数 【传参】 若appendDevices（补签印章）不传值时，必须传入count（统一设置补签用印次数），对所有印章进行补签。优先以appendDevices（补签印章）中补签次数为准。
	Count *int64 `json:"count,omitempty"`
	// <ext>core:true</ext> 【补签用印文档id集合】补签用印文档id集合 【传参】 支持传入多个文档id作为补签文件。
	Documents []*common.SealApplyBatchAppendDocumentsRequest `json:"documents,omitempty"`
	// 【指定审批人】指定审批人 【作用】 指定内部用户，作为审批节点的审批人。仅当补签审批缺少审批人且设置为允许申请人指定时，才允许通过接口指定审批人 【传参】 1、参数必传其一，传入多个时只按最高优先级查询，优先级为用户id>联系方式>手机号>邮箱>成员编号>身份证号>第三方业务系统用户id>用户登录账号。 2、若内部用户不存在或没有结束用印权限时，将会报错。 【特殊说明】 仅当补签审批缺少审批人且设置为允许申请人指定时，传入的审批人才生效。若节点已存在审批人，则传入的审批人不生效
	Auditors []*common.UserInfoRequest `json:"auditors,omitempty"`
}

func (obj SealApplyBatchAppendRequest) GetUrl() string {
	return "/seal/apply/batch/append"
}

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