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 V2SealStatusRequest struct {
	// <ext>core:true</ext> 【印章形式】印章形式 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）。 【特殊说明】 1、印章形式和category至少传一个，两个都传时以印章形式优先； 2、若电子签章控制台不允许通过接口管理印章，则调用此接口无效
	BusinessType string `json:"businessType,omitempty"`
	// <ext>core:true</ext> 【印章分类】印章分类 【传参】 取值范围：COMPANY（单位印章），LP（法定代表人章），PRACTICE（个人执业章）。 【特殊说明】 未传时默认单位印章
	SealType string `json:"sealType,omitempty"`
	// <ext>deprecated:true</ext> 【印章分类】印章分类 【传参方式】 1、取值范围：PHYSICS（物理印章），LP(法定代表人章），ELECTRONIC（电子印章），PRACTICE（个人执业章）。 2、印章形式和印章分类（旧参数）必传其一，均传入以印章形式为准。
	Category    string                 `json:"category,omitempty"`
	SealRequest *common.SealRequest    `json:"sealRequest"`
	Company     *common.CompanyRequest `json:"company,omitempty"`
	// <ext>core:true</ext> 【印章状态变更方式】印章状态变更方式 【传参】 取值范围：enable （启用/停用），revoke（注销），delete（删除）。
	Method string `json:"method"`
	// <ext>core:true</ext> 【启用/停用】启用/停用 【传参】 取值范围：true（启用），false（停用）。 【特殊说明】 当method（印章状态变更方式）为enable :（启用/停用），此参数必填
	Enable *bool `json:"enable,omitempty"`
	// <ext>core:true</ext> 【注销理由】注销理由 【作用】 用于注销印章时，填写理由 【传参】 当method（印章状态变更方式）为revoke（注销）时适用。
	RevokeReason string `json:"revokeReason,omitempty"`
	// <ext>core:true</ext> 【Ukey印章注销方式】Ukey印章注销方式 【作用】 1、仅注销章面，证书仍然保留：适用于章面烧制错误或需更换其他章面，但数字证书仍然保留的情况 2、同时注销章面与数字证书：章面和数字证书都不再使用的情况 【传参】 取值范围：0（仅注销章面、证书仍然保留），1（同时注销章面与数字证书）；不传值默认为：0（仅注销章面、证书仍然保留）。
	UkeySealRevokeWay string                  `json:"ukeySealRevokeWay,omitempty"`
	OperatorInfo      *common.UserInfoRequest `json:"operatorInfo"`
}

func (obj V2SealStatusRequest) GetUrl() string {
	return "/v2/seal/status"
}

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