package employee_request

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

type EmployeeListRequest struct {
	DepartmentRequest *common.DepartmentRequest `json:"departmentRequest,omitempty"`
	// <ext>core:true</ext> 【是否包含下级组织成员】是否包含下级组织成员 【作用】 是否查询指定组织及下级所有组织的成员 【传参】 1、取值范围：true（包含下级），false（仅当前组织成员）；不传值默认为：true（包含下级）。 2、该参数在departmentRequest（查询指定组织下的成员）传值时生效
	IncludeChildDepartment *bool                  `json:"includeChildDepartment,omitempty"`
	CompanyRequest         *common.CompanyRequest `json:"companyRequest,omitempty"`
	// <ext>core:true</ext> 【 认证状态】 认证状态 【传参】 取值范围：0（全部），1（已认证），2（未认证），3（已过期）；不传值默认为：0（全部）。
	AuthStatus *int64 `json:"authStatus,omitempty"`
	// <ext>core:true</ext> 【在职状态】在职状态 【传参】 取值范围：0（全部），1（在职） ，2（离职）；不传值默认为：0（全部）。
	EmpStatus *int64 `json:"empStatus,omitempty"`
	// <ext>core:true</ext> 【账号状态】账号状态 【传参】 取值范围：NULL（全部），NORMAL（正常），DELETE（已注销）。
	UserStatus string `json:"userStatus,omitempty"`
	// <ext>core:true</ext> 【通过关键字搜索成员】 通过关键字搜索成员 【作用】 支持姓名/手机号/邮箱/编号/账号模糊查询
	Keyword string `json:"keyword,omitempty"`
	// <ext>core:true</ext> 【查询开始位置】 查询开始位置 【传参】 不传值默认为：0。
	SelectOffset *int64 `json:"selectOffset,omitempty"`
	// <ext>core:true</ext> 【查询限制条数】 查询限制条数 【传参】 最小值：1（包含），最大值：100（包含）；不传值默认为：100。
	SelectLimit *int64 `json:"selectLimit,omitempty"`
}

func (obj EmployeeListRequest) GetUrl() string {
	return "/employee/list"
}

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