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 SealCustomparamCertUserChargeRequest struct {
	UserInfoRequest *common.SealCustomparamCertUserChargeUserInfoRequest `json:"userInfoRequest"`
	// <ext>deprecated:true</ext> 【成员编号】成员编号 【作用】 指定需要查询可用印章的用户
	EmployeeNo     string                 `json:"employeeNo,omitempty"`
	CompanyRequest *common.CompanyRequest `json:"companyRequest"`
	// <ext>core:true;deprecated:true</ext> 【法人单位名称】法人单位名称 【作用】 查询印章所属法人单位 【特殊说明】 为兼容历史版本，companyName会覆盖掉法人单位信息中传入的name
	CompanyName string `json:"companyName,omitempty"`
	// <ext>core:true</ext> 【印章类型名称】印章类型名称 【传参】 传入在电子签章前台“印章类型管理”中维护的印章类型名称。
	SealCategoryName string `json:"sealCategoryName,omitempty"`
	// <ext>core:true</ext> 【印章形式】印章形式 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）。
	SealAttribute string `json:"sealAttribute,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"`
}

func (obj SealCustomparamCertUserChargeRequest) GetUrl() string {
	return "/seal/customParam/cert/user/charge"
}

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