package cert_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 CertApplyThirdRequest struct {
	Company *common.CertApplyThirdCompanyRequest `json:"company,omitempty"`
	User    *common.CertApplyThirdUserRequest    `json:"user,omitempty"`
	// <ext>core:true</ext> 【证书算法】证书算法 【传参】 取值范围：RSA（国际算法），SM2（国密算法）；不传值默认为：RSA（国际算法）。
	SigAlgType string `json:"sigAlgType,omitempty"`
	// <ext>core:true</ext> 【证书请求文件的base64】证书请求文件的base64 【传参】 需要按照sigAlgType生成对应算法的p10
	P10 string `json:"p10"`
	// <ext>core:true</ext> 【证书年限】证书年限 【传参】 取值范围：1（1年期），2（2年期）；不传值默认为：1（1年期）。
	Years *int64 `json:"years,omitempty"`
}

func (obj CertApplyThirdRequest) GetUrl() string {
	return "/cert/apply/third"
}

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