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 SealWarningRuleQueryRequest struct {
	// <ext>core:true</ext> 【预警规则名称】预警规则名称 【作用】 模糊匹配包含此名称的所有预警规则 【传参】 预警规则名称、预警规则ID、预警规则状态均传入时，取交集查询规则；均未传入时返回指定集团下的所有预警规则。
	RuleName string `json:"ruleName,omitempty"`
	// <ext>core:true</ext> 【预警规则ID】预警规则ID 【作用】 精准查询此ID对应的预警规则 【传参】 预警规则名称、预警规则ID、预警规则状态均传入时，取交集查询规则；均未传入时返回指定集团下的所有预警规则。
	Id string `json:"id,omitempty"`
	// <ext>core:true</ext> 【预警规则状态】预警规则状态 【作用】 查询指定状态的印章预警规则 【传参】 1、取值范围：NORMAL（启用），FREEZE（停用）；不传时默认为全部状态的规则 2、预警规则名称、预警规则ID、预警规则状态均传入时，取交集查询规则；均未传入时返回指定集团下的所有预警规则。
	Status string `json:"status,omitempty"`
	// <ext>core:true</ext> 【集团id】集团id 【作用】 指定当前印章预警规则所属集团 【传参】 集团id、单位信息、组织信息都可用于指定印章预警规则的所属集团；均传入时只按最高优先级查询，优先级为集团id>法人单位信息>组织信息；都不传时，默认创建在平台方集团内。
	OrgId      string                    `json:"orgId,omitempty"`
	Company    *common.CompanyRequest    `json:"company,omitempty"`
	Department *common.DepartmentRequest `json:"department,omitempty"`
}

func (obj SealWarningRuleQueryRequest) GetUrl() string {
	return "/seal/warning/rule/query"
}

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