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 SealCustomparamListRequest struct {
	// <ext>core:true;format:string</ext> 【法人单位id】法人单位id 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，取集成应用配置的【默认发起主体】。
	Id *int64 `json:"id,omitempty"`
	// <ext>core:true</ext> 【法人单位名称】法人单位名称 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，取集成应用配置的【默认发起主体】。
	Name string `json:"name,omitempty"`
	// <ext>core:true</ext> 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，取集成应用配置的【默认发起主体】。
	RegisterNo string `json:"registerNo,omitempty"`
	// <ext>core:true</ext> 【第三方业务系统法人单位id】第三方业务系统法人单位id 【传参】 1、传入多个法人单位信息时只按最高优先级查询，优先级为法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id。 2、都不传时，取集成应用配置的【默认发起主体】。
	OpenCompanyId string `json:"openCompanyId,omitempty"`
	// <ext>core:true</ext> 【印章形式】印章形式 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）；不传值默认为：ELECTRONIC（电子印章）。
	SealAttribute string `json:"sealAttribute,omitempty"`
	// <ext>core:true</ext> 【印章状态】印章状态 【作用】 查询指定状态的印章 【传参】 取值范围：ALL（查询所有印章），WAIT_CREATE（待制作），NORMAL（正常），FREEZE（冻结），DELETE（删除），INVALID（失效），REVOKE（注销），REVOKING（注销中），CHANGING（变更中）；不传值默认为：NORMAL（正常）。
	SealQueryStatus string `json:"sealQueryStatus,omitempty"`
	// <ext>core:true</ext> 【印章类型名称】印章类型名称 【传参】  传入在电子签章前台“印章类型管理”中维护的印章类型名称。
	SealCategoryName string `json:"sealCategoryName,omitempty"`
	// 【印章自定义字段】印章自定义字段 【作用】 1、除印章类型、所属组织等基础信息以外，印章可能需要维护其他属性，例如保管部门、所用文种等 2、自定义字段可在电子签章前台配置，定义好后可通过该参数传入字段值或修改字段值 3、传入多个自定义字段时，则取各个字段匹配到的印章的交集。
	SealCustomFields []*common.SealCustomField `json:"sealCustomFields,omitempty"`
	// <ext>format:date</ext> 【起始更新时间】起始更新时间 【作用】 查询该时间之后更新的印章列表 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则开始时间不限制。
	UpdateTimeStart string `json:"updateTimeStart,omitempty"`
	// <ext>format:date</ext> 【截止更新时间】截止更新时间 【作用】 查询该时间之前更新的印章列表 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则截止时间不限制。
	UpdateTimeEnd string `json:"updateTimeEnd,omitempty"`
}

func (obj SealCustomparamListRequest) GetUrl() string {
	return "/seal/customparam/list"
}

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