package others_request

import (
	"encoding/json"
	"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
)

type MobilesealLoginGenerateLoginsidRequest struct {
	// 【平台名称】平台名称 【作用】 本次登录的平台，如登录招投标系统时，可设置为“XXX招投标系统\" 【传参】 最大长度：500（包含）。
	PlatformName string `json:"platformName"`
	// 【第三方业务系统本次加解密任务id】第三方业务系统本次加解密任务id 【作用】 可传入业务系统中唯一的任务id，方便后续查询与数据传输 【传参】 最大长度：200（包含）。
	BizId string `json:"bizId"`
	// 【授权提示文字】授权提示文字 【作用】 可传入授权时需提示的文字，辅助扫码用户对确认登录内容，例如“本次授权用于登录XXX平台，并进行文件签署” 【传参】 最大长度：500（包含）。
	AuthorizeInfo string `json:"authorizeInfo,omitempty"`
	// 【随机数】随机数 【作用】 通过对随机数进行数字签名，确保本次登录真是有效
	LoginRandomNumber string `json:"loginRandomNumber,omitempty"`
	// 【登录主体类型】登录主体类型 【作用】 不指定登录具体主体时，可通过该参数控制使用个人身份还是单位身份进行登录 【传参】 取值范围：PERSONAL(\"个人\")，ENTERPRISE(\"企业\")；不传值且未指定主体时可由扫码用户任意指定。
	TenantType string `json:"tenantType,omitempty"`
	// 【指定登录主体名称】指定登录主体名称 【作用】 指定法人单位或个人进行登录 【传参】 1、若需指定主体，name与docId必传其一，均传入时，以docId为准。 2、传入指定主体信息后，加解密主体类型不生效
	Username string `json:"username,omitempty"`
	// 【统一社会信用代码/工商注册号/个人证件号】统一社会信用代码/工商注册号/个人证件号 【作用】 指定法人单位或个人进行登录 【传参】 1、若需指定主体，name与docId必传其一，均传入时，以docId为准。 2、传入指定主体信息后，加解密主体类型不生效。
	DocId string `json:"docId,omitempty"`
	// 【登录ip地址】登录ip地址 【作用】 可传入业务系统中进行移动证书登录对应签署ip，传入后将在手机app操作日志中进行记录，方便后期追溯
	LoginIp string `json:"loginIp,omitempty"`
}

func (obj MobilesealLoginGenerateLoginsidRequest) GetUrl() string {
	return "/mobileseal/login/generate/loginSid"
}

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