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 ContractFinishForceRequest struct {
	// <ext>core:true;format:string;deprecated:false</ext> 【电子签约文件id】电子签约文件id 【作用】 指定需强制结束签署的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	ContractId *int64 `json:"contractId,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 指定需强制结束签署的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizId string `json:"bizId,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【法人单位名称】法人单位名称 【作用】 通过法人单位名称查询对应法人单位，记录为业务系统中强制结束文件签署的操作人，方便后期追溯 【传参】 1、同时传入法人单位id、法人单位名称、统一社会信用代码/工商注册号中多个参数时，只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号。 2、法人单位id、法人单位名称、统一社会信用代码/工商注册号均未传入时，直接查询并返回平台方下所有文件集合。
	CompanyName string `json:"companyName"`
	// <ext>core:true;format:string;deprecated:false</ext> 【法人单位id】法人单位id 【作用】 通过法人单位id查询对应法人单位，记录为业务系统中强制结束文件签署的操作人，方便后期追溯 【传参】 1、同时传入法人单位id、法人单位名称、统一社会信用代码/工商注册号中多个参数时，只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号。 2、法人单位id、法人单位名称、统一社会信用代码/工商注册号均未传入时，直接查询并返回平台方下所有文件集合。
	CompanyId *int64 `json:"companyId"`
	// <ext>core:true;format:string;deprecated:false</ext> 【统一社会信用代码/工商注册号 】统一社会信用代码/工商注册号 【作用】 通过统一社会信用代码/工商注册号查询对应法人单位，记录为业务系统中强制结束文件签署的操作人，方便后期追溯 【传参】 1、同时传入法人单位id、法人单位名称、统一社会信用代码/工商注册号中多个参数时，只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号。 2、法人单位id、法人单位名称、统一社会信用代码/工商注册号均未传入时，直接查询并返回平台方下所有文件集合。
	RegisterNo string `json:"registerNo"`
	// 【用户手机号】用户手机号。 【作用】 用于记录执行当前操作的操作人信息
	Mobile   string                                     `json:"mobile"`
	UserInfo *common.ContractFinishForceUserInfoRequest `json:"userInfo"`
	// <ext>core:true;format:string;deprecated:false</ext> 【强制结束原因】强制结束原因
	FinishReason string `json:"finishReason,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【强制结束附件id】强制结束附件id 【作用】 强制结束时可上传相关文档说明，例如接收方线下签需要强制结束时，可将线下签的文件作为附件上传 【传参】 1、上传附件之前需先调用其他接口将附件转换为签署文档id再传入。 2、格式：[{\"id\":\"2495903120714977622\"},{\"id\":\"2495903120714977621\"}]。 其中id为签署文档id。
	Attachment string `json:"attachment,omitempty"`
}

func (obj ContractFinishForceRequest) GetUrl() string {
	return "/contract/finish/force"
}

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