package v2seal_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 V2SealInnercompanyCustomparamCertSeallistRequest struct {
	// <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"`
	// <ext>core:true</ext> 【印章自定义字段】印章自定义字段 【作用】 1、除印章类型、所属组织等基础信息以外，印章可能需要维护其他属性，例如保管部门、所用文种等 2、自定义字段可在电子签章前台配置，定义好后可通过该参数传入字段值或修改字段值 3、传入多个自定义字段时，则取各个字段匹配到的印章的交集。
	SealCustomFields []*common.SealCustomField `json:"sealCustomFields,omitempty"`
	// <ext>core:true;format:date</ext> 【起始更新时间】起始更新时间 【作用】 查询该时间之后更新的印章列表 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则开始时间不限制。
	UpdateTimeStart string `json:"updateTimeStart,omitempty"`
	// <ext>core:true;format:date</ext> 【截止更新时间】截止更新时间 【作用】 查询该时间之前更新的印章列表 【传参】 1、日期格式：yyyy-MM-dd HH:mm:ss。 2、不传则截止时间不限制。
	UpdateTimeEnd string `json:"updateTimeEnd,omitempty"`
	// <ext>core:true</ext> 【查询开始位置 】查询开始位置 【作用】 指定从哪条数据开始查询 【传参】 最小值：0（包含）。最大值：无限制。不传值默认为：0。
	SelectOffset *int64 `json:"selectOffset,omitempty"`
	// <ext>core:true</ext> 【查询限制条数 】查询限制条数 【作用】 限制本次查询返回的最大条数 【传参】 最小值：0（包含）。最大值：10。不传值默认为：全部。
	SelectLimit *int64 `json:"selectLimit,omitempty"`
}

func (obj V2SealInnercompanyCustomparamCertSeallistRequest) GetUrl() string {
	return "/v2/seal/innercompany/customparam/cert/seallist"
}

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