package company_request

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

type CompanyRemoveemployeeRequest struct {
	// <ext>core:true</ext> 【法人单位id】法人单位id
	CompanyId string `json:"companyId,omitempty"`
	// <ext>core:true</ext> 【业务系统标识】业务系统标识 【作用】 1：根据第三方业务系统用户id查询系统成员/用户信息时使用 2：涉及到多套业务系统集成且不同系统间第三方业务系统用户id可能重复时需要传入该参数
	SystemCode string `json:"systemCode,omitempty"`
	// <ext>core:true</ext> 【联系方式】联系方式 【传参说明】 1.允许传入手机号或邮箱； 2.手机号允许使用国际手机号手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号
	Contact string `json:"contact,omitempty"`
	// <ext>core:true</ext> 【登录账号】登录账号
	AccountNo string `json:"accountNo,omitempty"`
	// <ext>core:true</ext> 【法人单位名称】法人单位名称
	CompanyName string `json:"companyName,omitempty"`
	// <ext>core:true</ext> 【离职后选择要释放的账号】离职后选择要释放的账号 【作用】 离职员工后，可将手机号、邮箱、员工编号或自定义账号进行释放，方便后续其他员工入职后绑定 【传参说明】 支持传入手机号、邮箱、员工编号以及自定账号任意项，不填则不释放账号。若传入的参数对应用户并未关联，则直接忽略处理 注：该参数仅在自定义配置【内部员工离职成外部用户是否释放指定账号】开启时生效 可选值：MOBILE、EMAIL、ACCOUNT、NUMBER
	BindTypeList string `json:"bindTypeList,omitempty"`
	// <ext>core:true</ext> 【成员编号】成员编号
	EmployeeNo string `json:"employeeNo,omitempty"`
	// <ext>core:true</ext> 【第三方业务系统用户id】第三方业务系统用户id
	OpenUserId string `json:"openUserId,omitempty"`
	// <ext>core:true</ext> 【证件号】证件号 【传参】 1、支持传入用户关联的证件号，包括居民身份证、护照号、港澳居民来往内地通行证等。 2、系统中若存在多个同证件号用户，则优先匹配已认证中最早认证的用户；若无已认证用户，则关联最早创建的用户。
	CardNo string `json:"cardNo,omitempty"`
	// <ext>core:true</ext> 【法人单位代码】法人单位代码 【说明】 支持传入当前单位存储的统一社会信用代码或工商注册号
	RegisterNo string `json:"registerNo,omitempty"`
}

func (obj CompanyRemoveemployeeRequest) GetUrl() string {
	return "/company/removeemployee"
}

func (obj CompanyRemoveemployeeRequest) GetHttpParameter() *http.HttpParameter {
	parameter := http.NewGetHttpParameter()
	parameter.AddParam("companyId", obj.CompanyId)
	parameter.AddParam("systemCode", obj.SystemCode)
	parameter.AddParam("contact", obj.Contact)
	parameter.AddParam("accountNo", obj.AccountNo)
	parameter.AddParam("companyName", obj.CompanyName)
	parameter.AddParam("bindTypeList", obj.BindTypeList)
	parameter.AddParam("employeeNo", obj.EmployeeNo)
	parameter.AddParam("openUserId", obj.OpenUserId)
	parameter.AddParam("cardNo", obj.CardNo)
	parameter.AddParam("registerNo", obj.RegisterNo)
	return parameter
}
