package company_request

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

type CompanyauthBasicauthRequest struct {
	// 【单位名称】单位名称
	Name string `json:"name"`
	// 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号
	RegisterNo string `json:"registerNo"`
	// 【认证申请人】认证申请人
	Charger string `json:"charger"`
	// 【申请人手机号】申请人手机号 【作用】<br>关联申请人账号 【传参方式】<br>手机号允许使用大陆、台湾和香港的手机号，台湾和香港的手机号格式为：区号+空格+手机号，例：852 9xxxxxxx 【特殊说明】<br>mobile 与 email 至少填写一个，优先级为mobile > email
	Mobile string `json:"mobile"`
	// 【法定代表人/负责人姓名】法定代表人/负责人姓名
	LegalPerson string `json:"legalPerson"`
	// 【法定代表人证件号】法定代表人证件号
	LegalPersonCardNo string `json:"legalPersonCardNo"`
	// 【法定代表人手机号】法定代表人手机号 【作用】<br>关联法定代表人账号 【传参方式】<br>手机号允许使用大陆、台湾和香港的手机号，台湾和香港的手机号格式为：区号+空格+手机号，例：852 9xxxxxxx 【特殊说明】<br>mobile 与 email 至少填写一个，优先级为mobile > email
	LegalPersonContact string `json:"legalPersonContact"`
	// 【营业执照】营业执照 【作用】<br>上传页面要认证的营业执照 【传参方式】<br>form-data方式的文件上传
	License *os.File `json:"license"`
	// 【单位类型】单位类型 【作用】<br>确认企业提交时的单位类型 【传参方式】<br>传入Integer值，分别代表：<br>1（企业）<br> 2（个体工商户）<br> 3（政府） <br>4（其他）<br>5（事业单位）<br>默认为企业
	CompanyType *int64 `json:"companyType,omitempty"`
	// 【地区】地区 【作用】<br>确认提交认证的企业所属地区 【参数说明】<br>传入枚举类对应的String字符串，对应枚举：<br>CN（中国大陆 ）<br>TW（中国台湾）<br>HK（中国香港）<br>MO（中国澳门）<br>OTHER（其他国家/地区）<br>默认为CN（中国大陆 ）
	Area string `json:"area,omitempty"`
	// 【第三方业务系统单位id】第三方业务系统单位id 【特殊说明】<br>业务系统不传值时会随机生成一个第三方业务系统单位id，认证成功后该值会返回第三方业务系统
	OpenCompanyId string `json:"openCompanyId,omitempty"`
	// 【是否外部企业】是否外部企业，默认为true
	External string `json:"external,omitempty"`
}

func (obj CompanyauthBasicauthRequest) GetUrl() string {
	return "/companyauth/basicauth"
}

func (obj CompanyauthBasicauthRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	parameter.AddParam("name", obj.Name)
	parameter.AddParam("registerNo", obj.RegisterNo)
	parameter.AddParam("charger", obj.Charger)
	parameter.AddParam("mobile", obj.Mobile)
	parameter.AddParam("legalPerson", obj.LegalPerson)
	parameter.AddParam("legalPersonCardNo", obj.LegalPersonCardNo)
	parameter.AddParam("legalPersonContact", obj.LegalPersonContact)
	parameter.AddParam("companyType", obj.CompanyType)
	parameter.AddParam("area", obj.Area)
	parameter.AddParam("openCompanyId", obj.OpenCompanyId)
	parameter.AddParam("external", obj.External)
	parameter.AddFiles("license", obj.License)
	return parameter
}
