package company_request

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

type CompanyauthSubmitcompanyauthRequest struct {
	// 【地区】地区 【作用】<br>确认提交认证的企业所属地区 【参数说明】<br>传入枚举类对应的String字符串，对应枚举：<br>CN（中国大陆 ）<br>TW（中国台湾）<br>HK（中国香港）<br>MO（中国澳门）<br>OTHER（其他国家/地区）<br>默认为CN（中国大陆 ）
	Area string `json:"area"`
	// 【单位类型】单位类型 【作用】<br>确认企业提交时的单位类型 【传参方式】<br>传入Integer值，分别代表：1（企业） 2（个体工商户）默认为企业 当选择非中国大陆时 公司类型只能是企业
	CompanyType *int64 `json:"companyType"`
	// 【营业执照】营业执照 【作用】<br>上传页面要认证的营业执照 【传参方式】<br>form-data方式的文件上传
	License *os.File `json:"license"`
	// 【单位名称】单位名称
	CompanyName string `json:"companyName"`
	// 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号
	RegisterNo string `json:"registerNo"`
	// 【法定代表人/负责人姓名】法定代表人/负责人姓名
	LegalPerson string `json:"legalPerson"`
	// 【认证申请人】认证申请人
	Charger string `json:"charger"`
	// 【申请人手机号】申请人手机号 【作用】<br>填写申请人手机号 【传参方式】<br>手机号允许使用大陆、台湾和香港的手机号，台湾和香港的手机号格式为：区号+空格+手机号，例：852 9xxxxxxx 【特殊说明】<br>mobile 与 email 至少填写一个，优先级为mobile > email
	Mobile string `json:"mobile"`
	// 【认证授权书】认证授权书 【作用】<br>上传页面要认证授权书 【传参方式】<br>form-data方式的文件上传
	OperAuthorization *os.File `json:"operAuthorization"`
	// 【银行卡类型】银行卡类型 【作用】<br>区分对公账户类型 【传参说明】<br>传入Integer值，分别代表：1.对公账户 2.个人账户
	CardType *int64 `json:"cardType"`
	// 【银行卡号】银行卡号
	BankCardNo string `json:"bankCardNo"`
	// 【开户银行】开户银行
	BankName string `json:"bankName"`
	// 【联行号】联行号
	LineNo string `json:"lineNo,omitempty"`
	// 【是否客户】是否客户 【作用】<br>是否是平台客户 【传参方式】<br>是/否，默认否
	Customer string `json:"customer,omitempty"`
}

func (obj CompanyauthSubmitcompanyauthRequest) GetUrl() string {
	return "/companyauth/submitcompanyauth"
}

func (obj CompanyauthSubmitcompanyauthRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	parameter.AddParam("area", obj.Area)
	parameter.AddParam("companyType", obj.CompanyType)
	parameter.AddParam("companyName", obj.CompanyName)
	parameter.AddParam("registerNo", obj.RegisterNo)
	parameter.AddParam("legalPerson", obj.LegalPerson)
	parameter.AddParam("charger", obj.Charger)
	parameter.AddParam("mobile", obj.Mobile)
	parameter.AddParam("cardType", obj.CardType)
	parameter.AddParam("bankCardNo", obj.BankCardNo)
	parameter.AddParam("bankName", obj.BankName)
	parameter.AddParam("lineNo", obj.LineNo)
	parameter.AddParam("customer", obj.Customer)
	parameter.AddFiles("license", obj.License)
	parameter.AddFiles("operAuthorization", obj.OperAuthorization)
	return parameter
}
