package contract_request

import (
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
)

type ContractOperationlogRequest struct {
	// <ext>core:true</ext> 【操作人用户id】操作人用户id 【作用】 通过操作人用户id查询对应的用户，记录为业务系统中查询文件操作日志的操作人，方便后期追溯 【传参】 1、若用户id对应的用户不存在时，将会报错。 2、若操作人用户id、联系方式、证件号、成员编号、登录账号传入多个，只按参数中最高优先级查询，优先级为用户id>联系方式>成员编号>登录账号。均未传入，日志记录调用此接口的应用名称
	OperatorUserId string `json:"operatorUserId,omitempty"`
	// <ext>core:true</ext> 【操作人登录账号】操作人登录账号 【作用】 通过操作人登录账号查询对应的用户，记录为业务系统中查询文件操作日志的操作人，方便后期追溯 【传参】 1、若登录账号对应的用户不存在时，将会报错。 2、若操作人用户id、联系方式、证件号、成员编号、登录账号传入多个，只按参数中最高优先级查询，优先级为用户id>联系方式>成员编号>登录账号。均未传入，日志记录调用此接口的应用名称
	OperatorAccountNo string `json:"operatorAccountNo,omitempty"`
	// <ext>core:true</ext> 【操作人联系方式】操作人联系方式 【作用】 通过操作人联系方式查询对应的用户，记录为业务系统中查询文件操作日志的操作人，方便后期追溯 【传参】 1、可传入用户手机号或者邮箱. 2、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 3、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 4、若联系方式对应的用户不存在时，将会报错。 5、若操作人用户id、联系方式、证件号、成员编号、登录账号传入多个，只按参数中最高优先级查询，优先级为用户id>联系方式>成员编号>登录账号。均未传入，日志记录调用此接口的应用名称
	OperatorContact string `json:"operatorContact,omitempty"`
	// <ext>core:true;format:string</ext> 【电子签约文件id】电子签约文件id 【作用】 指定需查询操作日志的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	ContractId *int64 `json:"contractId,omitempty"`
	// <ext>core:true</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 指定需查询操作日志的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizId string `json:"bizId,omitempty"`
	// <ext>core:true</ext> 【操作人成员编号】操作人成员编号 【作用】 通过操作人成员编号查询对应的用户，记录为业务系统中查询文件操作日志的操作人，方便后期追溯 【传参】 1、若成员编号对应的用户不存在时，将会报错。 2、若操作人用户id、联系方式、证件号、成员编号、登录账号传入多个，只按参数中最高优先级查询，优先级为用户id>联系方式>成员编号>登录账号。均未传入，日志记录调用此接口的应用名称
	OperatorNumber string `json:"operatorNumber,omitempty"`
	// <ext>core:true</ext> 【查询的操作日志类型】查询的操作日志类型 【作用】 指定需查询的操作日志类型 【传参】 取值范围：DOWNLOADCONTRACT（文件下载记录），PRINTCONTRACT（文件打印记录）；默认为：两种类型日志均查询
	Operation string `json:"operation,omitempty"`
	// <ext>core:true</ext> 【操作人证件号】操作人证件号 【作用】 通过操作人证件号查询对应的用户，记录为业务系统中查询文件操作日志的操作人，方便后期追溯 【传参】 1、若证件号对应的用户不存在时，将会报错。 2、若操作人用户id、联系方式、证件号、成员编号、登录账号传入多个，只按参数中最高优先级查询，优先级为用户id>联系方式>成员编号>登录账号。均未传入，日志记录调用此接口的应用名称
	OperatorCardNo string `json:"operatorCardNo,omitempty"`
}

func (obj ContractOperationlogRequest) GetUrl() string {
	return "/contract/operationlog"
}

func (obj ContractOperationlogRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewGetHttpParameter()
	parameter.AddParam("operatorUserId", obj.OperatorUserId)
	parameter.AddParam("operatorAccountNo", obj.OperatorAccountNo)
	parameter.AddParam("operatorContact", obj.OperatorContact)
	parameter.AddParam("contractId", obj.ContractId)
	parameter.AddParam("bizId", obj.BizId)
	parameter.AddParam("operatorNumber", obj.OperatorNumber)
	parameter.AddParam("operation", obj.Operation)
	parameter.AddParam("operatorCardNo", obj.OperatorCardNo)
	return parameter
}
