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 SealCustomparamRecordsRequest struct {
	// <ext>core:true;format:string</ext> 【法人单位id】法人单位id 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，默认为：所有法人单位。
	CompanyId *int64 `json:"companyId,omitempty"`
	// <ext>core:true</ext> 【法人单位名称】法人单位名称 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，默认为：所有法人单位。
	CompanyName string `json:"companyName,omitempty"`
	// 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，默认为：所有法人单位。
	RegisterNo string `json:"registerNo,omitempty"`
	// 【第三方业务系统法人单位id】第三方业务系统法人单位id 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，默认为：所有法人单位。
	OpenCompanyId string `json:"openCompanyId,omitempty"`
	// <ext>format:string</ext> 【印章id】印章id
	SealId *int64 `json:"sealId,omitempty"`
	// 【印章名称】印章名称
	SealName string `json:"sealName,omitempty"`
	// <ext>core:true</ext> 【印章形式】印章形式 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）；不传值默认为：ELECTRONIC（电子印章）。
	SealAttribute string `json:"sealAttribute,omitempty"`
	// <ext>core:true</ext> 【印章类型名称】印章类型名称 【传参】  传入在电子签章前台“印章类型管理”中维护的印章类型名称。
	SealCategoryName string `json:"sealCategoryName,omitempty"`
	// 【印章自定义字段】印章自定义字段 【作用】 1、除印章类型、所属组织等基础信息以外，印章可能需要维护其他属性，例如保管部门、所用文种等 2、自定义字段可在电子签章前台配置，定义好后可通过该参数传入字段值或修改字段值 3、传入多个自定义字段时，则取各个字段匹配到的印章的交集。
	SealCustomFields []*common.SealCustomField `json:"sealCustomFields,omitempty"`
	// <ext>core:true;format:date</ext> 【记录开始时间】记录开始时间 【作用】 查询该时间之后新增的用印记录 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则开始时间不限制。
	StartTime string `json:"startTime,omitempty"`
	// <ext>core:true;format:date</ext> 【记录结束时间】记录结束时间 【作用】 查询该时间之前更新的印章列表 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则结束时间不限制。
	EndTime string `json:"endTime,omitempty"`
}

func (obj SealCustomparamRecordsRequest) GetUrl() string {
	return "/seal/customparam/records"
}

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