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 SealDiypermissionconfigCreateRequest struct {
	// <ext>core:true</ext> 【字段名称】 字段名称 【传入】 最大长度：50（包含）。
	Name       string                    `json:"name"`
	Department *common.DepartmentRequest `json:"department,omitempty"`
	// <ext>core:true</ext> 【生效印章形式】生效印章形式 【作用】 指定该字段在指定形式印章生效 【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）；不传值默认为：全部形式。
	SealTypes []string `json:"sealTypes,omitempty"`
	// <ext>core:true</ext> 【是否必填】是否必填 【作用】 指定该字段在创建编辑印章时是否必须设置成员 【传参】 取值范围：true（必填），false（非必填）；不传值默认为：ture（必填）。
	Necessary *bool `json:"necessary,omitempty"`
	// <ext>core:true</ext> 【权限项 】权限项  【作用】  指定该字段拥有当前印章的权限项  【传参】 1、取值范围：SEAL_ADMIN（管理），SEAL_USER（使用），SEAL_VIEW（查看）；  2、权限至少传一项。
	SealPermissionTypes []string `json:"sealPermissionTypes"`
	// <ext>core:true</ext> 【具体管理权限】 具体管理权限 【作用】  可管理权限的权限子项  【传参】  取值范围： BASE_INFO_MANAGE（基本信息管理）,SEAL_IMAGE_CHANGE（章面修改）,PERMISSION_MANAGE（权限调整）,ENABLESEAL（启用）,DISABLESEAL（停用）,REVOKESEAL（注销）,DELETESEAL（删除）,SEAL_AUDIT（印章审计）,SEAL_EMR（紧急用印、仅物理印章支持）,SEAL_UKEY_PIN_CHANGE（修改Pin码、仅Ukey章支持）,SEAL_CHANG_WORK_FLOW（章筒更换印章、仅物理印章支持）,BIND_UNBIND_DEVICE（绑定/解绑设备、仅物理印章支持）,SET_SEAL_BOX_WIFI（配置章筒WiFi、仅物理印章支持）,MANAGE_SEAL_BOX_FINGERPRINT（管理章筒指纹、仅物理印章支持）,OPEN_DOOR_GET_SEAL（开门取章、仅物理印章支持）,UKEY_CANCEL_CONNECT（断开Ukey远程连接）；不传值默认为：全部权限。
	SealChildPermissionTypes []string `json:"sealChildPermissionTypes,omitempty"`
	// <ext>core:true</ext> 【具体使用权限】具体使用权限 【作用】  可使用权限的权限子项  【传参】  取值范围：  SEAL_USE（文件用印）, UKEY_CONNECT（申请Ukey远程连接）； 不传值默认为：全部权限。
	SealUseSealChildPermissionTypes []string `json:"sealUseSealChildPermissionTypes,omitempty"`
}

func (obj SealDiypermissionconfigCreateRequest) GetUrl() string {
	return "/seal/diypermissionconfig/create"
}

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