package company_request

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

type CompanyauthNoticeRequest struct {
	// <ext>core:true</ext> 【法人单位名称】法人单位名称 【作用】 请传入营业执照上的真实单位名称
	Name string `json:"name"`
	// <ext>core:true</ext> 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号 【作用】 请传入营业执照上的统一社会信用代码/工商注册号
	RegisterNo string `json:"registerNo,omitempty"`
	// <ext>core:true</ext> 【法定代表人姓名】法定代表人姓名 【作用】 请传入营业执照上的法定代表人姓名，若单位类型是个体工商户，请传入经营者姓名
	LegalPerson string `json:"legalPerson,omitempty"`
	// <ext>core:true</ext> 【营业执照】营业执照 【作用】 请传入彩色原件或加盖公司公章的复印件 【传参】 支持JPG/JPEG/PNG/PDF格式，不超过10M。
	License *os.File `json:"license,omitempty"`
	// <ext>core:true</ext> 【是否创建外部法人单位】是否创建外部法人单位 【作用】 若单位不存在时会创建单位，可通过该参数指定创建的单位为内部单位还是外部单位 1、true：即创建外部法人单位 2、false：即创建内部法人单位，为集团统一管理的内部单位 3、若单位已经存在，则该参数传值不生效 【传参】 取值范围：true（创建外部法人单位），false（创建内部法人单位）；不传值默认为：true（创建外部法人单位）
	External string `json:"external,omitempty"`
	// <ext>core:true</ext> 【申请人姓名】申请人姓名 【作用】 即认证申请人姓名，用于记录申请认证的用户。若不单独传入印章管理员，则默认赋予申请人印章管理员的角色
	Charger string `json:"charger"`
	// <ext>core:true;format:phone</ext> 【申请人手机号】申请人手机号 【作用】 即认证申请人手机号，用于记录申请认证的用户。若不单独传入印章管理员，则默认赋予申请人印章管理员的角色 【传参】 1、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 2、同时传入手机号及邮箱时，按手机号>邮箱的优先级进行查询，若手机号查询到用户，则对应用户认证完成后更新姓名、证件号，此时邮箱会忽略；若手机号未查询到用户，此时会根据邮箱查询，若邮箱查询到用户，则对应用户认证完成后更新姓名、证件号，此时手机号会忽略；若手机号与邮箱均未查询到用户，则会将手机号、邮箱创建新用户并在用户认证完成后更新姓名、证件号。
	Mobile string `json:"mobile,omitempty"`
	// <ext>core:true;format:email</ext> 【申请人邮箱】申请人邮箱 【作用】 即认证申请人邮箱，用于记录申请认证的用户。若不单独传入印章管理员，则默认赋予申请人印章管理员的角色 【传参】 1、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 2、同时传入手机号及邮箱时，按手机号>邮箱的优先级进行查询，若手机号查询到用户，则对应用户认证完成后更新姓名、证件号，此时邮箱会忽略；若手机号未查询到用户，此时会根据邮箱查询，若邮箱查询到用户，则对应用户认证完成后更新姓名、证件号，此时手机号会忽略；若手机号与邮箱均未查询到用户，则会将手机号、邮箱创建新用户并在用户认证完成后更新姓名、证件号。
	Email string `json:"email,omitempty"`
	// 【链接有效】链接有效期 【作用】<br>用于设置获取到的链接在多长时间后过期 【传参】 最小值：1。单位：秒。 【特殊说明】<br>当该参数不传值时，其有效期将使用“管理控制台-设置-开放平台-接口页面有效期配置-组织认证接口页面默认有效期“对应的秒数，当此值为“默认”时，其有效期使用“管理控制台-设置-开放平台-接口页面有效期配置-接口页面默认有效期“对应的秒数；当传入的值大于“管理控制台-设置-开放平台-接口页面有效期配置-接口页面最大有效期天数“对应的秒数时，将被设置为该秒数。
	ExpireTime *int64 `json:"expireTime,omitempty"`
	// 【页面语言】页面语言 【作用】 1、用于指定链接页面使用的语言 2、英文和日文页面为付费功能，请确认开通英文版系统和日文版系统后使用 【传参】 取值范围：ZH_CN(中文)，EN_US(英文)，JP(日文)；不传值默认为：ZH_CN（中文）。
	Language string `json:"language,omitempty"`
	// <ext>format:color</ext> 【页面主题色】自定义页面主题色 【作用】 可根据组织的品牌风格，自定义页面的主题颜色，如红色、蓝色 【传参】 RGB颜色(16进制)，例如：#A67A7A。
	ThemeColor string `json:"themeColor,omitempty"`
}

func (obj CompanyauthNoticeRequest) GetUrl() string {
	return "/companyauth/notice"
}

func (obj CompanyauthNoticeRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewPostHttpParameter()
	parameter.AddParam("name", obj.Name)
	parameter.AddParam("registerNo", obj.RegisterNo)
	parameter.AddParam("legalPerson", obj.LegalPerson)
	parameter.AddParam("external", obj.External)
	parameter.AddParam("charger", obj.Charger)
	parameter.AddParam("mobile", obj.Mobile)
	parameter.AddParam("email", obj.Email)
	parameter.AddParam("expireTime", obj.ExpireTime)
	parameter.AddParam("language", obj.Language)
	parameter.AddParam("themeColor", obj.ThemeColor)
	parameter.AddFiles("license", obj.License)
	return parameter
}
