// Package hire code generated by oapi sdk gen
/*
 * MIT License
 *
 * Copyright (c) 2022 Lark Technologies Pte. Ltd.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package larkhire

import (
	"fmt"

	"context"
	"errors"

	"github.com/larksuite/oapi-sdk-go/v3/event"

	"github.com/larksuite/oapi-sdk-go/v3/core"
)

const (
	BatchQueryAgencyUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	BatchQueryAgencyUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	BatchQueryAgencyUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetAgencyUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetAgencyUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetAgencyUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetAgencyUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	AgencyAccountStatusNormal             = 0 // 正常
	AgencyAccountStatusEnabled            = 1 // 已禁用
	AgencyAccountStatusDisabledBySupplier = 2 // 已被猎头停用

)

const (
	AgencyAccountRoleTypeManager    = 0 // 管理员
	AgencyAccountRoleTypeConsultant = 1 // 顾问

)

const (
	GetAgencyAccountAgencyUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	GetAgencyAccountAgencyUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	OperateAgencyAccountOptionAdd    = 1 // 禁用
	OperateAgencyAccountOptionRemove = 2 // 取消禁用

)

const (
	ProtectAgencyUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ProtectAgencyUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ProtectAgencyUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ProtectAgencyUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	QueryAgencyUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	QueryAgencyUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	QueryAgencyUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	CancelOnboardApplicationTerminationType我们拒绝了候选人 = 1  // 我们拒绝了候选人
	CancelOnboardApplicationTerminationType候选人拒绝了我们 = 22 // 候选人拒绝了我们
	CancelOnboardApplicationTerminationType其他       = 27 // 其他

)

const (
	CreateApplicationDeliveryTypeHRVisit           = 1 // HR 寻访
	CreateApplicationDeliveryTypeCandidateDelivery = 2 // 候选人主动投递

)

const (
	CreateApplicationUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	CreateApplicationUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	CreateApplicationUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetApplicationUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	GetApplicationUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	GetApplicationUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetDetailApplicationUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetDetailApplicationUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetDetailApplicationUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetDetailApplicationUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户,即将下线字段,不建议使用
)

const (
	GetDetailApplicationDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetDetailApplicationDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetDetailApplicationJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetDetailApplicationJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetDetailApplicationJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetDetailApplicationJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	GetDetailApplicationEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetDetailApplicationEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	OfferApplicationUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	OfferApplicationUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	OfferApplicationUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	OfferApplicationDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	OfferApplicationDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	OfferApplicationJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	OfferApplicationJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	OfferApplicationJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	OfferApplicationJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	OfferApplicationEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	OfferApplicationEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	TerminateApplicationTerminationTypeWeRejected        = 1  // 我们拒绝了候选人
	TerminateApplicationTerminationTypeCandidateRejected = 22 // 候选人拒绝了我们
	TerminateApplicationTerminationTypeOther             = 27 // 其他

)

const (
	TerminateApplicationTerminateOfferOperateTypeCancelOffer       = 1 // 撤销offer
	TerminateApplicationTerminateOfferOperateTypeCandidateRejected = 2 // 标记为候选人拒绝

)

const (
	TerminateApplicationCancelOfferTerminationTypeWeRejected        = 1  // 我们拒绝了候选人
	TerminateApplicationCancelOfferTerminationTypeCandidateRejected = 22 // 候选人拒绝了我们
	TerminateApplicationCancelOfferTerminationTypeOther             = 27 // 其他

)

const (
	TransferOnboardApplicationUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	TransferOnboardApplicationUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	TransferOnboardApplicationUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	TransferOnboardApplicationDepartmentIDTypeOpenDepartmentId        = "open_department_id"         // 以 open_department_id 来标识部门
	TransferOnboardApplicationDepartmentIDTypeDepartmentId            = "department_id"              // 以 department_id 来标识部门
	TransferOnboardApplicationDepartmentIDTypePeopleAdminDepartmentId = "people_admin_department_id" // 以 people_admin_department_id 来标识部门
)

const (
	TransferOnboardApplicationJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	TransferOnboardApplicationJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	TransferOnboardApplicationJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	TransferOnboardApplicationJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	TransferOnboardApplicationEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	TransferOnboardApplicationEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListApplicationInterviewUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListApplicationInterviewUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListApplicationInterviewUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListApplicationInterviewUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	ListApplicationInterviewJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListApplicationInterviewJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetAttachmentType附件简历  = 1 // 附件简历
	GetAttachmentType候选人作品 = 2 // 候选人作品
	GetAttachmentType自定义附件 = 3 // 自定义附件

)

const (
	BatchQueryBackgroundCheckOrderOrderStatusHasArrange    = "2" // 已安排
	BatchQueryBackgroundCheckOrderOrderStatusHasFinish     = "3" // 已完成
	BatchQueryBackgroundCheckOrderOrderStatusHasTerminated = "4" // 已终止
	BatchQueryBackgroundCheckOrderOrderStatusApproving     = "5" // 审批中
	BatchQueryBackgroundCheckOrderOrderStatusWithdrawn     = "6" // 审批已撤回
	BatchQueryBackgroundCheckOrderOrderStatusApproved      = "8" // 审批通过
	BatchQueryBackgroundCheckOrderOrderStatusRejected      = "9" // 审批未通过
)

const (
	BatchQueryBackgroundCheckOrderUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	BatchQueryBackgroundCheckOrderUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	BatchQueryBackgroundCheckOrderUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	ListBackgroundCheckOrderUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	ListBackgroundCheckOrderUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	ListBackgroundCheckOrderUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	BatchDeleteEcoAccountCustomFieldScope背调 = 1 // 背调
	BatchDeleteEcoAccountCustomFieldScope笔试 = 2 // 笔试

)

const (
	EcoAccountCustomFieldScope背调 = 1 // 背调
	EcoAccountCustomFieldScope笔试 = 2 // 笔试

)

const (
	EcoAccountCustomFieldScopeCreateEcoAccountCustomField背调 = 1 // 背调
	EcoAccountCustomFieldScopeCreateEcoAccountCustomField笔试 = 2 // 笔试

)

const (
	UpdateProgressEcoBackgroundCheckOperatorRole1 = 1 // 供应商
	UpdateProgressEcoBackgroundCheckOperatorRole2 = 2 // 管理员

)

const (
	UpdateResultEcoBackgroundCheckOperatorRole1 = 1 // 供应商
	UpdateResultEcoBackgroundCheckOperatorRole2 = 2 // 管理员

)

const (
	EhrImportTaskState导入成功 = 1 // 导入成功
	EhrImportTaskState导入失败 = 2 // 导入失败

)

const (
	GetEmployeeUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	GetEmployeeUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	GetEmployeeUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	GetEmployeeDepartmentIDTypeOpenDepartmentId        = "open_department_id"         // 以 open_department_id 来标识部门
	GetEmployeeDepartmentIDTypeDepartmentId            = "department_id"              // 以 department_id 来标识部门
	GetEmployeeDepartmentIDTypePeopleAdminDepartmentId = "people_admin_department_id" // 以 people_admin_department_id 来标识部门
)

const (
	GetEmployeeJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetEmployeeJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetEmployeeJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetEmployeeJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	GetEmployeeEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetEmployeeEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	GetByApplicationEmployeeUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	GetByApplicationEmployeeUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	GetByApplicationEmployeeUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	GetByApplicationEmployeeDepartmentIDTypeOpenDepartmentId        = "open_department_id"         // 以 open_department_id 来标识部门
	GetByApplicationEmployeeDepartmentIDTypeDepartmentId            = "department_id"              // 以 department_id 来标识部门
	GetByApplicationEmployeeDepartmentIDTypePeopleAdminDepartmentId = "people_admin_department_id" // 以 people_admin_department_id 来标识部门
)

const (
	GetByApplicationEmployeeJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetByApplicationEmployeeJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetByApplicationEmployeeJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetByApplicationEmployeeJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	GetByApplicationEmployeeEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetByApplicationEmployeeEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ChangeEmployeeStageOperationConvert            = 1 // 转正
	ChangeEmployeeStageOperationOverboard          = 2 // 离职
	ChangeEmployeeStageOperationCancel             = 3 // 恢复至待入职
	ChangeEmployeeStageOperationWithdrawOverboard  = 4 // 撤销离职
	ChangeEmployeeStageOperationWithdrawConversion = 5 // 撤销转正

)

const (
	PatchEmployeeUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	PatchEmployeeUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	PatchEmployeeUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	PatchEmployeeDepartmentIDTypeOpenDepartmentId        = "open_department_id"         // 以 open_department_id 来标识部门
	PatchEmployeeDepartmentIDTypeDepartmentId            = "department_id"              // 以 department_id 来标识部门
	PatchEmployeeDepartmentIDTypePeopleAdminDepartmentId = "people_admin_department_id" // 以 people_admin_department_id 来标识部门
)

const (
	PatchEmployeeJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	PatchEmployeeJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	PatchEmployeeJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	PatchEmployeeJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	PatchEmployeeEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	PatchEmployeeEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListEvaluationUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListEvaluationUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListEvaluationUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListEvaluationUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	ListEvaluationTaskActivityStatus待评估  = 1 // 待评估
	ListEvaluationTaskActivityStatus已评估  = 2 // 已评估
	ListEvaluationTaskActivityStatus无需评估 = 3 // 无需评估

)

const (
	ListEvaluationTaskUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListEvaluationTaskUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListEvaluationTaskUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListEvaluationTaskUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	CreateExamUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	CreateExamUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	CreateExamUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	CreateExamUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	ListExamMarkingTaskActivityStatus待阅卷 = 1 // 待阅卷
	ListExamMarkingTaskActivityStatus已阅卷 = 2 // 已阅卷

)

const (
	ListExamMarkingTaskUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListExamMarkingTaskUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListExamMarkingTaskUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListExamMarkingTaskUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	ExternalApplicationJobRecruitmentTypeSocialRecruitment = 1 // 社招
	ExternalApplicationJobRecruitmentTypeCampusRecruitment = 2 // 校招

)

const (
	ExternalApplicationDeliveryTypeHRVisit           = 1 // HR 寻访
	ExternalApplicationDeliveryTypeCandidateDelivery = 2 // 候选人主动投递
	ExternalApplicationDeliveryTypeTalentRecommend   = 3 // 人才推荐
	ExternalApplicationDeliveryTypeOthers            = 4 // 其他

)

const (
	ExternalApplicationJobRecruitmentTypeUpdateExternalApplicationSocialRecruitment = 1 // 社招
	ExternalApplicationJobRecruitmentTypeUpdateExternalApplicationCampusRecruitment = 2 // 校招

)

const (
	ExternalApplicationDeliveryTypeUpdateExternalApplicationHRVisit           = 1 // HR 寻访
	ExternalApplicationDeliveryTypeUpdateExternalApplicationCandidateDelivery = 2 // 候选人主动投递
	ExternalApplicationDeliveryTypeUpdateExternalApplicationTalentRecommend   = 3 // 人才推荐
	ExternalApplicationDeliveryTypeUpdateExternalApplicationOthers            = 4 // 其他

)

const (
	ExternalInterviewParticipateStatusNotStart       = 1 // 未参与
	ExternalInterviewParticipateStatusParticipated   = 2 // 参与
	ExternalInterviewParticipateStatusNotPaticipated = 3 // 爽约

)

const (
	ExternalInterviewParticipateStatusUpdateExternalInterviewNotStart       = 1 // 未参与
	ExternalInterviewParticipateStatusUpdateExternalInterviewParticipated   = 2 // 参与
	ExternalInterviewParticipateStatusUpdateExternalInterviewNotPaticipated = 3 // 爽约

)

const (
	ExternalInterviewAssessmentConclusionFail           = 1 // 不通过
	ExternalInterviewAssessmentConclusionPass           = 2 // 通过
	ExternalInterviewAssessmentConclusionToBeDetermined = 3 // 待定

)

const (
	ExternalInterviewAssessmentConclusionPatchExternalInterviewAssessmentFail           = 1 // 不通过
	ExternalInterviewAssessmentConclusionPatchExternalInterviewAssessmentPass           = 2 // 通过
	ExternalInterviewAssessmentConclusionPatchExternalInterviewAssessmentToBeDetermined = 3 // 待定

)

const (
	ExternalRewardRuleTypeOnboard    = 1 // 入职奖励，候选人入职或转正后产生的奖励
	ExternalRewardRuleTypeProcesse   = 2 // 过程奖励，入职奖励外，若候选人有阶段性进展，则给予内推人对应的奖励
	ExternalRewardRuleTypeActive     = 3 // 活动奖励，额外奖励，用于支持内推周期性活动
	ExternalRewardRuleTypeOpenSource = 4 // 开源奖励，若内推候选人首次进入人才库，且在被推荐后一段时间内，入职了规则内的任意职位的奖励
	ExternalRewardRuleTypeOther      = 5 // 其他奖励，以上奖励无法覆盖的奖励

)

const (
	ExternalRewardStageToBeConfirmed = 1 // 待确认
	ExternalRewardStageConfirmed     = 2 // 已确认
	ExternalRewardStagePaid          = 3 // 已发放

)

const (
	CreateExternalReferralRewardUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	CreateExternalReferralRewardUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	CreateExternalReferralRewardUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetByTalentInterviewUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetByTalentInterviewUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetByTalentInterviewUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetByTalentInterviewUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	GetByTalentInterviewJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetByTalentInterviewJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListInterviewJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListInterviewJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListInterviewUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListInterviewUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListInterviewUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetInterviewRecordUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	GetInterviewRecordUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	GetInterviewRecordUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	ListInterviewRecordsUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListInterviewRecordsUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListInterviewRecordsUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetInterviewRecordAttachmentLanguageZh = 1 // 中文
	GetInterviewRecordAttachmentLanguageEn = 2 // 英文

)

const (
	ListInterviewRoundTypeProcessType社招流程 = 1 // 社招流程
	ListInterviewRoundTypeProcessType校招流程 = 2 // 校招流程

)

const (
	ListInterviewTaskActivityStatus未开始 = 1 // 未开始
	ListInterviewTaskActivityStatus未评价 = 2 // 未评价
	ListInterviewTaskActivityStatus已评价 = 3 // 已评价
	ListInterviewTaskActivityStatus已终止 = 5 // 已终止

)

const (
	ListInterviewTaskUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListInterviewTaskUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListInterviewTaskUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListInterviewTaskUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	VerifyStatusNotVarified = 1 //
	VerifyStatusVarified    = 2 //

)

const (
	ListInterviewerUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListInterviewerUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListInterviewerUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	PatchInterviewerUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	PatchInterviewerUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	PatchInterviewerUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	CombinedJobExperienceNoLimit         = 1 // 不限
	CombinedJobExperienceGraduate        = 2 // 应届毕业生
	CombinedJobExperienceUnderOneYear    = 3 // 1年以下
	CombinedJobExperienceOneToThreeYear  = 4 // 1-3年
	CombinedJobExperienceThreeToFiveYear = 5 // 3-5年
	CombinedJobExperienceFiveToSevenYear = 6 // 5-7年
	CombinedJobExperienceSevenToTenYear  = 7 // 7-10年
	CombinedJobExperienceOverTenYear     = 8 // 10年以上

)

const (
	CombinedJobProcessTypeSocialProcess = 1 // 社招
	CombinedJobProcessTypeCampusProcess = 2 // 校招

)

const (
	CombinedJobRequiredDegreePrimaryEducation            = 1  // 小学及以上
	CombinedJobRequiredDegreeJuniorMiddleSchoolEducation = 2  // 初中及以上
	CombinedJobRequiredDegreeSecondary                   = 3  // 专职及以上
	CombinedJobRequiredDegreeSeniorSchoolGraduates       = 4  // 高中及以上
	CombinedJobRequiredDegreeAssociate                   = 5  // 大专及以上
	CombinedJobRequiredDegreeBachelor                    = 6  // 本科及以上
	CombinedJobRequiredDegreeMaster                      = 7  // 硕士及以上
	CombinedJobRequiredDegreePhd                         = 8  // 博士及以上
	CombinedJobRequiredDegreeNoLimit                     = 20 // 不限

)

const (
	CombinedJobJobAttributeConcrete = 1 // 实体职位
	CombinedJobJobAttributeVirtual  = 2 // 虚拟职位

)

const (
	CombinedCreateJobUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	CombinedCreateJobUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	CombinedCreateJobUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	CombinedCreateJobDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	CombinedCreateJobDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	CombinedCreateJobJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CombinedCreateJobJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	CombinedCreateJobJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CombinedCreateJobJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	CombinedJobExperienceCombinedUpdateJobNoLimit         = 1 // 不限
	CombinedJobExperienceCombinedUpdateJobGraduate        = 2 // 应届毕业生
	CombinedJobExperienceCombinedUpdateJobUnderOneYear    = 3 // 1年以下
	CombinedJobExperienceCombinedUpdateJobOneToThreeYear  = 4 // 1-3年
	CombinedJobExperienceCombinedUpdateJobThreeToFiveYear = 5 // 3-5年
	CombinedJobExperienceCombinedUpdateJobFiveToSevenYear = 6 // 5-7年
	CombinedJobExperienceCombinedUpdateJobSevenToTenYear  = 7 // 7-10年
	CombinedJobExperienceCombinedUpdateJobOverTenYear     = 8 // 10年以上

)

const (
	CombinedJobRequiredDegreeCombinedUpdateJobPrimaryEducation            = 1  // 小学及以上
	CombinedJobRequiredDegreeCombinedUpdateJobJuniorMiddleSchoolEducation = 2  // 初中及以上
	CombinedJobRequiredDegreeCombinedUpdateJobSecondary                   = 3  // 专职及以上
	CombinedJobRequiredDegreeCombinedUpdateJobSeniorSchoolGraduates       = 4  // 高中及以上
	CombinedJobRequiredDegreeCombinedUpdateJobAssociate                   = 5  // 大专及以上
	CombinedJobRequiredDegreeCombinedUpdateJobBachelor                    = 6  // 本科及以上
	CombinedJobRequiredDegreeCombinedUpdateJobMaster                      = 7  // 硕士及以上
	CombinedJobRequiredDegreeCombinedUpdateJobPhd                         = 8  // 博士及以上
	CombinedJobRequiredDegreeCombinedUpdateJobNoLimit                     = 20 // 不限

)

const (
	CombinedJobJobAttributeCombinedUpdateJobConcrete = 1 // 实体职位
	CombinedJobJobAttributeCombinedUpdateJobVirtual  = 2 // 虚拟职位

)

const (
	CombinedUpdateJobUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	CombinedUpdateJobUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	CombinedUpdateJobUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	CombinedUpdateJobDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	CombinedUpdateJobDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	CombinedUpdateJobJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CombinedUpdateJobJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	CombinedUpdateJobJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CombinedUpdateJobJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	ConfigJobUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ConfigJobUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ConfigJobUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ConfigJobUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	GetJobUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetJobUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetJobUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetJobUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	GetJobDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetJobDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetJobJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetJobJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetJobJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetJobJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	GetDetailJobUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetDetailJobUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetDetailJobUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetDetailJobUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	GetDetailJobDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetDetailJobDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetDetailJobJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetDetailJobJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetDetailJobJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetDetailJobJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	ListJobUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	ListJobUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	ListJobUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	ListJobDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	ListJobDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	ListJobJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListJobJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListJobJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListJobJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	RecruiterJobUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	RecruiterJobUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	RecruiterJobUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	UpdateConfigJobUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	UpdateConfigJobUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	UpdateConfigJobUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	BatchUpdateJobManagerUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	BatchUpdateJobManagerUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	BatchUpdateJobManagerUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetJobManagerUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetJobManagerUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetJobManagerUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetJobManagerUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	SearchJobPublishRecordUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	SearchJobPublishRecordUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	SearchJobPublishRecordUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	SearchJobPublishRecordDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	SearchJobPublishRecordDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	SearchJobPublishRecordJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	SearchJobPublishRecordJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	SearchJobPublishRecordJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	SearchJobPublishRecordJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	JobRequirementDisplayProgressWaitingStart = 1 // 待启动
	JobRequirementDisplayProgressOnGoing      = 2 // 进行中
	JobRequirementDisplayProgressCanceled     = 3 // 已取消
	JobRequirementDisplayProgressSuspended    = 4 // 已暂停
	JobRequirementDisplayProgressCompleted    = 5 // 已完成
	JobRequirementDisplayProgressExpired      = 6 // 已超期

)

const (
	JobRequirementCategoryAddition    = 1 // 新增
	JobRequirementCategoryReplacement = 2 // 替换

)

const (
	JobRequirementPriorityHigh   = 1 // 高
	JobRequirementPriorityMedium = 2 // 中
	JobRequirementPriorityLow    = 3 // 低

)

const (
	JobRequirementRequiredDegreePrimaryEducation            = 1  // 小学及以上
	JobRequirementRequiredDegreeJuniorMiddleSchoolEducation = 2  // 初中及以上
	JobRequirementRequiredDegreeSecondary                   = 3  // 专职及以上
	JobRequirementRequiredDegreeSeniorSchoolGraduates       = 4  // 高中及以上
	JobRequirementRequiredDegreeAssociate                   = 5  // 大专及以上
	JobRequirementRequiredDegreeBachelor                    = 6  // 本科及以上
	JobRequirementRequiredDegreeMaster                      = 7  // 硕士及以上
	JobRequirementRequiredDegreePhd                         = 8  // 博士及以上
	JobRequirementRequiredDegreeNoLimit                     = 20 // 不限

)

const (
	JobRequirementProcessTypeSocial = 1 // 社招
	JobRequirementProcessTypeCampus = 2 // 校招

)

const (
	CreateJobRequirementUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	CreateJobRequirementUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	CreateJobRequirementUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	CreateJobRequirementDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	CreateJobRequirementDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	CreateJobRequirementJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateJobRequirementJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	CreateJobRequirementJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateJobRequirementJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	CreateJobRequirementEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateJobRequirementEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListJobRequirementUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListJobRequirementUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListJobRequirementUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	ListJobRequirementDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	ListJobRequirementDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	ListJobRequirementJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListJobRequirementJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListJobRequirementJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListJobRequirementJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	ListJobRequirementEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListJobRequirementEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListByIdJobRequirementUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListByIdJobRequirementUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListByIdJobRequirementUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	ListByIdJobRequirementDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	ListByIdJobRequirementDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	ListByIdJobRequirementJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListByIdJobRequirementJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListByIdJobRequirementJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListByIdJobRequirementJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	ListByIdJobRequirementEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListByIdJobRequirementEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	JobRequirementDisplayProgressUpdateJobRequirementWaitingStart = 1 // 待启动
	JobRequirementDisplayProgressUpdateJobRequirementOnGoing      = 2 // 进行中
	JobRequirementDisplayProgressUpdateJobRequirementCanceled     = 3 // 已取消
	JobRequirementDisplayProgressUpdateJobRequirementSuspended    = 4 // 已暂停
	JobRequirementDisplayProgressUpdateJobRequirementCompleted    = 5 // 已完成
	JobRequirementDisplayProgressUpdateJobRequirementExpired      = 6 // 已超期

)

const (
	JobRequirementCategoryUpdateJobRequirementAddition    = 1 // 新增
	JobRequirementCategoryUpdateJobRequirementReplacement = 2 // 替换

)

const (
	JobRequirementPriorityUpdateJobRequirementHigh   = 1 // 高
	JobRequirementPriorityUpdateJobRequirementMedium = 2 // 中
	JobRequirementPriorityUpdateJobRequirementLow    = 3 // 低

)

const (
	JobRequirementRequiredDegreeUpdateJobRequirementPrimaryEducation            = 1  // 小学及以上
	JobRequirementRequiredDegreeUpdateJobRequirementJuniorMiddleSchoolEducation = 2  // 初中及以上
	JobRequirementRequiredDegreeUpdateJobRequirementSecondary                   = 3  // 专职及以上
	JobRequirementRequiredDegreeUpdateJobRequirementSeniorSchoolGraduates       = 4  // 高中及以上
	JobRequirementRequiredDegreeUpdateJobRequirementAssociate                   = 5  // 大专及以上
	JobRequirementRequiredDegreeUpdateJobRequirementBachelor                    = 6  // 本科及以上
	JobRequirementRequiredDegreeUpdateJobRequirementMaster                      = 7  // 硕士及以上
	JobRequirementRequiredDegreeUpdateJobRequirementPhd                         = 8  // 博士及以上
	JobRequirementRequiredDegreeUpdateJobRequirementNoLimit                     = 20 // 不限

)

const (
	JobRequirementProcessTypeUpdateJobRequirementSocial = 1 // 社招
	JobRequirementProcessTypeUpdateJobRequirementCampus = 2 // 校招

)

const (
	UpdateJobRequirementUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	UpdateJobRequirementUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	UpdateJobRequirementUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	UpdateJobRequirementDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	UpdateJobRequirementDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	UpdateJobRequirementJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateJobRequirementJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	UpdateJobRequirementJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateJobRequirementJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	UpdateJobRequirementEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateJobRequirementEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListJobSchemaScenario社招 = 1 // 社招
	ListJobSchemaScenario校招 = 2 // 校招

)

const (
	ListLocationUsagePositionLocation  = "position_location"  // 职位地点
	ListLocationUsageInterviewLocation = "interview_location" // 面试地点
	ListLocationUsageStoreLocation     = "store_location"     // 门店地点
)

const (
	QueryLocationLocationType1 = 1 // 国家类型
	QueryLocationLocationType2 = 2 // 省份/州类型
	QueryLocationLocationType3 = 3 // 市类型
	QueryLocationLocationType4 = 4 // 区类型

)

const (
	NotePrivacyPrivate = 1 // 私密
	NotePrivacyPublic  = 2 // 公开

)

const (
	CreateNoteUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	CreateNoteUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	CreateNoteUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	CreateNoteUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户，即将下线字段，不建议使用
)

const (
	GetNoteUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetNoteUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetNoteUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetNoteUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户,即将下线字段，不建议使用
)

const (
	ListNoteUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListNoteUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListNoteUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListNoteUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户，即将下线字段，不建议使用
)

const (
	PatchNoteUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	PatchNoteUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	PatchNoteUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	PatchNoteUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户,即将下线字段，不建议使用
)

const (
	OfferInfoOfferType正式Offer = 1 // 正式 Offer
	OfferInfoOfferType实习Offer = 2 // 实习 Offer

)

const (
	CreateOfferUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	CreateOfferUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	CreateOfferUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	CreateOfferUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户,即将下线字段,不建议使用
)

const (
	CreateOfferDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	CreateOfferDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	CreateOfferJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateOfferJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	CreateOfferJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateOfferJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	CreateOfferEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	CreateOfferEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	GetOfferUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetOfferUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetOfferUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetOfferUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户,即将下线字段,不建议使用
)

const (
	GetOfferDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetOfferDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetOfferJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetOfferJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	GetOfferJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetOfferJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	GetOfferEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetOfferEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	InternOfferStatusOperationConfirmOnboarding = "confirm_onboarding" // 确认入职
	InternOfferStatusOperationCancelOnboarding  = "cancel_onboarding"  // 放弃入职
	InternOfferStatusOperationOffboard          = "offboard"           // 操作离职
)

const (
	ListOfferUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListOfferUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListOfferUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListOfferUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户，即将下线字段，不建议使用
)

const (
	ListOfferEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListOfferEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	OfferStatusOfferOfferStatusApproving       = 2  // Offer 审批中
	OfferStatusOfferOfferStatusWithdrawn       = 3  // Offer 审批已撤回
	OfferStatusOfferOfferStatusApproved        = 4  // Offer 审批通过
	OfferStatusOfferOfferStatusRejected        = 5  // Offer 审批不通过
	OfferStatusOfferOfferStatusOfferLetterSent = 6  // Offer 已发出
	OfferStatusOfferOfferStatusOfferAccepted   = 7  // Offer 被候选人接受
	OfferStatusOfferOfferStatusOfferRejected   = 8  // Offer 被候选人拒绝
	OfferStatusOfferOfferStatusObsolete        = 9  // Offer 已失效
	OfferStatusOfferOfferStatusNoApproval      = 10 // Offer 已创建

)

const (
	OfferStatusOfferCancelOfferTerminationTypeWeRejected        = 1  // 我们拒绝了候选人
	OfferStatusOfferCancelOfferTerminationTypeCandidateRejected = 22 // 候选人拒绝了我们
	OfferStatusOfferCancelOfferTerminationTypeOther             = 27 // 其他

)

const (
	UpdateOfferUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	UpdateOfferUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	UpdateOfferUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	UpdateOfferUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	UpdateOfferDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	UpdateOfferDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	UpdateOfferJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateOfferJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	UpdateOfferJobFamilyIDTypePeopleAdminJobCategoryId = "people_admin_job_category_id" // 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateOfferJobFamilyIDTypeJobFamilyId              = "job_family_id"                // 「飞书管理后台」适用的序列 ID，通过「获取租户序列列表」接口获取
)

const (
	UpdateOfferEmployeeTypeIDTypePeopleAdminEmployeeTypeId = "people_admin_employee_type_id" // 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	UpdateOfferEmployeeTypeIDTypeEmployeeTypeEnumId        = "employee_type_enum_id"         // 「飞书管理后台」适用的人员类型 ID，通过「查询人员类型」接口获取
)

const (
	ListOfferApprovalTemplateDepartmentIDTypeOpenDepartmentId        = "open_department_id"         // 以 open_department_id 来标识部门
	ListOfferApprovalTemplateDepartmentIDTypeDepartmentId            = "department_id"              // 以 department_id 来标识部门
	ListOfferApprovalTemplateDepartmentIDTypePeopleAdminDepartmentId = "people_admin_department_id" // 以 people_admin_department_id 来标识部门
)

const (
	GetByApplicationReferralUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	GetByApplicationReferralUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	GetByApplicationReferralUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	GetByApplicationReferralUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	SearchReferralUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	SearchReferralUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	SearchReferralUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	CreateReferralAccountUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	CreateReferralAccountUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	CreateReferralAccountUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	DeactivateReferralAccountUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	DeactivateReferralAccountUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	DeactivateReferralAccountUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	EnableReferralAccountUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	EnableReferralAccountUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	EnableReferralAccountUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetAccountAssetsReferralAccountUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	GetAccountAssetsReferralAccountUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	GetAccountAssetsReferralAccountUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetReferralWebsiteJobPostUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	GetReferralWebsiteJobPostUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	GetReferralWebsiteJobPostUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	GetReferralWebsiteJobPostDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetReferralWebsiteJobPostDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetReferralWebsiteJobPostJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetReferralWebsiteJobPostJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListReferralWebsiteJobPostProcessTypeSocialProcess = 1 // 社招
	ListReferralWebsiteJobPostProcessTypeCampusProcess = 2 // 校招

)

const (
	ListReferralWebsiteJobPostUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	ListReferralWebsiteJobPostUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	ListReferralWebsiteJobPostUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	ListReferralWebsiteJobPostDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	ListReferralWebsiteJobPostDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	ListReferralWebsiteJobPostJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListReferralWebsiteJobPostJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListRegistrationSchemaScenarioInterviewRegistration  = 5  // 面试登记表
	ListRegistrationSchemaScenarioOnboardRegistration    = 6  // 入职登记表
	ListRegistrationSchemaScenarioInfoUpdateRegistration = 14 // 人才信息登记表

)

const (
	ListSubjectUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	ListSubjectUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	ListSubjectUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	CombinedCreateTalentCreatorAccountType员工体系 = 1 // 员工体系
	CombinedCreateTalentCreatorAccountType系统   = 3 // 系统

)

const (
	CombinedCreateTalentUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	CombinedCreateTalentUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	CombinedCreateTalentUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	CombinedCreateTalentUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	CombinedUpdateTalentOperatorAccountType员工体系 = 1 // 员工体系
	CombinedUpdateTalentOperatorAccountType系统   = 3 // 系统

)

const (
	CombinedUpdateTalentUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	CombinedUpdateTalentUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	CombinedUpdateTalentUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	CombinedUpdateTalentUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	GetTalentUserIDTypeUserId        = "user_id"         // 以 user_id 来识别用户
	GetTalentUserIDTypeUnionId       = "union_id"        // 以 union_id 来识别用户
	GetTalentUserIDTypeOpenId        = "open_id"         // 以 open_id 来识别用户
	GetTalentUserIDTypePeopleAdminId = "people_admin_id" // 以 people_admin_id 来识别用户
)

const (
	ListTalentSortBy1 = 1 // 按更新日期降序
	ListTalentSortBy2 = 2 // 按相关度降序
	ListTalentSortBy3 = 3 // 按投递时间降序
	ListTalentSortBy4 = 4 // 按入库时间降序

)

const (
	ListTalentUserIDTypeUserId        = "user_id"         // 以 user_id 来识别用户
	ListTalentUserIDTypeUnionId       = "union_id"        // 以 union_id 来识别用户
	ListTalentUserIDTypeOpenId        = "open_id"         // 以 open_id 来识别用户
	ListTalentUserIDTypePeopleAdminId = "people_admin_id" // 以 people_admin_id 来识别用户
)

const (
	ListTalentQueryOptionIgnoreEmptyError = "ignore_empty_error" // 忽略结果为空时的报错
)

const (
	OnboardStatusTalentOperationOnboard   = 1 // 入职
	OnboardStatusTalentOperationOverboard = 2 // 离职

)

const (
	OperateTalentTagOperation1 = 1 // 新增
	OperateTalentTagOperation2 = 2 // 删除

)

const (
	ChangeTalentBlockTalentBlocklistOptionAdd    = 1 // 加入屏蔽名单操作
	ChangeTalentBlockTalentBlocklistOptionRemove = 2 // 从屏蔽名单中移除

)

const (
	ListTalentFolderUserIDTypeUserId        = "user_id"         // 以user_id来识别用户
	ListTalentFolderUserIDTypeUnionId       = "union_id"        // 以union_id来识别用户
	ListTalentFolderUserIDTypeOpenId        = "open_id"         // 以open_id来识别用户
	ListTalentFolderUserIDTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户
)

const (
	SearchTalentOperationLogUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	SearchTalentOperationLogUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	SearchTalentOperationLogUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	BatchChangeTalentPollOptionTypeAdd    = 1 // 加入人才库操作
	BatchChangeTalentPollOptionTypeRemove = 2 // 从指定人才库移除

)

const (
	MoveTalentTalentPoolAddTypeOnlyAdd                = 1 // 仅加入指定人才库
	MoveTalentTalentPoolAddTypeAddAndRemoveFromOrigin = 2 // 加入指定人才库并从所有原库移除

)

const (
	ListTalentTagType1 = 1 // 手动标签
	ListTalentTagType2 = 2 // 自动标签

)

const (
	SearchTestUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	SearchTestUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	SearchTestUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	ListTodoUserIDTypeUserId        = "user_id"         // 以 user_id 来识别用户
	ListTodoUserIDTypeUnionId       = "union_id"        // 以 union_id 来识别用户
	ListTodoUserIDTypeOpenId        = "open_id"         // 以 open_id 来识别用户
	ListTodoUserIDTypePeopleAdminId = "people_admin_id" // 以 people_admin_id 来识别用户
)

const (
	ListTodoTypeEvaluation = "evaluation" // 评估待办
	ListTodoTypeOffer      = "offer"      // Offer 待办
	ListTodoTypeExam       = "exam"       // 笔试待办
	ListTodoTypeInterview  = "interview"  // 面试待办
)

const (
	TripartiteAgreementInfoStateNotStarted            = 1 // 未开始
	TripartiteAgreementInfoStateApplied               = 2 // 已申请
	TripartiteAgreementInfoStateStudentProcessing     = 3 // 学生处理中
	TripartiteAgreementInfoStateCompanyProcessing     = 4 // 公司处理中
	TripartiteAgreementInfoStateSchoolProcessing      = 5 // 学校处理中
	TripartiteAgreementInfoStateEnded                 = 6 // 已终止
	TripartiteAgreementInfoStateCompleted             = 7 // 已完成
	TripartiteAgreementInfoStateTerminationProcessing = 8 // 解约处理中
	TripartiteAgreementInfoStateTerminated            = 9 // 已解约

)

const (
	TripartiteAgreementInfoStateUpdateTripartiteAgreementNotStarted            = 1 // 未开始
	TripartiteAgreementInfoStateUpdateTripartiteAgreementApplied               = 2 // 已申请
	TripartiteAgreementInfoStateUpdateTripartiteAgreementStudentProcessing     = 3 // 学生处理中
	TripartiteAgreementInfoStateUpdateTripartiteAgreementCompanyProcessing     = 4 // 公司处理中
	TripartiteAgreementInfoStateUpdateTripartiteAgreementSchoolProcessing      = 5 // 学校处理中
	TripartiteAgreementInfoStateUpdateTripartiteAgreementEnded                 = 6 // 已终止
	TripartiteAgreementInfoStateUpdateTripartiteAgreementCompleted             = 7 // 已完成
	TripartiteAgreementInfoStateUpdateTripartiteAgreementTerminationProcessing = 8 // 解约处理中
	TripartiteAgreementInfoStateUpdateTripartiteAgreementTerminated            = 9 // 已解约

)

const (
	ListUserRoleUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ListUserRoleUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ListUserRoleUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	CreateByResumeWebsiteDeliveryUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	CreateByResumeWebsiteDeliveryUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	CreateByResumeWebsiteDeliveryUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetWebsiteJobPostUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	GetWebsiteJobPostUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	GetWebsiteJobPostUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	GetWebsiteJobPostDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	GetWebsiteJobPostDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	GetWebsiteJobPostJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	GetWebsiteJobPostJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	ListWebsiteJobPostUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	ListWebsiteJobPostUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	ListWebsiteJobPostUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	ListWebsiteJobPostDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	ListWebsiteJobPostDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	ListWebsiteJobPostJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	ListWebsiteJobPostJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

const (
	SearchWebsiteJobPostUserIDTypeUserId  = "user_id"  // 以 user_id 来识别用户
	SearchWebsiteJobPostUserIDTypeUnionId = "union_id" // 以 union_id 来识别用户
	SearchWebsiteJobPostUserIDTypeOpenId  = "open_id"  // 以 open_id 来识别用户
)

const (
	SearchWebsiteJobPostDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
	SearchWebsiteJobPostDepartmentIDTypeDepartmentId     = "department_id"      // 以 department_id 来标识部门
)

const (
	SearchWebsiteJobPostJobLevelIDTypePeopleAdminJobLevelId = "people_admin_job_level_id" // 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中，建议不继续使用此 ID。
	SearchWebsiteJobPostJobLevelIDTypeJobLevelId            = "job_level_id"              // 「飞书管理后台」适用的职级 ID，通过「获取租户职级列表」接口获取
)

type Ability struct {
	Id *string `json:"id,omitempty"` // 能力项ID

	Name *I18n `json:"name,omitempty"` // 能力项名称

	Description *I18n `json:"description,omitempty"` // 能力项描述
}

type AbilityBuilder struct {
	id     string // 能力项ID
	idFlag bool

	name     *I18n // 能力项名称
	nameFlag bool

	description     *I18n // 能力项描述
	descriptionFlag bool
}

func NewAbilityBuilder() *AbilityBuilder {
	builder := &AbilityBuilder{}
	return builder
}

// 能力项ID
//
// 示例值：7270798542321666366
func (builder *AbilityBuilder) Id(id string) *AbilityBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 能力项名称
//
// 示例值：
func (builder *AbilityBuilder) Name(name *I18n) *AbilityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 能力项描述
//
// 示例值：
func (builder *AbilityBuilder) Description(description *I18n) *AbilityBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *AbilityBuilder) Build() *Ability {
	req := &Ability{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	return req
}

type AbilityAssessment struct {
	Id *string `json:"id,omitempty"` // 能力项评价id

	AbilityId *string `json:"ability_id,omitempty"` // 能力项id

	Content *string `json:"content,omitempty"` // 能力项评价内容
}

type AbilityAssessmentBuilder struct {
	id     string // 能力项评价id
	idFlag bool

	abilityId     string // 能力项id
	abilityIdFlag bool

	content     string // 能力项评价内容
	contentFlag bool
}

func NewAbilityAssessmentBuilder() *AbilityAssessmentBuilder {
	builder := &AbilityAssessmentBuilder{}
	return builder
}

// 能力项评价id
//
// 示例值：6949805467799537964
func (builder *AbilityAssessmentBuilder) Id(id string) *AbilityAssessmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 能力项id
//
// 示例值：7270798542321666366
func (builder *AbilityAssessmentBuilder) AbilityId(abilityId string) *AbilityAssessmentBuilder {
	builder.abilityId = abilityId
	builder.abilityIdFlag = true
	return builder
}

// 能力项评价内容
//
// 示例值：能力项评价
func (builder *AbilityAssessmentBuilder) Content(content string) *AbilityAssessmentBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

func (builder *AbilityAssessmentBuilder) Build() *AbilityAssessment {
	req := &AbilityAssessment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.abilityIdFlag {
		req.AbilityId = &builder.abilityId

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	return req
}

type Acceptance struct {
	OperatorType *int `json:"operator_type,omitempty"` // 操作类型

	Conclusion *int `json:"conclusion,omitempty"` // offer 接受或拒绝的结果

	Memo *string `json:"memo,omitempty"` // 备注，如果是拒绝，则展示拒绝原因

	OperateTime *string `json:"operate_time,omitempty"` // 操作的字符串毫秒时间戳
}

type AcceptanceBuilder struct {
	operatorType     int // 操作类型
	operatorTypeFlag bool

	conclusion     int // offer 接受或拒绝的结果
	conclusionFlag bool

	memo     string // 备注，如果是拒绝，则展示拒绝原因
	memoFlag bool

	operateTime     string // 操作的字符串毫秒时间戳
	operateTimeFlag bool
}

func NewAcceptanceBuilder() *AcceptanceBuilder {
	builder := &AcceptanceBuilder{}
	return builder
}

// 操作类型
//
// 示例值：1
func (builder *AcceptanceBuilder) OperatorType(operatorType int) *AcceptanceBuilder {
	builder.operatorType = operatorType
	builder.operatorTypeFlag = true
	return builder
}

// offer 接受或拒绝的结果
//
// 示例值：1
func (builder *AcceptanceBuilder) Conclusion(conclusion int) *AcceptanceBuilder {
	builder.conclusion = conclusion
	builder.conclusionFlag = true
	return builder
}

// 备注，如果是拒绝，则展示拒绝原因
//
// 示例值：Abort
func (builder *AcceptanceBuilder) Memo(memo string) *AcceptanceBuilder {
	builder.memo = memo
	builder.memoFlag = true
	return builder
}

// 操作的字符串毫秒时间戳
//
// 示例值：1718959426734
func (builder *AcceptanceBuilder) OperateTime(operateTime string) *AcceptanceBuilder {
	builder.operateTime = operateTime
	builder.operateTimeFlag = true
	return builder
}

func (builder *AcceptanceBuilder) Build() *Acceptance {
	req := &Acceptance{}
	if builder.operatorTypeFlag {
		req.OperatorType = &builder.operatorType

	}
	if builder.conclusionFlag {
		req.Conclusion = &builder.conclusion

	}
	if builder.memoFlag {
		req.Memo = &builder.memo

	}
	if builder.operateTimeFlag {
		req.OperateTime = &builder.operateTime

	}
	return req
}

type Account struct {
	AccountId *string `json:"account_id,omitempty"` // 账户ID

	Assets *Assets `json:"assets,omitempty"` // 账户资产

	Status *int `json:"status,omitempty"` // 账号状态

	Referrer *AccountReferrer `json:"referrer,omitempty"` // 账号绑定的内推人信息
}

type AccountBuilder struct {
	accountId     string // 账户ID
	accountIdFlag bool

	assets     *Assets // 账户资产
	assetsFlag bool

	status     int // 账号状态
	statusFlag bool

	referrer     *AccountReferrer // 账号绑定的内推人信息
	referrerFlag bool
}

func NewAccountBuilder() *AccountBuilder {
	builder := &AccountBuilder{}
	return builder
}

// 账户ID
//
// 示例值：6942778198054125570
func (builder *AccountBuilder) AccountId(accountId string) *AccountBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 账户资产
//
// 示例值：
func (builder *AccountBuilder) Assets(assets *Assets) *AccountBuilder {
	builder.assets = assets
	builder.assetsFlag = true
	return builder
}

// 账号状态
//
// 示例值：1
func (builder *AccountBuilder) Status(status int) *AccountBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 账号绑定的内推人信息
//
// 示例值：
func (builder *AccountBuilder) Referrer(referrer *AccountReferrer) *AccountBuilder {
	builder.referrer = referrer
	builder.referrerFlag = true
	return builder
}

func (builder *AccountBuilder) Build() *Account {
	req := &Account{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.assetsFlag {
		req.Assets = builder.assets
	}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	if builder.referrerFlag {
		req.Referrer = builder.referrer
	}
	return req
}

type AccountReferrer struct {
	Id *string `json:"id,omitempty"` // 内推人 ID

	Name *I18n `json:"name,omitempty"` // 内推人名称

	Email *string `json:"email,omitempty"` // 用户邮箱

	Mobile *string `json:"mobile,omitempty"` // 用户手机
}

type AccountReferrerBuilder struct {
	id     string // 内推人 ID
	idFlag bool

	name     *I18n // 内推人名称
	nameFlag bool

	email     string // 用户邮箱
	emailFlag bool

	mobile     string // 用户手机
	mobileFlag bool
}

func NewAccountReferrerBuilder() *AccountReferrerBuilder {
	builder := &AccountReferrerBuilder{}
	return builder
}

// 内推人 ID
//
// 示例值：7413952589321914668
func (builder *AccountReferrerBuilder) Id(id string) *AccountReferrerBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 内推人名称
//
// 示例值：
func (builder *AccountReferrerBuilder) Name(name *I18n) *AccountReferrerBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 用户邮箱
//
// 示例值：27188272xxxx1.com
func (builder *AccountReferrerBuilder) Email(email string) *AccountReferrerBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 用户手机
//
// 示例值：1879087xxx8
func (builder *AccountReferrerBuilder) Mobile(mobile string) *AccountReferrerBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

func (builder *AccountReferrerBuilder) Build() *AccountReferrer {
	req := &AccountReferrer{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	return req
}

type Agency struct {
	Id *string `json:"id,omitempty"` // 猎头供应商ID

	Name *string `json:"name,omitempty"` // 猎头供应商名称

	ContactorId *string `json:"contactor_id,omitempty"` // 供应商联系人ID

	ContactorName *I18n `json:"contactor_name,omitempty"` // 供应商联系人名称
}

type AgencyBuilder struct {
	id     string // 猎头供应商ID
	idFlag bool

	name     string // 猎头供应商名称
	nameFlag bool

	contactorId     string // 供应商联系人ID
	contactorIdFlag bool

	contactorName     *I18n // 供应商联系人名称
	contactorNameFlag bool
}

func NewAgencyBuilder() *AgencyBuilder {
	builder := &AgencyBuilder{}
	return builder
}

// 猎头供应商ID
//
// 示例值：6898173495386147079
func (builder *AgencyBuilder) Id(id string) *AgencyBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 猎头供应商名称
//
// 示例值：超越猎头公司
func (builder *AgencyBuilder) Name(name string) *AgencyBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 供应商联系人ID
//
// 示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *AgencyBuilder) ContactorId(contactorId string) *AgencyBuilder {
	builder.contactorId = contactorId
	builder.contactorIdFlag = true
	return builder
}

// 供应商联系人名称
//
// 示例值：
func (builder *AgencyBuilder) ContactorName(contactorName *I18n) *AgencyBuilder {
	builder.contactorName = contactorName
	builder.contactorNameFlag = true
	return builder
}

func (builder *AgencyBuilder) Build() *Agency {
	req := &Agency{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.contactorIdFlag {
		req.ContactorId = &builder.contactorId

	}
	if builder.contactorNameFlag {
		req.ContactorName = builder.contactorName
	}
	return req
}

type AgencyAccount struct {
	Id *string `json:"id,omitempty"` // 猎头 ID

	Reason *string `json:"reason,omitempty"` // 禁用原因

	CreateTime *string `json:"create_time,omitempty"` // 添加时间，毫秒时间戳

	Status *int `json:"status,omitempty"` // 猎头状态

	UserInfo *AgencyAccountUser `json:"user_info,omitempty"` // 用户信息

	Role *int `json:"role,omitempty"` // 角色
}

type AgencyAccountBuilder struct {
	id     string // 猎头 ID
	idFlag bool

	reason     string // 禁用原因
	reasonFlag bool

	createTime     string // 添加时间，毫秒时间戳
	createTimeFlag bool

	status     int // 猎头状态
	statusFlag bool

	userInfo     *AgencyAccountUser // 用户信息
	userInfoFlag bool

	role     int // 角色
	roleFlag bool
}

func NewAgencyAccountBuilder() *AgencyAccountBuilder {
	builder := &AgencyAccountBuilder{}
	return builder
}

// 猎头 ID
//
// 示例值：6995312261554538796
func (builder *AgencyAccountBuilder) Id(id string) *AgencyAccountBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 禁用原因
//
// 示例值：这个猎头很不负责
func (builder *AgencyAccountBuilder) Reason(reason string) *AgencyAccountBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

// 添加时间，毫秒时间戳
//
// 示例值：1639992265035
func (builder *AgencyAccountBuilder) CreateTime(createTime string) *AgencyAccountBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 猎头状态
//
// 示例值：
func (builder *AgencyAccountBuilder) Status(status int) *AgencyAccountBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 用户信息
//
// 示例值：
func (builder *AgencyAccountBuilder) UserInfo(userInfo *AgencyAccountUser) *AgencyAccountBuilder {
	builder.userInfo = userInfo
	builder.userInfoFlag = true
	return builder
}

// 角色
//
// 示例值：
func (builder *AgencyAccountBuilder) Role(role int) *AgencyAccountBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

func (builder *AgencyAccountBuilder) Build() *AgencyAccount {
	req := &AgencyAccount{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.reasonFlag {
		req.Reason = &builder.reason

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	if builder.userInfoFlag {
		req.UserInfo = builder.userInfo
	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	return req
}

type AgencyAccountUser struct {
	UserId *string `json:"user_id,omitempty"` // 用户ID

	Name *I18n `json:"name,omitempty"` // 用户名称

	Email *string `json:"email,omitempty"` // 用户邮箱

	Mobile *string `json:"mobile,omitempty"` // 用户手机
}

type AgencyAccountUserBuilder struct {
	userId     string // 用户ID
	userIdFlag bool

	name     *I18n // 用户名称
	nameFlag bool

	email     string // 用户邮箱
	emailFlag bool

	mobile     string // 用户手机
	mobileFlag bool
}

func NewAgencyAccountUserBuilder() *AgencyAccountUserBuilder {
	builder := &AgencyAccountUserBuilder{}
	return builder
}

// 用户ID
//
// 示例值：7398623155442682156
func (builder *AgencyAccountUserBuilder) UserId(userId string) *AgencyAccountUserBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 用户名称
//
// 示例值：
func (builder *AgencyAccountUserBuilder) Name(name *I18n) *AgencyAccountUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 用户邮箱
//
// 示例值：27188272xxxx1.com
func (builder *AgencyAccountUserBuilder) Email(email string) *AgencyAccountUserBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 用户手机
//
// 示例值：1879087xxx8
func (builder *AgencyAccountUserBuilder) Mobile(mobile string) *AgencyAccountUserBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

func (builder *AgencyAccountUserBuilder) Build() *AgencyAccountUser {
	req := &AgencyAccountUser{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	return req
}

type AgencyBasicInfo struct {
	HunterUserName *I18n `json:"hunter_user_name,omitempty"` // 猎头用户名

	HunterCompanyName *string `json:"hunter_company_name,omitempty"` // 猎头公司名
}

type AgencyBasicInfoBuilder struct {
	hunterUserName     *I18n // 猎头用户名
	hunterUserNameFlag bool

	hunterCompanyName     string // 猎头公司名
	hunterCompanyNameFlag bool
}

func NewAgencyBasicInfoBuilder() *AgencyBasicInfoBuilder {
	builder := &AgencyBasicInfoBuilder{}
	return builder
}

// 猎头用户名
//
// 示例值：
func (builder *AgencyBasicInfoBuilder) HunterUserName(hunterUserName *I18n) *AgencyBasicInfoBuilder {
	builder.hunterUserName = hunterUserName
	builder.hunterUserNameFlag = true
	return builder
}

// 猎头公司名
//
// 示例值：明天会更好猎头公司
func (builder *AgencyBasicInfoBuilder) HunterCompanyName(hunterCompanyName string) *AgencyBasicInfoBuilder {
	builder.hunterCompanyName = hunterCompanyName
	builder.hunterCompanyNameFlag = true
	return builder
}

func (builder *AgencyBasicInfoBuilder) Build() *AgencyBasicInfo {
	req := &AgencyBasicInfo{}
	if builder.hunterUserNameFlag {
		req.HunterUserName = builder.hunterUserName
	}
	if builder.hunterCompanyNameFlag {
		req.HunterCompanyName = &builder.hunterCompanyName

	}
	return req
}

type AgencyInfo struct {
	BasicInfo *AgencyBasicInfo `json:"basic_info,omitempty"` // 猎头基本信息

	CommentInfo []*ReportCustomData `json:"comment_info,omitempty"` // 猎头评价信息

	SalaryInfo []*ReportCustomData `json:"salary_info,omitempty"` // 薪酬信息
}

type AgencyInfoBuilder struct {
	basicInfo     *AgencyBasicInfo // 猎头基本信息
	basicInfoFlag bool

	commentInfo     []*ReportCustomData // 猎头评价信息
	commentInfoFlag bool

	salaryInfo     []*ReportCustomData // 薪酬信息
	salaryInfoFlag bool
}

func NewAgencyInfoBuilder() *AgencyInfoBuilder {
	builder := &AgencyInfoBuilder{}
	return builder
}

// 猎头基本信息
//
// 示例值：
func (builder *AgencyInfoBuilder) BasicInfo(basicInfo *AgencyBasicInfo) *AgencyInfoBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 猎头评价信息
//
// 示例值：
func (builder *AgencyInfoBuilder) CommentInfo(commentInfo []*ReportCustomData) *AgencyInfoBuilder {
	builder.commentInfo = commentInfo
	builder.commentInfoFlag = true
	return builder
}

// 薪酬信息
//
// 示例值：
func (builder *AgencyInfoBuilder) SalaryInfo(salaryInfo []*ReportCustomData) *AgencyInfoBuilder {
	builder.salaryInfo = salaryInfo
	builder.salaryInfoFlag = true
	return builder
}

func (builder *AgencyInfoBuilder) Build() *AgencyInfo {
	req := &AgencyInfo{}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.commentInfoFlag {
		req.CommentInfo = builder.commentInfo
	}
	if builder.salaryInfoFlag {
		req.SalaryInfo = builder.salaryInfo
	}
	return req
}

type AgencyProtection struct {
	ProtectionType *int `json:"protection_type,omitempty"` // 保护期类型

	ApplicationId *string `json:"application_id,omitempty"` // 如保护期类型为职位保护，返回职位保护所在的投递id

	StartTime *string `json:"start_time,omitempty"` // 保护期开始时间

	ExpireTime *string `json:"expire_time,omitempty"` // 保护期过期时间

	AgencySupplierId *string `json:"agency_supplier_id,omitempty"` // 推荐的猎头供应商 ID

	AgencySupplierName *I18n `json:"agency_supplier_name,omitempty"` // 推荐的猎头供应商名称

	AgencySupplierUserId *string `json:"agency_supplier_user_id,omitempty"` // 推荐的猎头顾问ID，目前仅作为唯一标识，不可查询具体的人员信息

	AgencySupplierUserName *I18n `json:"agency_supplier_user_name,omitempty"` // 推荐的猎头顾问名称
}

type AgencyProtectionBuilder struct {
	protectionType     int // 保护期类型
	protectionTypeFlag bool

	applicationId     string // 如保护期类型为职位保护，返回职位保护所在的投递id
	applicationIdFlag bool

	startTime     string // 保护期开始时间
	startTimeFlag bool

	expireTime     string // 保护期过期时间
	expireTimeFlag bool

	agencySupplierId     string // 推荐的猎头供应商 ID
	agencySupplierIdFlag bool

	agencySupplierName     *I18n // 推荐的猎头供应商名称
	agencySupplierNameFlag bool

	agencySupplierUserId     string // 推荐的猎头顾问ID，目前仅作为唯一标识，不可查询具体的人员信息
	agencySupplierUserIdFlag bool

	agencySupplierUserName     *I18n // 推荐的猎头顾问名称
	agencySupplierUserNameFlag bool
}

func NewAgencyProtectionBuilder() *AgencyProtectionBuilder {
	builder := &AgencyProtectionBuilder{}
	return builder
}

// 保护期类型
//
// 示例值：1
func (builder *AgencyProtectionBuilder) ProtectionType(protectionType int) *AgencyProtectionBuilder {
	builder.protectionType = protectionType
	builder.protectionTypeFlag = true
	return builder
}

// 如保护期类型为职位保护，返回职位保护所在的投递id
//
// 示例值：6930815272790114323
func (builder *AgencyProtectionBuilder) ApplicationId(applicationId string) *AgencyProtectionBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 保护期开始时间
//
// 示例值：1700023694629
func (builder *AgencyProtectionBuilder) StartTime(startTime string) *AgencyProtectionBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 保护期过期时间
//
// 示例值：1700023694630
func (builder *AgencyProtectionBuilder) ExpireTime(expireTime string) *AgencyProtectionBuilder {
	builder.expireTime = expireTime
	builder.expireTimeFlag = true
	return builder
}

// 推荐的猎头供应商 ID
//
// 示例值：6930815272790114324
func (builder *AgencyProtectionBuilder) AgencySupplierId(agencySupplierId string) *AgencyProtectionBuilder {
	builder.agencySupplierId = agencySupplierId
	builder.agencySupplierIdFlag = true
	return builder
}

// 推荐的猎头供应商名称
//
// 示例值：
func (builder *AgencyProtectionBuilder) AgencySupplierName(agencySupplierName *I18n) *AgencyProtectionBuilder {
	builder.agencySupplierName = agencySupplierName
	builder.agencySupplierNameFlag = true
	return builder
}

// 推荐的猎头顾问ID，目前仅作为唯一标识，不可查询具体的人员信息
//
// 示例值：6930815272790114324
func (builder *AgencyProtectionBuilder) AgencySupplierUserId(agencySupplierUserId string) *AgencyProtectionBuilder {
	builder.agencySupplierUserId = agencySupplierUserId
	builder.agencySupplierUserIdFlag = true
	return builder
}

// 推荐的猎头顾问名称
//
// 示例值：
func (builder *AgencyProtectionBuilder) AgencySupplierUserName(agencySupplierUserName *I18n) *AgencyProtectionBuilder {
	builder.agencySupplierUserName = agencySupplierUserName
	builder.agencySupplierUserNameFlag = true
	return builder
}

func (builder *AgencyProtectionBuilder) Build() *AgencyProtection {
	req := &AgencyProtection{}
	if builder.protectionTypeFlag {
		req.ProtectionType = &builder.protectionType

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.expireTimeFlag {
		req.ExpireTime = &builder.expireTime

	}
	if builder.agencySupplierIdFlag {
		req.AgencySupplierId = &builder.agencySupplierId

	}
	if builder.agencySupplierNameFlag {
		req.AgencySupplierName = builder.agencySupplierName
	}
	if builder.agencySupplierUserIdFlag {
		req.AgencySupplierUserId = &builder.agencySupplierUserId

	}
	if builder.agencySupplierUserNameFlag {
		req.AgencySupplierUserName = builder.agencySupplierUserName
	}
	return req
}

type AgencySupplier struct {
	Id *string `json:"id,omitempty"` // 猎头供应商 ID

	Name *string `json:"name,omitempty"` // 猎头供应商名称

	LabelList []*AgencySupplierLabel `json:"label_list,omitempty"` // 标签列表

	AdminList []*AgencySupplierAdmin `json:"admin_list,omitempty"` // 管理员列表

	AgencyProtectTime *AgencySupplierProtectTime `json:"agency_protect_time,omitempty"` // 猎头简历保护期

	CooperationCreateTime *string `json:"cooperation_create_time,omitempty"` // 合作创建时间，毫秒时间戳

	CooperationStartTime *string `json:"cooperation_start_time,omitempty"` // 合作开始时间，毫秒时间戳

	CooperationEndTime *string `json:"cooperation_end_time,omitempty"` // 合作终止时间，毫秒时间戳

	CooperationStatus *int `json:"cooperation_status,omitempty"` // 合作状态，毫秒时间戳

	InviteEmail *string `json:"invite_email,omitempty"` // 供应商邮箱

	SupplierArea *int `json:"supplier_area,omitempty"` // 猎头区域

	TalentProtectTime *AgencySupplierTalentProtectTime `json:"talent_protect_time,omitempty"` // 企业自有简历保护期
}

type AgencySupplierBuilder struct {
	id     string // 猎头供应商 ID
	idFlag bool

	name     string // 猎头供应商名称
	nameFlag bool

	labelList     []*AgencySupplierLabel // 标签列表
	labelListFlag bool

	adminList     []*AgencySupplierAdmin // 管理员列表
	adminListFlag bool

	agencyProtectTime     *AgencySupplierProtectTime // 猎头简历保护期
	agencyProtectTimeFlag bool

	cooperationCreateTime     string // 合作创建时间，毫秒时间戳
	cooperationCreateTimeFlag bool

	cooperationStartTime     string // 合作开始时间，毫秒时间戳
	cooperationStartTimeFlag bool

	cooperationEndTime     string // 合作终止时间，毫秒时间戳
	cooperationEndTimeFlag bool

	cooperationStatus     int // 合作状态，毫秒时间戳
	cooperationStatusFlag bool

	inviteEmail     string // 供应商邮箱
	inviteEmailFlag bool

	supplierArea     int // 猎头区域
	supplierAreaFlag bool

	talentProtectTime     *AgencySupplierTalentProtectTime // 企业自有简历保护期
	talentProtectTimeFlag bool
}

func NewAgencySupplierBuilder() *AgencySupplierBuilder {
	builder := &AgencySupplierBuilder{}
	return builder
}

// 猎头供应商 ID
//
// 示例值：7398493486516799788
func (builder *AgencySupplierBuilder) Id(id string) *AgencySupplierBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 猎头供应商名称
//
// 示例值：北极无敌猎头
func (builder *AgencySupplierBuilder) Name(name string) *AgencySupplierBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 标签列表
//
// 示例值：
func (builder *AgencySupplierBuilder) LabelList(labelList []*AgencySupplierLabel) *AgencySupplierBuilder {
	builder.labelList = labelList
	builder.labelListFlag = true
	return builder
}

// 管理员列表
//
// 示例值：
func (builder *AgencySupplierBuilder) AdminList(adminList []*AgencySupplierAdmin) *AgencySupplierBuilder {
	builder.adminList = adminList
	builder.adminListFlag = true
	return builder
}

// 猎头简历保护期
//
// 示例值：
func (builder *AgencySupplierBuilder) AgencyProtectTime(agencyProtectTime *AgencySupplierProtectTime) *AgencySupplierBuilder {
	builder.agencyProtectTime = agencyProtectTime
	builder.agencyProtectTimeFlag = true
	return builder
}

// 合作创建时间，毫秒时间戳
//
// 示例值：1639992265035
func (builder *AgencySupplierBuilder) CooperationCreateTime(cooperationCreateTime string) *AgencySupplierBuilder {
	builder.cooperationCreateTime = cooperationCreateTime
	builder.cooperationCreateTimeFlag = true
	return builder
}

// 合作开始时间，毫秒时间戳
//
// 示例值：1639992265035
func (builder *AgencySupplierBuilder) CooperationStartTime(cooperationStartTime string) *AgencySupplierBuilder {
	builder.cooperationStartTime = cooperationStartTime
	builder.cooperationStartTimeFlag = true
	return builder
}

// 合作终止时间，毫秒时间戳
//
// 示例值：1639992265035
func (builder *AgencySupplierBuilder) CooperationEndTime(cooperationEndTime string) *AgencySupplierBuilder {
	builder.cooperationEndTime = cooperationEndTime
	builder.cooperationEndTimeFlag = true
	return builder
}

// 合作状态，毫秒时间戳
//
// 示例值：1
func (builder *AgencySupplierBuilder) CooperationStatus(cooperationStatus int) *AgencySupplierBuilder {
	builder.cooperationStatus = cooperationStatus
	builder.cooperationStatusFlag = true
	return builder
}

// 供应商邮箱
//
// 示例值：28933718393.qq.com
func (builder *AgencySupplierBuilder) InviteEmail(inviteEmail string) *AgencySupplierBuilder {
	builder.inviteEmail = inviteEmail
	builder.inviteEmailFlag = true
	return builder
}

// 猎头区域
//
// 示例值：1
func (builder *AgencySupplierBuilder) SupplierArea(supplierArea int) *AgencySupplierBuilder {
	builder.supplierArea = supplierArea
	builder.supplierAreaFlag = true
	return builder
}

// 企业自有简历保护期
//
// 示例值：
func (builder *AgencySupplierBuilder) TalentProtectTime(talentProtectTime *AgencySupplierTalentProtectTime) *AgencySupplierBuilder {
	builder.talentProtectTime = talentProtectTime
	builder.talentProtectTimeFlag = true
	return builder
}

func (builder *AgencySupplierBuilder) Build() *AgencySupplier {
	req := &AgencySupplier{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.labelListFlag {
		req.LabelList = builder.labelList
	}
	if builder.adminListFlag {
		req.AdminList = builder.adminList
	}
	if builder.agencyProtectTimeFlag {
		req.AgencyProtectTime = builder.agencyProtectTime
	}
	if builder.cooperationCreateTimeFlag {
		req.CooperationCreateTime = &builder.cooperationCreateTime

	}
	if builder.cooperationStartTimeFlag {
		req.CooperationStartTime = &builder.cooperationStartTime

	}
	if builder.cooperationEndTimeFlag {
		req.CooperationEndTime = &builder.cooperationEndTime

	}
	if builder.cooperationStatusFlag {
		req.CooperationStatus = &builder.cooperationStatus

	}
	if builder.inviteEmailFlag {
		req.InviteEmail = &builder.inviteEmail

	}
	if builder.supplierAreaFlag {
		req.SupplierArea = &builder.supplierArea

	}
	if builder.talentProtectTimeFlag {
		req.TalentProtectTime = builder.talentProtectTime
	}
	return req
}

type AgencySupplierAdmin struct {
	UserId *string `json:"user_id,omitempty"` // 管理员 ID

	Name *I18n `json:"name,omitempty"` // 管理员名称

	Email *string `json:"email,omitempty"` // 管理员邮箱
}

type AgencySupplierAdminBuilder struct {
	userId     string // 管理员 ID
	userIdFlag bool

	name     *I18n // 管理员名称
	nameFlag bool

	email     string // 管理员邮箱
	emailFlag bool
}

func NewAgencySupplierAdminBuilder() *AgencySupplierAdminBuilder {
	builder := &AgencySupplierAdminBuilder{}
	return builder
}

// 管理员 ID
//
// 示例值：7398493486516799788
func (builder *AgencySupplierAdminBuilder) UserId(userId string) *AgencySupplierAdminBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 管理员名称
//
// 示例值：
func (builder *AgencySupplierAdminBuilder) Name(name *I18n) *AgencySupplierAdminBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 管理员邮箱
//
// 示例值：283xxxx2171813@qq.com
func (builder *AgencySupplierAdminBuilder) Email(email string) *AgencySupplierAdminBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *AgencySupplierAdminBuilder) Build() *AgencySupplierAdmin {
	req := &AgencySupplierAdmin{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	return req
}

type AgencySupplierLabel struct {
	Id *string `json:"id,omitempty"` // 标签 ID

	Name *I18n `json:"name,omitempty"` // 标签名称
}

type AgencySupplierLabelBuilder struct {
	id     string // 标签 ID
	idFlag bool

	name     *I18n // 标签名称
	nameFlag bool
}

func NewAgencySupplierLabelBuilder() *AgencySupplierLabelBuilder {
	builder := &AgencySupplierLabelBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：6887469228283299336
func (builder *AgencySupplierLabelBuilder) Id(id string) *AgencySupplierLabelBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标签名称
//
// 示例值：
func (builder *AgencySupplierLabelBuilder) Name(name *I18n) *AgencySupplierLabelBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *AgencySupplierLabelBuilder) Build() *AgencySupplierLabel {
	req := &AgencySupplierLabel{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type AgencySupplierProtectTime struct {
	Day *int64 `json:"day,omitempty"` // 保护时长，单位（天）

	UseDefault *bool `json:"use_default,omitempty"` // 是否使用统一设置
}

type AgencySupplierProtectTimeBuilder struct {
	day     int64 // 保护时长，单位（天）
	dayFlag bool

	useDefault     bool // 是否使用统一设置
	useDefaultFlag bool
}

func NewAgencySupplierProtectTimeBuilder() *AgencySupplierProtectTimeBuilder {
	builder := &AgencySupplierProtectTimeBuilder{}
	return builder
}

// 保护时长，单位（天）
//
// 示例值：180
func (builder *AgencySupplierProtectTimeBuilder) Day(day int64) *AgencySupplierProtectTimeBuilder {
	builder.day = day
	builder.dayFlag = true
	return builder
}

// 是否使用统一设置
//
// 示例值：true
func (builder *AgencySupplierProtectTimeBuilder) UseDefault(useDefault bool) *AgencySupplierProtectTimeBuilder {
	builder.useDefault = useDefault
	builder.useDefaultFlag = true
	return builder
}

func (builder *AgencySupplierProtectTimeBuilder) Build() *AgencySupplierProtectTime {
	req := &AgencySupplierProtectTime{}
	if builder.dayFlag {
		req.Day = &builder.day

	}
	if builder.useDefaultFlag {
		req.UseDefault = &builder.useDefault

	}
	return req
}

type AgencySupplierTalentProtectTime struct {
	Day *int64 `json:"day,omitempty"` // 保护时长，单位（天）

	UseDefault *bool `json:"use_default,omitempty"` // 是否使用统一设置

	Forever *bool `json:"forever,omitempty"` // 是否永久保护
}

type AgencySupplierTalentProtectTimeBuilder struct {
	day     int64 // 保护时长，单位（天）
	dayFlag bool

	useDefault     bool // 是否使用统一设置
	useDefaultFlag bool

	forever     bool // 是否永久保护
	foreverFlag bool
}

func NewAgencySupplierTalentProtectTimeBuilder() *AgencySupplierTalentProtectTimeBuilder {
	builder := &AgencySupplierTalentProtectTimeBuilder{}
	return builder
}

// 保护时长，单位（天）
//
// 示例值：180
func (builder *AgencySupplierTalentProtectTimeBuilder) Day(day int64) *AgencySupplierTalentProtectTimeBuilder {
	builder.day = day
	builder.dayFlag = true
	return builder
}

// 是否使用统一设置
//
// 示例值：true
func (builder *AgencySupplierTalentProtectTimeBuilder) UseDefault(useDefault bool) *AgencySupplierTalentProtectTimeBuilder {
	builder.useDefault = useDefault
	builder.useDefaultFlag = true
	return builder
}

// 是否永久保护
//
// 示例值：true
func (builder *AgencySupplierTalentProtectTimeBuilder) Forever(forever bool) *AgencySupplierTalentProtectTimeBuilder {
	builder.forever = forever
	builder.foreverFlag = true
	return builder
}

func (builder *AgencySupplierTalentProtectTimeBuilder) Build() *AgencySupplierTalentProtectTime {
	req := &AgencySupplierTalentProtectTime{}
	if builder.dayFlag {
		req.Day = &builder.day

	}
	if builder.useDefaultFlag {
		req.UseDefault = &builder.useDefault

	}
	if builder.foreverFlag {
		req.Forever = &builder.forever

	}
	return req
}

type AmbassadorAccountInfo struct {
	Id *string `json:"id,omitempty"` // 账户 ID

	Name *string `json:"name,omitempty"` // 账户名称

	MobileCode *string `json:"mobile_code,omitempty"` // 账户手机区号

	MobileNumber *string `json:"mobile_number,omitempty"` // 账号手机号码

	EmailAddress *string `json:"email_address,omitempty"` // 账号邮箱地址

	Remark *string `json:"remark,omitempty"` // 账号备注

	RelatedSchool *string `json:"related_school,omitempty"` // 账号关联学校
}

type AmbassadorAccountInfoBuilder struct {
	id     string // 账户 ID
	idFlag bool

	name     string // 账户名称
	nameFlag bool

	mobileCode     string // 账户手机区号
	mobileCodeFlag bool

	mobileNumber     string // 账号手机号码
	mobileNumberFlag bool

	emailAddress     string // 账号邮箱地址
	emailAddressFlag bool

	remark     string // 账号备注
	remarkFlag bool

	relatedSchool     string // 账号关联学校
	relatedSchoolFlag bool
}

func NewAmbassadorAccountInfoBuilder() *AmbassadorAccountInfoBuilder {
	builder := &AmbassadorAccountInfoBuilder{}
	return builder
}

// 账户 ID
//
// 示例值：6956490137551522092
func (builder *AmbassadorAccountInfoBuilder) Id(id string) *AmbassadorAccountInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 账户名称
//
// 示例值：明日科技官网
func (builder *AmbassadorAccountInfoBuilder) Name(name string) *AmbassadorAccountInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 账户手机区号
//
// 示例值：+86
func (builder *AmbassadorAccountInfoBuilder) MobileCode(mobileCode string) *AmbassadorAccountInfoBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 账号手机号码
//
// 示例值：13907281732
func (builder *AmbassadorAccountInfoBuilder) MobileNumber(mobileNumber string) *AmbassadorAccountInfoBuilder {
	builder.mobileNumber = mobileNumber
	builder.mobileNumberFlag = true
	return builder
}

// 账号邮箱地址
//
// 示例值：xxx@bytedance.com
func (builder *AmbassadorAccountInfoBuilder) EmailAddress(emailAddress string) *AmbassadorAccountInfoBuilder {
	builder.emailAddress = emailAddress
	builder.emailAddressFlag = true
	return builder
}

// 账号备注
//
// 示例值：该账号十分重要，变更请谨慎。
func (builder *AmbassadorAccountInfoBuilder) Remark(remark string) *AmbassadorAccountInfoBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 账号关联学校
//
// 示例值：四川大学
func (builder *AmbassadorAccountInfoBuilder) RelatedSchool(relatedSchool string) *AmbassadorAccountInfoBuilder {
	builder.relatedSchool = relatedSchool
	builder.relatedSchoolFlag = true
	return builder
}

func (builder *AmbassadorAccountInfoBuilder) Build() *AmbassadorAccountInfo {
	req := &AmbassadorAccountInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.mobileNumberFlag {
		req.MobileNumber = &builder.mobileNumber

	}
	if builder.emailAddressFlag {
		req.EmailAddress = &builder.emailAddress

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.relatedSchoolFlag {
		req.RelatedSchool = &builder.relatedSchool

	}
	return req
}

type AppliOfferBasicCustObj struct {
	Id *string `json:"id,omitempty"` // id

	Name *OfferSchemaName `json:"name,omitempty"` // 名字

	Type *string `json:"type,omitempty"` // 自定义字段类型

	Value *string `json:"value,omitempty"` // 自定义字段的值

	OptionValueList []*AppliOfferBasicCustObjOpV `json:"option_value_list,omitempty"` // 单选/多选自定义字段的值
}

type AppliOfferBasicCustObjBuilder struct {
	id     string // id
	idFlag bool

	name     *OfferSchemaName // 名字
	nameFlag bool

	type_    string // 自定义字段类型
	typeFlag bool

	value     string // 自定义字段的值
	valueFlag bool

	optionValueList     []*AppliOfferBasicCustObjOpV // 单选/多选自定义字段的值
	optionValueListFlag bool
}

func NewAppliOfferBasicCustObjBuilder() *AppliOfferBasicCustObjBuilder {
	builder := &AppliOfferBasicCustObjBuilder{}
	return builder
}

// id
//
// 示例值：
func (builder *AppliOfferBasicCustObjBuilder) Id(id string) *AppliOfferBasicCustObjBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *AppliOfferBasicCustObjBuilder) Name(name *OfferSchemaName) *AppliOfferBasicCustObjBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 自定义字段类型
//
// 示例值：
func (builder *AppliOfferBasicCustObjBuilder) Type(type_ string) *AppliOfferBasicCustObjBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 自定义字段的值
//
// 示例值：
func (builder *AppliOfferBasicCustObjBuilder) Value(value string) *AppliOfferBasicCustObjBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 单选/多选自定义字段的值
//
// 示例值：
func (builder *AppliOfferBasicCustObjBuilder) OptionValueList(optionValueList []*AppliOfferBasicCustObjOpV) *AppliOfferBasicCustObjBuilder {
	builder.optionValueList = optionValueList
	builder.optionValueListFlag = true
	return builder
}

func (builder *AppliOfferBasicCustObjBuilder) Build() *AppliOfferBasicCustObj {
	req := &AppliOfferBasicCustObj{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.optionValueListFlag {
		req.OptionValueList = builder.optionValueList
	}
	return req
}

type AppliOfferBasicCustObjOpV struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文名

	EnUs *string `json:"en_us,omitempty"` // 英文名
}

type AppliOfferBasicCustObjOpVBuilder struct {
	zhCn     string // 中文名
	zhCnFlag bool

	enUs     string // 英文名
	enUsFlag bool
}

func NewAppliOfferBasicCustObjOpVBuilder() *AppliOfferBasicCustObjOpVBuilder {
	builder := &AppliOfferBasicCustObjOpVBuilder{}
	return builder
}

// 中文名
//
// 示例值：
func (builder *AppliOfferBasicCustObjOpVBuilder) ZhCn(zhCn string) *AppliOfferBasicCustObjOpVBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *AppliOfferBasicCustObjOpVBuilder) EnUs(enUs string) *AppliOfferBasicCustObjOpVBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

func (builder *AppliOfferBasicCustObjOpVBuilder) Build() *AppliOfferBasicCustObjOpV {
	req := &AppliOfferBasicCustObjOpV{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	return req
}

type AppliOfferBasicInfoUser struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	Avatar *string `json:"avatar,omitempty"` // 头像

	Department *Department `json:"department,omitempty"` // 部门

	Timezone *string `json:"timezone,omitempty"` // 时区

	Phone *string `json:"phone,omitempty"` // 手机

	Email *string `json:"email,omitempty"` // 邮箱

	InAppScope *bool `json:"in_app_scope,omitempty"` // 是否拥有app权限
}

type AppliOfferBasicInfoUserBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	avatar     string // 头像
	avatarFlag bool

	department     *Department // 部门
	departmentFlag bool

	timezone     string // 时区
	timezoneFlag bool

	phone     string // 手机
	phoneFlag bool

	email     string // 邮箱
	emailFlag bool

	inAppScope     bool // 是否拥有app权限
	inAppScopeFlag bool
}

func NewAppliOfferBasicInfoUserBuilder() *AppliOfferBasicInfoUserBuilder {
	builder := &AppliOfferBasicInfoUserBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Id(id string) *AppliOfferBasicInfoUserBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Name(name string) *AppliOfferBasicInfoUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) EnName(enName string) *AppliOfferBasicInfoUserBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 头像
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Avatar(avatar string) *AppliOfferBasicInfoUserBuilder {
	builder.avatar = avatar
	builder.avatarFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Department(department *Department) *AppliOfferBasicInfoUserBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 时区
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Timezone(timezone string) *AppliOfferBasicInfoUserBuilder {
	builder.timezone = timezone
	builder.timezoneFlag = true
	return builder
}

// 手机
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Phone(phone string) *AppliOfferBasicInfoUserBuilder {
	builder.phone = phone
	builder.phoneFlag = true
	return builder
}

// 邮箱
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) Email(email string) *AppliOfferBasicInfoUserBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 是否拥有app权限
//
// 示例值：
func (builder *AppliOfferBasicInfoUserBuilder) InAppScope(inAppScope bool) *AppliOfferBasicInfoUserBuilder {
	builder.inAppScope = inAppScope
	builder.inAppScopeFlag = true
	return builder
}

func (builder *AppliOfferBasicInfoUserBuilder) Build() *AppliOfferBasicInfoUser {
	req := &AppliOfferBasicInfoUser{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.avatarFlag {
		req.Avatar = &builder.avatar

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.timezoneFlag {
		req.Timezone = &builder.timezone

	}
	if builder.phoneFlag {
		req.Phone = &builder.phone

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.inAppScopeFlag {
		req.InAppScope = &builder.inAppScope

	}
	return req
}

type AppliOfferOnboardProfile struct {
	OfferId *string `json:"offer_id,omitempty"` // offer ID

	Department *Department `json:"department,omitempty"` // 部门

	RecruitmentType *RecruitmentType `json:"recruitment_type,omitempty"` // 招聘类型

	Sequence *Sequence `json:"sequence,omitempty"` // 序列

	Level *Level `json:"level,omitempty"` // 职级

	OnboardAddress *AppliOfferOnboardProfileAdd `json:"onboard_address,omitempty"` // onboard地址

	WorkAddress *AppliOfferOnboardProfileAdd `json:"work_address,omitempty"` // 工作地址

	Leader *AppliOfferBasicInfoUser `json:"leader,omitempty"` // 领导

	IsWorkAddressSameToOnboard *bool `json:"is_work_address_same_to_onboard,omitempty"` // 工作地址是否与onboard地址相同

	ProbationMonth *int64 `json:"probation_month,omitempty"` // 试用期

	ContractYear *int64 `json:"contract_year,omitempty"` // 合同年限
}

type AppliOfferOnboardProfileBuilder struct {
	offerId     string // offer ID
	offerIdFlag bool

	department     *Department // 部门
	departmentFlag bool

	recruitmentType     *RecruitmentType // 招聘类型
	recruitmentTypeFlag bool

	sequence     *Sequence // 序列
	sequenceFlag bool

	level     *Level // 职级
	levelFlag bool

	onboardAddress     *AppliOfferOnboardProfileAdd // onboard地址
	onboardAddressFlag bool

	workAddress     *AppliOfferOnboardProfileAdd // 工作地址
	workAddressFlag bool

	leader     *AppliOfferBasicInfoUser // 领导
	leaderFlag bool

	isWorkAddressSameToOnboard     bool // 工作地址是否与onboard地址相同
	isWorkAddressSameToOnboardFlag bool

	probationMonth     int64 // 试用期
	probationMonthFlag bool

	contractYear     int64 // 合同年限
	contractYearFlag bool
}

func NewAppliOfferOnboardProfileBuilder() *AppliOfferOnboardProfileBuilder {
	builder := &AppliOfferOnboardProfileBuilder{}
	return builder
}

// offer ID
//
// 示例值：6942778198054125570
func (builder *AppliOfferOnboardProfileBuilder) OfferId(offerId string) *AppliOfferOnboardProfileBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) Department(department *Department) *AppliOfferOnboardProfileBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 招聘类型
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) RecruitmentType(recruitmentType *RecruitmentType) *AppliOfferOnboardProfileBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 序列
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) Sequence(sequence *Sequence) *AppliOfferOnboardProfileBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 职级
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) Level(level *Level) *AppliOfferOnboardProfileBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// onboard地址
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) OnboardAddress(onboardAddress *AppliOfferOnboardProfileAdd) *AppliOfferOnboardProfileBuilder {
	builder.onboardAddress = onboardAddress
	builder.onboardAddressFlag = true
	return builder
}

// 工作地址
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) WorkAddress(workAddress *AppliOfferOnboardProfileAdd) *AppliOfferOnboardProfileBuilder {
	builder.workAddress = workAddress
	builder.workAddressFlag = true
	return builder
}

// 领导
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) Leader(leader *AppliOfferBasicInfoUser) *AppliOfferOnboardProfileBuilder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 工作地址是否与onboard地址相同
//
// 示例值：
func (builder *AppliOfferOnboardProfileBuilder) IsWorkAddressSameToOnboard(isWorkAddressSameToOnboard bool) *AppliOfferOnboardProfileBuilder {
	builder.isWorkAddressSameToOnboard = isWorkAddressSameToOnboard
	builder.isWorkAddressSameToOnboardFlag = true
	return builder
}

// 试用期
//
// 示例值：90
func (builder *AppliOfferOnboardProfileBuilder) ProbationMonth(probationMonth int64) *AppliOfferOnboardProfileBuilder {
	builder.probationMonth = probationMonth
	builder.probationMonthFlag = true
	return builder
}

// 合同年限
//
// 示例值：10
func (builder *AppliOfferOnboardProfileBuilder) ContractYear(contractYear int64) *AppliOfferOnboardProfileBuilder {
	builder.contractYear = contractYear
	builder.contractYearFlag = true
	return builder
}

func (builder *AppliOfferOnboardProfileBuilder) Build() *AppliOfferOnboardProfile {
	req := &AppliOfferOnboardProfile{}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.sequenceFlag {
		req.Sequence = builder.sequence
	}
	if builder.levelFlag {
		req.Level = builder.level
	}
	if builder.onboardAddressFlag {
		req.OnboardAddress = builder.onboardAddress
	}
	if builder.workAddressFlag {
		req.WorkAddress = builder.workAddress
	}
	if builder.leaderFlag {
		req.Leader = builder.leader
	}
	if builder.isWorkAddressSameToOnboardFlag {
		req.IsWorkAddressSameToOnboard = &builder.isWorkAddressSameToOnboard

	}
	if builder.probationMonthFlag {
		req.ProbationMonth = &builder.probationMonth

	}
	if builder.contractYearFlag {
		req.ContractYear = &builder.contractYear

	}
	return req
}

type AppliOfferOnboardProfileAdd struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	District *AppliOfferOnboardProfileCity `json:"district,omitempty"` // 区

	City *AppliOfferOnboardProfileCity `json:"city,omitempty"` // 城市

	State *AppliOfferOnboardProfileCity `json:"state,omitempty"` // 省

	Country *AppliOfferOnboardProfileCity `json:"country,omitempty"` // 国家

	UsageIdList []string `json:"usage_id_list,omitempty"` // 使用ID列表

	ActiveStatus *int `json:"active_status,omitempty"` // 状态
}

type AppliOfferOnboardProfileAddBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	district     *AppliOfferOnboardProfileCity // 区
	districtFlag bool

	city     *AppliOfferOnboardProfileCity // 城市
	cityFlag bool

	state     *AppliOfferOnboardProfileCity // 省
	stateFlag bool

	country     *AppliOfferOnboardProfileCity // 国家
	countryFlag bool

	usageIdList     []string // 使用ID列表
	usageIdListFlag bool

	activeStatus     int // 状态
	activeStatusFlag bool
}

func NewAppliOfferOnboardProfileAddBuilder() *AppliOfferOnboardProfileAddBuilder {
	builder := &AppliOfferOnboardProfileAddBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) Id(id string) *AppliOfferOnboardProfileAddBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) Name(name string) *AppliOfferOnboardProfileAddBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) EnName(enName string) *AppliOfferOnboardProfileAddBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 区
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) District(district *AppliOfferOnboardProfileCity) *AppliOfferOnboardProfileAddBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) City(city *AppliOfferOnboardProfileCity) *AppliOfferOnboardProfileAddBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) State(state *AppliOfferOnboardProfileCity) *AppliOfferOnboardProfileAddBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) Country(country *AppliOfferOnboardProfileCity) *AppliOfferOnboardProfileAddBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

// 使用ID列表
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) UsageIdList(usageIdList []string) *AppliOfferOnboardProfileAddBuilder {
	builder.usageIdList = usageIdList
	builder.usageIdListFlag = true
	return builder
}

// 状态
//
// 示例值：
func (builder *AppliOfferOnboardProfileAddBuilder) ActiveStatus(activeStatus int) *AppliOfferOnboardProfileAddBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *AppliOfferOnboardProfileAddBuilder) Build() *AppliOfferOnboardProfileAdd {
	req := &AppliOfferOnboardProfileAdd{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	if builder.usageIdListFlag {
		req.UsageIdList = builder.usageIdList
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type AppliOfferOnboardProfileCity struct {
	Code *string `json:"code,omitempty"` // 编码

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	LocationType *int `json:"location_type,omitempty"` // 地址类型
}

type AppliOfferOnboardProfileCityBuilder struct {
	code     string // 编码
	codeFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	locationType     int // 地址类型
	locationTypeFlag bool
}

func NewAppliOfferOnboardProfileCityBuilder() *AppliOfferOnboardProfileCityBuilder {
	builder := &AppliOfferOnboardProfileCityBuilder{}
	return builder
}

// 编码
//
// 示例值：
func (builder *AppliOfferOnboardProfileCityBuilder) Code(code string) *AppliOfferOnboardProfileCityBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *AppliOfferOnboardProfileCityBuilder) Name(name string) *AppliOfferOnboardProfileCityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *AppliOfferOnboardProfileCityBuilder) EnName(enName string) *AppliOfferOnboardProfileCityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 地址类型
//
// 示例值：
func (builder *AppliOfferOnboardProfileCityBuilder) LocationType(locationType int) *AppliOfferOnboardProfileCityBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *AppliOfferOnboardProfileCityBuilder) Build() *AppliOfferOnboardProfileCity {
	req := &AppliOfferOnboardProfileCity{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type AppliOfferSalaryPlanTemplate struct {
	TemplateKey *string `json:"template_key,omitempty"` // 模版key

	TotalAmount *string `json:"total_amount,omitempty"` // 总金额

	Currency *string `json:"currency,omitempty"` // 币种

	SalaryContent *string `json:"salary_content,omitempty"` // 薪酬内容
}

type AppliOfferSalaryPlanTemplateBuilder struct {
	templateKey     string // 模版key
	templateKeyFlag bool

	totalAmount     string // 总金额
	totalAmountFlag bool

	currency     string // 币种
	currencyFlag bool

	salaryContent     string // 薪酬内容
	salaryContentFlag bool
}

func NewAppliOfferSalaryPlanTemplateBuilder() *AppliOfferSalaryPlanTemplateBuilder {
	builder := &AppliOfferSalaryPlanTemplateBuilder{}
	return builder
}

// 模版key
//
// 示例值：
func (builder *AppliOfferSalaryPlanTemplateBuilder) TemplateKey(templateKey string) *AppliOfferSalaryPlanTemplateBuilder {
	builder.templateKey = templateKey
	builder.templateKeyFlag = true
	return builder
}

// 总金额
//
// 示例值：
func (builder *AppliOfferSalaryPlanTemplateBuilder) TotalAmount(totalAmount string) *AppliOfferSalaryPlanTemplateBuilder {
	builder.totalAmount = totalAmount
	builder.totalAmountFlag = true
	return builder
}

// 币种
//
// 示例值：
func (builder *AppliOfferSalaryPlanTemplateBuilder) Currency(currency string) *AppliOfferSalaryPlanTemplateBuilder {
	builder.currency = currency
	builder.currencyFlag = true
	return builder
}

// 薪酬内容
//
// 示例值：
func (builder *AppliOfferSalaryPlanTemplateBuilder) SalaryContent(salaryContent string) *AppliOfferSalaryPlanTemplateBuilder {
	builder.salaryContent = salaryContent
	builder.salaryContentFlag = true
	return builder
}

func (builder *AppliOfferSalaryPlanTemplateBuilder) Build() *AppliOfferSalaryPlanTemplate {
	req := &AppliOfferSalaryPlanTemplate{}
	if builder.templateKeyFlag {
		req.TemplateKey = &builder.templateKey

	}
	if builder.totalAmountFlag {
		req.TotalAmount = &builder.totalAmount

	}
	if builder.currencyFlag {
		req.Currency = &builder.currency

	}
	if builder.salaryContentFlag {
		req.SalaryContent = &builder.salaryContent

	}
	return req
}

type AppliTalentAttachResumeInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字
}

type AppliTalentAttachResumeInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool
}

func NewAppliTalentAttachResumeInfoBuilder() *AppliTalentAttachResumeInfoBuilder {
	builder := &AppliTalentAttachResumeInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *AppliTalentAttachResumeInfoBuilder) Id(id string) *AppliTalentAttachResumeInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *AppliTalentAttachResumeInfoBuilder) Name(name string) *AppliTalentAttachResumeInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *AppliTalentAttachResumeInfoBuilder) Build() *AppliTalentAttachResumeInfo {
	req := &AppliTalentAttachResumeInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type AppliTalentCertificateInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 证件名称

	Desc *string `json:"desc,omitempty"` // 证件描述
}

type AppliTalentCertificateInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 证件名称
	nameFlag bool

	desc     string // 证件描述
	descFlag bool
}

func NewAppliTalentCertificateInfoBuilder() *AppliTalentCertificateInfoBuilder {
	builder := &AppliTalentCertificateInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *AppliTalentCertificateInfoBuilder) Id(id string) *AppliTalentCertificateInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 证件名称
//
// 示例值：
func (builder *AppliTalentCertificateInfoBuilder) Name(name string) *AppliTalentCertificateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 证件描述
//
// 示例值：
func (builder *AppliTalentCertificateInfoBuilder) Desc(desc string) *AppliTalentCertificateInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

func (builder *AppliTalentCertificateInfoBuilder) Build() *AppliTalentCertificateInfo {
	req := &AppliTalentCertificateInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	return req
}

type AppliTalentCompetitionInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 竞赛名称

	Desc *string `json:"desc,omitempty"` // 竞赛描述
}

type AppliTalentCompetitionInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 竞赛名称
	nameFlag bool

	desc     string // 竞赛描述
	descFlag bool
}

func NewAppliTalentCompetitionInfoBuilder() *AppliTalentCompetitionInfoBuilder {
	builder := &AppliTalentCompetitionInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *AppliTalentCompetitionInfoBuilder) Id(id string) *AppliTalentCompetitionInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 竞赛名称
//
// 示例值：
func (builder *AppliTalentCompetitionInfoBuilder) Name(name string) *AppliTalentCompetitionInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 竞赛描述
//
// 示例值：
func (builder *AppliTalentCompetitionInfoBuilder) Desc(desc string) *AppliTalentCompetitionInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

func (builder *AppliTalentCompetitionInfoBuilder) Build() *AppliTalentCompetitionInfo {
	req := &AppliTalentCompetitionInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	return req
}

type AppliTalentEducationInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Degree *int64 `json:"degree,omitempty"` // 学历

	School *string `json:"school,omitempty"` // 学校

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	EducationType *int64 `json:"education_type,omitempty"` // 学历类型

	AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 排名

	TagList []int `json:"tag_list,omitempty"` // 标签列表
}

type AppliTalentEducationInfoBuilder struct {
	id     string // ID
	idFlag bool

	degree     int64 // 学历
	degreeFlag bool

	school     string // 学校
	schoolFlag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	educationType     int64 // 学历类型
	educationTypeFlag bool

	academicRanking     int64 // 排名
	academicRankingFlag bool

	tagList     []int // 标签列表
	tagListFlag bool
}

func NewAppliTalentEducationInfoBuilder() *AppliTalentEducationInfoBuilder {
	builder := &AppliTalentEducationInfoBuilder{}
	return builder
}

// ID
//
// 示例值：123
func (builder *AppliTalentEducationInfoBuilder) Id(id string) *AppliTalentEducationInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 学历
//
// 示例值：1
func (builder *AppliTalentEducationInfoBuilder) Degree(degree int64) *AppliTalentEducationInfoBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 学校
//
// 示例值：某某大学
func (builder *AppliTalentEducationInfoBuilder) School(school string) *AppliTalentEducationInfoBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 专业
//
// 示例值：软件工程
func (builder *AppliTalentEducationInfoBuilder) FieldOfStudy(fieldOfStudy string) *AppliTalentEducationInfoBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 开始时间
//
// 示例值：1735664461000
func (builder *AppliTalentEducationInfoBuilder) StartTime(startTime string) *AppliTalentEducationInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1735664461000
func (builder *AppliTalentEducationInfoBuilder) EndTime(endTime string) *AppliTalentEducationInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *AppliTalentEducationInfoBuilder) EducationType(educationType int64) *AppliTalentEducationInfoBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 排名
//
// 示例值：1
func (builder *AppliTalentEducationInfoBuilder) AcademicRanking(academicRanking int64) *AppliTalentEducationInfoBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

// 标签列表
//
// 示例值：
func (builder *AppliTalentEducationInfoBuilder) TagList(tagList []int) *AppliTalentEducationInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

func (builder *AppliTalentEducationInfoBuilder) Build() *AppliTalentEducationInfo {
	req := &AppliTalentEducationInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	return req
}

type Application struct {
	Id *string `json:"id,omitempty"` // 投递id

	JobId *string `json:"job_id,omitempty"` // 投递的职位 ID

	TalentId *string `json:"talent_id,omitempty"` // 候选人 ID

	ResumeSourceId *string `json:"resume_source_id,omitempty"` // 简历来源 ID

	Stage *ApplicationStageInfo `json:"stage,omitempty"` // 投递处于的阶段

	ActiveStatus *int `json:"active_status,omitempty"` // 活跃状态

	DeliveryType *int `json:"delivery_type,omitempty"` // 投递方式

	ResumeSourceInfo *ApplicationResumeSource `json:"resume_source_info,omitempty"` // 投递来源信息

	WebsiteResumeSource *ApplicationWebsiteResumeSource `json:"website_resume_source,omitempty"` // 官网投递来源

	TalentAttachmentResumeId *string `json:"talent_attachment_resume_id,omitempty"` // 简历附件 ID

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间

	StageTimeList []*ApplicationStageTime `json:"stage_time_list,omitempty"` // 阶段变更时间列表

	TerminationType *int `json:"termination_type,omitempty"` // 终止原因的类型

	TerminationReasonList []string `json:"termination_reason_list,omitempty"` // 终止的具体原因的id列表

	TerminationReasonNote *string `json:"termination_reason_note,omitempty"` // 终止备注

	ApplicationPreferredCityList []*CodeNameObject `json:"application_preferred_city_list,omitempty"` // 意向投递城市列表

	CreatorId *string `json:"creator_id,omitempty"` // 投递创建人 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）
}

type ApplicationBuilder struct {
	id     string // 投递id
	idFlag bool

	jobId     string // 投递的职位 ID
	jobIdFlag bool

	talentId     string // 候选人 ID
	talentIdFlag bool

	resumeSourceId     string // 简历来源 ID
	resumeSourceIdFlag bool

	stage     *ApplicationStageInfo // 投递处于的阶段
	stageFlag bool

	activeStatus     int // 活跃状态
	activeStatusFlag bool

	deliveryType     int // 投递方式
	deliveryTypeFlag bool

	resumeSourceInfo     *ApplicationResumeSource // 投递来源信息
	resumeSourceInfoFlag bool

	websiteResumeSource     *ApplicationWebsiteResumeSource // 官网投递来源
	websiteResumeSourceFlag bool

	talentAttachmentResumeId     string // 简历附件 ID
	talentAttachmentResumeIdFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	modifyTime     string // 修改时间
	modifyTimeFlag bool

	stageTimeList     []*ApplicationStageTime // 阶段变更时间列表
	stageTimeListFlag bool

	terminationType     int // 终止原因的类型
	terminationTypeFlag bool

	terminationReasonList     []string // 终止的具体原因的id列表
	terminationReasonListFlag bool

	terminationReasonNote     string // 终止备注
	terminationReasonNoteFlag bool

	applicationPreferredCityList     []*CodeNameObject // 意向投递城市列表
	applicationPreferredCityListFlag bool

	creatorId     string // 投递创建人 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）
	creatorIdFlag bool
}

func NewApplicationBuilder() *ApplicationBuilder {
	builder := &ApplicationBuilder{}
	return builder
}

// 投递id
//
// 示例值：6949805467799537964
func (builder *ApplicationBuilder) Id(id string) *ApplicationBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递的职位 ID
//
// 示例值：6843547872837273223
func (builder *ApplicationBuilder) JobId(jobId string) *ApplicationBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 候选人 ID
//
// 示例值：6843547872837273223
func (builder *ApplicationBuilder) TalentId(talentId string) *ApplicationBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 简历来源 ID
//
// 示例值：6583482347283472832
func (builder *ApplicationBuilder) ResumeSourceId(resumeSourceId string) *ApplicationBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 投递处于的阶段
//
// 示例值：
func (builder *ApplicationBuilder) Stage(stage *ApplicationStageInfo) *ApplicationBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 活跃状态
//
// 示例值：1
func (builder *ApplicationBuilder) ActiveStatus(activeStatus int) *ApplicationBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 投递方式
//
// 示例值：1
func (builder *ApplicationBuilder) DeliveryType(deliveryType int) *ApplicationBuilder {
	builder.deliveryType = deliveryType
	builder.deliveryTypeFlag = true
	return builder
}

// 投递来源信息
//
// 示例值：
func (builder *ApplicationBuilder) ResumeSourceInfo(resumeSourceInfo *ApplicationResumeSource) *ApplicationBuilder {
	builder.resumeSourceInfo = resumeSourceInfo
	builder.resumeSourceInfoFlag = true
	return builder
}

// 官网投递来源
//
// 示例值：
func (builder *ApplicationBuilder) WebsiteResumeSource(websiteResumeSource *ApplicationWebsiteResumeSource) *ApplicationBuilder {
	builder.websiteResumeSource = websiteResumeSource
	builder.websiteResumeSourceFlag = true
	return builder
}

// 简历附件 ID
//
// 示例值：6960663240925956415
func (builder *ApplicationBuilder) TalentAttachmentResumeId(talentAttachmentResumeId string) *ApplicationBuilder {
	builder.talentAttachmentResumeId = talentAttachmentResumeId
	builder.talentAttachmentResumeIdFlag = true
	return builder
}

// 创建时间
//
// 示例值：1632990774278
func (builder *ApplicationBuilder) CreateTime(createTime string) *ApplicationBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 修改时间
//
// 示例值：1634801678103
func (builder *ApplicationBuilder) ModifyTime(modifyTime string) *ApplicationBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 阶段变更时间列表
//
// 示例值：
func (builder *ApplicationBuilder) StageTimeList(stageTimeList []*ApplicationStageTime) *ApplicationBuilder {
	builder.stageTimeList = stageTimeList
	builder.stageTimeListFlag = true
	return builder
}

// 终止原因的类型
//
// 示例值：1
func (builder *ApplicationBuilder) TerminationType(terminationType int) *ApplicationBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 终止的具体原因的id列表
//
// 示例值：
func (builder *ApplicationBuilder) TerminationReasonList(terminationReasonList []string) *ApplicationBuilder {
	builder.terminationReasonList = terminationReasonList
	builder.terminationReasonListFlag = true
	return builder
}

// 终止备注
//
// 示例值：其他投递已入职
func (builder *ApplicationBuilder) TerminationReasonNote(terminationReasonNote string) *ApplicationBuilder {
	builder.terminationReasonNote = terminationReasonNote
	builder.terminationReasonNoteFlag = true
	return builder
}

// 意向投递城市列表
//
// 示例值：
func (builder *ApplicationBuilder) ApplicationPreferredCityList(applicationPreferredCityList []*CodeNameObject) *ApplicationBuilder {
	builder.applicationPreferredCityList = applicationPreferredCityList
	builder.applicationPreferredCityListFlag = true
	return builder
}

// 投递创建人 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *ApplicationBuilder) CreatorId(creatorId string) *ApplicationBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

func (builder *ApplicationBuilder) Build() *Application {
	req := &Application{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId

	}
	if builder.stageFlag {
		req.Stage = builder.stage
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.deliveryTypeFlag {
		req.DeliveryType = &builder.deliveryType

	}
	if builder.resumeSourceInfoFlag {
		req.ResumeSourceInfo = builder.resumeSourceInfo
	}
	if builder.websiteResumeSourceFlag {
		req.WebsiteResumeSource = builder.websiteResumeSource
	}
	if builder.talentAttachmentResumeIdFlag {
		req.TalentAttachmentResumeId = &builder.talentAttachmentResumeId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.stageTimeListFlag {
		req.StageTimeList = builder.stageTimeList
	}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType

	}
	if builder.terminationReasonListFlag {
		req.TerminationReasonList = builder.terminationReasonList
	}
	if builder.terminationReasonNoteFlag {
		req.TerminationReasonNote = &builder.terminationReasonNote

	}
	if builder.applicationPreferredCityListFlag {
		req.ApplicationPreferredCityList = builder.applicationPreferredCityList
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	return req
}

type ApplicationBasicInfo struct {
	Stage *ApplicationStage `json:"stage,omitempty"` // 阶段信息

	Referral *ApplicationReferral `json:"referral,omitempty"` // 内推人信息

	ActiveStatus *int64 `json:"active_status,omitempty"` // 状态

	BizCreateTime *int64 `json:"biz_create_time,omitempty"` // 创建时间

	BizModifyTime *int64 `json:"biz_modify_time,omitempty"` // 修改时间
}

type ApplicationBasicInfoBuilder struct {
	stage     *ApplicationStage // 阶段信息
	stageFlag bool

	referral     *ApplicationReferral // 内推人信息
	referralFlag bool

	activeStatus     int64 // 状态
	activeStatusFlag bool

	bizCreateTime     int64 // 创建时间
	bizCreateTimeFlag bool

	bizModifyTime     int64 // 修改时间
	bizModifyTimeFlag bool
}

func NewApplicationBasicInfoBuilder() *ApplicationBasicInfoBuilder {
	builder := &ApplicationBasicInfoBuilder{}
	return builder
}

// 阶段信息
//
// 示例值：
func (builder *ApplicationBasicInfoBuilder) Stage(stage *ApplicationStage) *ApplicationBasicInfoBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 内推人信息
//
// 示例值：
func (builder *ApplicationBasicInfoBuilder) Referral(referral *ApplicationReferral) *ApplicationBasicInfoBuilder {
	builder.referral = referral
	builder.referralFlag = true
	return builder
}

// 状态
//
// 示例值：1
func (builder *ApplicationBasicInfoBuilder) ActiveStatus(activeStatus int64) *ApplicationBasicInfoBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 创建时间
//
// 示例值：1
func (builder *ApplicationBasicInfoBuilder) BizCreateTime(bizCreateTime int64) *ApplicationBasicInfoBuilder {
	builder.bizCreateTime = bizCreateTime
	builder.bizCreateTimeFlag = true
	return builder
}

// 修改时间
//
// 示例值：1
func (builder *ApplicationBasicInfoBuilder) BizModifyTime(bizModifyTime int64) *ApplicationBasicInfoBuilder {
	builder.bizModifyTime = bizModifyTime
	builder.bizModifyTimeFlag = true
	return builder
}

func (builder *ApplicationBasicInfoBuilder) Build() *ApplicationBasicInfo {
	req := &ApplicationBasicInfo{}
	if builder.stageFlag {
		req.Stage = builder.stage
	}
	if builder.referralFlag {
		req.Referral = builder.referral
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.bizCreateTimeFlag {
		req.BizCreateTime = &builder.bizCreateTime

	}
	if builder.bizModifyTimeFlag {
		req.BizModifyTime = &builder.bizModifyTime

	}
	return req
}

type ApplicationDetailBasicInfo struct {
	Id *string `json:"id,omitempty"` // 投递 ID

	JobId *string `json:"job_id,omitempty"` // 投递的职位 ID

	TalentId *string `json:"talent_id,omitempty"` // 投递的人才 ID

	Stage *ApplicationStageInfo `json:"stage,omitempty"` // 投递处于的阶段

	ActiveStatus *int `json:"active_status,omitempty"` // 投递活跃状态

	DeliveryType *int `json:"delivery_type,omitempty"` // 投递方式

	ResumeSourceInfo *ApplicationResumeSource `json:"resume_source_info,omitempty"` // 投递来源信息

	WebsiteResumeSource *ApplicationWebsiteResumeSource `json:"website_resume_source,omitempty"` // 官网投递来源

	TalentAttachmentResumeId *string `json:"talent_attachment_resume_id,omitempty"` // 简历附件 ID

	StageTimeList []*ApplicationStageTime `json:"stage_time_list,omitempty"` // 投递阶段变更时间列表

	OnboardStatus *int `json:"onboard_status,omitempty"` // 投递入职状态

	ApplicationPreferredCityList []*CodeNameObject `json:"application_preferred_city_list,omitempty"` // 意向投递城市列表

	TerminationReason *TerminationReasonInfo `json:"termination_reason,omitempty"` // 投递终止原因

	CreatorId *string `json:"creator_id,omitempty"` // 投递创建者 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）

	OwnerId *string `json:"owner_id,omitempty"` // 投递所有者 ID

	TerminatorId *string `json:"terminator_id,omitempty"` // 投递终止者 ID

	CreateTime *string `json:"create_time,omitempty"` // 创建时间戳（单位：毫秒）

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间戳（单位：毫秒）
}

type ApplicationDetailBasicInfoBuilder struct {
	id     string // 投递 ID
	idFlag bool

	jobId     string // 投递的职位 ID
	jobIdFlag bool

	talentId     string // 投递的人才 ID
	talentIdFlag bool

	stage     *ApplicationStageInfo // 投递处于的阶段
	stageFlag bool

	activeStatus     int // 投递活跃状态
	activeStatusFlag bool

	deliveryType     int // 投递方式
	deliveryTypeFlag bool

	resumeSourceInfo     *ApplicationResumeSource // 投递来源信息
	resumeSourceInfoFlag bool

	websiteResumeSource     *ApplicationWebsiteResumeSource // 官网投递来源
	websiteResumeSourceFlag bool

	talentAttachmentResumeId     string // 简历附件 ID
	talentAttachmentResumeIdFlag bool

	stageTimeList     []*ApplicationStageTime // 投递阶段变更时间列表
	stageTimeListFlag bool

	onboardStatus     int // 投递入职状态
	onboardStatusFlag bool

	applicationPreferredCityList     []*CodeNameObject // 意向投递城市列表
	applicationPreferredCityListFlag bool

	terminationReason     *TerminationReasonInfo // 投递终止原因
	terminationReasonFlag bool

	creatorId     string // 投递创建者 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）
	creatorIdFlag bool

	ownerId     string // 投递所有者 ID
	ownerIdFlag bool

	terminatorId     string // 投递终止者 ID
	terminatorIdFlag bool

	createTime     string // 创建时间戳（单位：毫秒）
	createTimeFlag bool

	modifyTime     string // 修改时间戳（单位：毫秒）
	modifyTimeFlag bool
}

func NewApplicationDetailBasicInfoBuilder() *ApplicationDetailBasicInfoBuilder {
	builder := &ApplicationDetailBasicInfoBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：6949805467799537964
func (builder *ApplicationDetailBasicInfoBuilder) Id(id string) *ApplicationDetailBasicInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递的职位 ID
//
// 示例值：6843547872837273223
func (builder *ApplicationDetailBasicInfoBuilder) JobId(jobId string) *ApplicationDetailBasicInfoBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 投递的人才 ID
//
// 示例值：6843547872837273223
func (builder *ApplicationDetailBasicInfoBuilder) TalentId(talentId string) *ApplicationDetailBasicInfoBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递处于的阶段
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) Stage(stage *ApplicationStageInfo) *ApplicationDetailBasicInfoBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 投递活跃状态
//
// 示例值：1
func (builder *ApplicationDetailBasicInfoBuilder) ActiveStatus(activeStatus int) *ApplicationDetailBasicInfoBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 投递方式
//
// 示例值：1
func (builder *ApplicationDetailBasicInfoBuilder) DeliveryType(deliveryType int) *ApplicationDetailBasicInfoBuilder {
	builder.deliveryType = deliveryType
	builder.deliveryTypeFlag = true
	return builder
}

// 投递来源信息
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) ResumeSourceInfo(resumeSourceInfo *ApplicationResumeSource) *ApplicationDetailBasicInfoBuilder {
	builder.resumeSourceInfo = resumeSourceInfo
	builder.resumeSourceInfoFlag = true
	return builder
}

// 官网投递来源
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) WebsiteResumeSource(websiteResumeSource *ApplicationWebsiteResumeSource) *ApplicationDetailBasicInfoBuilder {
	builder.websiteResumeSource = websiteResumeSource
	builder.websiteResumeSourceFlag = true
	return builder
}

// 简历附件 ID
//
// 示例值：6960663240925956415
func (builder *ApplicationDetailBasicInfoBuilder) TalentAttachmentResumeId(talentAttachmentResumeId string) *ApplicationDetailBasicInfoBuilder {
	builder.talentAttachmentResumeId = talentAttachmentResumeId
	builder.talentAttachmentResumeIdFlag = true
	return builder
}

// 投递阶段变更时间列表
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) StageTimeList(stageTimeList []*ApplicationStageTime) *ApplicationDetailBasicInfoBuilder {
	builder.stageTimeList = stageTimeList
	builder.stageTimeListFlag = true
	return builder
}

// 投递入职状态
//
// 示例值：1
func (builder *ApplicationDetailBasicInfoBuilder) OnboardStatus(onboardStatus int) *ApplicationDetailBasicInfoBuilder {
	builder.onboardStatus = onboardStatus
	builder.onboardStatusFlag = true
	return builder
}

// 意向投递城市列表
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) ApplicationPreferredCityList(applicationPreferredCityList []*CodeNameObject) *ApplicationDetailBasicInfoBuilder {
	builder.applicationPreferredCityList = applicationPreferredCityList
	builder.applicationPreferredCityListFlag = true
	return builder
}

// 投递终止原因
//
// 示例值：
func (builder *ApplicationDetailBasicInfoBuilder) TerminationReason(terminationReason *TerminationReasonInfo) *ApplicationDetailBasicInfoBuilder {
	builder.terminationReason = terminationReason
	builder.terminationReasonFlag = true
	return builder
}

// 投递创建者 ID，仅当投递创建人为企业内部员工时可获取（如员工手动上传简历 / 加入职位 / 内推），其余情况返回为空（如候选人主动投递）
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *ApplicationDetailBasicInfoBuilder) CreatorId(creatorId string) *ApplicationDetailBasicInfoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 投递所有者 ID
//
// 示例值：ou_ce913028fe74123221f5dc320bb9c709
func (builder *ApplicationDetailBasicInfoBuilder) OwnerId(ownerId string) *ApplicationDetailBasicInfoBuilder {
	builder.ownerId = ownerId
	builder.ownerIdFlag = true
	return builder
}

// 投递终止者 ID
//
// 示例值：ou_ce913028fe74123221f5dc320bb9c709
func (builder *ApplicationDetailBasicInfoBuilder) TerminatorId(terminatorId string) *ApplicationDetailBasicInfoBuilder {
	builder.terminatorId = terminatorId
	builder.terminatorIdFlag = true
	return builder
}

// 创建时间戳（单位：毫秒）
//
// 示例值：1632990774278
func (builder *ApplicationDetailBasicInfoBuilder) CreateTime(createTime string) *ApplicationDetailBasicInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 修改时间戳（单位：毫秒）
//
// 示例值：1634801678103
func (builder *ApplicationDetailBasicInfoBuilder) ModifyTime(modifyTime string) *ApplicationDetailBasicInfoBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

func (builder *ApplicationDetailBasicInfoBuilder) Build() *ApplicationDetailBasicInfo {
	req := &ApplicationDetailBasicInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.stageFlag {
		req.Stage = builder.stage
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.deliveryTypeFlag {
		req.DeliveryType = &builder.deliveryType

	}
	if builder.resumeSourceInfoFlag {
		req.ResumeSourceInfo = builder.resumeSourceInfo
	}
	if builder.websiteResumeSourceFlag {
		req.WebsiteResumeSource = builder.websiteResumeSource
	}
	if builder.talentAttachmentResumeIdFlag {
		req.TalentAttachmentResumeId = &builder.talentAttachmentResumeId

	}
	if builder.stageTimeListFlag {
		req.StageTimeList = builder.stageTimeList
	}
	if builder.onboardStatusFlag {
		req.OnboardStatus = &builder.onboardStatus

	}
	if builder.applicationPreferredCityListFlag {
		req.ApplicationPreferredCityList = builder.applicationPreferredCityList
	}
	if builder.terminationReasonFlag {
		req.TerminationReason = builder.terminationReason
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.ownerIdFlag {
		req.OwnerId = &builder.ownerId

	}
	if builder.terminatorIdFlag {
		req.TerminatorId = &builder.terminatorId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	return req
}

type ApplicationDetailInfo struct {
	BasicInfo *ApplicationDetailBasicInfo `json:"basic_info,omitempty"` // 投递基本信息

	Job *JobBasicInfo `json:"job,omitempty"` // 投递职位信息

	Talent *TalentBasicInfoV2 `json:"talent,omitempty"` // 投递人才信息

	Evaluations []*Evaluation `json:"evaluations,omitempty"` // 投递评估信息

	InterviewAggregation *InterviewAggregation `json:"interview_aggregation,omitempty"` // 投递面试信息

	Offer *OfferInfoV2 `json:"offer,omitempty"` // 投递 Offer 信息（正式offer）

	Employee *EmployeeV2 `json:"employee,omitempty"` // 投递员工入转离信息

	Agency *AgencyInfo `json:"agency,omitempty"` // 投递猎头推荐信息

	Portal *ApplicationDetailPortalInfo `json:"portal,omitempty"` // 投递官网信息

	Referral *ReferralInfoV2 `json:"referral,omitempty"` // 投递内推信息
}

type ApplicationDetailInfoBuilder struct {
	basicInfo     *ApplicationDetailBasicInfo // 投递基本信息
	basicInfoFlag bool

	job     *JobBasicInfo // 投递职位信息
	jobFlag bool

	talent     *TalentBasicInfoV2 // 投递人才信息
	talentFlag bool

	evaluations     []*Evaluation // 投递评估信息
	evaluationsFlag bool

	interviewAggregation     *InterviewAggregation // 投递面试信息
	interviewAggregationFlag bool

	offer     *OfferInfoV2 // 投递 Offer 信息（正式offer）
	offerFlag bool

	employee     *EmployeeV2 // 投递员工入转离信息
	employeeFlag bool

	agency     *AgencyInfo // 投递猎头推荐信息
	agencyFlag bool

	portal     *ApplicationDetailPortalInfo // 投递官网信息
	portalFlag bool

	referral     *ReferralInfoV2 // 投递内推信息
	referralFlag bool
}

func NewApplicationDetailInfoBuilder() *ApplicationDetailInfoBuilder {
	builder := &ApplicationDetailInfoBuilder{}
	return builder
}

// 投递基本信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) BasicInfo(basicInfo *ApplicationDetailBasicInfo) *ApplicationDetailInfoBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 投递职位信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Job(job *JobBasicInfo) *ApplicationDetailInfoBuilder {
	builder.job = job
	builder.jobFlag = true
	return builder
}

// 投递人才信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Talent(talent *TalentBasicInfoV2) *ApplicationDetailInfoBuilder {
	builder.talent = talent
	builder.talentFlag = true
	return builder
}

// 投递评估信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Evaluations(evaluations []*Evaluation) *ApplicationDetailInfoBuilder {
	builder.evaluations = evaluations
	builder.evaluationsFlag = true
	return builder
}

// 投递面试信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) InterviewAggregation(interviewAggregation *InterviewAggregation) *ApplicationDetailInfoBuilder {
	builder.interviewAggregation = interviewAggregation
	builder.interviewAggregationFlag = true
	return builder
}

// 投递 Offer 信息（正式offer）
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Offer(offer *OfferInfoV2) *ApplicationDetailInfoBuilder {
	builder.offer = offer
	builder.offerFlag = true
	return builder
}

// 投递员工入转离信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Employee(employee *EmployeeV2) *ApplicationDetailInfoBuilder {
	builder.employee = employee
	builder.employeeFlag = true
	return builder
}

// 投递猎头推荐信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Agency(agency *AgencyInfo) *ApplicationDetailInfoBuilder {
	builder.agency = agency
	builder.agencyFlag = true
	return builder
}

// 投递官网信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Portal(portal *ApplicationDetailPortalInfo) *ApplicationDetailInfoBuilder {
	builder.portal = portal
	builder.portalFlag = true
	return builder
}

// 投递内推信息
//
// 示例值：
func (builder *ApplicationDetailInfoBuilder) Referral(referral *ReferralInfoV2) *ApplicationDetailInfoBuilder {
	builder.referral = referral
	builder.referralFlag = true
	return builder
}

func (builder *ApplicationDetailInfoBuilder) Build() *ApplicationDetailInfo {
	req := &ApplicationDetailInfo{}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.jobFlag {
		req.Job = builder.job
	}
	if builder.talentFlag {
		req.Talent = builder.talent
	}
	if builder.evaluationsFlag {
		req.Evaluations = builder.evaluations
	}
	if builder.interviewAggregationFlag {
		req.InterviewAggregation = builder.interviewAggregation
	}
	if builder.offerFlag {
		req.Offer = builder.offer
	}
	if builder.employeeFlag {
		req.Employee = builder.employee
	}
	if builder.agencyFlag {
		req.Agency = builder.agency
	}
	if builder.portalFlag {
		req.Portal = builder.portal
	}
	if builder.referralFlag {
		req.Referral = builder.referral
	}
	return req
}

type ApplicationDetailPortalInfo struct {
	CampusVolunteerInfo *CampusVolumnteerInfo `json:"campus_volunteer_info,omitempty"` // 校招志愿信息
}

type ApplicationDetailPortalInfoBuilder struct {
	campusVolunteerInfo     *CampusVolumnteerInfo // 校招志愿信息
	campusVolunteerInfoFlag bool
}

func NewApplicationDetailPortalInfoBuilder() *ApplicationDetailPortalInfoBuilder {
	builder := &ApplicationDetailPortalInfoBuilder{}
	return builder
}

// 校招志愿信息
//
// 示例值：
func (builder *ApplicationDetailPortalInfoBuilder) CampusVolunteerInfo(campusVolunteerInfo *CampusVolumnteerInfo) *ApplicationDetailPortalInfoBuilder {
	builder.campusVolunteerInfo = campusVolunteerInfo
	builder.campusVolunteerInfoFlag = true
	return builder
}

func (builder *ApplicationDetailPortalInfoBuilder) Build() *ApplicationDetailPortalInfo {
	req := &ApplicationDetailPortalInfo{}
	if builder.campusVolunteerInfoFlag {
		req.CampusVolunteerInfo = builder.campusVolunteerInfo
	}
	return req
}

type ApplicationJob struct {
	Id *string `json:"id,omitempty"` // ID

	Title *string `json:"title,omitempty"` // 职称

	City *City `json:"city,omitempty"` // 城市

	Department *Department `json:"department,omitempty"` // 部门

	RecruitmentType *RecruitmentType `json:"recruitment_type,omitempty"` // 招聘类型

	Description *string `json:"description,omitempty"` // 描述

	JobProcessId *string `json:"job_process_id,omitempty"` // 岗位流程编号

	Code *string `json:"code,omitempty"` // 编码

	Address *ApplicationJobAddress `json:"address,omitempty"` // 地址

	Country *Country `json:"country,omitempty"` // 国家
}

type ApplicationJobBuilder struct {
	id     string // ID
	idFlag bool

	title     string // 职称
	titleFlag bool

	city     *City // 城市
	cityFlag bool

	department     *Department // 部门
	departmentFlag bool

	recruitmentType     *RecruitmentType // 招聘类型
	recruitmentTypeFlag bool

	description     string // 描述
	descriptionFlag bool

	jobProcessId     string // 岗位流程编号
	jobProcessIdFlag bool

	code     string // 编码
	codeFlag bool

	address     *ApplicationJobAddress // 地址
	addressFlag bool

	country     *Country // 国家
	countryFlag bool
}

func NewApplicationJobBuilder() *ApplicationJobBuilder {
	builder := &ApplicationJobBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationJobBuilder) Id(id string) *ApplicationJobBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职称
//
// 示例值：
func (builder *ApplicationJobBuilder) Title(title string) *ApplicationJobBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 城市
//
// 示例值：
func (builder *ApplicationJobBuilder) City(city *City) *ApplicationJobBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *ApplicationJobBuilder) Department(department *Department) *ApplicationJobBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 招聘类型
//
// 示例值：
func (builder *ApplicationJobBuilder) RecruitmentType(recruitmentType *RecruitmentType) *ApplicationJobBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *ApplicationJobBuilder) Description(description string) *ApplicationJobBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 岗位流程编号
//
// 示例值：
func (builder *ApplicationJobBuilder) JobProcessId(jobProcessId string) *ApplicationJobBuilder {
	builder.jobProcessId = jobProcessId
	builder.jobProcessIdFlag = true
	return builder
}

// 编码
//
// 示例值：
func (builder *ApplicationJobBuilder) Code(code string) *ApplicationJobBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 地址
//
// 示例值：
func (builder *ApplicationJobBuilder) Address(address *ApplicationJobAddress) *ApplicationJobBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 国家
//
// 示例值：
func (builder *ApplicationJobBuilder) Country(country *Country) *ApplicationJobBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *ApplicationJobBuilder) Build() *ApplicationJob {
	req := &ApplicationJob{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.jobProcessIdFlag {
		req.JobProcessId = &builder.jobProcessId

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type ApplicationJobAddress struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type ApplicationJobAddressBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewApplicationJobAddressBuilder() *ApplicationJobAddressBuilder {
	builder := &ApplicationJobAddressBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationJobAddressBuilder) Id(id string) *ApplicationJobAddressBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationJobAddressBuilder) Name(name string) *ApplicationJobAddressBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *ApplicationJobAddressBuilder) EnName(enName string) *ApplicationJobAddressBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *ApplicationJobAddressBuilder) Build() *ApplicationJobAddress {
	req := &ApplicationJobAddress{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type ApplicationOffer struct {
	Id *string `json:"id,omitempty"` // Offer id

	ApplicationId *string `json:"application_id,omitempty"` // 投递id

	BasicInfo *ApplicationOfferBasicInfo `json:"basic_info,omitempty"` // 基础信息

	SalaryPlan *ApplicationOfferSalaryPlan `json:"salary_plan,omitempty"` // 薪酬计划

	SchemaId *string `json:"schema_id,omitempty"` // 当前 Offer 使用的 schema

	OfferStatus *int `json:"offer_status,omitempty"` // Offer 状态

	JobInfo *OfferJobInfo `json:"job_info,omitempty"` // 职位信息

	CustomizedModuleList []*ApplicationOfferCustomModule `json:"customized_module_list,omitempty"` // offer自定义模块列表

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID

	OfferSendRecordList []*OfferSendRecord `json:"offer_send_record_list,omitempty"` // offer 发送记录列表
}

type ApplicationOfferBuilder struct {
	id     string // Offer id
	idFlag bool

	applicationId     string // 投递id
	applicationIdFlag bool

	basicInfo     *ApplicationOfferBasicInfo // 基础信息
	basicInfoFlag bool

	salaryPlan     *ApplicationOfferSalaryPlan // 薪酬计划
	salaryPlanFlag bool

	schemaId     string // 当前 Offer 使用的 schema
	schemaIdFlag bool

	offerStatus     int // Offer 状态
	offerStatusFlag bool

	jobInfo     *OfferJobInfo // 职位信息
	jobInfoFlag bool

	customizedModuleList     []*ApplicationOfferCustomModule // offer自定义模块列表
	customizedModuleListFlag bool

	jobRequirementId     string // 招聘需求 ID
	jobRequirementIdFlag bool

	offerSendRecordList     []*OfferSendRecord // offer 发送记录列表
	offerSendRecordListFlag bool
}

func NewApplicationOfferBuilder() *ApplicationOfferBuilder {
	builder := &ApplicationOfferBuilder{}
	return builder
}

// Offer id
//
// 示例值：7057802493489285412
func (builder *ApplicationOfferBuilder) Id(id string) *ApplicationOfferBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递id
//
// 示例值：7020661401874614564
func (builder *ApplicationOfferBuilder) ApplicationId(applicationId string) *ApplicationOfferBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *ApplicationOfferBuilder) BasicInfo(basicInfo *ApplicationOfferBasicInfo) *ApplicationOfferBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 薪酬计划
//
// 示例值：
func (builder *ApplicationOfferBuilder) SalaryPlan(salaryPlan *ApplicationOfferSalaryPlan) *ApplicationOfferBuilder {
	builder.salaryPlan = salaryPlan
	builder.salaryPlanFlag = true
	return builder
}

// 当前 Offer 使用的 schema
//
// 示例值：6963562624677398823
func (builder *ApplicationOfferBuilder) SchemaId(schemaId string) *ApplicationOfferBuilder {
	builder.schemaId = schemaId
	builder.schemaIdFlag = true
	return builder
}

// Offer 状态
//
// 示例值：0
func (builder *ApplicationOfferBuilder) OfferStatus(offerStatus int) *ApplicationOfferBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// 职位信息
//
// 示例值：
func (builder *ApplicationOfferBuilder) JobInfo(jobInfo *OfferJobInfo) *ApplicationOfferBuilder {
	builder.jobInfo = jobInfo
	builder.jobInfoFlag = true
	return builder
}

// offer自定义模块列表
//
// 示例值：
func (builder *ApplicationOfferBuilder) CustomizedModuleList(customizedModuleList []*ApplicationOfferCustomModule) *ApplicationOfferBuilder {
	builder.customizedModuleList = customizedModuleList
	builder.customizedModuleListFlag = true
	return builder
}

// 招聘需求 ID
//
// 示例值：1231231232312312
func (builder *ApplicationOfferBuilder) JobRequirementId(jobRequirementId string) *ApplicationOfferBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// offer 发送记录列表
//
// 示例值：
func (builder *ApplicationOfferBuilder) OfferSendRecordList(offerSendRecordList []*OfferSendRecord) *ApplicationOfferBuilder {
	builder.offerSendRecordList = offerSendRecordList
	builder.offerSendRecordListFlag = true
	return builder
}

func (builder *ApplicationOfferBuilder) Build() *ApplicationOffer {
	req := &ApplicationOffer{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.salaryPlanFlag {
		req.SalaryPlan = builder.salaryPlan
	}
	if builder.schemaIdFlag {
		req.SchemaId = &builder.schemaId

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.jobInfoFlag {
		req.JobInfo = builder.jobInfo
	}
	if builder.customizedModuleListFlag {
		req.CustomizedModuleList = builder.customizedModuleList
	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	if builder.offerSendRecordListFlag {
		req.OfferSendRecordList = builder.offerSendRecordList
	}
	return req
}

type ApplicationOfferAttachment struct {
	AttachmentId *string `json:"attachment_id,omitempty"` // 附件ID

	Name *string `json:"name,omitempty"` // 名字
}

type ApplicationOfferAttachmentBuilder struct {
	attachmentId     string // 附件ID
	attachmentIdFlag bool

	name     string // 名字
	nameFlag bool
}

func NewApplicationOfferAttachmentBuilder() *ApplicationOfferAttachmentBuilder {
	builder := &ApplicationOfferAttachmentBuilder{}
	return builder
}

// 附件ID
//
// 示例值：
func (builder *ApplicationOfferAttachmentBuilder) AttachmentId(attachmentId string) *ApplicationOfferAttachmentBuilder {
	builder.attachmentId = attachmentId
	builder.attachmentIdFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationOfferAttachmentBuilder) Name(name string) *ApplicationOfferAttachmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *ApplicationOfferAttachmentBuilder) Build() *ApplicationOfferAttachment {
	req := &ApplicationOfferAttachment{}
	if builder.attachmentIdFlag {
		req.AttachmentId = &builder.attachmentId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type ApplicationOfferBasicInfo struct {
	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	Remark *string `json:"remark,omitempty"` // 备注

	ExpireTime *int64 `json:"expire_time,omitempty"` // Offer 过期时间

	OwnerUserId *string `json:"owner_user_id,omitempty"` // Offer 负责人 ID

	CreatorUserId *string `json:"creator_user_id,omitempty"` // Offer 创建人 ID

	EmployeeType *BaseBilingualWithId `json:"employee_type,omitempty"` // Offer 人员类型

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	LeaderUserId *string `json:"leader_user_id,omitempty"` // 直属上级 ID

	OnboardDate *string `json:"onboard_date,omitempty"` // 入职日期

	DepartmentId *string `json:"department_id,omitempty"` // 入职部门

	ProbationMonth *int64 `json:"probation_month,omitempty"` // 试用期, 比如试用期6个月

	ContractYear *int64 `json:"contract_year,omitempty"` // 合同期, 比如3年

	ContractPeriod *ContractPeriodInfo `json:"contract_period,omitempty"` // 合同期（年/月）

	RecruitmentType *BaseBilingualWithId `json:"recruitment_type,omitempty"` // 雇员类型

	Sequence *BaseBilingualWithId `json:"sequence,omitempty"` // 序列

	Level *BaseBilingualWithId `json:"level,omitempty"` // 级别

	OnboardAddress *BaseAddress `json:"onboard_address,omitempty"` // 入职地点

	WorkAddress *BaseAddress `json:"work_address,omitempty"` // 工作地点

	CustomizeInfoList []*ApplicationOfferCustomValue `json:"customize_info_list,omitempty"` // 自定义字段信息

	WorkLocationAddressInfo *MasterLocationAddressInfo `json:"work_location_address_info,omitempty"` // 人事侧的办公地点与地址（目前仅字节可用)

	PositionId *string `json:"position_id,omitempty"` // 岗位 ID

	JobOffered *string `json:"job_offered,omitempty"` // 入职职位

	JobGradeId *string `json:"job_grade_id,omitempty"` // 职等 ID

	CommonAttachmentIdList []string `json:"common_attachment_id_list,omitempty"` // Offer 附件 ID 列表

	PathwayId *string `json:"pathway_id,omitempty"` // 通道 ID
}

type ApplicationOfferBasicInfoBuilder struct {
	offerType     int // Offer 类型
	offerTypeFlag bool

	remark     string // 备注
	remarkFlag bool

	expireTime     int64 // Offer 过期时间
	expireTimeFlag bool

	ownerUserId     string // Offer 负责人 ID
	ownerUserIdFlag bool

	creatorUserId     string // Offer 创建人 ID
	creatorUserIdFlag bool

	employeeType     *BaseBilingualWithId // Offer 人员类型
	employeeTypeFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	leaderUserId     string // 直属上级 ID
	leaderUserIdFlag bool

	onboardDate     string // 入职日期
	onboardDateFlag bool

	departmentId     string // 入职部门
	departmentIdFlag bool

	probationMonth     int64 // 试用期, 比如试用期6个月
	probationMonthFlag bool

	contractYear     int64 // 合同期, 比如3年
	contractYearFlag bool

	contractPeriod     *ContractPeriodInfo // 合同期（年/月）
	contractPeriodFlag bool

	recruitmentType     *BaseBilingualWithId // 雇员类型
	recruitmentTypeFlag bool

	sequence     *BaseBilingualWithId // 序列
	sequenceFlag bool

	level     *BaseBilingualWithId // 级别
	levelFlag bool

	onboardAddress     *BaseAddress // 入职地点
	onboardAddressFlag bool

	workAddress     *BaseAddress // 工作地点
	workAddressFlag bool

	customizeInfoList     []*ApplicationOfferCustomValue // 自定义字段信息
	customizeInfoListFlag bool

	workLocationAddressInfo     *MasterLocationAddressInfo // 人事侧的办公地点与地址（目前仅字节可用)
	workLocationAddressInfoFlag bool

	positionId     string // 岗位 ID
	positionIdFlag bool

	jobOffered     string // 入职职位
	jobOfferedFlag bool

	jobGradeId     string // 职等 ID
	jobGradeIdFlag bool

	commonAttachmentIdList     []string // Offer 附件 ID 列表
	commonAttachmentIdListFlag bool

	pathwayId     string // 通道 ID
	pathwayIdFlag bool
}

func NewApplicationOfferBasicInfoBuilder() *ApplicationOfferBasicInfoBuilder {
	builder := &ApplicationOfferBasicInfoBuilder{}
	return builder
}

// Offer 类型
//
// 示例值：1
func (builder *ApplicationOfferBasicInfoBuilder) OfferType(offerType int) *ApplicationOfferBasicInfoBuilder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// 备注
//
// 示例值：10
func (builder *ApplicationOfferBasicInfoBuilder) Remark(remark string) *ApplicationOfferBasicInfoBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// Offer 过期时间
//
// 示例值：1653383498000
func (builder *ApplicationOfferBasicInfoBuilder) ExpireTime(expireTime int64) *ApplicationOfferBasicInfoBuilder {
	builder.expireTime = expireTime
	builder.expireTimeFlag = true
	return builder
}

// Offer 负责人 ID
//
// 示例值：ou_99be8e24ad1ad390b6cd3b8916940df1
func (builder *ApplicationOfferBasicInfoBuilder) OwnerUserId(ownerUserId string) *ApplicationOfferBasicInfoBuilder {
	builder.ownerUserId = ownerUserId
	builder.ownerUserIdFlag = true
	return builder
}

// Offer 创建人 ID
//
// 示例值：ou_99be8e24ad1ad390b6cd3b8916940df1
func (builder *ApplicationOfferBasicInfoBuilder) CreatorUserId(creatorUserId string) *ApplicationOfferBasicInfoBuilder {
	builder.creatorUserId = creatorUserId
	builder.creatorUserIdFlag = true
	return builder
}

// Offer 人员类型
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) EmployeeType(employeeType *BaseBilingualWithId) *ApplicationOfferBasicInfoBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// 创建时间
//
// 示例值：1628512038000
func (builder *ApplicationOfferBasicInfoBuilder) CreateTime(createTime string) *ApplicationOfferBasicInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 直属上级 ID
//
// 示例值：ou_99be8e24ad1ad390b6cd3b8916940df1
func (builder *ApplicationOfferBasicInfoBuilder) LeaderUserId(leaderUserId string) *ApplicationOfferBasicInfoBuilder {
	builder.leaderUserId = leaderUserId
	builder.leaderUserIdFlag = true
	return builder
}

// 入职日期
//
// 示例值：2021-05-20
func (builder *ApplicationOfferBasicInfoBuilder) OnboardDate(onboardDate string) *ApplicationOfferBasicInfoBuilder {
	builder.onboardDate = onboardDate
	builder.onboardDateFlag = true
	return builder
}

// 入职部门
//
// 示例值：od-6b394871807047c7023ebfc1ff37cd3a
func (builder *ApplicationOfferBasicInfoBuilder) DepartmentId(departmentId string) *ApplicationOfferBasicInfoBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 试用期, 比如试用期6个月
//
// 示例值：1
func (builder *ApplicationOfferBasicInfoBuilder) ProbationMonth(probationMonth int64) *ApplicationOfferBasicInfoBuilder {
	builder.probationMonth = probationMonth
	builder.probationMonthFlag = true
	return builder
}

// 合同期, 比如3年
//
// 示例值：3
func (builder *ApplicationOfferBasicInfoBuilder) ContractYear(contractYear int64) *ApplicationOfferBasicInfoBuilder {
	builder.contractYear = contractYear
	builder.contractYearFlag = true
	return builder
}

// 合同期（年/月）
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) ContractPeriod(contractPeriod *ContractPeriodInfo) *ApplicationOfferBasicInfoBuilder {
	builder.contractPeriod = contractPeriod
	builder.contractPeriodFlag = true
	return builder
}

// 雇员类型
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) RecruitmentType(recruitmentType *BaseBilingualWithId) *ApplicationOfferBasicInfoBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 序列
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) Sequence(sequence *BaseBilingualWithId) *ApplicationOfferBasicInfoBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 级别
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) Level(level *BaseBilingualWithId) *ApplicationOfferBasicInfoBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 入职地点
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) OnboardAddress(onboardAddress *BaseAddress) *ApplicationOfferBasicInfoBuilder {
	builder.onboardAddress = onboardAddress
	builder.onboardAddressFlag = true
	return builder
}

// 工作地点
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) WorkAddress(workAddress *BaseAddress) *ApplicationOfferBasicInfoBuilder {
	builder.workAddress = workAddress
	builder.workAddressFlag = true
	return builder
}

// 自定义字段信息
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) CustomizeInfoList(customizeInfoList []*ApplicationOfferCustomValue) *ApplicationOfferBasicInfoBuilder {
	builder.customizeInfoList = customizeInfoList
	builder.customizeInfoListFlag = true
	return builder
}

// 人事侧的办公地点与地址（目前仅字节可用)
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) WorkLocationAddressInfo(workLocationAddressInfo *MasterLocationAddressInfo) *ApplicationOfferBasicInfoBuilder {
	builder.workLocationAddressInfo = workLocationAddressInfo
	builder.workLocationAddressInfoFlag = true
	return builder
}

// 岗位 ID
//
// 示例值：123
func (builder *ApplicationOfferBasicInfoBuilder) PositionId(positionId string) *ApplicationOfferBasicInfoBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

// 入职职位
//
// 示例值：123
func (builder *ApplicationOfferBasicInfoBuilder) JobOffered(jobOffered string) *ApplicationOfferBasicInfoBuilder {
	builder.jobOffered = jobOffered
	builder.jobOfferedFlag = true
	return builder
}

// 职等 ID
//
// 示例值：123
func (builder *ApplicationOfferBasicInfoBuilder) JobGradeId(jobGradeId string) *ApplicationOfferBasicInfoBuilder {
	builder.jobGradeId = jobGradeId
	builder.jobGradeIdFlag = true
	return builder
}

// Offer 附件 ID 列表
//
// 示例值：
func (builder *ApplicationOfferBasicInfoBuilder) CommonAttachmentIdList(commonAttachmentIdList []string) *ApplicationOfferBasicInfoBuilder {
	builder.commonAttachmentIdList = commonAttachmentIdList
	builder.commonAttachmentIdListFlag = true
	return builder
}

// 通道 ID
//
// 示例值：123456
func (builder *ApplicationOfferBasicInfoBuilder) PathwayId(pathwayId string) *ApplicationOfferBasicInfoBuilder {
	builder.pathwayId = pathwayId
	builder.pathwayIdFlag = true
	return builder
}

func (builder *ApplicationOfferBasicInfoBuilder) Build() *ApplicationOfferBasicInfo {
	req := &ApplicationOfferBasicInfo{}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.expireTimeFlag {
		req.ExpireTime = &builder.expireTime

	}
	if builder.ownerUserIdFlag {
		req.OwnerUserId = &builder.ownerUserId

	}
	if builder.creatorUserIdFlag {
		req.CreatorUserId = &builder.creatorUserId

	}
	if builder.employeeTypeFlag {
		req.EmployeeType = builder.employeeType
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.leaderUserIdFlag {
		req.LeaderUserId = &builder.leaderUserId

	}
	if builder.onboardDateFlag {
		req.OnboardDate = &builder.onboardDate

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.probationMonthFlag {
		req.ProbationMonth = &builder.probationMonth

	}
	if builder.contractYearFlag {
		req.ContractYear = &builder.contractYear

	}
	if builder.contractPeriodFlag {
		req.ContractPeriod = builder.contractPeriod
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.sequenceFlag {
		req.Sequence = builder.sequence
	}
	if builder.levelFlag {
		req.Level = builder.level
	}
	if builder.onboardAddressFlag {
		req.OnboardAddress = builder.onboardAddress
	}
	if builder.workAddressFlag {
		req.WorkAddress = builder.workAddress
	}
	if builder.customizeInfoListFlag {
		req.CustomizeInfoList = builder.customizeInfoList
	}
	if builder.workLocationAddressInfoFlag {
		req.WorkLocationAddressInfo = builder.workLocationAddressInfo
	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId

	}
	if builder.jobOfferedFlag {
		req.JobOffered = &builder.jobOffered

	}
	if builder.jobGradeIdFlag {
		req.JobGradeId = &builder.jobGradeId

	}
	if builder.commonAttachmentIdListFlag {
		req.CommonAttachmentIdList = builder.commonAttachmentIdList
	}
	if builder.pathwayIdFlag {
		req.PathwayId = &builder.pathwayId

	}
	return req
}

type ApplicationOfferBasicInfoCustomizedObject struct {
	Id *string `json:"id,omitempty"` // id

	Name *OfferSchemaName `json:"name,omitempty"` // 名字

	Type *string `json:"type,omitempty"` // 自定义字段类型

	Value *string `json:"value,omitempty"` // 自定义字段的值

	OptionValueList []*ApplicationOfferBasicInfoCustomizedObjectOptionValue `json:"option_value_list,omitempty"` // 单选/多选自定义字段的值
}

type ApplicationOfferBasicInfoCustomizedObjectBuilder struct {
	id     string // id
	idFlag bool

	name     *OfferSchemaName // 名字
	nameFlag bool

	type_    string // 自定义字段类型
	typeFlag bool

	value     string // 自定义字段的值
	valueFlag bool

	optionValueList     []*ApplicationOfferBasicInfoCustomizedObjectOptionValue // 单选/多选自定义字段的值
	optionValueListFlag bool
}

func NewApplicationOfferBasicInfoCustomizedObjectBuilder() *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder := &ApplicationOfferBasicInfoCustomizedObjectBuilder{}
	return builder
}

// id
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) Id(id string) *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) Name(name *OfferSchemaName) *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 自定义字段类型
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) Type(type_ string) *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 自定义字段的值
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) Value(value string) *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 单选/多选自定义字段的值
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) OptionValueList(optionValueList []*ApplicationOfferBasicInfoCustomizedObjectOptionValue) *ApplicationOfferBasicInfoCustomizedObjectBuilder {
	builder.optionValueList = optionValueList
	builder.optionValueListFlag = true
	return builder
}

func (builder *ApplicationOfferBasicInfoCustomizedObjectBuilder) Build() *ApplicationOfferBasicInfoCustomizedObject {
	req := &ApplicationOfferBasicInfoCustomizedObject{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.optionValueListFlag {
		req.OptionValueList = builder.optionValueList
	}
	return req
}

type ApplicationOfferBasicInfoCustomizedObjectOptionValue struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文名

	EnUs *string `json:"en_us,omitempty"` // 英文名
}

type ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder struct {
	zhCn     string // 中文名
	zhCnFlag bool

	enUs     string // 英文名
	enUsFlag bool
}

func NewApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder() *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder {
	builder := &ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder{}
	return builder
}

// 中文名
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder) ZhCn(zhCn string) *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder) EnUs(enUs string) *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

func (builder *ApplicationOfferBasicInfoCustomizedObjectOptionValueBuilder) Build() *ApplicationOfferBasicInfoCustomizedObjectOptionValue {
	req := &ApplicationOfferBasicInfoCustomizedObjectOptionValue{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	return req
}

type ApplicationOfferBasicInfoUser struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	Avatar *string `json:"avatar,omitempty"` // 头像

	Department *Department `json:"department,omitempty"` // 部门

	Timezone *string `json:"timezone,omitempty"` // 时区

	Phone *string `json:"phone,omitempty"` // 手机

	Email *string `json:"email,omitempty"` // 邮箱

	InAppScope *bool `json:"in_app_scope,omitempty"` // 是否拥有app权限
}

type ApplicationOfferBasicInfoUserBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	avatar     string // 头像
	avatarFlag bool

	department     *Department // 部门
	departmentFlag bool

	timezone     string // 时区
	timezoneFlag bool

	phone     string // 手机
	phoneFlag bool

	email     string // 邮箱
	emailFlag bool

	inAppScope     bool // 是否拥有app权限
	inAppScopeFlag bool
}

func NewApplicationOfferBasicInfoUserBuilder() *ApplicationOfferBasicInfoUserBuilder {
	builder := &ApplicationOfferBasicInfoUserBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Id(id string) *ApplicationOfferBasicInfoUserBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Name(name string) *ApplicationOfferBasicInfoUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) EnName(enName string) *ApplicationOfferBasicInfoUserBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 头像
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Avatar(avatar string) *ApplicationOfferBasicInfoUserBuilder {
	builder.avatar = avatar
	builder.avatarFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Department(department *Department) *ApplicationOfferBasicInfoUserBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 时区
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Timezone(timezone string) *ApplicationOfferBasicInfoUserBuilder {
	builder.timezone = timezone
	builder.timezoneFlag = true
	return builder
}

// 手机
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Phone(phone string) *ApplicationOfferBasicInfoUserBuilder {
	builder.phone = phone
	builder.phoneFlag = true
	return builder
}

// 邮箱
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) Email(email string) *ApplicationOfferBasicInfoUserBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 是否拥有app权限
//
// 示例值：
func (builder *ApplicationOfferBasicInfoUserBuilder) InAppScope(inAppScope bool) *ApplicationOfferBasicInfoUserBuilder {
	builder.inAppScope = inAppScope
	builder.inAppScopeFlag = true
	return builder
}

func (builder *ApplicationOfferBasicInfoUserBuilder) Build() *ApplicationOfferBasicInfoUser {
	req := &ApplicationOfferBasicInfoUser{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.avatarFlag {
		req.Avatar = &builder.avatar

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.timezoneFlag {
		req.Timezone = &builder.timezone

	}
	if builder.phoneFlag {
		req.Phone = &builder.phone

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.inAppScopeFlag {
		req.InAppScope = &builder.inAppScope

	}
	return req
}

type ApplicationOfferCustomModule struct {
	ID *string `json:"ID,omitempty"` // 自定义模块ID

	ObjectList []*ApplicationOfferCustomValue `json:"object_list,omitempty"` // 自定义模块下字段的值
}

type ApplicationOfferCustomModuleBuilder struct {
	iD     string // 自定义模块ID
	iDFlag bool

	objectList     []*ApplicationOfferCustomValue // 自定义模块下字段的值
	objectListFlag bool
}

func NewApplicationOfferCustomModuleBuilder() *ApplicationOfferCustomModuleBuilder {
	builder := &ApplicationOfferCustomModuleBuilder{}
	return builder
}

// 自定义模块ID
//
// 示例值：6930815272790114324
func (builder *ApplicationOfferCustomModuleBuilder) ID(iD string) *ApplicationOfferCustomModuleBuilder {
	builder.iD = iD
	builder.iDFlag = true
	return builder
}

// 自定义模块下字段的值
//
// 示例值：
func (builder *ApplicationOfferCustomModuleBuilder) ObjectList(objectList []*ApplicationOfferCustomValue) *ApplicationOfferCustomModuleBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *ApplicationOfferCustomModuleBuilder) Build() *ApplicationOfferCustomModule {
	req := &ApplicationOfferCustomModule{}
	if builder.iDFlag {
		req.ID = &builder.iD

	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type ApplicationOfferCustomValue struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	CustomizeValue *string `json:"customize_value,omitempty"` // 自定义字段 value
}

type ApplicationOfferCustomValueBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	customizeValue     string // 自定义字段 value
	customizeValueFlag bool
}

func NewApplicationOfferCustomValueBuilder() *ApplicationOfferCustomValueBuilder {
	builder := &ApplicationOfferCustomValueBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：key
func (builder *ApplicationOfferCustomValueBuilder) ObjectId(objectId string) *ApplicationOfferCustomValueBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 自定义字段 value
//
// 示例值：value
func (builder *ApplicationOfferCustomValueBuilder) CustomizeValue(customizeValue string) *ApplicationOfferCustomValueBuilder {
	builder.customizeValue = customizeValue
	builder.customizeValueFlag = true
	return builder
}

func (builder *ApplicationOfferCustomValueBuilder) Build() *ApplicationOfferCustomValue {
	req := &ApplicationOfferCustomValue{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.customizeValueFlag {
		req.CustomizeValue = &builder.customizeValue

	}
	return req
}

type ApplicationOfferOnboardProfile struct {
	OfferId *string `json:"offer_id,omitempty"` // offer ID

	Department *Department `json:"department,omitempty"` // 部门

	RecruitmentType *RecruitmentType `json:"recruitment_type,omitempty"` // 招聘类型

	Sequence *Sequence `json:"sequence,omitempty"` // 序列

	Level *Level `json:"level,omitempty"` // 职级

	OnboardAddress *ApplicationOfferOnboardProfileAddress `json:"onboard_address,omitempty"` // onboard地址

	WorkAddress *ApplicationOfferOnboardProfileAddress `json:"work_address,omitempty"` // 工作地址

	Leader *ApplicationOfferBasicInfoUser `json:"leader,omitempty"` // 领导

	IsWorkAddressSameToOnboard *bool `json:"is_work_address_same_to_onboard,omitempty"` // 工作地址是否与onboard地址相同

	ProbationMonth *int64 `json:"probation_month,omitempty"` // 试用期

	ContractYear *int64 `json:"contract_year,omitempty"` // 合同年限
}

type ApplicationOfferOnboardProfileBuilder struct {
	offerId     string // offer ID
	offerIdFlag bool

	department     *Department // 部门
	departmentFlag bool

	recruitmentType     *RecruitmentType // 招聘类型
	recruitmentTypeFlag bool

	sequence     *Sequence // 序列
	sequenceFlag bool

	level     *Level // 职级
	levelFlag bool

	onboardAddress     *ApplicationOfferOnboardProfileAddress // onboard地址
	onboardAddressFlag bool

	workAddress     *ApplicationOfferOnboardProfileAddress // 工作地址
	workAddressFlag bool

	leader     *ApplicationOfferBasicInfoUser // 领导
	leaderFlag bool

	isWorkAddressSameToOnboard     bool // 工作地址是否与onboard地址相同
	isWorkAddressSameToOnboardFlag bool

	probationMonth     int64 // 试用期
	probationMonthFlag bool

	contractYear     int64 // 合同年限
	contractYearFlag bool
}

func NewApplicationOfferOnboardProfileBuilder() *ApplicationOfferOnboardProfileBuilder {
	builder := &ApplicationOfferOnboardProfileBuilder{}
	return builder
}

// offer ID
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileBuilder) OfferId(offerId string) *ApplicationOfferOnboardProfileBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) Department(department *Department) *ApplicationOfferOnboardProfileBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 招聘类型
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) RecruitmentType(recruitmentType *RecruitmentType) *ApplicationOfferOnboardProfileBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 序列
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) Sequence(sequence *Sequence) *ApplicationOfferOnboardProfileBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 职级
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) Level(level *Level) *ApplicationOfferOnboardProfileBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// onboard地址
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) OnboardAddress(onboardAddress *ApplicationOfferOnboardProfileAddress) *ApplicationOfferOnboardProfileBuilder {
	builder.onboardAddress = onboardAddress
	builder.onboardAddressFlag = true
	return builder
}

// 工作地址
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) WorkAddress(workAddress *ApplicationOfferOnboardProfileAddress) *ApplicationOfferOnboardProfileBuilder {
	builder.workAddress = workAddress
	builder.workAddressFlag = true
	return builder
}

// 领导
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) Leader(leader *ApplicationOfferBasicInfoUser) *ApplicationOfferOnboardProfileBuilder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 工作地址是否与onboard地址相同
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileBuilder) IsWorkAddressSameToOnboard(isWorkAddressSameToOnboard bool) *ApplicationOfferOnboardProfileBuilder {
	builder.isWorkAddressSameToOnboard = isWorkAddressSameToOnboard
	builder.isWorkAddressSameToOnboardFlag = true
	return builder
}

// 试用期
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileBuilder) ProbationMonth(probationMonth int64) *ApplicationOfferOnboardProfileBuilder {
	builder.probationMonth = probationMonth
	builder.probationMonthFlag = true
	return builder
}

// 合同年限
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileBuilder) ContractYear(contractYear int64) *ApplicationOfferOnboardProfileBuilder {
	builder.contractYear = contractYear
	builder.contractYearFlag = true
	return builder
}

func (builder *ApplicationOfferOnboardProfileBuilder) Build() *ApplicationOfferOnboardProfile {
	req := &ApplicationOfferOnboardProfile{}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.sequenceFlag {
		req.Sequence = builder.sequence
	}
	if builder.levelFlag {
		req.Level = builder.level
	}
	if builder.onboardAddressFlag {
		req.OnboardAddress = builder.onboardAddress
	}
	if builder.workAddressFlag {
		req.WorkAddress = builder.workAddress
	}
	if builder.leaderFlag {
		req.Leader = builder.leader
	}
	if builder.isWorkAddressSameToOnboardFlag {
		req.IsWorkAddressSameToOnboard = &builder.isWorkAddressSameToOnboard

	}
	if builder.probationMonthFlag {
		req.ProbationMonth = &builder.probationMonth

	}
	if builder.contractYearFlag {
		req.ContractYear = &builder.contractYear

	}
	return req
}

type ApplicationOfferOnboardProfileAddress struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	District *ApplicationOfferOnboardProfileCity `json:"district,omitempty"` // 区

	City *ApplicationOfferOnboardProfileCity `json:"city,omitempty"` // 城市

	State *ApplicationOfferOnboardProfileCity `json:"state,omitempty"` // 省

	Country *ApplicationOfferOnboardProfileCity `json:"country,omitempty"` // 国家

	UsageIdList []string `json:"usage_id_list,omitempty"` // 使用ID列表

	ActiveStatus *int64 `json:"active_status,omitempty"` // 状态
}

type ApplicationOfferOnboardProfileAddressBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	district     *ApplicationOfferOnboardProfileCity // 区
	districtFlag bool

	city     *ApplicationOfferOnboardProfileCity // 城市
	cityFlag bool

	state     *ApplicationOfferOnboardProfileCity // 省
	stateFlag bool

	country     *ApplicationOfferOnboardProfileCity // 国家
	countryFlag bool

	usageIdList     []string // 使用ID列表
	usageIdListFlag bool

	activeStatus     int64 // 状态
	activeStatusFlag bool
}

func NewApplicationOfferOnboardProfileAddressBuilder() *ApplicationOfferOnboardProfileAddressBuilder {
	builder := &ApplicationOfferOnboardProfileAddressBuilder{}
	return builder
}

// ID
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileAddressBuilder) Id(id string) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileAddressBuilder) Name(name string) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileAddressBuilder) EnName(enName string) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 区
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileAddressBuilder) District(district *ApplicationOfferOnboardProfileCity) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileAddressBuilder) City(city *ApplicationOfferOnboardProfileCity) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileAddressBuilder) State(state *ApplicationOfferOnboardProfileCity) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileAddressBuilder) Country(country *ApplicationOfferOnboardProfileCity) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

// 使用ID列表
//
// 示例值：
func (builder *ApplicationOfferOnboardProfileAddressBuilder) UsageIdList(usageIdList []string) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.usageIdList = usageIdList
	builder.usageIdListFlag = true
	return builder
}

// 状态
//
// 示例值：111
func (builder *ApplicationOfferOnboardProfileAddressBuilder) ActiveStatus(activeStatus int64) *ApplicationOfferOnboardProfileAddressBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *ApplicationOfferOnboardProfileAddressBuilder) Build() *ApplicationOfferOnboardProfileAddress {
	req := &ApplicationOfferOnboardProfileAddress{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	if builder.usageIdListFlag {
		req.UsageIdList = builder.usageIdList
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type ApplicationOfferOnboardProfileCity struct {
	Code *string `json:"code,omitempty"` // 编码

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	LocationType *int64 `json:"location_type,omitempty"` // 地址类型
}

type ApplicationOfferOnboardProfileCityBuilder struct {
	code     string // 编码
	codeFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	locationType     int64 // 地址类型
	locationTypeFlag bool
}

func NewApplicationOfferOnboardProfileCityBuilder() *ApplicationOfferOnboardProfileCityBuilder {
	builder := &ApplicationOfferOnboardProfileCityBuilder{}
	return builder
}

// 编码
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileCityBuilder) Code(code string) *ApplicationOfferOnboardProfileCityBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 名字
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileCityBuilder) Name(name string) *ApplicationOfferOnboardProfileCityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileCityBuilder) EnName(enName string) *ApplicationOfferOnboardProfileCityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 地址类型
//
// 示例值：123
func (builder *ApplicationOfferOnboardProfileCityBuilder) LocationType(locationType int64) *ApplicationOfferOnboardProfileCityBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *ApplicationOfferOnboardProfileCityBuilder) Build() *ApplicationOfferOnboardProfileCity {
	req := &ApplicationOfferOnboardProfileCity{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type ApplicationOfferSalaryPlan struct {
	Currency *string `json:"currency,omitempty"` // 币种

	BasicSalary *string `json:"basic_salary,omitempty"` // 基本薪资，为JSON 格式，amount 代表基本薪资的金额，peroid 代表基本薪资的周期单位，如："{"amount":"10000","period":2}"

	ProbationSalaryPercentage *string `json:"probation_salary_percentage,omitempty"` // 试用期百分比

	AwardSalaryMultiple *string `json:"award_salary_multiple,omitempty"` // 年终奖月数

	OptionShares *string `json:"option_shares,omitempty"` // 期权股数

	QuarterlyBonus *string `json:"quarterly_bonus,omitempty"` // 季度奖金额

	HalfYearBonus *string `json:"half_year_bonus,omitempty"` // 半年奖金额

	TotalAnnualCash *string `json:"total_annual_cash,omitempty"` // 年度现金总额(数量，非公式)

	CustomizeInfoList []*ApplicationOfferCustomValue `json:"customize_info_list,omitempty"` // 自定义字段的 value 信息
}

type ApplicationOfferSalaryPlanBuilder struct {
	currency     string // 币种
	currencyFlag bool

	basicSalary     string // 基本薪资，为JSON 格式，amount 代表基本薪资的金额，peroid 代表基本薪资的周期单位，如："{"amount":"10000","period":2}"
	basicSalaryFlag bool

	probationSalaryPercentage     string // 试用期百分比
	probationSalaryPercentageFlag bool

	awardSalaryMultiple     string // 年终奖月数
	awardSalaryMultipleFlag bool

	optionShares     string // 期权股数
	optionSharesFlag bool

	quarterlyBonus     string // 季度奖金额
	quarterlyBonusFlag bool

	halfYearBonus     string // 半年奖金额
	halfYearBonusFlag bool

	totalAnnualCash     string // 年度现金总额(数量，非公式)
	totalAnnualCashFlag bool

	customizeInfoList     []*ApplicationOfferCustomValue // 自定义字段的 value 信息
	customizeInfoListFlag bool
}

func NewApplicationOfferSalaryPlanBuilder() *ApplicationOfferSalaryPlanBuilder {
	builder := &ApplicationOfferSalaryPlanBuilder{}
	return builder
}

// 币种
//
// 示例值：CNY
func (builder *ApplicationOfferSalaryPlanBuilder) Currency(currency string) *ApplicationOfferSalaryPlanBuilder {
	builder.currency = currency
	builder.currencyFlag = true
	return builder
}

// 基本薪资，为JSON 格式，amount 代表基本薪资的金额，peroid 代表基本薪资的周期单位，如："{"amount":"10000","period":2}"
//
// 示例值：{"amount":"10000","period":2}
func (builder *ApplicationOfferSalaryPlanBuilder) BasicSalary(basicSalary string) *ApplicationOfferSalaryPlanBuilder {
	builder.basicSalary = basicSalary
	builder.basicSalaryFlag = true
	return builder
}

// 试用期百分比
//
// 示例值：10%
func (builder *ApplicationOfferSalaryPlanBuilder) ProbationSalaryPercentage(probationSalaryPercentage string) *ApplicationOfferSalaryPlanBuilder {
	builder.probationSalaryPercentage = probationSalaryPercentage
	builder.probationSalaryPercentageFlag = true
	return builder
}

// 年终奖月数
//
// 示例值：12
func (builder *ApplicationOfferSalaryPlanBuilder) AwardSalaryMultiple(awardSalaryMultiple string) *ApplicationOfferSalaryPlanBuilder {
	builder.awardSalaryMultiple = awardSalaryMultiple
	builder.awardSalaryMultipleFlag = true
	return builder
}

// 期权股数
//
// 示例值：11
func (builder *ApplicationOfferSalaryPlanBuilder) OptionShares(optionShares string) *ApplicationOfferSalaryPlanBuilder {
	builder.optionShares = optionShares
	builder.optionSharesFlag = true
	return builder
}

// 季度奖金额
//
// 示例值：11111
func (builder *ApplicationOfferSalaryPlanBuilder) QuarterlyBonus(quarterlyBonus string) *ApplicationOfferSalaryPlanBuilder {
	builder.quarterlyBonus = quarterlyBonus
	builder.quarterlyBonusFlag = true
	return builder
}

// 半年奖金额
//
// 示例值：11111
func (builder *ApplicationOfferSalaryPlanBuilder) HalfYearBonus(halfYearBonus string) *ApplicationOfferSalaryPlanBuilder {
	builder.halfYearBonus = halfYearBonus
	builder.halfYearBonusFlag = true
	return builder
}

// 年度现金总额(数量，非公式)
//
// 示例值：11111
func (builder *ApplicationOfferSalaryPlanBuilder) TotalAnnualCash(totalAnnualCash string) *ApplicationOfferSalaryPlanBuilder {
	builder.totalAnnualCash = totalAnnualCash
	builder.totalAnnualCashFlag = true
	return builder
}

// 自定义字段的 value 信息
//
// 示例值：
func (builder *ApplicationOfferSalaryPlanBuilder) CustomizeInfoList(customizeInfoList []*ApplicationOfferCustomValue) *ApplicationOfferSalaryPlanBuilder {
	builder.customizeInfoList = customizeInfoList
	builder.customizeInfoListFlag = true
	return builder
}

func (builder *ApplicationOfferSalaryPlanBuilder) Build() *ApplicationOfferSalaryPlan {
	req := &ApplicationOfferSalaryPlan{}
	if builder.currencyFlag {
		req.Currency = &builder.currency

	}
	if builder.basicSalaryFlag {
		req.BasicSalary = &builder.basicSalary

	}
	if builder.probationSalaryPercentageFlag {
		req.ProbationSalaryPercentage = &builder.probationSalaryPercentage

	}
	if builder.awardSalaryMultipleFlag {
		req.AwardSalaryMultiple = &builder.awardSalaryMultiple

	}
	if builder.optionSharesFlag {
		req.OptionShares = &builder.optionShares

	}
	if builder.quarterlyBonusFlag {
		req.QuarterlyBonus = &builder.quarterlyBonus

	}
	if builder.halfYearBonusFlag {
		req.HalfYearBonus = &builder.halfYearBonus

	}
	if builder.totalAnnualCashFlag {
		req.TotalAnnualCash = &builder.totalAnnualCash

	}
	if builder.customizeInfoListFlag {
		req.CustomizeInfoList = builder.customizeInfoList
	}
	return req
}

type ApplicationOfferSalaryPlanSalaryTemplate struct {
	TemplateKey *string `json:"template_key,omitempty"` // 模版key

	TotalAmount *string `json:"total_amount,omitempty"` // 总金额

	Currency *string `json:"currency,omitempty"` // 币种

	SalaryContent *string `json:"salary_content,omitempty"` // 薪酬内容
}

type ApplicationOfferSalaryPlanSalaryTemplateBuilder struct {
	templateKey     string // 模版key
	templateKeyFlag bool

	totalAmount     string // 总金额
	totalAmountFlag bool

	currency     string // 币种
	currencyFlag bool

	salaryContent     string // 薪酬内容
	salaryContentFlag bool
}

func NewApplicationOfferSalaryPlanSalaryTemplateBuilder() *ApplicationOfferSalaryPlanSalaryTemplateBuilder {
	builder := &ApplicationOfferSalaryPlanSalaryTemplateBuilder{}
	return builder
}

// 模版key
//
// 示例值：
func (builder *ApplicationOfferSalaryPlanSalaryTemplateBuilder) TemplateKey(templateKey string) *ApplicationOfferSalaryPlanSalaryTemplateBuilder {
	builder.templateKey = templateKey
	builder.templateKeyFlag = true
	return builder
}

// 总金额
//
// 示例值：
func (builder *ApplicationOfferSalaryPlanSalaryTemplateBuilder) TotalAmount(totalAmount string) *ApplicationOfferSalaryPlanSalaryTemplateBuilder {
	builder.totalAmount = totalAmount
	builder.totalAmountFlag = true
	return builder
}

// 币种
//
// 示例值：
func (builder *ApplicationOfferSalaryPlanSalaryTemplateBuilder) Currency(currency string) *ApplicationOfferSalaryPlanSalaryTemplateBuilder {
	builder.currency = currency
	builder.currencyFlag = true
	return builder
}

// 薪酬内容
//
// 示例值：
func (builder *ApplicationOfferSalaryPlanSalaryTemplateBuilder) SalaryContent(salaryContent string) *ApplicationOfferSalaryPlanSalaryTemplateBuilder {
	builder.salaryContent = salaryContent
	builder.salaryContentFlag = true
	return builder
}

func (builder *ApplicationOfferSalaryPlanSalaryTemplateBuilder) Build() *ApplicationOfferSalaryPlanSalaryTemplate {
	req := &ApplicationOfferSalaryPlanSalaryTemplate{}
	if builder.templateKeyFlag {
		req.TemplateKey = &builder.templateKey

	}
	if builder.totalAmountFlag {
		req.TotalAmount = &builder.totalAmount

	}
	if builder.currencyFlag {
		req.Currency = &builder.currency

	}
	if builder.salaryContentFlag {
		req.SalaryContent = &builder.salaryContent

	}
	return req
}

type ApplicationPrehire struct {
	Id *string `json:"id,omitempty"` // 投递id

	BasicInfo *ApplicationBasicInfo `json:"basic_info,omitempty"` // 投递基础信息

	Talent *ApplicationTalent `json:"talent,omitempty"` // 人才数据

	Job *ApplicationJob `json:"job,omitempty"` // 职位数据

	Offer *ApplicationPrehireOffer `json:"offer,omitempty"` // Offer数据
}

type ApplicationPrehireBuilder struct {
	id     string // 投递id
	idFlag bool

	basicInfo     *ApplicationBasicInfo // 投递基础信息
	basicInfoFlag bool

	talent     *ApplicationTalent // 人才数据
	talentFlag bool

	job     *ApplicationJob // 职位数据
	jobFlag bool

	offer     *ApplicationPrehireOffer // Offer数据
	offerFlag bool
}

func NewApplicationPrehireBuilder() *ApplicationPrehireBuilder {
	builder := &ApplicationPrehireBuilder{}
	return builder
}

// 投递id
//
// 示例值：6949805467799537964
func (builder *ApplicationPrehireBuilder) Id(id string) *ApplicationPrehireBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递基础信息
//
// 示例值：
func (builder *ApplicationPrehireBuilder) BasicInfo(basicInfo *ApplicationBasicInfo) *ApplicationPrehireBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 人才数据
//
// 示例值：
func (builder *ApplicationPrehireBuilder) Talent(talent *ApplicationTalent) *ApplicationPrehireBuilder {
	builder.talent = talent
	builder.talentFlag = true
	return builder
}

// 职位数据
//
// 示例值：
func (builder *ApplicationPrehireBuilder) Job(job *ApplicationJob) *ApplicationPrehireBuilder {
	builder.job = job
	builder.jobFlag = true
	return builder
}

// Offer数据
//
// 示例值：
func (builder *ApplicationPrehireBuilder) Offer(offer *ApplicationPrehireOffer) *ApplicationPrehireBuilder {
	builder.offer = offer
	builder.offerFlag = true
	return builder
}

func (builder *ApplicationPrehireBuilder) Build() *ApplicationPrehire {
	req := &ApplicationPrehire{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.talentFlag {
		req.Talent = builder.talent
	}
	if builder.jobFlag {
		req.Job = builder.job
	}
	if builder.offerFlag {
		req.Offer = builder.offer
	}
	return req
}

type ApplicationPrehireDepartment struct {
	Id *string `json:"id,omitempty"` //

	Name *string `json:"name,omitempty"` //

	EnName *string `json:"en_name,omitempty"` //
}

type ApplicationPrehireDepartmentBuilder struct {
	id     string //
	idFlag bool

	name     string //
	nameFlag bool

	enName     string //
	enNameFlag bool
}

func NewApplicationPrehireDepartmentBuilder() *ApplicationPrehireDepartmentBuilder {
	builder := &ApplicationPrehireDepartmentBuilder{}
	return builder
}

//
//
// 示例值：6949805467799537964
func (builder *ApplicationPrehireDepartmentBuilder) Id(id string) *ApplicationPrehireDepartmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

//
//
// 示例值：
func (builder *ApplicationPrehireDepartmentBuilder) Name(name string) *ApplicationPrehireDepartmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

//
//
// 示例值：
func (builder *ApplicationPrehireDepartmentBuilder) EnName(enName string) *ApplicationPrehireDepartmentBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *ApplicationPrehireDepartmentBuilder) Build() *ApplicationPrehireDepartment {
	req := &ApplicationPrehireDepartment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type ApplicationPrehireOffer struct {
	BasicInfo *ApplicationPrehireOfferBasic `json:"basic_info,omitempty"` // 投递基础信息

	OfferOnboardProfile *AppliOfferOnboardProfile `json:"offer_onboard_profile,omitempty"` // offer入职信息

	AttachmentList []*ApplicationOfferAttachment `json:"attachment_list,omitempty"` // offer附件
}

type ApplicationPrehireOfferBuilder struct {
	basicInfo     *ApplicationPrehireOfferBasic // 投递基础信息
	basicInfoFlag bool

	offerOnboardProfile     *AppliOfferOnboardProfile // offer入职信息
	offerOnboardProfileFlag bool

	attachmentList     []*ApplicationOfferAttachment // offer附件
	attachmentListFlag bool
}

func NewApplicationPrehireOfferBuilder() *ApplicationPrehireOfferBuilder {
	builder := &ApplicationPrehireOfferBuilder{}
	return builder
}

// 投递基础信息
//
// 示例值：
func (builder *ApplicationPrehireOfferBuilder) BasicInfo(basicInfo *ApplicationPrehireOfferBasic) *ApplicationPrehireOfferBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// offer入职信息
//
// 示例值：
func (builder *ApplicationPrehireOfferBuilder) OfferOnboardProfile(offerOnboardProfile *AppliOfferOnboardProfile) *ApplicationPrehireOfferBuilder {
	builder.offerOnboardProfile = offerOnboardProfile
	builder.offerOnboardProfileFlag = true
	return builder
}

// offer附件
//
// 示例值：
func (builder *ApplicationPrehireOfferBuilder) AttachmentList(attachmentList []*ApplicationOfferAttachment) *ApplicationPrehireOfferBuilder {
	builder.attachmentList = attachmentList
	builder.attachmentListFlag = true
	return builder
}

func (builder *ApplicationPrehireOfferBuilder) Build() *ApplicationPrehireOffer {
	req := &ApplicationPrehireOffer{}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.offerOnboardProfileFlag {
		req.OfferOnboardProfile = builder.offerOnboardProfile
	}
	if builder.attachmentListFlag {
		req.AttachmentList = builder.attachmentList
	}
	return req
}

type ApplicationPrehireOfferBasic struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	ApplicationId *string `json:"application_id,omitempty"` // 候选人 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	Remark *string `json:"remark,omitempty"` // 备注

	ExpireTime *int64 `json:"expire_time,omitempty"` // 过期时间

	OnboardTime *int `json:"onboard_time,omitempty"` // 入职时间

	TimeZone *string `json:"time_zone,omitempty"` // 时区

	OfferType *int `json:"offer_type,omitempty"` // Offer类型 1=Social, 2=Campus, 3=Intern, 4=InternTransfer

	OfferStatus *int `json:"offer_status,omitempty"` // Offer状态

	Owner *AppliOfferBasicInfoUser `json:"owner,omitempty"` // Offer负责人

	OfferJobTitle *string `json:"offer_job_title,omitempty"` // Offer职位名称
}

type ApplicationPrehireOfferBasicBuilder struct {
	offerId     string // Offer ID
	offerIdFlag bool

	applicationId     string // 候选人 ID
	applicationIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	remark     string // 备注
	remarkFlag bool

	expireTime     int64 // 过期时间
	expireTimeFlag bool

	onboardTime     int // 入职时间
	onboardTimeFlag bool

	timeZone     string // 时区
	timeZoneFlag bool

	offerType     int // Offer类型 1=Social, 2=Campus, 3=Intern, 4=InternTransfer
	offerTypeFlag bool

	offerStatus     int // Offer状态
	offerStatusFlag bool

	owner     *AppliOfferBasicInfoUser // Offer负责人
	ownerFlag bool

	offerJobTitle     string // Offer职位名称
	offerJobTitleFlag bool
}

func NewApplicationPrehireOfferBasicBuilder() *ApplicationPrehireOfferBasicBuilder {
	builder := &ApplicationPrehireOfferBasicBuilder{}
	return builder
}

// Offer ID
//
// 示例值：11111
func (builder *ApplicationPrehireOfferBasicBuilder) OfferId(offerId string) *ApplicationPrehireOfferBasicBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 候选人 ID
//
// 示例值：11111
func (builder *ApplicationPrehireOfferBasicBuilder) ApplicationId(applicationId string) *ApplicationPrehireOfferBasicBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：11111
func (builder *ApplicationPrehireOfferBasicBuilder) TalentId(talentId string) *ApplicationPrehireOfferBasicBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位 ID
//
// 示例值：11111
func (builder *ApplicationPrehireOfferBasicBuilder) JobId(jobId string) *ApplicationPrehireOfferBasicBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 备注
//
// 示例值：test
func (builder *ApplicationPrehireOfferBasicBuilder) Remark(remark string) *ApplicationPrehireOfferBasicBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 过期时间
//
// 示例值：1111233344
func (builder *ApplicationPrehireOfferBasicBuilder) ExpireTime(expireTime int64) *ApplicationPrehireOfferBasicBuilder {
	builder.expireTime = expireTime
	builder.expireTimeFlag = true
	return builder
}

// 入职时间
//
// 示例值：1111233344
func (builder *ApplicationPrehireOfferBasicBuilder) OnboardTime(onboardTime int) *ApplicationPrehireOfferBasicBuilder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 时区
//
// 示例值：111
func (builder *ApplicationPrehireOfferBasicBuilder) TimeZone(timeZone string) *ApplicationPrehireOfferBasicBuilder {
	builder.timeZone = timeZone
	builder.timeZoneFlag = true
	return builder
}

// Offer类型 1=Social, 2=Campus, 3=Intern, 4=InternTransfer
//
// 示例值：1
func (builder *ApplicationPrehireOfferBasicBuilder) OfferType(offerType int) *ApplicationPrehireOfferBasicBuilder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// Offer状态
//
// 示例值：0
func (builder *ApplicationPrehireOfferBasicBuilder) OfferStatus(offerStatus int) *ApplicationPrehireOfferBasicBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// Offer负责人
//
// 示例值：
func (builder *ApplicationPrehireOfferBasicBuilder) Owner(owner *AppliOfferBasicInfoUser) *ApplicationPrehireOfferBasicBuilder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

// Offer职位名称
//
// 示例值：test
func (builder *ApplicationPrehireOfferBasicBuilder) OfferJobTitle(offerJobTitle string) *ApplicationPrehireOfferBasicBuilder {
	builder.offerJobTitle = offerJobTitle
	builder.offerJobTitleFlag = true
	return builder
}

func (builder *ApplicationPrehireOfferBasicBuilder) Build() *ApplicationPrehireOfferBasic {
	req := &ApplicationPrehireOfferBasic{}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.expireTimeFlag {
		req.ExpireTime = &builder.expireTime

	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime

	}
	if builder.timeZoneFlag {
		req.TimeZone = &builder.timeZone

	}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.ownerFlag {
		req.Owner = builder.owner
	}
	if builder.offerJobTitleFlag {
		req.OfferJobTitle = &builder.offerJobTitle

	}
	return req
}

type ApplicationPrehireOptional struct {
	WithTalentBasic *bool `json:"with_talent_basic,omitempty"` // 是否包含基础信息

	WithTalentExtend *bool `json:"with_talent_extend,omitempty"` // 是否包含扩展信息

	WithJob *bool `json:"with_job,omitempty"` // 是否包含岗位信息

	WithOffer *bool `json:"with_offer,omitempty"` // 是否包含offer信息
}

type ApplicationPrehireOptionalBuilder struct {
	withTalentBasic     bool // 是否包含基础信息
	withTalentBasicFlag bool

	withTalentExtend     bool // 是否包含扩展信息
	withTalentExtendFlag bool

	withJob     bool // 是否包含岗位信息
	withJobFlag bool

	withOffer     bool // 是否包含offer信息
	withOfferFlag bool
}

func NewApplicationPrehireOptionalBuilder() *ApplicationPrehireOptionalBuilder {
	builder := &ApplicationPrehireOptionalBuilder{}
	return builder
}

// 是否包含基础信息
//
// 示例值：
func (builder *ApplicationPrehireOptionalBuilder) WithTalentBasic(withTalentBasic bool) *ApplicationPrehireOptionalBuilder {
	builder.withTalentBasic = withTalentBasic
	builder.withTalentBasicFlag = true
	return builder
}

// 是否包含扩展信息
//
// 示例值：
func (builder *ApplicationPrehireOptionalBuilder) WithTalentExtend(withTalentExtend bool) *ApplicationPrehireOptionalBuilder {
	builder.withTalentExtend = withTalentExtend
	builder.withTalentExtendFlag = true
	return builder
}

// 是否包含岗位信息
//
// 示例值：
func (builder *ApplicationPrehireOptionalBuilder) WithJob(withJob bool) *ApplicationPrehireOptionalBuilder {
	builder.withJob = withJob
	builder.withJobFlag = true
	return builder
}

// 是否包含offer信息
//
// 示例值：
func (builder *ApplicationPrehireOptionalBuilder) WithOffer(withOffer bool) *ApplicationPrehireOptionalBuilder {
	builder.withOffer = withOffer
	builder.withOfferFlag = true
	return builder
}

func (builder *ApplicationPrehireOptionalBuilder) Build() *ApplicationPrehireOptional {
	req := &ApplicationPrehireOptional{}
	if builder.withTalentBasicFlag {
		req.WithTalentBasic = &builder.withTalentBasic

	}
	if builder.withTalentExtendFlag {
		req.WithTalentExtend = &builder.withTalentExtend

	}
	if builder.withJobFlag {
		req.WithJob = &builder.withJob

	}
	if builder.withOfferFlag {
		req.WithOffer = &builder.withOffer

	}
	return req
}

type ApplicationReferral struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type ApplicationReferralBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewApplicationReferralBuilder() *ApplicationReferralBuilder {
	builder := &ApplicationReferralBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationReferralBuilder) Id(id string) *ApplicationReferralBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationReferralBuilder) Name(name string) *ApplicationReferralBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *ApplicationReferralBuilder) EnName(enName string) *ApplicationReferralBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *ApplicationReferralBuilder) Build() *ApplicationReferral {
	req := &ApplicationReferral{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type ApplicationResumeSource struct {
	Id *string `json:"id,omitempty"` // 投递来源 ID

	Name *I18n `json:"name,omitempty"` // 投递来源名称

	ResumeSourceType *int `json:"resume_source_type,omitempty"` // 投递来源类型
}

type ApplicationResumeSourceBuilder struct {
	id     string // 投递来源 ID
	idFlag bool

	name     *I18n // 投递来源名称
	nameFlag bool

	resumeSourceType     int // 投递来源类型
	resumeSourceTypeFlag bool
}

func NewApplicationResumeSourceBuilder() *ApplicationResumeSourceBuilder {
	builder := &ApplicationResumeSourceBuilder{}
	return builder
}

// 投递来源 ID
//
// 示例值：614218419274131
func (builder *ApplicationResumeSourceBuilder) Id(id string) *ApplicationResumeSourceBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递来源名称
//
// 示例值：
func (builder *ApplicationResumeSourceBuilder) Name(name *I18n) *ApplicationResumeSourceBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 投递来源类型
//
// 示例值：10002
func (builder *ApplicationResumeSourceBuilder) ResumeSourceType(resumeSourceType int) *ApplicationResumeSourceBuilder {
	builder.resumeSourceType = resumeSourceType
	builder.resumeSourceTypeFlag = true
	return builder
}

func (builder *ApplicationResumeSourceBuilder) Build() *ApplicationResumeSource {
	req := &ApplicationResumeSource{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.resumeSourceTypeFlag {
		req.ResumeSourceType = &builder.resumeSourceType

	}
	return req
}

type ApplicationStage struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	Type *int64 `json:"type,omitempty"` // 类型

	Args *string `json:"args,omitempty"` // 参数

	CreatorId *string `json:"creator_id,omitempty"` // 创建者ID

	Seq *int64 `json:"seq,omitempty"` // 序列

	PublishName *string `json:"publish_name,omitempty"` // 发布名称

	PublishEnName *string `json:"publish_en_name,omitempty"` // 发布英文名
}

type ApplicationStageBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	type_    int64 // 类型
	typeFlag bool

	args     string // 参数
	argsFlag bool

	creatorId     string // 创建者ID
	creatorIdFlag bool

	seq     int64 // 序列
	seqFlag bool

	publishName     string // 发布名称
	publishNameFlag bool

	publishEnName     string // 发布英文名
	publishEnNameFlag bool
}

func NewApplicationStageBuilder() *ApplicationStageBuilder {
	builder := &ApplicationStageBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *ApplicationStageBuilder) Id(id string) *ApplicationStageBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：xx
func (builder *ApplicationStageBuilder) Name(name string) *ApplicationStageBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：xx
func (builder *ApplicationStageBuilder) EnName(enName string) *ApplicationStageBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 类型
//
// 示例值：1
func (builder *ApplicationStageBuilder) Type(type_ int64) *ApplicationStageBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 参数
//
// 示例值：xx
func (builder *ApplicationStageBuilder) Args(args string) *ApplicationStageBuilder {
	builder.args = args
	builder.argsFlag = true
	return builder
}

// 创建者ID
//
// 示例值：xx
func (builder *ApplicationStageBuilder) CreatorId(creatorId string) *ApplicationStageBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 序列
//
// 示例值：1
func (builder *ApplicationStageBuilder) Seq(seq int64) *ApplicationStageBuilder {
	builder.seq = seq
	builder.seqFlag = true
	return builder
}

// 发布名称
//
// 示例值：xx
func (builder *ApplicationStageBuilder) PublishName(publishName string) *ApplicationStageBuilder {
	builder.publishName = publishName
	builder.publishNameFlag = true
	return builder
}

// 发布英文名
//
// 示例值：xx
func (builder *ApplicationStageBuilder) PublishEnName(publishEnName string) *ApplicationStageBuilder {
	builder.publishEnName = publishEnName
	builder.publishEnNameFlag = true
	return builder
}

func (builder *ApplicationStageBuilder) Build() *ApplicationStage {
	req := &ApplicationStage{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.argsFlag {
		req.Args = &builder.args

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.seqFlag {
		req.Seq = &builder.seq

	}
	if builder.publishNameFlag {
		req.PublishName = &builder.publishName

	}
	if builder.publishEnNameFlag {
		req.PublishEnName = &builder.publishEnName

	}
	return req
}

type ApplicationStageInfo struct {
	Id *string `json:"id,omitempty"` // 阶段 ID

	ZhName *string `json:"zh_name,omitempty"` // 阶段中文名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	Type *int `json:"type,omitempty"` // 阶段类型
}

type ApplicationStageInfoBuilder struct {
	id     string // 阶段 ID
	idFlag bool

	zhName     string // 阶段中文名字
	zhNameFlag bool

	enName     string // 英文名
	enNameFlag bool

	type_    int // 阶段类型
	typeFlag bool
}

func NewApplicationStageInfoBuilder() *ApplicationStageInfoBuilder {
	builder := &ApplicationStageInfoBuilder{}
	return builder
}

// 阶段 ID
//
// 示例值：614218419274131
func (builder *ApplicationStageInfoBuilder) Id(id string) *ApplicationStageInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 阶段中文名字
//
// 示例值：面试
func (builder *ApplicationStageInfoBuilder) ZhName(zhName string) *ApplicationStageInfoBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名
//
// 示例值：Interview
func (builder *ApplicationStageInfoBuilder) EnName(enName string) *ApplicationStageInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 阶段类型
//
// 示例值：1
func (builder *ApplicationStageInfoBuilder) Type(type_ int) *ApplicationStageInfoBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

func (builder *ApplicationStageInfoBuilder) Build() *ApplicationStageInfo {
	req := &ApplicationStageInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	return req
}

type ApplicationStageTime struct {
	StageId *string `json:"stage_id,omitempty"` // 阶段 ID

	EnterTime *string `json:"enter_time,omitempty"` // 最近一次进入该阶段的时间

	ExitTime *string `json:"exit_time,omitempty"` // 最后一次离开时间，如当前在该阶段，则为空
}

type ApplicationStageTimeBuilder struct {
	stageId     string // 阶段 ID
	stageIdFlag bool

	enterTime     string // 最近一次进入该阶段的时间
	enterTimeFlag bool

	exitTime     string // 最后一次离开时间，如当前在该阶段，则为空
	exitTimeFlag bool
}

func NewApplicationStageTimeBuilder() *ApplicationStageTimeBuilder {
	builder := &ApplicationStageTimeBuilder{}
	return builder
}

// 阶段 ID
//
// 示例值：614218419274131
func (builder *ApplicationStageTimeBuilder) StageId(stageId string) *ApplicationStageTimeBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 最近一次进入该阶段的时间
//
// 示例值：1632991542615
func (builder *ApplicationStageTimeBuilder) EnterTime(enterTime string) *ApplicationStageTimeBuilder {
	builder.enterTime = enterTime
	builder.enterTimeFlag = true
	return builder
}

// 最后一次离开时间，如当前在该阶段，则为空
//
// 示例值：1631509574398
func (builder *ApplicationStageTimeBuilder) ExitTime(exitTime string) *ApplicationStageTimeBuilder {
	builder.exitTime = exitTime
	builder.exitTimeFlag = true
	return builder
}

func (builder *ApplicationStageTimeBuilder) Build() *ApplicationStageTime {
	req := &ApplicationStageTime{}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId

	}
	if builder.enterTimeFlag {
		req.EnterTime = &builder.enterTime

	}
	if builder.exitTimeFlag {
		req.ExitTime = &builder.exitTime

	}
	return req
}

type ApplicationTalent struct {
	Id *string `json:"id,omitempty"` // ID

	BasicInfo *ApplicationTalentBasicInfo `json:"basic_info,omitempty"` // 基础信息

	SelfEvaluation *string `json:"self_evaluation,omitempty"` // 自我评价

	EducationList []*AppliTalentEducationInfo `json:"education_list,omitempty"` // 教育经历

	CareerList []*ApplicationTalentCareerInfo `json:"career_list,omitempty"` // 工作经历

	ProjectList []*ApplicationTalentProjectInfo `json:"project_list,omitempty"` // 项目经历

	WorksList []*ApplicationTalentWorksInfo `json:"works_list,omitempty"` // 作品集

	AwardList []*ApplicationTalentAwardInfo `json:"award_list,omitempty"` // 获奖列表

	CompetitionList []*AppliTalentCompetitionInfo `json:"competition_list,omitempty"` // 竞赛列表

	CertificateList []*AppliTalentCertificateInfo `json:"certificate_list,omitempty"` // 证书列表

	LanguageList []*ApplicationTalentLanguageInfo `json:"language_list,omitempty"` // 语言列表

	SnsList []*ApplicationTalentSnsInfo `json:"sns_list,omitempty"` // SNS列表

	AttachmentResumeList []*AppliTalentAttachResumeInfo `json:"attachment_resume_list,omitempty"` // 附件简历列表
}

type ApplicationTalentBuilder struct {
	id     string // ID
	idFlag bool

	basicInfo     *ApplicationTalentBasicInfo // 基础信息
	basicInfoFlag bool

	selfEvaluation     string // 自我评价
	selfEvaluationFlag bool

	educationList     []*AppliTalentEducationInfo // 教育经历
	educationListFlag bool

	careerList     []*ApplicationTalentCareerInfo // 工作经历
	careerListFlag bool

	projectList     []*ApplicationTalentProjectInfo // 项目经历
	projectListFlag bool

	worksList     []*ApplicationTalentWorksInfo // 作品集
	worksListFlag bool

	awardList     []*ApplicationTalentAwardInfo // 获奖列表
	awardListFlag bool

	competitionList     []*AppliTalentCompetitionInfo // 竞赛列表
	competitionListFlag bool

	certificateList     []*AppliTalentCertificateInfo // 证书列表
	certificateListFlag bool

	languageList     []*ApplicationTalentLanguageInfo // 语言列表
	languageListFlag bool

	snsList     []*ApplicationTalentSnsInfo // SNS列表
	snsListFlag bool

	attachmentResumeList     []*AppliTalentAttachResumeInfo // 附件简历列表
	attachmentResumeListFlag bool
}

func NewApplicationTalentBuilder() *ApplicationTalentBuilder {
	builder := &ApplicationTalentBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentBuilder) Id(id string) *ApplicationTalentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *ApplicationTalentBuilder) BasicInfo(basicInfo *ApplicationTalentBasicInfo) *ApplicationTalentBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 自我评价
//
// 示例值：
func (builder *ApplicationTalentBuilder) SelfEvaluation(selfEvaluation string) *ApplicationTalentBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 教育经历
//
// 示例值：
func (builder *ApplicationTalentBuilder) EducationList(educationList []*AppliTalentEducationInfo) *ApplicationTalentBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
// 示例值：
func (builder *ApplicationTalentBuilder) CareerList(careerList []*ApplicationTalentCareerInfo) *ApplicationTalentBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
// 示例值：
func (builder *ApplicationTalentBuilder) ProjectList(projectList []*ApplicationTalentProjectInfo) *ApplicationTalentBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品集
//
// 示例值：
func (builder *ApplicationTalentBuilder) WorksList(worksList []*ApplicationTalentWorksInfo) *ApplicationTalentBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) AwardList(awardList []*ApplicationTalentAwardInfo) *ApplicationTalentBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 竞赛列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) CompetitionList(competitionList []*AppliTalentCompetitionInfo) *ApplicationTalentBuilder {
	builder.competitionList = competitionList
	builder.competitionListFlag = true
	return builder
}

// 证书列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) CertificateList(certificateList []*AppliTalentCertificateInfo) *ApplicationTalentBuilder {
	builder.certificateList = certificateList
	builder.certificateListFlag = true
	return builder
}

// 语言列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) LanguageList(languageList []*ApplicationTalentLanguageInfo) *ApplicationTalentBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// SNS列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) SnsList(snsList []*ApplicationTalentSnsInfo) *ApplicationTalentBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 附件简历列表
//
// 示例值：
func (builder *ApplicationTalentBuilder) AttachmentResumeList(attachmentResumeList []*AppliTalentAttachResumeInfo) *ApplicationTalentBuilder {
	builder.attachmentResumeList = attachmentResumeList
	builder.attachmentResumeListFlag = true
	return builder
}

func (builder *ApplicationTalentBuilder) Build() *ApplicationTalent {
	req := &ApplicationTalent{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = &builder.selfEvaluation

	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.competitionListFlag {
		req.CompetitionList = builder.competitionList
	}
	if builder.certificateListFlag {
		req.CertificateList = builder.certificateList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.attachmentResumeListFlag {
		req.AttachmentResumeList = builder.attachmentResumeList
	}
	return req
}

type ApplicationTalentAttachmentResumeInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字
}

type ApplicationTalentAttachmentResumeInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool
}

func NewApplicationTalentAttachmentResumeInfoBuilder() *ApplicationTalentAttachmentResumeInfoBuilder {
	builder := &ApplicationTalentAttachmentResumeInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentAttachmentResumeInfoBuilder) Id(id string) *ApplicationTalentAttachmentResumeInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *ApplicationTalentAttachmentResumeInfoBuilder) Name(name string) *ApplicationTalentAttachmentResumeInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *ApplicationTalentAttachmentResumeInfoBuilder) Build() *ApplicationTalentAttachmentResumeInfo {
	req := &ApplicationTalentAttachmentResumeInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type ApplicationTalentAwardInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Title *string `json:"title,omitempty"` // 名称

	AwardTime *int64 `json:"award_time,omitempty"` // 获奖时间

	Desc *string `json:"desc,omitempty"` // 描述
}

type ApplicationTalentAwardInfoBuilder struct {
	id     string // ID
	idFlag bool

	title     string // 名称
	titleFlag bool

	awardTime     int64 // 获奖时间
	awardTimeFlag bool

	desc     string // 描述
	descFlag bool
}

func NewApplicationTalentAwardInfoBuilder() *ApplicationTalentAwardInfoBuilder {
	builder := &ApplicationTalentAwardInfoBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *ApplicationTalentAwardInfoBuilder) Id(id string) *ApplicationTalentAwardInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：1
func (builder *ApplicationTalentAwardInfoBuilder) Title(title string) *ApplicationTalentAwardInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 获奖时间
//
// 示例值：1
func (builder *ApplicationTalentAwardInfoBuilder) AwardTime(awardTime int64) *ApplicationTalentAwardInfoBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

// 描述
//
// 示例值：1
func (builder *ApplicationTalentAwardInfoBuilder) Desc(desc string) *ApplicationTalentAwardInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

func (builder *ApplicationTalentAwardInfoBuilder) Build() *ApplicationTalentAwardInfo {
	req := &ApplicationTalentAwardInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	return req
}

type ApplicationTalentBasicInfo struct {
	Name *string `json:"name,omitempty"` // 名字

	Mobile *string `json:"mobile,omitempty"` // 手机

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码

	Email *string `json:"email,omitempty"` // 邮箱

	ExperienceYears *int `json:"experience_years,omitempty"` // 工作年限

	Age *int64 `json:"age,omitempty"` // 年龄

	Nationality *Nationality `json:"nationality,omitempty"` // 国籍

	Gender *int `json:"gender,omitempty"` // 性别

	CurrentCity *City `json:"current_city,omitempty"` // 现居住城市

	HometownCity *City `json:"hometown_city,omitempty"` // 家乡所在城市

	PreferredCityList []*City `json:"preferred_city_list,omitempty"` // 首选城市

	MobileCode *string `json:"mobile_code,omitempty"` // 手机国家代码

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号码
}

type ApplicationTalentBasicInfoBuilder struct {
	name     string // 名字
	nameFlag bool

	mobile     string // 手机
	mobileFlag bool

	mobileCountryCode     string // 手机国家代码
	mobileCountryCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	experienceYears     int // 工作年限
	experienceYearsFlag bool

	age     int64 // 年龄
	ageFlag bool

	nationality     *Nationality // 国籍
	nationalityFlag bool

	gender     int // 性别
	genderFlag bool

	currentCity     *City // 现居住城市
	currentCityFlag bool

	hometownCity     *City // 家乡所在城市
	hometownCityFlag bool

	preferredCityList     []*City // 首选城市
	preferredCityListFlag bool

	mobileCode     string // 手机国家代码
	mobileCodeFlag bool

	identificationType     int // 证件类型
	identificationTypeFlag bool

	identificationNumber     string // 证件号码
	identificationNumberFlag bool
}

func NewApplicationTalentBasicInfoBuilder() *ApplicationTalentBasicInfoBuilder {
	builder := &ApplicationTalentBasicInfoBuilder{}
	return builder
}

// 名字
//
// 示例值：xx
func (builder *ApplicationTalentBasicInfoBuilder) Name(name string) *ApplicationTalentBasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机
//
// 示例值：xx
func (builder *ApplicationTalentBasicInfoBuilder) Mobile(mobile string) *ApplicationTalentBasicInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：xx
func (builder *ApplicationTalentBasicInfoBuilder) MobileCountryCode(mobileCountryCode string) *ApplicationTalentBasicInfoBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：xx
func (builder *ApplicationTalentBasicInfoBuilder) Email(email string) *ApplicationTalentBasicInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 工作年限
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) ExperienceYears(experienceYears int) *ApplicationTalentBasicInfoBuilder {
	builder.experienceYears = experienceYears
	builder.experienceYearsFlag = true
	return builder
}

// 年龄
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) Age(age int64) *ApplicationTalentBasicInfoBuilder {
	builder.age = age
	builder.ageFlag = true
	return builder
}

// 国籍
//
// 示例值：
func (builder *ApplicationTalentBasicInfoBuilder) Nationality(nationality *Nationality) *ApplicationTalentBasicInfoBuilder {
	builder.nationality = nationality
	builder.nationalityFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) Gender(gender int) *ApplicationTalentBasicInfoBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 现居住城市
//
// 示例值：
func (builder *ApplicationTalentBasicInfoBuilder) CurrentCity(currentCity *City) *ApplicationTalentBasicInfoBuilder {
	builder.currentCity = currentCity
	builder.currentCityFlag = true
	return builder
}

// 家乡所在城市
//
// 示例值：
func (builder *ApplicationTalentBasicInfoBuilder) HometownCity(hometownCity *City) *ApplicationTalentBasicInfoBuilder {
	builder.hometownCity = hometownCity
	builder.hometownCityFlag = true
	return builder
}

// 首选城市
//
// 示例值：
func (builder *ApplicationTalentBasicInfoBuilder) PreferredCityList(preferredCityList []*City) *ApplicationTalentBasicInfoBuilder {
	builder.preferredCityList = preferredCityList
	builder.preferredCityListFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) MobileCode(mobileCode string) *ApplicationTalentBasicInfoBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 证件类型
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) IdentificationType(identificationType int) *ApplicationTalentBasicInfoBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号码
//
// 示例值：1
func (builder *ApplicationTalentBasicInfoBuilder) IdentificationNumber(identificationNumber string) *ApplicationTalentBasicInfoBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

func (builder *ApplicationTalentBasicInfoBuilder) Build() *ApplicationTalentBasicInfo {
	req := &ApplicationTalentBasicInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.experienceYearsFlag {
		req.ExperienceYears = &builder.experienceYears

	}
	if builder.ageFlag {
		req.Age = &builder.age

	}
	if builder.nationalityFlag {
		req.Nationality = builder.nationality
	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.currentCityFlag {
		req.CurrentCity = builder.currentCity
	}
	if builder.hometownCityFlag {
		req.HometownCity = builder.hometownCity
	}
	if builder.preferredCityListFlag {
		req.PreferredCityList = builder.preferredCityList
	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	return req
}

type ApplicationTalentCareerInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Company *string `json:"company,omitempty"` // 公司

	Title *string `json:"title,omitempty"` // 职称

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	TagList []int `json:"tag_list,omitempty"` // 标签列表
}

type ApplicationTalentCareerInfoBuilder struct {
	id     string // ID
	idFlag bool

	company     string // 公司
	companyFlag bool

	title     string // 职称
	titleFlag bool

	desc     string // 描述
	descFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	tagList     []int // 标签列表
	tagListFlag bool
}

func NewApplicationTalentCareerInfoBuilder() *ApplicationTalentCareerInfoBuilder {
	builder := &ApplicationTalentCareerInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) Id(id string) *ApplicationTalentCareerInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 公司
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) Company(company string) *ApplicationTalentCareerInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 职称
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) Title(title string) *ApplicationTalentCareerInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) Desc(desc string) *ApplicationTalentCareerInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) StartTime(startTime string) *ApplicationTalentCareerInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) EndTime(endTime string) *ApplicationTalentCareerInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 标签列表
//
// 示例值：
func (builder *ApplicationTalentCareerInfoBuilder) TagList(tagList []int) *ApplicationTalentCareerInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

func (builder *ApplicationTalentCareerInfoBuilder) Build() *ApplicationTalentCareerInfo {
	req := &ApplicationTalentCareerInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	return req
}

type ApplicationTalentCertificateInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 证件名称

	Desc *string `json:"desc,omitempty"` // 证件描述
}

type ApplicationTalentCertificateInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 证件名称
	nameFlag bool

	desc     string // 证件描述
	descFlag bool
}

func NewApplicationTalentCertificateInfoBuilder() *ApplicationTalentCertificateInfoBuilder {
	builder := &ApplicationTalentCertificateInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentCertificateInfoBuilder) Id(id string) *ApplicationTalentCertificateInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 证件名称
//
// 示例值：
func (builder *ApplicationTalentCertificateInfoBuilder) Name(name string) *ApplicationTalentCertificateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 证件描述
//
// 示例值：
func (builder *ApplicationTalentCertificateInfoBuilder) Desc(desc string) *ApplicationTalentCertificateInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

func (builder *ApplicationTalentCertificateInfoBuilder) Build() *ApplicationTalentCertificateInfo {
	req := &ApplicationTalentCertificateInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	return req
}

type ApplicationTalentCompetitionInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 竞赛名称

	Desc *string `json:"desc,omitempty"` // 竞赛描述
}

type ApplicationTalentCompetitionInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 竞赛名称
	nameFlag bool

	desc     string // 竞赛描述
	descFlag bool
}

func NewApplicationTalentCompetitionInfoBuilder() *ApplicationTalentCompetitionInfoBuilder {
	builder := &ApplicationTalentCompetitionInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentCompetitionInfoBuilder) Id(id string) *ApplicationTalentCompetitionInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 竞赛名称
//
// 示例值：
func (builder *ApplicationTalentCompetitionInfoBuilder) Name(name string) *ApplicationTalentCompetitionInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 竞赛描述
//
// 示例值：
func (builder *ApplicationTalentCompetitionInfoBuilder) Desc(desc string) *ApplicationTalentCompetitionInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

func (builder *ApplicationTalentCompetitionInfoBuilder) Build() *ApplicationTalentCompetitionInfo {
	req := &ApplicationTalentCompetitionInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	return req
}

type ApplicationTalentEducationInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Degree *int64 `json:"degree,omitempty"` // 学历

	School *string `json:"school,omitempty"` // 学校

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	EducationType *int64 `json:"education_type,omitempty"` // 学历类型

	AcademicRanking *int64 `json:"academic_ranking,omitempty"` // 排名

	TagList []int `json:"tag_list,omitempty"` // 标签列表
}

type ApplicationTalentEducationInfoBuilder struct {
	id     string // ID
	idFlag bool

	degree     int64 // 学历
	degreeFlag bool

	school     string // 学校
	schoolFlag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	educationType     int64 // 学历类型
	educationTypeFlag bool

	academicRanking     int64 // 排名
	academicRankingFlag bool

	tagList     []int // 标签列表
	tagListFlag bool
}

func NewApplicationTalentEducationInfoBuilder() *ApplicationTalentEducationInfoBuilder {
	builder := &ApplicationTalentEducationInfoBuilder{}
	return builder
}

// ID
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) Id(id string) *ApplicationTalentEducationInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 学历
//
// 示例值：1
func (builder *ApplicationTalentEducationInfoBuilder) Degree(degree int64) *ApplicationTalentEducationInfoBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 学校
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) School(school string) *ApplicationTalentEducationInfoBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 专业
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) FieldOfStudy(fieldOfStudy string) *ApplicationTalentEducationInfoBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 开始时间
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) StartTime(startTime string) *ApplicationTalentEducationInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) EndTime(endTime string) *ApplicationTalentEducationInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *ApplicationTalentEducationInfoBuilder) EducationType(educationType int64) *ApplicationTalentEducationInfoBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 排名
//
// 示例值：111
func (builder *ApplicationTalentEducationInfoBuilder) AcademicRanking(academicRanking int64) *ApplicationTalentEducationInfoBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

// 标签列表
//
// 示例值：
func (builder *ApplicationTalentEducationInfoBuilder) TagList(tagList []int) *ApplicationTalentEducationInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

func (builder *ApplicationTalentEducationInfoBuilder) Build() *ApplicationTalentEducationInfo {
	req := &ApplicationTalentEducationInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	return req
}

type ApplicationTalentLanguageInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Language *int64 `json:"language,omitempty"` // 语言

	Proficiency *int `json:"proficiency,omitempty"` // 熟练程度
}

type ApplicationTalentLanguageInfoBuilder struct {
	id     string // ID
	idFlag bool

	language     int64 // 语言
	languageFlag bool

	proficiency     int // 熟练程度
	proficiencyFlag bool
}

func NewApplicationTalentLanguageInfoBuilder() *ApplicationTalentLanguageInfoBuilder {
	builder := &ApplicationTalentLanguageInfoBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *ApplicationTalentLanguageInfoBuilder) Id(id string) *ApplicationTalentLanguageInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 语言
//
// 示例值：1
func (builder *ApplicationTalentLanguageInfoBuilder) Language(language int64) *ApplicationTalentLanguageInfoBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 熟练程度
//
// 示例值：1
func (builder *ApplicationTalentLanguageInfoBuilder) Proficiency(proficiency int) *ApplicationTalentLanguageInfoBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

func (builder *ApplicationTalentLanguageInfoBuilder) Build() *ApplicationTalentLanguageInfo {
	req := &ApplicationTalentLanguageInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	return req
}

type ApplicationTalentProjectInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	Role *string `json:"role,omitempty"` // 角色

	Link *string `json:"link,omitempty"` // 链接

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间
}

type ApplicationTalentProjectInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	role     string // 角色
	roleFlag bool

	link     string // 链接
	linkFlag bool

	desc     string // 描述
	descFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool
}

func NewApplicationTalentProjectInfoBuilder() *ApplicationTalentProjectInfoBuilder {
	builder := &ApplicationTalentProjectInfoBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *ApplicationTalentProjectInfoBuilder) Id(id string) *ApplicationTalentProjectInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：1
func (builder *ApplicationTalentProjectInfoBuilder) Name(name string) *ApplicationTalentProjectInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 角色
//
// 示例值：1
func (builder *ApplicationTalentProjectInfoBuilder) Role(role string) *ApplicationTalentProjectInfoBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 链接
//
// 示例值：1
func (builder *ApplicationTalentProjectInfoBuilder) Link(link string) *ApplicationTalentProjectInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：1
func (builder *ApplicationTalentProjectInfoBuilder) Desc(desc string) *ApplicationTalentProjectInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：1735664461000
func (builder *ApplicationTalentProjectInfoBuilder) StartTime(startTime int64) *ApplicationTalentProjectInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1735664461000
func (builder *ApplicationTalentProjectInfoBuilder) EndTime(endTime int64) *ApplicationTalentProjectInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *ApplicationTalentProjectInfoBuilder) Build() *ApplicationTalentProjectInfo {
	req := &ApplicationTalentProjectInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type ApplicationTalentSnsInfo struct {
	Id *string `json:"id,omitempty"` // ID

	SnsType *int64 `json:"sns_type,omitempty"` // SNS类型

	Link *string `json:"link,omitempty"` // SNS链接
}

type ApplicationTalentSnsInfoBuilder struct {
	id     string // ID
	idFlag bool

	snsType     int64 // SNS类型
	snsTypeFlag bool

	link     string // SNS链接
	linkFlag bool
}

func NewApplicationTalentSnsInfoBuilder() *ApplicationTalentSnsInfoBuilder {
	builder := &ApplicationTalentSnsInfoBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *ApplicationTalentSnsInfoBuilder) Id(id string) *ApplicationTalentSnsInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// SNS类型
//
// 示例值：1
func (builder *ApplicationTalentSnsInfoBuilder) SnsType(snsType int64) *ApplicationTalentSnsInfoBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

// SNS链接
//
// 示例值：1
func (builder *ApplicationTalentSnsInfoBuilder) Link(link string) *ApplicationTalentSnsInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

func (builder *ApplicationTalentSnsInfoBuilder) Build() *ApplicationTalentSnsInfo {
	req := &ApplicationTalentSnsInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	return req
}

type ApplicationTalentWorksInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Link *string `json:"link,omitempty"` // 作品集链接

	Desc *string `json:"desc,omitempty"` // 作品描述

	Name *string `json:"name,omitempty"` // 作品名称
}

type ApplicationTalentWorksInfoBuilder struct {
	id     string // ID
	idFlag bool

	link     string // 作品集链接
	linkFlag bool

	desc     string // 作品描述
	descFlag bool

	name     string // 作品名称
	nameFlag bool
}

func NewApplicationTalentWorksInfoBuilder() *ApplicationTalentWorksInfoBuilder {
	builder := &ApplicationTalentWorksInfoBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *ApplicationTalentWorksInfoBuilder) Id(id string) *ApplicationTalentWorksInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 作品集链接
//
// 示例值：
func (builder *ApplicationTalentWorksInfoBuilder) Link(link string) *ApplicationTalentWorksInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 作品描述
//
// 示例值：
func (builder *ApplicationTalentWorksInfoBuilder) Desc(desc string) *ApplicationTalentWorksInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 作品名称
//
// 示例值：
func (builder *ApplicationTalentWorksInfoBuilder) Name(name string) *ApplicationTalentWorksInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *ApplicationTalentWorksInfoBuilder) Build() *ApplicationTalentWorksInfo {
	req := &ApplicationTalentWorksInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type ApplicationWebsiteChannel struct {
	ChannelId *string `json:"channel_id,omitempty"` // 官网推广渠道 ID

	ChannelName *I18n `json:"channel_name,omitempty"` // 官网推广渠道名称
}

type ApplicationWebsiteChannelBuilder struct {
	channelId     string // 官网推广渠道 ID
	channelIdFlag bool

	channelName     *I18n // 官网推广渠道名称
	channelNameFlag bool
}

func NewApplicationWebsiteChannelBuilder() *ApplicationWebsiteChannelBuilder {
	builder := &ApplicationWebsiteChannelBuilder{}
	return builder
}

// 官网推广渠道 ID
//
// 示例值：777218419274131
func (builder *ApplicationWebsiteChannelBuilder) ChannelId(channelId string) *ApplicationWebsiteChannelBuilder {
	builder.channelId = channelId
	builder.channelIdFlag = true
	return builder
}

// 官网推广渠道名称
//
// 示例值：
func (builder *ApplicationWebsiteChannelBuilder) ChannelName(channelName *I18n) *ApplicationWebsiteChannelBuilder {
	builder.channelName = channelName
	builder.channelNameFlag = true
	return builder
}

func (builder *ApplicationWebsiteChannelBuilder) Build() *ApplicationWebsiteChannel {
	req := &ApplicationWebsiteChannel{}
	if builder.channelIdFlag {
		req.ChannelId = &builder.channelId

	}
	if builder.channelNameFlag {
		req.ChannelName = builder.channelName
	}
	return req
}

type ApplicationWebsiteResumeSource struct {
	WebsiteId *string `json:"website_id,omitempty"` // 官网站点 ID

	WebsiteName *I18n `json:"website_name,omitempty"` // 官网站点名称

	Channel *ApplicationWebsiteChannel `json:"channel,omitempty"` // 推广渠道来源
}

type ApplicationWebsiteResumeSourceBuilder struct {
	websiteId     string // 官网站点 ID
	websiteIdFlag bool

	websiteName     *I18n // 官网站点名称
	websiteNameFlag bool

	channel     *ApplicationWebsiteChannel // 推广渠道来源
	channelFlag bool
}

func NewApplicationWebsiteResumeSourceBuilder() *ApplicationWebsiteResumeSourceBuilder {
	builder := &ApplicationWebsiteResumeSourceBuilder{}
	return builder
}

// 官网站点 ID
//
// 示例值：614218419274131
func (builder *ApplicationWebsiteResumeSourceBuilder) WebsiteId(websiteId string) *ApplicationWebsiteResumeSourceBuilder {
	builder.websiteId = websiteId
	builder.websiteIdFlag = true
	return builder
}

// 官网站点名称
//
// 示例值：
func (builder *ApplicationWebsiteResumeSourceBuilder) WebsiteName(websiteName *I18n) *ApplicationWebsiteResumeSourceBuilder {
	builder.websiteName = websiteName
	builder.websiteNameFlag = true
	return builder
}

// 推广渠道来源
//
// 示例值：
func (builder *ApplicationWebsiteResumeSourceBuilder) Channel(channel *ApplicationWebsiteChannel) *ApplicationWebsiteResumeSourceBuilder {
	builder.channel = channel
	builder.channelFlag = true
	return builder
}

func (builder *ApplicationWebsiteResumeSourceBuilder) Build() *ApplicationWebsiteResumeSource {
	req := &ApplicationWebsiteResumeSource{}
	if builder.websiteIdFlag {
		req.WebsiteId = &builder.websiteId

	}
	if builder.websiteNameFlag {
		req.WebsiteName = builder.websiteName
	}
	if builder.channelFlag {
		req.Channel = builder.channel
	}
	return req
}

type AssessInterviewOption struct {
	IgnoreMinutes *bool `json:"ignore_minutes,omitempty"` // 忽略面评草稿中的面试速记信息

	IgnoreCodingQuestion *bool `json:"ignore_coding_question,omitempty"` // 忽略面评草稿中的代码考核题

	IgnoreInterviewQuestion *bool `json:"ignore_interview_question,omitempty"` // 忽略面评草稿中的面试题

	IgnoreImage *bool `json:"ignore_image,omitempty"` // 忽略面评草稿中的图片
}

type AssessInterviewOptionBuilder struct {
	ignoreMinutes     bool // 忽略面评草稿中的面试速记信息
	ignoreMinutesFlag bool

	ignoreCodingQuestion     bool // 忽略面评草稿中的代码考核题
	ignoreCodingQuestionFlag bool

	ignoreInterviewQuestion     bool // 忽略面评草稿中的面试题
	ignoreInterviewQuestionFlag bool

	ignoreImage     bool // 忽略面评草稿中的图片
	ignoreImageFlag bool
}

func NewAssessInterviewOptionBuilder() *AssessInterviewOptionBuilder {
	builder := &AssessInterviewOptionBuilder{}
	return builder
}

// 忽略面评草稿中的面试速记信息
//
// 示例值：false
func (builder *AssessInterviewOptionBuilder) IgnoreMinutes(ignoreMinutes bool) *AssessInterviewOptionBuilder {
	builder.ignoreMinutes = ignoreMinutes
	builder.ignoreMinutesFlag = true
	return builder
}

// 忽略面评草稿中的代码考核题
//
// 示例值：false
func (builder *AssessInterviewOptionBuilder) IgnoreCodingQuestion(ignoreCodingQuestion bool) *AssessInterviewOptionBuilder {
	builder.ignoreCodingQuestion = ignoreCodingQuestion
	builder.ignoreCodingQuestionFlag = true
	return builder
}

// 忽略面评草稿中的面试题
//
// 示例值：false
func (builder *AssessInterviewOptionBuilder) IgnoreInterviewQuestion(ignoreInterviewQuestion bool) *AssessInterviewOptionBuilder {
	builder.ignoreInterviewQuestion = ignoreInterviewQuestion
	builder.ignoreInterviewQuestionFlag = true
	return builder
}

// 忽略面评草稿中的图片
//
// 示例值：false
func (builder *AssessInterviewOptionBuilder) IgnoreImage(ignoreImage bool) *AssessInterviewOptionBuilder {
	builder.ignoreImage = ignoreImage
	builder.ignoreImageFlag = true
	return builder
}

func (builder *AssessInterviewOptionBuilder) Build() *AssessInterviewOption {
	req := &AssessInterviewOption{}
	if builder.ignoreMinutesFlag {
		req.IgnoreMinutes = &builder.ignoreMinutes

	}
	if builder.ignoreCodingQuestionFlag {
		req.IgnoreCodingQuestion = &builder.ignoreCodingQuestion

	}
	if builder.ignoreInterviewQuestionFlag {
		req.IgnoreInterviewQuestion = &builder.ignoreInterviewQuestion

	}
	if builder.ignoreImageFlag {
		req.IgnoreImage = &builder.ignoreImage

	}
	return req
}

type AssessmentScoreInfo struct {
	CalculateType *int `json:"calculate_type,omitempty"` // 计分方式

	Score *float64 `json:"score,omitempty"` // 分数(精确到小数点后两位)

	FullScore *int64 `json:"full_score,omitempty"` // 满分
}

type AssessmentScoreInfoBuilder struct {
	calculateType     int // 计分方式
	calculateTypeFlag bool

	score     float64 // 分数(精确到小数点后两位)
	scoreFlag bool

	fullScore     int64 // 满分
	fullScoreFlag bool
}

func NewAssessmentScoreInfoBuilder() *AssessmentScoreInfoBuilder {
	builder := &AssessmentScoreInfoBuilder{}
	return builder
}

// 计分方式
//
// 示例值：1
func (builder *AssessmentScoreInfoBuilder) CalculateType(calculateType int) *AssessmentScoreInfoBuilder {
	builder.calculateType = calculateType
	builder.calculateTypeFlag = true
	return builder
}

// 分数(精确到小数点后两位)
//
// 示例值：3.21
func (builder *AssessmentScoreInfoBuilder) Score(score float64) *AssessmentScoreInfoBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 满分
//
// 示例值：100
func (builder *AssessmentScoreInfoBuilder) FullScore(fullScore int64) *AssessmentScoreInfoBuilder {
	builder.fullScore = fullScore
	builder.fullScoreFlag = true
	return builder
}

func (builder *AssessmentScoreInfoBuilder) Build() *AssessmentScoreInfo {
	req := &AssessmentScoreInfo{}
	if builder.calculateTypeFlag {
		req.CalculateType = &builder.calculateType

	}
	if builder.scoreFlag {
		req.Score = &builder.score

	}
	if builder.fullScoreFlag {
		req.FullScore = &builder.fullScore

	}
	return req
}

type Assets struct {
	ConfirmedBonus *BonusAmount `json:"confirmed_bonus,omitempty"` // 已确认的奖励

	PaidBonus *BonusAmount `json:"paid_bonus,omitempty"` // 已发放的奖励
}

type AssetsBuilder struct {
	confirmedBonus     *BonusAmount // 已确认的奖励
	confirmedBonusFlag bool

	paidBonus     *BonusAmount // 已发放的奖励
	paidBonusFlag bool
}

func NewAssetsBuilder() *AssetsBuilder {
	builder := &AssetsBuilder{}
	return builder
}

// 已确认的奖励
//
// 示例值：
func (builder *AssetsBuilder) ConfirmedBonus(confirmedBonus *BonusAmount) *AssetsBuilder {
	builder.confirmedBonus = confirmedBonus
	builder.confirmedBonusFlag = true
	return builder
}

// 已发放的奖励
//
// 示例值：
func (builder *AssetsBuilder) PaidBonus(paidBonus *BonusAmount) *AssetsBuilder {
	builder.paidBonus = paidBonus
	builder.paidBonusFlag = true
	return builder
}

func (builder *AssetsBuilder) Build() *Assets {
	req := &Assets{}
	if builder.confirmedBonusFlag {
		req.ConfirmedBonus = builder.confirmedBonus
	}
	if builder.paidBonusFlag {
		req.PaidBonus = builder.paidBonus
	}
	return req
}

type Attachment struct {
	Id *string `json:"id,omitempty"` // 附件id

	Url *string `json:"url,omitempty"` // 附件的url

	Name *string `json:"name,omitempty"` // 附件文件名

	Mime *string `json:"mime,omitempty"` // 媒体类型/MIME

	CreateTime *int64 `json:"create_time,omitempty"` // 附件创建时间（单位ms）
}

type AttachmentBuilder struct {
	id     string // 附件id
	idFlag bool

	url     string // 附件的url
	urlFlag bool

	name     string // 附件文件名
	nameFlag bool

	mime     string // 媒体类型/MIME
	mimeFlag bool

	createTime     int64 // 附件创建时间（单位ms）
	createTimeFlag bool
}

func NewAttachmentBuilder() *AttachmentBuilder {
	builder := &AttachmentBuilder{}
	return builder
}

// 附件id
//
// 示例值：6949805467799537964
func (builder *AttachmentBuilder) Id(id string) *AttachmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附件的url
//
// 示例值：https://hire.feishu.cn/blob/xx/
func (builder *AttachmentBuilder) Url(url string) *AttachmentBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// 附件文件名
//
// 示例值：xx的简历.prd
func (builder *AttachmentBuilder) Name(name string) *AttachmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 媒体类型/MIME
//
// 示例值：application/pdf
func (builder *AttachmentBuilder) Mime(mime string) *AttachmentBuilder {
	builder.mime = mime
	builder.mimeFlag = true
	return builder
}

// 附件创建时间（单位ms）
//
// 示例值：1618899376480
func (builder *AttachmentBuilder) CreateTime(createTime int64) *AttachmentBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *AttachmentBuilder) Build() *Attachment {
	req := &Attachment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mimeFlag {
		req.Mime = &builder.mime

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type AttachmentInfo struct {
	Id *string `json:"id,omitempty"` // 附件id

	Url *string `json:"url,omitempty"` // 附件的url

	Name *string `json:"name,omitempty"` // 附件文件名

	Mime *string `json:"mime,omitempty"` // 媒体类型/MIME

	CreateTime *string `json:"create_time,omitempty"` // 附件创建时间（单位ms）
}

type AttachmentInfoBuilder struct {
	id     string // 附件id
	idFlag bool

	url     string // 附件的url
	urlFlag bool

	name     string // 附件文件名
	nameFlag bool

	mime     string // 媒体类型/MIME
	mimeFlag bool

	createTime     string // 附件创建时间（单位ms）
	createTimeFlag bool
}

func NewAttachmentInfoBuilder() *AttachmentInfoBuilder {
	builder := &AttachmentInfoBuilder{}
	return builder
}

// 附件id
//
// 示例值：6949805467799537964
func (builder *AttachmentInfoBuilder) Id(id string) *AttachmentInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附件的url
//
// 示例值：https://hire.feishu.cn/blob/xx/
func (builder *AttachmentInfoBuilder) Url(url string) *AttachmentInfoBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// 附件文件名
//
// 示例值：xx的简历.prd
func (builder *AttachmentInfoBuilder) Name(name string) *AttachmentInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 媒体类型/MIME
//
// 示例值：application/pdf
func (builder *AttachmentInfoBuilder) Mime(mime string) *AttachmentInfoBuilder {
	builder.mime = mime
	builder.mimeFlag = true
	return builder
}

// 附件创建时间（单位ms）
//
// 示例值：1618899376480
func (builder *AttachmentInfoBuilder) CreateTime(createTime string) *AttachmentInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *AttachmentInfoBuilder) Build() *AttachmentInfo {
	req := &AttachmentInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mimeFlag {
		req.Mime = &builder.mime

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type AttachmentV2 struct {
	Id *string `json:"id,omitempty"` // 附件ID

	Url *string `json:"url,omitempty"` // 附件的url

	Name *string `json:"name,omitempty"` // 附件文件名

	Mime *string `json:"mime,omitempty"` // MIME type

	CreateTime *string `json:"create_time,omitempty"` // 附件创建时间(ms)
}

type AttachmentV2Builder struct {
	id     string // 附件ID
	idFlag bool

	url     string // 附件的url
	urlFlag bool

	name     string // 附件文件名
	nameFlag bool

	mime     string // MIME type
	mimeFlag bool

	createTime     string // 附件创建时间(ms)
	createTimeFlag bool
}

func NewAttachmentV2Builder() *AttachmentV2Builder {
	builder := &AttachmentV2Builder{}
	return builder
}

// 附件ID
//
// 示例值：7270798542321666364
func (builder *AttachmentV2Builder) Id(id string) *AttachmentV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附件的url
//
// 示例值：https://open.feishu.cn/hire/file/blob/xxxx/
func (builder *AttachmentV2Builder) Url(url string) *AttachmentV2Builder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// 附件文件名
//
// 示例值：成绩单
func (builder *AttachmentV2Builder) Name(name string) *AttachmentV2Builder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// MIME type
//
// 示例值：image/jpg
func (builder *AttachmentV2Builder) Mime(mime string) *AttachmentV2Builder {
	builder.mime = mime
	builder.mimeFlag = true
	return builder
}

// 附件创建时间(ms)
//
// 示例值：1693884103327
func (builder *AttachmentV2Builder) CreateTime(createTime string) *AttachmentV2Builder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *AttachmentV2Builder) Build() *AttachmentV2 {
	req := &AttachmentV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mimeFlag {
		req.Mime = &builder.mime

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type Auth struct {
	Id *string `json:"id,omitempty"` // 权限 ID

	Name *I18n `json:"name,omitempty"` // 权限名称
}

type AuthBuilder struct {
	id     string // 权限 ID
	idFlag bool

	name     *I18n // 权限名称
	nameFlag bool
}

func NewAuthBuilder() *AuthBuilder {
	builder := &AuthBuilder{}
	return builder
}

// 权限 ID
//
// 示例值：101
func (builder *AuthBuilder) Id(id string) *AuthBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 权限名称
//
// 示例值：
func (builder *AuthBuilder) Name(name *I18n) *AuthBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *AuthBuilder) Build() *Auth {
	req := &Auth{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type AwardInfo struct {
	AwardTime *int64 `json:"award_time,omitempty"` // 获奖时间

	Desc *string `json:"desc,omitempty"` // 描述

	Title *string `json:"title,omitempty"` // 名称
}

type AwardInfoBuilder struct {
	awardTime     int64 // 获奖时间
	awardTimeFlag bool

	desc     string // 描述
	descFlag bool

	title     string // 名称
	titleFlag bool
}

func NewAwardInfoBuilder() *AwardInfoBuilder {
	builder := &AwardInfoBuilder{}
	return builder
}

// 获奖时间
//
// 示例值：123
func (builder *AwardInfoBuilder) AwardTime(awardTime int64) *AwardInfoBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

// 描述
//
// 示例值：123
func (builder *AwardInfoBuilder) Desc(desc string) *AwardInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 名称
//
// 示例值：123
func (builder *AwardInfoBuilder) Title(title string) *AwardInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

func (builder *AwardInfoBuilder) Build() *AwardInfo {
	req := &AwardInfo{}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	return req
}

type BackgroundCheckCustomFieldDataValue struct {
	Key *string `json:"key,omitempty"` // 对应模板字段的Key

	Value *string `json:"value,omitempty"` // 对应模板字段的value
}

type BackgroundCheckCustomFieldDataValueBuilder struct {
	key     string // 对应模板字段的Key
	keyFlag bool

	value     string // 对应模板字段的value
	valueFlag bool
}

func NewBackgroundCheckCustomFieldDataValueBuilder() *BackgroundCheckCustomFieldDataValueBuilder {
	builder := &BackgroundCheckCustomFieldDataValueBuilder{}
	return builder
}

// 对应模板字段的Key
//
// 示例值：1
func (builder *BackgroundCheckCustomFieldDataValueBuilder) Key(key string) *BackgroundCheckCustomFieldDataValueBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 对应模板字段的value
//
// 示例值：text
func (builder *BackgroundCheckCustomFieldDataValueBuilder) Value(value string) *BackgroundCheckCustomFieldDataValueBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *BackgroundCheckCustomFieldDataValueBuilder) Build() *BackgroundCheckCustomFieldDataValue {
	req := &BackgroundCheckCustomFieldDataValue{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type BackgroundCheckFeedbackInfo struct {
	FeedbackId *string `json:"feedback_id,omitempty"` // 背调报告ID

	AttachmentUrl *string `json:"attachment_url,omitempty"` // 背调信息附件下载链接

	Result *string `json:"result,omitempty"` // 背调结果：红灯、黄灯、绿灯
}

type BackgroundCheckFeedbackInfoBuilder struct {
	feedbackId     string // 背调报告ID
	feedbackIdFlag bool

	attachmentUrl     string // 背调信息附件下载链接
	attachmentUrlFlag bool

	result     string // 背调结果：红灯、黄灯、绿灯
	resultFlag bool
}

func NewBackgroundCheckFeedbackInfoBuilder() *BackgroundCheckFeedbackInfoBuilder {
	builder := &BackgroundCheckFeedbackInfoBuilder{}
	return builder
}

// 背调报告ID
//
// 示例值：6930815272790114324
func (builder *BackgroundCheckFeedbackInfoBuilder) FeedbackId(feedbackId string) *BackgroundCheckFeedbackInfoBuilder {
	builder.feedbackId = feedbackId
	builder.feedbackIdFlag = true
	return builder
}

// 背调信息附件下载链接
//
// 示例值：https://feishucdn.com/staource/v1/2de04c10-5cda-4c50~?image_size=np&cutpe=&quity=&mat=g&stmat=.wp
func (builder *BackgroundCheckFeedbackInfoBuilder) AttachmentUrl(attachmentUrl string) *BackgroundCheckFeedbackInfoBuilder {
	builder.attachmentUrl = attachmentUrl
	builder.attachmentUrlFlag = true
	return builder
}

// 背调结果：红灯、黄灯、绿灯
//
// 示例值：红灯
func (builder *BackgroundCheckFeedbackInfoBuilder) Result(result string) *BackgroundCheckFeedbackInfoBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

func (builder *BackgroundCheckFeedbackInfoBuilder) Build() *BackgroundCheckFeedbackInfo {
	req := &BackgroundCheckFeedbackInfo{}
	if builder.feedbackIdFlag {
		req.FeedbackId = &builder.feedbackId

	}
	if builder.attachmentUrlFlag {
		req.AttachmentUrl = &builder.attachmentUrl

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	return req
}

type BackgroundCheckItemInfo struct {
	Id *string `json:"id,omitempty"` // 附加项的ID

	Name *string `json:"name,omitempty"` // 附加项的名称
}

type BackgroundCheckItemInfoBuilder struct {
	id     string // 附加项的ID
	idFlag bool

	name     string // 附加项的名称
	nameFlag bool
}

func NewBackgroundCheckItemInfoBuilder() *BackgroundCheckItemInfoBuilder {
	builder := &BackgroundCheckItemInfoBuilder{}
	return builder
}

// 附加项的ID
//
// 示例值：6930815272790114324
func (builder *BackgroundCheckItemInfoBuilder) Id(id string) *BackgroundCheckItemInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附加项的名称
//
// 示例值：户籍查询
func (builder *BackgroundCheckItemInfoBuilder) Name(name string) *BackgroundCheckItemInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *BackgroundCheckItemInfoBuilder) Build() *BackgroundCheckItemInfo {
	req := &BackgroundCheckItemInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type BackgroundCheckOrder struct {
	OrderId *string `json:"order_id,omitempty"` // 背调 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	OrderStatus *int `json:"order_status,omitempty"` // 背调状态

	AccountThirdType *int `json:"account_third_type,omitempty"` // 供应商名称

	Package *string `json:"package,omitempty"` // 背调套餐

	Name *string `json:"name,omitempty"` // 背调名称（仅手动录入的背调结果具有）

	FeedbackInfoList []*BackgroundCheckOrderFeedbackInfo `json:"feedback_info_list,omitempty"` // 背调报告信息

	ProcessInfoList []*BackgroundCheckOrderProcessInfo `json:"process_info_list,omitempty"` // 进度

	UploadTime *string `json:"upload_time,omitempty"` // 录入时间（仅手动录入的背调结果具有）

	CandidateInfo *UserContactInfo `json:"candidate_info,omitempty"` // 候选人信息

	CreatorInfo *BackgroundCheckOrderCreator `json:"creator_info,omitempty"` // 背调发起人信息

	ContactorInfo *UserContactInfo `json:"contactor_info,omitempty"` // 背调联系人信息

	BeginTime *string `json:"begin_time,omitempty"` // 背调发起时间

	EndTime *string `json:"end_time,omitempty"` // 背调结束时间

	Conclusion *string `json:"conclusion,omitempty"` // 背调结论

	ProviderInfo *ProviderIdNameObject `json:"provider_info,omitempty"` // 供应商信息

	CustomFieldList []*EcoBackgroundCheckCustomFieldData `json:"custom_field_list,omitempty"` // 自定义字段模板

	CustomDataList []*BackgroundCheckCustomFieldDataValue `json:"custom_data_list,omitempty"` // 自定义字段值

	ExtItemInfoList []*BackgroundCheckItemInfo `json:"ext_item_info_list,omitempty"` // 背调调查附加项

	UpdateTime *string `json:"update_time,omitempty"` // 订单更新时间

	Geo *string `json:"geo,omitempty"` // 属地

	LocationCode *string `json:"location_code,omitempty"` // 国家城市编码

	Remark *string `json:"remark,omitempty"` // 备注
}

type BackgroundCheckOrderBuilder struct {
	orderId     string // 背调 ID
	orderIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	orderStatus     int // 背调状态
	orderStatusFlag bool

	accountThirdType     int // 供应商名称
	accountThirdTypeFlag bool

	package_    string // 背调套餐
	packageFlag bool

	name     string // 背调名称（仅手动录入的背调结果具有）
	nameFlag bool

	feedbackInfoList     []*BackgroundCheckOrderFeedbackInfo // 背调报告信息
	feedbackInfoListFlag bool

	processInfoList     []*BackgroundCheckOrderProcessInfo // 进度
	processInfoListFlag bool

	uploadTime     string // 录入时间（仅手动录入的背调结果具有）
	uploadTimeFlag bool

	candidateInfo     *UserContactInfo // 候选人信息
	candidateInfoFlag bool

	creatorInfo     *BackgroundCheckOrderCreator // 背调发起人信息
	creatorInfoFlag bool

	contactorInfo     *UserContactInfo // 背调联系人信息
	contactorInfoFlag bool

	beginTime     string // 背调发起时间
	beginTimeFlag bool

	endTime     string // 背调结束时间
	endTimeFlag bool

	conclusion     string // 背调结论
	conclusionFlag bool

	providerInfo     *ProviderIdNameObject // 供应商信息
	providerInfoFlag bool

	customFieldList     []*EcoBackgroundCheckCustomFieldData // 自定义字段模板
	customFieldListFlag bool

	customDataList     []*BackgroundCheckCustomFieldDataValue // 自定义字段值
	customDataListFlag bool

	extItemInfoList     []*BackgroundCheckItemInfo // 背调调查附加项
	extItemInfoListFlag bool

	updateTime     string // 订单更新时间
	updateTimeFlag bool

	geo     string // 属地
	geoFlag bool

	locationCode     string // 国家城市编码
	locationCodeFlag bool

	remark     string // 备注
	remarkFlag bool
}

func NewBackgroundCheckOrderBuilder() *BackgroundCheckOrderBuilder {
	builder := &BackgroundCheckOrderBuilder{}
	return builder
}

// 背调 ID
//
// 示例值：7037986982531778860
func (builder *BackgroundCheckOrderBuilder) OrderId(orderId string) *BackgroundCheckOrderBuilder {
	builder.orderId = orderId
	builder.orderIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：6985833807195212076
func (builder *BackgroundCheckOrderBuilder) ApplicationId(applicationId string) *BackgroundCheckOrderBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 背调状态
//
// 示例值：2
func (builder *BackgroundCheckOrderBuilder) OrderStatus(orderStatus int) *BackgroundCheckOrderBuilder {
	builder.orderStatus = orderStatus
	builder.orderStatusFlag = true
	return builder
}

// 供应商名称
//
// 示例值：1
func (builder *BackgroundCheckOrderBuilder) AccountThirdType(accountThirdType int) *BackgroundCheckOrderBuilder {
	builder.accountThirdType = accountThirdType
	builder.accountThirdTypeFlag = true
	return builder
}

// 背调套餐
//
// 示例值：基础版
func (builder *BackgroundCheckOrderBuilder) Package(package_ string) *BackgroundCheckOrderBuilder {
	builder.package_ = package_
	builder.packageFlag = true
	return builder
}

// 背调名称（仅手动录入的背调结果具有）
//
// 示例值：录入的背调
func (builder *BackgroundCheckOrderBuilder) Name(name string) *BackgroundCheckOrderBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 背调报告信息
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) FeedbackInfoList(feedbackInfoList []*BackgroundCheckOrderFeedbackInfo) *BackgroundCheckOrderBuilder {
	builder.feedbackInfoList = feedbackInfoList
	builder.feedbackInfoListFlag = true
	return builder
}

// 进度
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) ProcessInfoList(processInfoList []*BackgroundCheckOrderProcessInfo) *BackgroundCheckOrderBuilder {
	builder.processInfoList = processInfoList
	builder.processInfoListFlag = true
	return builder
}

// 录入时间（仅手动录入的背调结果具有）
//
// 示例值：1662476247755
func (builder *BackgroundCheckOrderBuilder) UploadTime(uploadTime string) *BackgroundCheckOrderBuilder {
	builder.uploadTime = uploadTime
	builder.uploadTimeFlag = true
	return builder
}

// 候选人信息
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) CandidateInfo(candidateInfo *UserContactInfo) *BackgroundCheckOrderBuilder {
	builder.candidateInfo = candidateInfo
	builder.candidateInfoFlag = true
	return builder
}

// 背调发起人信息
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) CreatorInfo(creatorInfo *BackgroundCheckOrderCreator) *BackgroundCheckOrderBuilder {
	builder.creatorInfo = creatorInfo
	builder.creatorInfoFlag = true
	return builder
}

// 背调联系人信息
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) ContactorInfo(contactorInfo *UserContactInfo) *BackgroundCheckOrderBuilder {
	builder.contactorInfo = contactorInfo
	builder.contactorInfoFlag = true
	return builder
}

// 背调发起时间
//
// 示例值：1686297649024
func (builder *BackgroundCheckOrderBuilder) BeginTime(beginTime string) *BackgroundCheckOrderBuilder {
	builder.beginTime = beginTime
	builder.beginTimeFlag = true
	return builder
}

// 背调结束时间
//
// 示例值：1686297649024
func (builder *BackgroundCheckOrderBuilder) EndTime(endTime string) *BackgroundCheckOrderBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 背调结论
//
// 示例值：绿灯
func (builder *BackgroundCheckOrderBuilder) Conclusion(conclusion string) *BackgroundCheckOrderBuilder {
	builder.conclusion = conclusion
	builder.conclusionFlag = true
	return builder
}

// 供应商信息
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) ProviderInfo(providerInfo *ProviderIdNameObject) *BackgroundCheckOrderBuilder {
	builder.providerInfo = providerInfo
	builder.providerInfoFlag = true
	return builder
}

// 自定义字段模板
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) CustomFieldList(customFieldList []*EcoBackgroundCheckCustomFieldData) *BackgroundCheckOrderBuilder {
	builder.customFieldList = customFieldList
	builder.customFieldListFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) CustomDataList(customDataList []*BackgroundCheckCustomFieldDataValue) *BackgroundCheckOrderBuilder {
	builder.customDataList = customDataList
	builder.customDataListFlag = true
	return builder
}

// 背调调查附加项
//
// 示例值：
func (builder *BackgroundCheckOrderBuilder) ExtItemInfoList(extItemInfoList []*BackgroundCheckItemInfo) *BackgroundCheckOrderBuilder {
	builder.extItemInfoList = extItemInfoList
	builder.extItemInfoListFlag = true
	return builder
}

// 订单更新时间
//
// 示例值：1686809576215
func (builder *BackgroundCheckOrderBuilder) UpdateTime(updateTime string) *BackgroundCheckOrderBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 属地
//
// 示例值：cn
func (builder *BackgroundCheckOrderBuilder) Geo(geo string) *BackgroundCheckOrderBuilder {
	builder.geo = geo
	builder.geoFlag = true
	return builder
}

// 国家城市编码
//
// 示例值：CN_1
func (builder *BackgroundCheckOrderBuilder) LocationCode(locationCode string) *BackgroundCheckOrderBuilder {
	builder.locationCode = locationCode
	builder.locationCodeFlag = true
	return builder
}

// 备注
//
// 示例值：候选人很优秀
func (builder *BackgroundCheckOrderBuilder) Remark(remark string) *BackgroundCheckOrderBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

func (builder *BackgroundCheckOrderBuilder) Build() *BackgroundCheckOrder {
	req := &BackgroundCheckOrder{}
	if builder.orderIdFlag {
		req.OrderId = &builder.orderId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.orderStatusFlag {
		req.OrderStatus = &builder.orderStatus

	}
	if builder.accountThirdTypeFlag {
		req.AccountThirdType = &builder.accountThirdType

	}
	if builder.packageFlag {
		req.Package = &builder.package_

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.feedbackInfoListFlag {
		req.FeedbackInfoList = builder.feedbackInfoList
	}
	if builder.processInfoListFlag {
		req.ProcessInfoList = builder.processInfoList
	}
	if builder.uploadTimeFlag {
		req.UploadTime = &builder.uploadTime

	}
	if builder.candidateInfoFlag {
		req.CandidateInfo = builder.candidateInfo
	}
	if builder.creatorInfoFlag {
		req.CreatorInfo = builder.creatorInfo
	}
	if builder.contactorInfoFlag {
		req.ContactorInfo = builder.contactorInfo
	}
	if builder.beginTimeFlag {
		req.BeginTime = &builder.beginTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.conclusionFlag {
		req.Conclusion = &builder.conclusion

	}
	if builder.providerInfoFlag {
		req.ProviderInfo = builder.providerInfo
	}
	if builder.customFieldListFlag {
		req.CustomFieldList = builder.customFieldList
	}
	if builder.customDataListFlag {
		req.CustomDataList = builder.customDataList
	}
	if builder.extItemInfoListFlag {
		req.ExtItemInfoList = builder.extItemInfoList
	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.geoFlag {
		req.Geo = &builder.geo

	}
	if builder.locationCodeFlag {
		req.LocationCode = &builder.locationCode

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	return req
}

type BackgroundCheckOrderCreator struct {
	UserId *string `json:"user_id,omitempty"` // 创建人ID
}

type BackgroundCheckOrderCreatorBuilder struct {
	userId     string // 创建人ID
	userIdFlag bool
}

func NewBackgroundCheckOrderCreatorBuilder() *BackgroundCheckOrderCreatorBuilder {
	builder := &BackgroundCheckOrderCreatorBuilder{}
	return builder
}

// 创建人ID
//
// 示例值：6930815272790114324
func (builder *BackgroundCheckOrderCreatorBuilder) UserId(userId string) *BackgroundCheckOrderCreatorBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *BackgroundCheckOrderCreatorBuilder) Build() *BackgroundCheckOrderCreator {
	req := &BackgroundCheckOrderCreator{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	return req
}

type BackgroundCheckOrderFeedbackInfo struct {
	Id *string `json:"id,omitempty"` // 背调报告ID

	AttachmentUrl *string `json:"attachment_url,omitempty"` // 背调信息附件下载链接

	ReportPreviewUrl *string `json:"report_preview_url,omitempty"` // 背调信息附件预览链接

	Result *string `json:"result,omitempty"` // 背调结果：红灯、黄灯、绿灯

	ReportType *int `json:"report_type,omitempty"` // 报告类型

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	ReportName *string `json:"report_name,omitempty"` // 报告名称
}

type BackgroundCheckOrderFeedbackInfoBuilder struct {
	id     string // 背调报告ID
	idFlag bool

	attachmentUrl     string // 背调信息附件下载链接
	attachmentUrlFlag bool

	reportPreviewUrl     string // 背调信息附件预览链接
	reportPreviewUrlFlag bool

	result     string // 背调结果：红灯、黄灯、绿灯
	resultFlag bool

	reportType     int // 报告类型
	reportTypeFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	reportName     string // 报告名称
	reportNameFlag bool
}

func NewBackgroundCheckOrderFeedbackInfoBuilder() *BackgroundCheckOrderFeedbackInfoBuilder {
	builder := &BackgroundCheckOrderFeedbackInfoBuilder{}
	return builder
}

// 背调报告ID
//
// 示例值：6930815272790114324
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) Id(id string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 背调信息附件下载链接
//
// 示例值：https://feishucdn.com/staource/v1/2de04c10-5cda-4c50~?image_size=np&cutpe=&quity=&mat=g&stmat=.wp
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) AttachmentUrl(attachmentUrl string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.attachmentUrl = attachmentUrl
	builder.attachmentUrlFlag = true
	return builder
}

// 背调信息附件预览链接
//
// 示例值：https://feishucdn.com/preview/file/6930815272790114324/
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) ReportPreviewUrl(reportPreviewUrl string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.reportPreviewUrl = reportPreviewUrl
	builder.reportPreviewUrlFlag = true
	return builder
}

// 背调结果：红灯、黄灯、绿灯
//
// 示例值：红灯
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) Result(result string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 报告类型
//
// 示例值：1
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) ReportType(reportType int) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.reportType = reportType
	builder.reportTypeFlag = true
	return builder
}

// 创建时间
//
// 示例值：1686645425868
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) CreateTime(createTime string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 报告名称
//
// 示例值：张三的背调报告
func (builder *BackgroundCheckOrderFeedbackInfoBuilder) ReportName(reportName string) *BackgroundCheckOrderFeedbackInfoBuilder {
	builder.reportName = reportName
	builder.reportNameFlag = true
	return builder
}

func (builder *BackgroundCheckOrderFeedbackInfoBuilder) Build() *BackgroundCheckOrderFeedbackInfo {
	req := &BackgroundCheckOrderFeedbackInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.attachmentUrlFlag {
		req.AttachmentUrl = &builder.attachmentUrl

	}
	if builder.reportPreviewUrlFlag {
		req.ReportPreviewUrl = &builder.reportPreviewUrl

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	if builder.reportTypeFlag {
		req.ReportType = &builder.reportType

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.reportNameFlag {
		req.ReportName = &builder.reportName

	}
	return req
}

type BackgroundCheckOrderProcessInfo struct {
	Process *string `json:"process,omitempty"` // 背调进度

	UpdateTime *string `json:"update_time,omitempty"` // 进度更新时间

	EnProcess *string `json:"en_process,omitempty"` // 英文背调进度
}

type BackgroundCheckOrderProcessInfoBuilder struct {
	process     string // 背调进度
	processFlag bool

	updateTime     string // 进度更新时间
	updateTimeFlag bool

	enProcess     string // 英文背调进度
	enProcessFlag bool
}

func NewBackgroundCheckOrderProcessInfoBuilder() *BackgroundCheckOrderProcessInfoBuilder {
	builder := &BackgroundCheckOrderProcessInfoBuilder{}
	return builder
}

// 背调进度
//
// 示例值：待安排
func (builder *BackgroundCheckOrderProcessInfoBuilder) Process(process string) *BackgroundCheckOrderProcessInfoBuilder {
	builder.process = process
	builder.processFlag = true
	return builder
}

// 进度更新时间
//
// 示例值：1638359554952
func (builder *BackgroundCheckOrderProcessInfoBuilder) UpdateTime(updateTime string) *BackgroundCheckOrderProcessInfoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 英文背调进度
//
// 示例值：arranged
func (builder *BackgroundCheckOrderProcessInfoBuilder) EnProcess(enProcess string) *BackgroundCheckOrderProcessInfoBuilder {
	builder.enProcess = enProcess
	builder.enProcessFlag = true
	return builder
}

func (builder *BackgroundCheckOrderProcessInfoBuilder) Build() *BackgroundCheckOrderProcessInfo {
	req := &BackgroundCheckOrderProcessInfo{}
	if builder.processFlag {
		req.Process = &builder.process

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.enProcessFlag {
		req.EnProcess = &builder.enProcess

	}
	return req
}

type BackgroundCheckProcessInfo struct {
	Process *string `json:"process,omitempty"` // 背调进度

	UpdateTime *string `json:"update_time,omitempty"` // 进度更新时间
}

type BackgroundCheckProcessInfoBuilder struct {
	process     string // 背调进度
	processFlag bool

	updateTime     string // 进度更新时间
	updateTimeFlag bool
}

func NewBackgroundCheckProcessInfoBuilder() *BackgroundCheckProcessInfoBuilder {
	builder := &BackgroundCheckProcessInfoBuilder{}
	return builder
}

// 背调进度
//
// 示例值：待安排
func (builder *BackgroundCheckProcessInfoBuilder) Process(process string) *BackgroundCheckProcessInfoBuilder {
	builder.process = process
	builder.processFlag = true
	return builder
}

// 进度更新时间
//
// 示例值：1638359554952
func (builder *BackgroundCheckProcessInfoBuilder) UpdateTime(updateTime string) *BackgroundCheckProcessInfoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

func (builder *BackgroundCheckProcessInfoBuilder) Build() *BackgroundCheckProcessInfo {
	req := &BackgroundCheckProcessInfo{}
	if builder.processFlag {
		req.Process = &builder.process

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	return req
}

type BaseAddress struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	District *BaseDistrict `json:"district,omitempty"` // 区域信息

	City *BaseCity `json:"city,omitempty"` // 城市信息

	State *BaseCity `json:"state,omitempty"` // 省信息

	Country *BaseCountry `json:"country,omitempty"` // 国家信息
}

type BaseAddressBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	district     *BaseDistrict // 区域信息
	districtFlag bool

	city     *BaseCity // 城市信息
	cityFlag bool

	state     *BaseCity // 省信息
	stateFlag bool

	country     *BaseCountry // 国家信息
	countryFlag bool
}

func NewBaseAddressBuilder() *BaseAddressBuilder {
	builder := &BaseAddressBuilder{}
	return builder
}

// ID
//
// 示例值：6932753007915206919
func (builder *BaseAddressBuilder) Id(id string) *BaseAddressBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名称
//
// 示例值：名字
func (builder *BaseAddressBuilder) ZhName(zhName string) *BaseAddressBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：name
func (builder *BaseAddressBuilder) EnName(enName string) *BaseAddressBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 区域信息
//
// 示例值：
func (builder *BaseAddressBuilder) District(district *BaseDistrict) *BaseAddressBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市信息
//
// 示例值：
func (builder *BaseAddressBuilder) City(city *BaseCity) *BaseAddressBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省信息
//
// 示例值：
func (builder *BaseAddressBuilder) State(state *BaseCity) *BaseAddressBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家信息
//
// 示例值：
func (builder *BaseAddressBuilder) Country(country *BaseCountry) *BaseAddressBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *BaseAddressBuilder) Build() *BaseAddress {
	req := &BaseAddress{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type BaseAddressV2 struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	District *BaseLocation `json:"district,omitempty"` // 区域信息

	City *BaseLocation `json:"city,omitempty"` // 城市信息

	State *BaseLocation `json:"state,omitempty"` // 省信息

	Country *BaseLocation `json:"country,omitempty"` // 国家信息
}

type BaseAddressV2Builder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	district     *BaseLocation // 区域信息
	districtFlag bool

	city     *BaseLocation // 城市信息
	cityFlag bool

	state     *BaseLocation // 省信息
	stateFlag bool

	country     *BaseLocation // 国家信息
	countryFlag bool
}

func NewBaseAddressV2Builder() *BaseAddressV2Builder {
	builder := &BaseAddressV2Builder{}
	return builder
}

// ID
//
// 示例值：6583482347283472832
func (builder *BaseAddressV2Builder) Id(id string) *BaseAddressV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *BaseAddressV2Builder) Name(name *I18n) *BaseAddressV2Builder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 区域信息
//
// 示例值：
func (builder *BaseAddressV2Builder) District(district *BaseLocation) *BaseAddressV2Builder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市信息
//
// 示例值：
func (builder *BaseAddressV2Builder) City(city *BaseLocation) *BaseAddressV2Builder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省信息
//
// 示例值：
func (builder *BaseAddressV2Builder) State(state *BaseLocation) *BaseAddressV2Builder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家信息
//
// 示例值：
func (builder *BaseAddressV2Builder) Country(country *BaseLocation) *BaseAddressV2Builder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *BaseAddressV2Builder) Build() *BaseAddressV2 {
	req := &BaseAddressV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type BaseBilingualWithId struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称
}

type BaseBilingualWithIdBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool
}

func NewBaseBilingualWithIdBuilder() *BaseBilingualWithIdBuilder {
	builder := &BaseBilingualWithIdBuilder{}
	return builder
}

// ID
//
// 示例值：1
func (builder *BaseBilingualWithIdBuilder) Id(id string) *BaseBilingualWithIdBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名称
//
// 示例值：正式
func (builder *BaseBilingualWithIdBuilder) ZhName(zhName string) *BaseBilingualWithIdBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：Regular
func (builder *BaseBilingualWithIdBuilder) EnName(enName string) *BaseBilingualWithIdBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *BaseBilingualWithIdBuilder) Build() *BaseBilingualWithId {
	req := &BaseBilingualWithId{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type BaseCity struct {
	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	Code *string `json:"code,omitempty"` // 编码

	LocationType *int `json:"location_type,omitempty"` // 地址类型
}

type BaseCityBuilder struct {
	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	code     string // 编码
	codeFlag bool

	locationType     int // 地址类型
	locationTypeFlag bool
}

func NewBaseCityBuilder() *BaseCityBuilder {
	builder := &BaseCityBuilder{}
	return builder
}

// 中文名称
//
// 示例值：中文
func (builder *BaseCityBuilder) ZhName(zhName string) *BaseCityBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：eng
func (builder *BaseCityBuilder) EnName(enName string) *BaseCityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 编码
//
// 示例值：400700
func (builder *BaseCityBuilder) Code(code string) *BaseCityBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 地址类型
//
// 示例值：1
func (builder *BaseCityBuilder) LocationType(locationType int) *BaseCityBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *BaseCityBuilder) Build() *BaseCity {
	req := &BaseCity{}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type BaseCountry struct {
	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	Code *string `json:"code,omitempty"` // 编码

	LocationType *int `json:"location_type,omitempty"` // 地址类型
}

type BaseCountryBuilder struct {
	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	code     string // 编码
	codeFlag bool

	locationType     int // 地址类型
	locationTypeFlag bool
}

func NewBaseCountryBuilder() *BaseCountryBuilder {
	builder := &BaseCountryBuilder{}
	return builder
}

// 中文名称
//
// 示例值：中文
func (builder *BaseCountryBuilder) ZhName(zhName string) *BaseCountryBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：eng
func (builder *BaseCountryBuilder) EnName(enName string) *BaseCountryBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 编码
//
// 示例值：400700
func (builder *BaseCountryBuilder) Code(code string) *BaseCountryBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 地址类型
//
// 示例值：1
func (builder *BaseCountryBuilder) LocationType(locationType int) *BaseCountryBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *BaseCountryBuilder) Build() *BaseCountry {
	req := &BaseCountry{}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type BaseDistrict struct {
	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	Code *string `json:"code,omitempty"` // 编码

	LocationType *int64 `json:"location_type,omitempty"` // 地址类型
}

type BaseDistrictBuilder struct {
	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	code     string // 编码
	codeFlag bool

	locationType     int64 // 地址类型
	locationTypeFlag bool
}

func NewBaseDistrictBuilder() *BaseDistrictBuilder {
	builder := &BaseDistrictBuilder{}
	return builder
}

// 中文名称
//
// 示例值：伦敦
func (builder *BaseDistrictBuilder) ZhName(zhName string) *BaseDistrictBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：London
func (builder *BaseDistrictBuilder) EnName(enName string) *BaseDistrictBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 编码
//
// 示例值：400700
func (builder *BaseDistrictBuilder) Code(code string) *BaseDistrictBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 地址类型
//
// 示例值：1
func (builder *BaseDistrictBuilder) LocationType(locationType int64) *BaseDistrictBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *BaseDistrictBuilder) Build() *BaseDistrict {
	req := &BaseDistrict{}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type BaseLocation struct {
	Name *I18n `json:"name,omitempty"` // 名称

	Code *string `json:"code,omitempty"` // 编码

	LocationType *int `json:"location_type,omitempty"` // 地址类型 1=COUNTRY, 2=STATE, 3=CITY, 4=DISTRICT, 5=ADDRESS,
}

type BaseLocationBuilder struct {
	name     *I18n // 名称
	nameFlag bool

	code     string // 编码
	codeFlag bool

	locationType     int // 地址类型 1=COUNTRY, 2=STATE, 3=CITY, 4=DISTRICT, 5=ADDRESS,
	locationTypeFlag bool
}

func NewBaseLocationBuilder() *BaseLocationBuilder {
	builder := &BaseLocationBuilder{}
	return builder
}

// 名称
//
// 示例值：
func (builder *BaseLocationBuilder) Name(name *I18n) *BaseLocationBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 编码
//
// 示例值：400700
func (builder *BaseLocationBuilder) Code(code string) *BaseLocationBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 地址类型 1=COUNTRY, 2=STATE, 3=CITY, 4=DISTRICT, 5=ADDRESS,
//
// 示例值：1
func (builder *BaseLocationBuilder) LocationType(locationType int) *BaseLocationBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *BaseLocationBuilder) Build() *BaseLocation {
	req := &BaseLocation{}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	return req
}

type BaseResp struct {
	StatusMessage *string `json:"StatusMessage,omitempty"` // 响应信息

	StatusCode *int64 `json:"StatusCode,omitempty"` // 响应码
}

type BaseRespBuilder struct {
	statusMessage     string // 响应信息
	statusMessageFlag bool

	statusCode     int64 // 响应码
	statusCodeFlag bool
}

func NewBaseRespBuilder() *BaseRespBuilder {
	builder := &BaseRespBuilder{}
	return builder
}

// 响应信息
//
// 示例值：1
func (builder *BaseRespBuilder) StatusMessage(statusMessage string) *BaseRespBuilder {
	builder.statusMessage = statusMessage
	builder.statusMessageFlag = true
	return builder
}

// 响应码
//
// 示例值：1
func (builder *BaseRespBuilder) StatusCode(statusCode int64) *BaseRespBuilder {
	builder.statusCode = statusCode
	builder.statusCodeFlag = true
	return builder
}

func (builder *BaseRespBuilder) Build() *BaseResp {
	req := &BaseResp{}
	if builder.statusMessageFlag {
		req.StatusMessage = &builder.statusMessage

	}
	if builder.statusCodeFlag {
		req.StatusCode = &builder.statusCode

	}
	return req
}

type BasicDepartmentInfo struct {
	Id *string `json:"id,omitempty"` // 部门 ID

	Name *I18n `json:"name,omitempty"` // 部门名称
}

type BasicDepartmentInfoBuilder struct {
	id     string // 部门 ID
	idFlag bool

	name     *I18n // 部门名称
	nameFlag bool
}

func NewBasicDepartmentInfoBuilder() *BasicDepartmentInfoBuilder {
	builder := &BasicDepartmentInfoBuilder{}
	return builder
}

// 部门 ID
//
// 示例值：6956499586395523359
func (builder *BasicDepartmentInfoBuilder) Id(id string) *BasicDepartmentInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 部门名称
//
// 示例值：
func (builder *BasicDepartmentInfoBuilder) Name(name *I18n) *BasicDepartmentInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *BasicDepartmentInfoBuilder) Build() *BasicDepartmentInfo {
	req := &BasicDepartmentInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type BasicInfo struct {
	Name *string `json:"name,omitempty"` // 名字

	Mobile *string `json:"mobile,omitempty"` // 手机

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码

	Email *string `json:"email,omitempty"` // 邮箱

	Birthday *int64 `json:"birthday,omitempty"` // 生日

	Confidentiality *int64 `json:"confidentiality,omitempty"` // 保密

	CreatorAccountType *int64 `json:"creator_account_type,omitempty"` // 创建者账户类型

	CreatorId *string `json:"creator_id,omitempty"` // 创建者ID

	CurrentCityCode *string `json:"current_city_code,omitempty"` // 现居住城市

	Gender *int64 `json:"gender,omitempty"` // 性别

	HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡所在城市

	Identification *Identification `json:"identification,omitempty"` // 证件

	InitSourceId *string `json:"init_source_id,omitempty"` // 来源

	NationalityId *string `json:"nationality_id,omitempty"` // 国籍编号

	ResumeAttachmentId *string `json:"resume_attachment_id,omitempty"` // 附件简历ID

	SelfEvaluation *string `json:"self_evaluation,omitempty"` // 自我评价

	StartWorkTime *int64 `json:"start_work_time,omitempty"` // 开始工作时间
}

type BasicInfoBuilder struct {
	name     string // 名字
	nameFlag bool

	mobile     string // 手机
	mobileFlag bool

	mobileCountryCode     string // 手机国家代码
	mobileCountryCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	birthday     int64 // 生日
	birthdayFlag bool

	confidentiality     int64 // 保密
	confidentialityFlag bool

	creatorAccountType     int64 // 创建者账户类型
	creatorAccountTypeFlag bool

	creatorId     string // 创建者ID
	creatorIdFlag bool

	currentCityCode     string // 现居住城市
	currentCityCodeFlag bool

	gender     int64 // 性别
	genderFlag bool

	hometownCityCode     string // 家乡所在城市
	hometownCityCodeFlag bool

	identification     *Identification // 证件
	identificationFlag bool

	initSourceId     string // 来源
	initSourceIdFlag bool

	nationalityId     string // 国籍编号
	nationalityIdFlag bool

	resumeAttachmentId     string // 附件简历ID
	resumeAttachmentIdFlag bool

	selfEvaluation     string // 自我评价
	selfEvaluationFlag bool

	startWorkTime     int64 // 开始工作时间
	startWorkTimeFlag bool
}

func NewBasicInfoBuilder() *BasicInfoBuilder {
	builder := &BasicInfoBuilder{}
	return builder
}

// 名字
//
// 示例值：1
func (builder *BasicInfoBuilder) Name(name string) *BasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机
//
// 示例值：1
func (builder *BasicInfoBuilder) Mobile(mobile string) *BasicInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：1
func (builder *BasicInfoBuilder) MobileCountryCode(mobileCountryCode string) *BasicInfoBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：1
func (builder *BasicInfoBuilder) Email(email string) *BasicInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 生日
//
// 示例值：1
func (builder *BasicInfoBuilder) Birthday(birthday int64) *BasicInfoBuilder {
	builder.birthday = birthday
	builder.birthdayFlag = true
	return builder
}

// 保密
//
// 示例值：1
func (builder *BasicInfoBuilder) Confidentiality(confidentiality int64) *BasicInfoBuilder {
	builder.confidentiality = confidentiality
	builder.confidentialityFlag = true
	return builder
}

// 创建者账户类型
//
// 示例值：1
func (builder *BasicInfoBuilder) CreatorAccountType(creatorAccountType int64) *BasicInfoBuilder {
	builder.creatorAccountType = creatorAccountType
	builder.creatorAccountTypeFlag = true
	return builder
}

// 创建者ID
//
// 示例值：1
func (builder *BasicInfoBuilder) CreatorId(creatorId string) *BasicInfoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 现居住城市
//
// 示例值：1
func (builder *BasicInfoBuilder) CurrentCityCode(currentCityCode string) *BasicInfoBuilder {
	builder.currentCityCode = currentCityCode
	builder.currentCityCodeFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *BasicInfoBuilder) Gender(gender int64) *BasicInfoBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 家乡所在城市
//
// 示例值：1
func (builder *BasicInfoBuilder) HometownCityCode(hometownCityCode string) *BasicInfoBuilder {
	builder.hometownCityCode = hometownCityCode
	builder.hometownCityCodeFlag = true
	return builder
}

// 证件
//
// 示例值：1
func (builder *BasicInfoBuilder) Identification(identification *Identification) *BasicInfoBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

// 来源
//
// 示例值：1
func (builder *BasicInfoBuilder) InitSourceId(initSourceId string) *BasicInfoBuilder {
	builder.initSourceId = initSourceId
	builder.initSourceIdFlag = true
	return builder
}

// 国籍编号
//
// 示例值：1
func (builder *BasicInfoBuilder) NationalityId(nationalityId string) *BasicInfoBuilder {
	builder.nationalityId = nationalityId
	builder.nationalityIdFlag = true
	return builder
}

// 附件简历ID
//
// 示例值：1
func (builder *BasicInfoBuilder) ResumeAttachmentId(resumeAttachmentId string) *BasicInfoBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 自我评价
//
// 示例值：1
func (builder *BasicInfoBuilder) SelfEvaluation(selfEvaluation string) *BasicInfoBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 开始工作时间
//
// 示例值：1
func (builder *BasicInfoBuilder) StartWorkTime(startWorkTime int64) *BasicInfoBuilder {
	builder.startWorkTime = startWorkTime
	builder.startWorkTimeFlag = true
	return builder
}

func (builder *BasicInfoBuilder) Build() *BasicInfo {
	req := &BasicInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.birthdayFlag {
		req.Birthday = &builder.birthday

	}
	if builder.confidentialityFlag {
		req.Confidentiality = &builder.confidentiality

	}
	if builder.creatorAccountTypeFlag {
		req.CreatorAccountType = &builder.creatorAccountType

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.currentCityCodeFlag {
		req.CurrentCityCode = &builder.currentCityCode

	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.hometownCityCodeFlag {
		req.HometownCityCode = &builder.hometownCityCode

	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	if builder.initSourceIdFlag {
		req.InitSourceId = &builder.initSourceId

	}
	if builder.nationalityIdFlag {
		req.NationalityId = &builder.nationalityId

	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId

	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = &builder.selfEvaluation

	}
	if builder.startWorkTimeFlag {
		req.StartWorkTime = &builder.startWorkTime

	}
	return req
}

type BasicUserInfo struct {
	Id *string `json:"id,omitempty"` // 用户 ID

	Name *I18n `json:"name,omitempty"` // 用户名称
}

type BasicUserInfoBuilder struct {
	id     string // 用户 ID
	idFlag bool

	name     *I18n // 用户名称
	nameFlag bool
}

func NewBasicUserInfoBuilder() *BasicUserInfoBuilder {
	builder := &BasicUserInfoBuilder{}
	return builder
}

// 用户 ID
//
// 示例值：6956499586395523359
func (builder *BasicUserInfoBuilder) Id(id string) *BasicUserInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 用户名称
//
// 示例值：
func (builder *BasicUserInfoBuilder) Name(name *I18n) *BasicUserInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *BasicUserInfoBuilder) Build() *BasicUserInfo {
	req := &BasicUserInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type BonusAmount struct {
	BonusType *int `json:"bonus_type,omitempty"` // 奖励类型

	PointBonus *int64 `json:"point_bonus,omitempty"` // 积分奖励

	Cash *Cash `json:"cash,omitempty"` // 现金奖励

	CashBonus []*Cash `json:"cash_bonus,omitempty"` // 现金奖励
}

type BonusAmountBuilder struct {
	bonusType     int // 奖励类型
	bonusTypeFlag bool

	pointBonus     int64 // 积分奖励
	pointBonusFlag bool

	cash     *Cash // 现金奖励
	cashFlag bool

	cashBonus     []*Cash // 现金奖励
	cashBonusFlag bool
}

func NewBonusAmountBuilder() *BonusAmountBuilder {
	builder := &BonusAmountBuilder{}
	return builder
}

// 奖励类型
//
// 示例值：1
func (builder *BonusAmountBuilder) BonusType(bonusType int) *BonusAmountBuilder {
	builder.bonusType = bonusType
	builder.bonusTypeFlag = true
	return builder
}

// 积分奖励
//
// 示例值：100
func (builder *BonusAmountBuilder) PointBonus(pointBonus int64) *BonusAmountBuilder {
	builder.pointBonus = pointBonus
	builder.pointBonusFlag = true
	return builder
}

// 现金奖励
//
// 示例值：
func (builder *BonusAmountBuilder) Cash(cash *Cash) *BonusAmountBuilder {
	builder.cash = cash
	builder.cashFlag = true
	return builder
}

// 现金奖励
//
// 示例值：
func (builder *BonusAmountBuilder) CashBonus(cashBonus []*Cash) *BonusAmountBuilder {
	builder.cashBonus = cashBonus
	builder.cashBonusFlag = true
	return builder
}

func (builder *BonusAmountBuilder) Build() *BonusAmount {
	req := &BonusAmount{}
	if builder.bonusTypeFlag {
		req.BonusType = &builder.bonusType

	}
	if builder.pointBonusFlag {
		req.PointBonus = &builder.pointBonus

	}
	if builder.cashFlag {
		req.Cash = builder.cash
	}
	if builder.cashBonusFlag {
		req.CashBonus = builder.cashBonus
	}
	return req
}

type BusinessManagementScope struct {
	Entity *EntityInfo `json:"entity,omitempty"` // 实体

	PermissionGroups []*PermissionGroupInfo `json:"permission_groups,omitempty"` // 权限分组
}

type BusinessManagementScopeBuilder struct {
	entity     *EntityInfo // 实体
	entityFlag bool

	permissionGroups     []*PermissionGroupInfo // 权限分组
	permissionGroupsFlag bool
}

func NewBusinessManagementScopeBuilder() *BusinessManagementScopeBuilder {
	builder := &BusinessManagementScopeBuilder{}
	return builder
}

// 实体
//
// 示例值：
func (builder *BusinessManagementScopeBuilder) Entity(entity *EntityInfo) *BusinessManagementScopeBuilder {
	builder.entity = entity
	builder.entityFlag = true
	return builder
}

// 权限分组
//
// 示例值：
func (builder *BusinessManagementScopeBuilder) PermissionGroups(permissionGroups []*PermissionGroupInfo) *BusinessManagementScopeBuilder {
	builder.permissionGroups = permissionGroups
	builder.permissionGroupsFlag = true
	return builder
}

func (builder *BusinessManagementScopeBuilder) Build() *BusinessManagementScope {
	req := &BusinessManagementScope{}
	if builder.entityFlag {
		req.Entity = builder.entity
	}
	if builder.permissionGroupsFlag {
		req.PermissionGroups = builder.permissionGroups
	}
	return req
}

type CampusVolumnteerInfo struct {
	VolunteerSeq *int64 `json:"volunteer_seq,omitempty"` // 志愿顺序
}

type CampusVolumnteerInfoBuilder struct {
	volunteerSeq     int64 // 志愿顺序
	volunteerSeqFlag bool
}

func NewCampusVolumnteerInfoBuilder() *CampusVolumnteerInfoBuilder {
	builder := &CampusVolumnteerInfoBuilder{}
	return builder
}

// 志愿顺序
//
// 示例值：1
func (builder *CampusVolumnteerInfoBuilder) VolunteerSeq(volunteerSeq int64) *CampusVolumnteerInfoBuilder {
	builder.volunteerSeq = volunteerSeq
	builder.volunteerSeqFlag = true
	return builder
}

func (builder *CampusVolumnteerInfoBuilder) Build() *CampusVolumnteerInfo {
	req := &CampusVolumnteerInfo{}
	if builder.volunteerSeqFlag {
		req.VolunteerSeq = &builder.volunteerSeq

	}
	return req
}

type CandidateTagFilter struct {
	MatchType *int `json:"match_type,omitempty"` // 标签匹配方式

	CandidateTagId []string `json:"candidate_tag_id,omitempty"` // 标签 ID 列表
}

type CandidateTagFilterBuilder struct {
	matchType     int // 标签匹配方式
	matchTypeFlag bool

	candidateTagId     []string // 标签 ID 列表
	candidateTagIdFlag bool
}

func NewCandidateTagFilterBuilder() *CandidateTagFilterBuilder {
	builder := &CandidateTagFilterBuilder{}
	return builder
}

// 标签匹配方式
//
// 示例值：1
func (builder *CandidateTagFilterBuilder) MatchType(matchType int) *CandidateTagFilterBuilder {
	builder.matchType = matchType
	builder.matchTypeFlag = true
	return builder
}

// 标签 ID 列表
//
// 示例值：
func (builder *CandidateTagFilterBuilder) CandidateTagId(candidateTagId []string) *CandidateTagFilterBuilder {
	builder.candidateTagId = candidateTagId
	builder.candidateTagIdFlag = true
	return builder
}

func (builder *CandidateTagFilterBuilder) Build() *CandidateTagFilter {
	req := &CandidateTagFilter{}
	if builder.matchTypeFlag {
		req.MatchType = &builder.matchType

	}
	if builder.candidateTagIdFlag {
		req.CandidateTagId = builder.candidateTagId
	}
	return req
}

type CareerInfo struct {
	CareerType *int64 `json:"career_type,omitempty"` // 类型

	Company *string `json:"company,omitempty"` // 公司

	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	Title *string `json:"title,omitempty"` // 职称
}

type CareerInfoBuilder struct {
	careerType     int64 // 类型
	careerTypeFlag bool

	company     string // 公司
	companyFlag bool

	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	title     string // 职称
	titleFlag bool
}

func NewCareerInfoBuilder() *CareerInfoBuilder {
	builder := &CareerInfoBuilder{}
	return builder
}

// 类型
//
// 示例值：1
func (builder *CareerInfoBuilder) CareerType(careerType int64) *CareerInfoBuilder {
	builder.careerType = careerType
	builder.careerTypeFlag = true
	return builder
}

// 公司
//
// 示例值：11
func (builder *CareerInfoBuilder) Company(company string) *CareerInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 描述
//
// 示例值：11
func (builder *CareerInfoBuilder) Desc(desc string) *CareerInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间
//
// 示例值：1
func (builder *CareerInfoBuilder) EndTime(endTime int64) *CareerInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 开始时间
//
// 示例值：1
func (builder *CareerInfoBuilder) StartTime(startTime int64) *CareerInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 职称
//
// 示例值：11
func (builder *CareerInfoBuilder) Title(title string) *CareerInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

func (builder *CareerInfoBuilder) Build() *CareerInfo {
	req := &CareerInfo{}
	if builder.careerTypeFlag {
		req.CareerType = &builder.careerType

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	return req
}

type Cash struct {
	CurrencyType *string `json:"currency_type,omitempty"` // 币种

	Amount *float64 `json:"amount,omitempty"` // 数额
}

type CashBuilder struct {
	currencyType     string // 币种
	currencyTypeFlag bool

	amount     float64 // 数额
	amountFlag bool
}

func NewCashBuilder() *CashBuilder {
	builder := &CashBuilder{}
	return builder
}

// 币种
//
// 示例值：CNY
func (builder *CashBuilder) CurrencyType(currencyType string) *CashBuilder {
	builder.currencyType = currencyType
	builder.currencyTypeFlag = true
	return builder
}

// 数额
//
// 示例值：100
func (builder *CashBuilder) Amount(amount float64) *CashBuilder {
	builder.amount = amount
	builder.amountFlag = true
	return builder
}

func (builder *CashBuilder) Build() *Cash {
	req := &Cash{}
	if builder.currencyTypeFlag {
		req.CurrencyType = &builder.currencyType

	}
	if builder.amountFlag {
		req.Amount = &builder.amount

	}
	return req
}

type CertificateInfo struct {
	Desc *string `json:"desc,omitempty"` // 证件描述

	Name *string `json:"name,omitempty"` // 证件名称
}

type CertificateInfoBuilder struct {
	desc     string // 证件描述
	descFlag bool

	name     string // 证件名称
	nameFlag bool
}

func NewCertificateInfoBuilder() *CertificateInfoBuilder {
	builder := &CertificateInfoBuilder{}
	return builder
}

// 证件描述
//
// 示例值：
func (builder *CertificateInfoBuilder) Desc(desc string) *CertificateInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 证件名称
//
// 示例值：
func (builder *CertificateInfoBuilder) Name(name string) *CertificateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *CertificateInfoBuilder) Build() *CertificateInfo {
	req := &CertificateInfo{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type ChangeEmployeeStage struct {
	Operation *int `json:"operation,omitempty"` // 修改状态操作

	ConversionInfo *EmployeeConversionInfo `json:"conversion_info,omitempty"` // 转正信息

	OverboardInfo *EmployeeOverboardInfo `json:"overboard_info,omitempty"` // 离职信息
}

type ChangeEmployeeStageBuilder struct {
	operation     int // 修改状态操作
	operationFlag bool

	conversionInfo     *EmployeeConversionInfo // 转正信息
	conversionInfoFlag bool

	overboardInfo     *EmployeeOverboardInfo // 离职信息
	overboardInfoFlag bool
}

func NewChangeEmployeeStageBuilder() *ChangeEmployeeStageBuilder {
	builder := &ChangeEmployeeStageBuilder{}
	return builder
}

// 修改状态操作
//
// 示例值：1
func (builder *ChangeEmployeeStageBuilder) Operation(operation int) *ChangeEmployeeStageBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 转正信息
//
// 示例值：
func (builder *ChangeEmployeeStageBuilder) ConversionInfo(conversionInfo *EmployeeConversionInfo) *ChangeEmployeeStageBuilder {
	builder.conversionInfo = conversionInfo
	builder.conversionInfoFlag = true
	return builder
}

// 离职信息
//
// 示例值：
func (builder *ChangeEmployeeStageBuilder) OverboardInfo(overboardInfo *EmployeeOverboardInfo) *ChangeEmployeeStageBuilder {
	builder.overboardInfo = overboardInfo
	builder.overboardInfoFlag = true
	return builder
}

func (builder *ChangeEmployeeStageBuilder) Build() *ChangeEmployeeStage {
	req := &ChangeEmployeeStage{}
	if builder.operationFlag {
		req.Operation = &builder.operation

	}
	if builder.conversionInfoFlag {
		req.ConversionInfo = builder.conversionInfo
	}
	if builder.overboardInfoFlag {
		req.OverboardInfo = builder.overboardInfo
	}
	return req
}

type CheckFailedAccountInfo struct {
	AccountId *string `json:"account_id,omitempty"` // 账户ID

	TotalWithdrawRewardInfo *BonusAmount `json:"total_withdraw_reward_info,omitempty"` // 招聘系统内的提取金额

	TotalRechargeRewardInfo *BonusAmount `json:"total_recharge_reward_info,omitempty"` // 商城实际充值金额
}

type CheckFailedAccountInfoBuilder struct {
	accountId     string // 账户ID
	accountIdFlag bool

	totalWithdrawRewardInfo     *BonusAmount // 招聘系统内的提取金额
	totalWithdrawRewardInfoFlag bool

	totalRechargeRewardInfo     *BonusAmount // 商城实际充值金额
	totalRechargeRewardInfoFlag bool
}

func NewCheckFailedAccountInfoBuilder() *CheckFailedAccountInfoBuilder {
	builder := &CheckFailedAccountInfoBuilder{}
	return builder
}

// 账户ID
//
// 示例值：6930815272790114324
func (builder *CheckFailedAccountInfoBuilder) AccountId(accountId string) *CheckFailedAccountInfoBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 招聘系统内的提取金额
//
// 示例值：
func (builder *CheckFailedAccountInfoBuilder) TotalWithdrawRewardInfo(totalWithdrawRewardInfo *BonusAmount) *CheckFailedAccountInfoBuilder {
	builder.totalWithdrawRewardInfo = totalWithdrawRewardInfo
	builder.totalWithdrawRewardInfoFlag = true
	return builder
}

// 商城实际充值金额
//
// 示例值：
func (builder *CheckFailedAccountInfoBuilder) TotalRechargeRewardInfo(totalRechargeRewardInfo *BonusAmount) *CheckFailedAccountInfoBuilder {
	builder.totalRechargeRewardInfo = totalRechargeRewardInfo
	builder.totalRechargeRewardInfoFlag = true
	return builder
}

func (builder *CheckFailedAccountInfoBuilder) Build() *CheckFailedAccountInfo {
	req := &CheckFailedAccountInfo{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.totalWithdrawRewardInfoFlag {
		req.TotalWithdrawRewardInfo = builder.totalWithdrawRewardInfo
	}
	if builder.totalRechargeRewardInfoFlag {
		req.TotalRechargeRewardInfo = builder.totalRechargeRewardInfo
	}
	return req
}

type City struct {
	CityCode *string `json:"city_code,omitempty"` // 编码

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名

	Country *Country `json:"country,omitempty"` // 国家
}

type CityBuilder struct {
	cityCode     string // 编码
	cityCodeFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool

	country     *Country // 国家
	countryFlag bool
}

func NewCityBuilder() *CityBuilder {
	builder := &CityBuilder{}
	return builder
}

// 编码
//
// 示例值：
func (builder *CityBuilder) CityCode(cityCode string) *CityBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *CityBuilder) Name(name string) *CityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *CityBuilder) EnName(enName string) *CityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 国家
//
// 示例值：
func (builder *CityBuilder) Country(country *Country) *CityBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *CityBuilder) Build() *City {
	req := &City{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type CodeNameObject struct {
	Code *string `json:"code,omitempty"` // 编码

	Name *I18n `json:"name,omitempty"` // 名称
}

type CodeNameObjectBuilder struct {
	code     string // 编码
	codeFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewCodeNameObjectBuilder() *CodeNameObjectBuilder {
	builder := &CodeNameObjectBuilder{}
	return builder
}

// 编码
//
// 示例值：1111
func (builder *CodeNameObjectBuilder) Code(code string) *CodeNameObjectBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *CodeNameObjectBuilder) Name(name *I18n) *CodeNameObjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *CodeNameObjectBuilder) Build() *CodeNameObject {
	req := &CodeNameObject{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type CombinedJob struct {
	Id *string `json:"id,omitempty"` // 职位 ID

	Code *string `json:"code,omitempty"` // 职位编号，可传入职位的「职位编号」、「职位 ID」或者「职位序号」，将以传入的参数作为职位编号，以便双方系统的数据映射

	Experience *int `json:"experience,omitempty"` // 工作年限

	ExpiryTime *int64 `json:"expiry_time,omitempty"` // 到期日期

	CustomizedDataList []*CombinedJobObjectValueMap `json:"customized_data_list,omitempty"` // 自定义字段

	MinLevelId *string `json:"min_level_id,omitempty"` // 最低职级，枚举通过接口「获取职级列表」获取

	MinSalary *int64 `json:"min_salary,omitempty"` // 最低薪资，单位：k

	Title *string `json:"title,omitempty"` // 职位名称

	JobManagers *JobManager `json:"job_managers,omitempty"` // 职位的招聘团队

	JobProcessId *string `json:"job_process_id,omitempty"` // 招聘流程，枚举通过接口「获取招聘流程信息」获取

	ProcessType *int `json:"process_type,omitempty"` // 职位流程类型

	SubjectId *string `json:"subject_id,omitempty"` // 项目，枚举通过「获取项目列表」接口

	JobFunctionId *string `json:"job_function_id,omitempty"` // 职能分类，通过「获取职能分类」获取

	DepartmentId *string `json:"department_id,omitempty"` // 部门 ID，须传入open_department_id，格式为"od-xxxx"。可通过「获取部门信息列表」获取

	HeadCount *int64 `json:"head_count,omitempty"` // 招聘数量

	IsNeverExpired *bool `json:"is_never_expired,omitempty"` // 是否长期有效

	MaxSalary *int64 `json:"max_salary,omitempty"` // 最高薪资，单位：k

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	AddressId *string `json:"address_id,omitempty"` // 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」

	Description *string `json:"description,omitempty"` // 职位描述

	HighlightList []string `json:"highlight_list,omitempty"` // 职位亮点

	JobTypeId *string `json:"job_type_id,omitempty"` // 职位类别

	MaxLevelId *string `json:"max_level_id,omitempty"` // 最高职级，枚举通过接口「获取职级列表」获取

	RecruitmentTypeId *string `json:"recruitment_type_id,omitempty"` // 雇佣类型

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	JobCategoryId *string `json:"job_category_id,omitempty"` // 序列

	AddressIdList []string `json:"address_id_list,omitempty"` // 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」

	JobAttribute *int `json:"job_attribute,omitempty"` // 职位属性，1是实体职位，2是虚拟职位

	ExpiryTimestamp *string `json:"expiry_timestamp,omitempty"` // 到期日期的毫秒时间戳

	InterviewRegistrationSchemaId *string `json:"interview_registration_schema_id,omitempty"` // 面试登记表ID

	OnboardRegistrationSchemaId *string `json:"onboard_registration_schema_id,omitempty"` // 入职登记表ID

	TargetMajorIdList []string `json:"target_major_id_list,omitempty"` // 目标专业ID List

	PortalWebsiteApplyFormSchemaId *string `json:"portal_website_apply_form_schema_id,omitempty"` // 官网申请表ID
}

type CombinedJobBuilder struct {
	id     string // 职位 ID
	idFlag bool

	code     string // 职位编号，可传入职位的「职位编号」、「职位 ID」或者「职位序号」，将以传入的参数作为职位编号，以便双方系统的数据映射
	codeFlag bool

	experience     int // 工作年限
	experienceFlag bool

	expiryTime     int64 // 到期日期
	expiryTimeFlag bool

	customizedDataList     []*CombinedJobObjectValueMap // 自定义字段
	customizedDataListFlag bool

	minLevelId     string // 最低职级，枚举通过接口「获取职级列表」获取
	minLevelIdFlag bool

	minSalary     int64 // 最低薪资，单位：k
	minSalaryFlag bool

	title     string // 职位名称
	titleFlag bool

	jobManagers     *JobManager // 职位的招聘团队
	jobManagersFlag bool

	jobProcessId     string // 招聘流程，枚举通过接口「获取招聘流程信息」获取
	jobProcessIdFlag bool

	processType     int // 职位流程类型
	processTypeFlag bool

	subjectId     string // 项目，枚举通过「获取项目列表」接口
	subjectIdFlag bool

	jobFunctionId     string // 职能分类，通过「获取职能分类」获取
	jobFunctionIdFlag bool

	departmentId     string // 部门 ID，须传入open_department_id，格式为"od-xxxx"。可通过「获取部门信息列表」获取
	departmentIdFlag bool

	headCount     int64 // 招聘数量
	headCountFlag bool

	isNeverExpired     bool // 是否长期有效
	isNeverExpiredFlag bool

	maxSalary     int64 // 最高薪资，单位：k
	maxSalaryFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	addressId     string // 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」
	addressIdFlag bool

	description     string // 职位描述
	descriptionFlag bool

	highlightList     []string // 职位亮点
	highlightListFlag bool

	jobTypeId     string // 职位类别
	jobTypeIdFlag bool

	maxLevelId     string // 最高职级，枚举通过接口「获取职级列表」获取
	maxLevelIdFlag bool

	recruitmentTypeId     string // 雇佣类型
	recruitmentTypeIdFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	jobCategoryId     string // 序列
	jobCategoryIdFlag bool

	addressIdList     []string // 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」
	addressIdListFlag bool

	jobAttribute     int // 职位属性，1是实体职位，2是虚拟职位
	jobAttributeFlag bool

	expiryTimestamp     string // 到期日期的毫秒时间戳
	expiryTimestampFlag bool

	interviewRegistrationSchemaId     string // 面试登记表ID
	interviewRegistrationSchemaIdFlag bool

	onboardRegistrationSchemaId     string // 入职登记表ID
	onboardRegistrationSchemaIdFlag bool

	targetMajorIdList     []string // 目标专业ID List
	targetMajorIdListFlag bool

	portalWebsiteApplyFormSchemaId     string // 官网申请表ID
	portalWebsiteApplyFormSchemaIdFlag bool
}

func NewCombinedJobBuilder() *CombinedJobBuilder {
	builder := &CombinedJobBuilder{}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956576
func (builder *CombinedJobBuilder) Id(id string) *CombinedJobBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位编号，可传入职位的「职位编号」、「职位 ID」或者「职位序号」，将以传入的参数作为职位编号，以便双方系统的数据映射
//
// 示例值：R18
func (builder *CombinedJobBuilder) Code(code string) *CombinedJobBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 工作年限
//
// 示例值：1
func (builder *CombinedJobBuilder) Experience(experience int) *CombinedJobBuilder {
	builder.experience = experience
	builder.experienceFlag = true
	return builder
}

// 到期日期
//
// 示例值：1622484739955
func (builder *CombinedJobBuilder) ExpiryTime(expiryTime int64) *CombinedJobBuilder {
	builder.expiryTime = expiryTime
	builder.expiryTimeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *CombinedJobBuilder) CustomizedDataList(customizedDataList []*CombinedJobObjectValueMap) *CombinedJobBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 最低职级，枚举通过接口「获取职级列表」获取
//
// 示例值：6960663240925956547
func (builder *CombinedJobBuilder) MinLevelId(minLevelId string) *CombinedJobBuilder {
	builder.minLevelId = minLevelId
	builder.minLevelIdFlag = true
	return builder
}

// 最低薪资，单位：k
//
// 示例值：1000
func (builder *CombinedJobBuilder) MinSalary(minSalary int64) *CombinedJobBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 职位名称
//
// 示例值：后端研发
func (builder *CombinedJobBuilder) Title(title string) *CombinedJobBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位的招聘团队
//
// 示例值：
func (builder *CombinedJobBuilder) JobManagers(jobManagers *JobManager) *CombinedJobBuilder {
	builder.jobManagers = jobManagers
	builder.jobManagersFlag = true
	return builder
}

// 招聘流程，枚举通过接口「获取招聘流程信息」获取
//
// 示例值：6960663240925956554
func (builder *CombinedJobBuilder) JobProcessId(jobProcessId string) *CombinedJobBuilder {
	builder.jobProcessId = jobProcessId
	builder.jobProcessIdFlag = true
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *CombinedJobBuilder) ProcessType(processType int) *CombinedJobBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 项目，枚举通过「获取项目列表」接口
//
// 示例值：6960663240925956555
func (builder *CombinedJobBuilder) SubjectId(subjectId string) *CombinedJobBuilder {
	builder.subjectId = subjectId
	builder.subjectIdFlag = true
	return builder
}

// 职能分类，通过「获取职能分类」获取
//
// 示例值：6960663240925956555
func (builder *CombinedJobBuilder) JobFunctionId(jobFunctionId string) *CombinedJobBuilder {
	builder.jobFunctionId = jobFunctionId
	builder.jobFunctionIdFlag = true
	return builder
}

// 部门 ID，须传入open_department_id，格式为"od-xxxx"。可通过「获取部门信息列表」获取
//
// 示例值：od-b2fafdce6fc5800b574ba5b0e2798b36
func (builder *CombinedJobBuilder) DepartmentId(departmentId string) *CombinedJobBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 招聘数量
//
// 示例值：100
func (builder *CombinedJobBuilder) HeadCount(headCount int64) *CombinedJobBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 是否长期有效
//
// 示例值：false
func (builder *CombinedJobBuilder) IsNeverExpired(isNeverExpired bool) *CombinedJobBuilder {
	builder.isNeverExpired = isNeverExpired
	builder.isNeverExpiredFlag = true
	return builder
}

// 最高薪资，单位：k
//
// 示例值：2000
func (builder *CombinedJobBuilder) MaxSalary(maxSalary int64) *CombinedJobBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 职位要求
//
// 示例值：熟悉后端研发
func (builder *CombinedJobBuilder) Requirement(requirement string) *CombinedJobBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」
//
// 示例值：6960663240925956553
func (builder *CombinedJobBuilder) AddressId(addressId string) *CombinedJobBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 职位描述
//
// 示例值：后端研发岗位描述
func (builder *CombinedJobBuilder) Description(description string) *CombinedJobBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位亮点
//
// 示例值：6960663240925956554
func (builder *CombinedJobBuilder) HighlightList(highlightList []string) *CombinedJobBuilder {
	builder.highlightList = highlightList
	builder.highlightListFlag = true
	return builder
}

// 职位类别
//
// 示例值：6960663240925956551
func (builder *CombinedJobBuilder) JobTypeId(jobTypeId string) *CombinedJobBuilder {
	builder.jobTypeId = jobTypeId
	builder.jobTypeIdFlag = true
	return builder
}

// 最高职级，枚举通过接口「获取职级列表」获取
//
// 示例值：6960663240925956548
func (builder *CombinedJobBuilder) MaxLevelId(maxLevelId string) *CombinedJobBuilder {
	builder.maxLevelId = maxLevelId
	builder.maxLevelIdFlag = true
	return builder
}

// 雇佣类型
//
// 示例值：102
func (builder *CombinedJobBuilder) RecruitmentTypeId(recruitmentTypeId string) *CombinedJobBuilder {
	builder.recruitmentTypeId = recruitmentTypeId
	builder.recruitmentTypeIdFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *CombinedJobBuilder) RequiredDegree(requiredDegree int) *CombinedJobBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 序列
//
// 示例值：6960663240925956550
func (builder *CombinedJobBuilder) JobCategoryId(jobCategoryId string) *CombinedJobBuilder {
	builder.jobCategoryId = jobCategoryId
	builder.jobCategoryIdFlag = true
	return builder
}

// 工作地点，枚举通过接口「获取地址列表」获取，选择地点用途为「职位地址」
//
// 示例值：7035374761602959660
func (builder *CombinedJobBuilder) AddressIdList(addressIdList []string) *CombinedJobBuilder {
	builder.addressIdList = addressIdList
	builder.addressIdListFlag = true
	return builder
}

// 职位属性，1是实体职位，2是虚拟职位
//
// 示例值：职位类别
func (builder *CombinedJobBuilder) JobAttribute(jobAttribute int) *CombinedJobBuilder {
	builder.jobAttribute = jobAttribute
	builder.jobAttributeFlag = true
	return builder
}

// 到期日期的毫秒时间戳
//
// 示例值：1622484739955
func (builder *CombinedJobBuilder) ExpiryTimestamp(expiryTimestamp string) *CombinedJobBuilder {
	builder.expiryTimestamp = expiryTimestamp
	builder.expiryTimestampFlag = true
	return builder
}

// 面试登记表ID
//
// 示例值：6930815272790114324
func (builder *CombinedJobBuilder) InterviewRegistrationSchemaId(interviewRegistrationSchemaId string) *CombinedJobBuilder {
	builder.interviewRegistrationSchemaId = interviewRegistrationSchemaId
	builder.interviewRegistrationSchemaIdFlag = true
	return builder
}

// 入职登记表ID
//
// 示例值：6930815272790114325
func (builder *CombinedJobBuilder) OnboardRegistrationSchemaId(onboardRegistrationSchemaId string) *CombinedJobBuilder {
	builder.onboardRegistrationSchemaId = onboardRegistrationSchemaId
	builder.onboardRegistrationSchemaIdFlag = true
	return builder
}

// 目标专业ID List
//
// 示例值：
func (builder *CombinedJobBuilder) TargetMajorIdList(targetMajorIdList []string) *CombinedJobBuilder {
	builder.targetMajorIdList = targetMajorIdList
	builder.targetMajorIdListFlag = true
	return builder
}

// 官网申请表ID
//
// 示例值：7397638158859323692
func (builder *CombinedJobBuilder) PortalWebsiteApplyFormSchemaId(portalWebsiteApplyFormSchemaId string) *CombinedJobBuilder {
	builder.portalWebsiteApplyFormSchemaId = portalWebsiteApplyFormSchemaId
	builder.portalWebsiteApplyFormSchemaIdFlag = true
	return builder
}

func (builder *CombinedJobBuilder) Build() *CombinedJob {
	req := &CombinedJob{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.experienceFlag {
		req.Experience = &builder.experience

	}
	if builder.expiryTimeFlag {
		req.ExpiryTime = &builder.expiryTime

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.minLevelIdFlag {
		req.MinLevelId = &builder.minLevelId

	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.jobManagersFlag {
		req.JobManagers = builder.jobManagers
	}
	if builder.jobProcessIdFlag {
		req.JobProcessId = &builder.jobProcessId

	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.subjectIdFlag {
		req.SubjectId = &builder.subjectId

	}
	if builder.jobFunctionIdFlag {
		req.JobFunctionId = &builder.jobFunctionId

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount

	}
	if builder.isNeverExpiredFlag {
		req.IsNeverExpired = &builder.isNeverExpired

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.highlightListFlag {
		req.HighlightList = builder.highlightList
	}
	if builder.jobTypeIdFlag {
		req.JobTypeId = &builder.jobTypeId

	}
	if builder.maxLevelIdFlag {
		req.MaxLevelId = &builder.maxLevelId

	}
	if builder.recruitmentTypeIdFlag {
		req.RecruitmentTypeId = &builder.recruitmentTypeId

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.jobCategoryIdFlag {
		req.JobCategoryId = &builder.jobCategoryId

	}
	if builder.addressIdListFlag {
		req.AddressIdList = builder.addressIdList
	}
	if builder.jobAttributeFlag {
		req.JobAttribute = &builder.jobAttribute

	}
	if builder.expiryTimestampFlag {
		req.ExpiryTimestamp = &builder.expiryTimestamp

	}
	if builder.interviewRegistrationSchemaIdFlag {
		req.InterviewRegistrationSchemaId = &builder.interviewRegistrationSchemaId

	}
	if builder.onboardRegistrationSchemaIdFlag {
		req.OnboardRegistrationSchemaId = &builder.onboardRegistrationSchemaId

	}
	if builder.targetMajorIdListFlag {
		req.TargetMajorIdList = builder.targetMajorIdList
	}
	if builder.portalWebsiteApplyFormSchemaIdFlag {
		req.PortalWebsiteApplyFormSchemaId = &builder.portalWebsiteApplyFormSchemaId

	}
	return req
}

type CombinedJobObjectValueMap struct {
	ObjectId *string `json:"object_id,omitempty"` // 结构 ID

	Value *string `json:"value,omitempty"` // 结构值
}

type CombinedJobObjectValueMapBuilder struct {
	objectId     string // 结构 ID
	objectIdFlag bool

	value     string // 结构值
	valueFlag bool
}

func NewCombinedJobObjectValueMapBuilder() *CombinedJobObjectValueMapBuilder {
	builder := &CombinedJobObjectValueMapBuilder{}
	return builder
}

// 结构 ID
//
// 示例值：6960663240925956549
func (builder *CombinedJobObjectValueMapBuilder) ObjectId(objectId string) *CombinedJobObjectValueMapBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 结构值
//
// 示例值：测试
func (builder *CombinedJobObjectValueMapBuilder) Value(value string) *CombinedJobObjectValueMapBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *CombinedJobObjectValueMapBuilder) Build() *CombinedJobObjectValueMap {
	req := &CombinedJobObjectValueMap{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type CombinedJobResult struct {
	DefaultJobPost *CombinedJobResultDefaultJobPost `json:"default_job_post,omitempty"` // 职位广告

	Job *Job `json:"job,omitempty"` // 职位

	JobManager *JobManager `json:"job_manager,omitempty"` // 职位负责人

	InterviewRegistrationSchemaInfo *RegistrationSchemaInfo `json:"interview_registration_schema_info,omitempty"` // 面试登记表

	OnboardRegistrationSchemaInfo *RegistrationSchemaInfo `json:"onboard_registration_schema_info,omitempty"` // 入职登记表

	TargetMajorList []*TargetMajorInfo `json:"target_major_list,omitempty"` // 目标专业

	PortalWebsiteApplyFormSchemaInfo *RegistrationSchemaInfo `json:"portal_website_apply_form_schema_info,omitempty"` // 官网申请表
}

type CombinedJobResultBuilder struct {
	defaultJobPost     *CombinedJobResultDefaultJobPost // 职位广告
	defaultJobPostFlag bool

	job     *Job // 职位
	jobFlag bool

	jobManager     *JobManager // 职位负责人
	jobManagerFlag bool

	interviewRegistrationSchemaInfo     *RegistrationSchemaInfo // 面试登记表
	interviewRegistrationSchemaInfoFlag bool

	onboardRegistrationSchemaInfo     *RegistrationSchemaInfo // 入职登记表
	onboardRegistrationSchemaInfoFlag bool

	targetMajorList     []*TargetMajorInfo // 目标专业
	targetMajorListFlag bool

	portalWebsiteApplyFormSchemaInfo     *RegistrationSchemaInfo // 官网申请表
	portalWebsiteApplyFormSchemaInfoFlag bool
}

func NewCombinedJobResultBuilder() *CombinedJobResultBuilder {
	builder := &CombinedJobResultBuilder{}
	return builder
}

// 职位广告
//
// 示例值：
func (builder *CombinedJobResultBuilder) DefaultJobPost(defaultJobPost *CombinedJobResultDefaultJobPost) *CombinedJobResultBuilder {
	builder.defaultJobPost = defaultJobPost
	builder.defaultJobPostFlag = true
	return builder
}

// 职位
//
// 示例值：
func (builder *CombinedJobResultBuilder) Job(job *Job) *CombinedJobResultBuilder {
	builder.job = job
	builder.jobFlag = true
	return builder
}

// 职位负责人
//
// 示例值：
func (builder *CombinedJobResultBuilder) JobManager(jobManager *JobManager) *CombinedJobResultBuilder {
	builder.jobManager = jobManager
	builder.jobManagerFlag = true
	return builder
}

// 面试登记表
//
// 示例值：
func (builder *CombinedJobResultBuilder) InterviewRegistrationSchemaInfo(interviewRegistrationSchemaInfo *RegistrationSchemaInfo) *CombinedJobResultBuilder {
	builder.interviewRegistrationSchemaInfo = interviewRegistrationSchemaInfo
	builder.interviewRegistrationSchemaInfoFlag = true
	return builder
}

// 入职登记表
//
// 示例值：
func (builder *CombinedJobResultBuilder) OnboardRegistrationSchemaInfo(onboardRegistrationSchemaInfo *RegistrationSchemaInfo) *CombinedJobResultBuilder {
	builder.onboardRegistrationSchemaInfo = onboardRegistrationSchemaInfo
	builder.onboardRegistrationSchemaInfoFlag = true
	return builder
}

// 目标专业
//
// 示例值：
func (builder *CombinedJobResultBuilder) TargetMajorList(targetMajorList []*TargetMajorInfo) *CombinedJobResultBuilder {
	builder.targetMajorList = targetMajorList
	builder.targetMajorListFlag = true
	return builder
}

// 官网申请表
//
// 示例值：
func (builder *CombinedJobResultBuilder) PortalWebsiteApplyFormSchemaInfo(portalWebsiteApplyFormSchemaInfo *RegistrationSchemaInfo) *CombinedJobResultBuilder {
	builder.portalWebsiteApplyFormSchemaInfo = portalWebsiteApplyFormSchemaInfo
	builder.portalWebsiteApplyFormSchemaInfoFlag = true
	return builder
}

func (builder *CombinedJobResultBuilder) Build() *CombinedJobResult {
	req := &CombinedJobResult{}
	if builder.defaultJobPostFlag {
		req.DefaultJobPost = builder.defaultJobPost
	}
	if builder.jobFlag {
		req.Job = builder.job
	}
	if builder.jobManagerFlag {
		req.JobManager = builder.jobManager
	}
	if builder.interviewRegistrationSchemaInfoFlag {
		req.InterviewRegistrationSchemaInfo = builder.interviewRegistrationSchemaInfo
	}
	if builder.onboardRegistrationSchemaInfoFlag {
		req.OnboardRegistrationSchemaInfo = builder.onboardRegistrationSchemaInfo
	}
	if builder.targetMajorListFlag {
		req.TargetMajorList = builder.targetMajorList
	}
	if builder.portalWebsiteApplyFormSchemaInfoFlag {
		req.PortalWebsiteApplyFormSchemaInfo = builder.portalWebsiteApplyFormSchemaInfo
	}
	return req
}

type CombinedJobResultDefaultJobPost struct {
	Id *string `json:"id,omitempty"` // 默认职位广告的 ID，用以发布至招聘渠道的内容
}

type CombinedJobResultDefaultJobPostBuilder struct {
	id     string // 默认职位广告的 ID，用以发布至招聘渠道的内容
	idFlag bool
}

func NewCombinedJobResultDefaultJobPostBuilder() *CombinedJobResultDefaultJobPostBuilder {
	builder := &CombinedJobResultDefaultJobPostBuilder{}
	return builder
}

// 默认职位广告的 ID，用以发布至招聘渠道的内容
//
// 示例值：6960663240925956568
func (builder *CombinedJobResultDefaultJobPostBuilder) Id(id string) *CombinedJobResultDefaultJobPostBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

func (builder *CombinedJobResultDefaultJobPostBuilder) Build() *CombinedJobResultDefaultJobPost {
	req := &CombinedJobResultDefaultJobPost{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	return req
}

type CommonAddress struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	District *CodeNameObject `json:"district,omitempty"` // 区域信息

	City *CodeNameObject `json:"city,omitempty"` // 城市信息

	State *CodeNameObject `json:"state,omitempty"` // 省信息

	Country *CodeNameObject `json:"country,omitempty"` // 国家信息
}

type CommonAddressBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	district     *CodeNameObject // 区域信息
	districtFlag bool

	city     *CodeNameObject // 城市信息
	cityFlag bool

	state     *CodeNameObject // 省信息
	stateFlag bool

	country     *CodeNameObject // 国家信息
	countryFlag bool
}

func NewCommonAddressBuilder() *CommonAddressBuilder {
	builder := &CommonAddressBuilder{}
	return builder
}

// ID
//
// 示例值：6583482347283472832
func (builder *CommonAddressBuilder) Id(id string) *CommonAddressBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *CommonAddressBuilder) Name(name *I18n) *CommonAddressBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 区域信息
//
// 示例值：
func (builder *CommonAddressBuilder) District(district *CodeNameObject) *CommonAddressBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市信息
//
// 示例值：
func (builder *CommonAddressBuilder) City(city *CodeNameObject) *CommonAddressBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省信息
//
// 示例值：
func (builder *CommonAddressBuilder) State(state *CodeNameObject) *CommonAddressBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家信息
//
// 示例值：
func (builder *CommonAddressBuilder) Country(country *CodeNameObject) *CommonAddressBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *CommonAddressBuilder) Build() *CommonAddress {
	req := &CommonAddress{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type CommonCityInfo struct {
	CityCode *string `json:"city_code,omitempty"` // 城市码

	Name *I18n `json:"name,omitempty"` // 名称
}

type CommonCityInfoBuilder struct {
	cityCode     string // 城市码
	cityCodeFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewCommonCityInfoBuilder() *CommonCityInfoBuilder {
	builder := &CommonCityInfoBuilder{}
	return builder
}

// 城市码
//
// 示例值：CN_183
func (builder *CommonCityInfoBuilder) CityCode(cityCode string) *CommonCityInfoBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *CommonCityInfoBuilder) Name(name *I18n) *CommonCityInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *CommonCityInfoBuilder) Build() *CommonCityInfo {
	req := &CommonCityInfo{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type CommonFilter struct {
	Key *string `json:"key,omitempty"` // 筛选项 key

	ValueType *int `json:"value_type,omitempty"` // 筛选项值类型

	ValueList []string `json:"value_list,omitempty"` // 筛选项值列表

	RangeFilter *RangeFilter `json:"range_filter,omitempty"` // 范围筛选

	UserIdList []string `json:"user_id_list,omitempty"` // 筛选项值列表
}

type CommonFilterBuilder struct {
	key     string // 筛选项 key
	keyFlag bool

	valueType     int // 筛选项值类型
	valueTypeFlag bool

	valueList     []string // 筛选项值列表
	valueListFlag bool

	rangeFilter     *RangeFilter // 范围筛选
	rangeFilterFlag bool

	userIdList     []string // 筛选项值列表
	userIdListFlag bool
}

func NewCommonFilterBuilder() *CommonFilterBuilder {
	builder := &CommonFilterBuilder{}
	return builder
}

// 筛选项 key
//
// 示例值：degree
func (builder *CommonFilterBuilder) Key(key string) *CommonFilterBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 筛选项值类型
//
// 示例值：1
func (builder *CommonFilterBuilder) ValueType(valueType int) *CommonFilterBuilder {
	builder.valueType = valueType
	builder.valueTypeFlag = true
	return builder
}

// 筛选项值列表
//
// 示例值：
func (builder *CommonFilterBuilder) ValueList(valueList []string) *CommonFilterBuilder {
	builder.valueList = valueList
	builder.valueListFlag = true
	return builder
}

// 范围筛选
//
// 示例值：
func (builder *CommonFilterBuilder) RangeFilter(rangeFilter *RangeFilter) *CommonFilterBuilder {
	builder.rangeFilter = rangeFilter
	builder.rangeFilterFlag = true
	return builder
}

// 筛选项值列表
//
// 示例值：
func (builder *CommonFilterBuilder) UserIdList(userIdList []string) *CommonFilterBuilder {
	builder.userIdList = userIdList
	builder.userIdListFlag = true
	return builder
}

func (builder *CommonFilterBuilder) Build() *CommonFilter {
	req := &CommonFilter{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueTypeFlag {
		req.ValueType = &builder.valueType

	}
	if builder.valueListFlag {
		req.ValueList = builder.valueList
	}
	if builder.rangeFilterFlag {
		req.RangeFilter = builder.rangeFilter
	}
	if builder.userIdListFlag {
		req.UserIdList = builder.userIdList
	}
	return req
}

type CommonSchema struct {
	Id *string `json:"id,omitempty"` // 模块 ID

	Name *I18n `json:"name,omitempty"` // 模块名称

	Description *I18n `json:"description,omitempty"` // 模块描述

	Setting *CommonSchemaSetting `json:"setting,omitempty"` // 模块信息

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否是自定义模块

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	IsVisible *bool `json:"is_visible,omitempty"` // 是否可见

	ActiveStatus *int `json:"active_status,omitempty"` // 是否启用

	ChildrenList []*CommonSchemaChild `json:"children_list,omitempty"` // 字段列表
}

type CommonSchemaBuilder struct {
	id     string // 模块 ID
	idFlag bool

	name     *I18n // 模块名称
	nameFlag bool

	description     *I18n // 模块描述
	descriptionFlag bool

	setting     *CommonSchemaSetting // 模块信息
	settingFlag bool

	isCustomized     bool // 是否是自定义模块
	isCustomizedFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	isVisible     bool // 是否可见
	isVisibleFlag bool

	activeStatus     int // 是否启用
	activeStatusFlag bool

	childrenList     []*CommonSchemaChild // 字段列表
	childrenListFlag bool
}

func NewCommonSchemaBuilder() *CommonSchemaBuilder {
	builder := &CommonSchemaBuilder{}
	return builder
}

// 模块 ID
//
// 示例值：6949805467799537964
func (builder *CommonSchemaBuilder) Id(id string) *CommonSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 模块名称
//
// 示例值：
func (builder *CommonSchemaBuilder) Name(name *I18n) *CommonSchemaBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 模块描述
//
// 示例值：
func (builder *CommonSchemaBuilder) Description(description *I18n) *CommonSchemaBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 模块信息
//
// 示例值：
func (builder *CommonSchemaBuilder) Setting(setting *CommonSchemaSetting) *CommonSchemaBuilder {
	builder.setting = setting
	builder.settingFlag = true
	return builder
}

// 是否是自定义模块
//
// 示例值：true
func (builder *CommonSchemaBuilder) IsCustomized(isCustomized bool) *CommonSchemaBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 是否必填
//
// 示例值：false
func (builder *CommonSchemaBuilder) IsRequired(isRequired bool) *CommonSchemaBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 是否可见
//
// 示例值：true
func (builder *CommonSchemaBuilder) IsVisible(isVisible bool) *CommonSchemaBuilder {
	builder.isVisible = isVisible
	builder.isVisibleFlag = true
	return builder
}

// 是否启用
//
// 示例值：1
func (builder *CommonSchemaBuilder) ActiveStatus(activeStatus int) *CommonSchemaBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 字段列表
//
// 示例值：
func (builder *CommonSchemaBuilder) ChildrenList(childrenList []*CommonSchemaChild) *CommonSchemaBuilder {
	builder.childrenList = childrenList
	builder.childrenListFlag = true
	return builder
}

func (builder *CommonSchemaBuilder) Build() *CommonSchema {
	req := &CommonSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.settingFlag {
		req.Setting = builder.setting
	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.isVisibleFlag {
		req.IsVisible = &builder.isVisible

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.childrenListFlag {
		req.ChildrenList = builder.childrenList
	}
	return req
}

type CommonSchemaChild struct {
	Id *string `json:"id,omitempty"` // 字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	Description *I18n `json:"description,omitempty"` // 字段描述

	Setting *CommonSchemaSetting `json:"setting,omitempty"` // 字段信息

	ParentId *string `json:"parent_id,omitempty"` // 所属模块 ID

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否是自定义字段

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	IsVisible *bool `json:"is_visible,omitempty"` // 是否可见

	ActiveStatus *int `json:"active_status,omitempty"` // 是否启用
}

type CommonSchemaChildBuilder struct {
	id     string // 字段 ID
	idFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	description     *I18n // 字段描述
	descriptionFlag bool

	setting     *CommonSchemaSetting // 字段信息
	settingFlag bool

	parentId     string // 所属模块 ID
	parentIdFlag bool

	isCustomized     bool // 是否是自定义字段
	isCustomizedFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	isVisible     bool // 是否可见
	isVisibleFlag bool

	activeStatus     int // 是否启用
	activeStatusFlag bool
}

func NewCommonSchemaChildBuilder() *CommonSchemaChildBuilder {
	builder := &CommonSchemaChildBuilder{}
	return builder
}

// 字段 ID
//
// 示例值：6949805467799537964
func (builder *CommonSchemaChildBuilder) Id(id string) *CommonSchemaChildBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *CommonSchemaChildBuilder) Name(name *I18n) *CommonSchemaChildBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段描述
//
// 示例值：
func (builder *CommonSchemaChildBuilder) Description(description *I18n) *CommonSchemaChildBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 字段信息
//
// 示例值：
func (builder *CommonSchemaChildBuilder) Setting(setting *CommonSchemaSetting) *CommonSchemaChildBuilder {
	builder.setting = setting
	builder.settingFlag = true
	return builder
}

// 所属模块 ID
//
// 示例值：6949805467799537964
func (builder *CommonSchemaChildBuilder) ParentId(parentId string) *CommonSchemaChildBuilder {
	builder.parentId = parentId
	builder.parentIdFlag = true
	return builder
}

// 是否是自定义字段
//
// 示例值：true
func (builder *CommonSchemaChildBuilder) IsCustomized(isCustomized bool) *CommonSchemaChildBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 是否必填
//
// 示例值：false
func (builder *CommonSchemaChildBuilder) IsRequired(isRequired bool) *CommonSchemaChildBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 是否可见
//
// 示例值：true
func (builder *CommonSchemaChildBuilder) IsVisible(isVisible bool) *CommonSchemaChildBuilder {
	builder.isVisible = isVisible
	builder.isVisibleFlag = true
	return builder
}

// 是否启用
//
// 示例值：1
func (builder *CommonSchemaChildBuilder) ActiveStatus(activeStatus int) *CommonSchemaChildBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *CommonSchemaChildBuilder) Build() *CommonSchemaChild {
	req := &CommonSchemaChild{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.settingFlag {
		req.Setting = builder.setting
	}
	if builder.parentIdFlag {
		req.ParentId = &builder.parentId

	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.isVisibleFlag {
		req.IsVisible = &builder.isVisible

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type CommonSchemaConfig struct {
	Options []*CommonSchemaOption `json:"options,omitempty"` // 选项信息
}

type CommonSchemaConfigBuilder struct {
	options     []*CommonSchemaOption // 选项信息
	optionsFlag bool
}

func NewCommonSchemaConfigBuilder() *CommonSchemaConfigBuilder {
	builder := &CommonSchemaConfigBuilder{}
	return builder
}

// 选项信息
//
// 示例值：
func (builder *CommonSchemaConfigBuilder) Options(options []*CommonSchemaOption) *CommonSchemaConfigBuilder {
	builder.options = options
	builder.optionsFlag = true
	return builder
}

func (builder *CommonSchemaConfigBuilder) Build() *CommonSchemaConfig {
	req := &CommonSchemaConfig{}
	if builder.optionsFlag {
		req.Options = builder.options
	}
	return req
}

type CommonSchemaOption struct {
	Key *string `json:"key,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称

	Description *I18n `json:"description,omitempty"` // 选项描述

	ActiveStatus *int `json:"active_status,omitempty"` // 是否启用
}

type CommonSchemaOptionBuilder struct {
	key     string // 选项 ID
	keyFlag bool

	name     *I18n // 选项名称
	nameFlag bool

	description     *I18n // 选项描述
	descriptionFlag bool

	activeStatus     int // 是否启用
	activeStatusFlag bool
}

func NewCommonSchemaOptionBuilder() *CommonSchemaOptionBuilder {
	builder := &CommonSchemaOptionBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：test
func (builder *CommonSchemaOptionBuilder) Key(key string) *CommonSchemaOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *CommonSchemaOptionBuilder) Name(name *I18n) *CommonSchemaOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项描述
//
// 示例值：
func (builder *CommonSchemaOptionBuilder) Description(description *I18n) *CommonSchemaOptionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 是否启用
//
// 示例值：1
func (builder *CommonSchemaOptionBuilder) ActiveStatus(activeStatus int) *CommonSchemaOptionBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *CommonSchemaOptionBuilder) Build() *CommonSchemaOption {
	req := &CommonSchemaOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type CommonSchemaSetting struct {
	ObjectType *int `json:"object_type,omitempty"` // 字段类型

	Config *CommonSchemaConfig `json:"config,omitempty"` // 配置信息
}

type CommonSchemaSettingBuilder struct {
	objectType     int // 字段类型
	objectTypeFlag bool

	config     *CommonSchemaConfig // 配置信息
	configFlag bool
}

func NewCommonSchemaSettingBuilder() *CommonSchemaSettingBuilder {
	builder := &CommonSchemaSettingBuilder{}
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *CommonSchemaSettingBuilder) ObjectType(objectType int) *CommonSchemaSettingBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 配置信息
//
// 示例值：
func (builder *CommonSchemaSettingBuilder) Config(config *CommonSchemaConfig) *CommonSchemaSettingBuilder {
	builder.config = config
	builder.configFlag = true
	return builder
}

func (builder *CommonSchemaSettingBuilder) Build() *CommonSchemaSetting {
	req := &CommonSchemaSetting{}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.configFlag {
		req.Config = builder.config
	}
	return req
}

type CompetitionInfo struct {
	Desc *string `json:"desc,omitempty"` // 竞赛描述

	Name *string `json:"name,omitempty"` // 竞赛名称
}

type CompetitionInfoBuilder struct {
	desc     string // 竞赛描述
	descFlag bool

	name     string // 竞赛名称
	nameFlag bool
}

func NewCompetitionInfoBuilder() *CompetitionInfoBuilder {
	builder := &CompetitionInfoBuilder{}
	return builder
}

// 竞赛描述
//
// 示例值：
func (builder *CompetitionInfoBuilder) Desc(desc string) *CompetitionInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 竞赛名称
//
// 示例值：
func (builder *CompetitionInfoBuilder) Name(name string) *CompetitionInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *CompetitionInfoBuilder) Build() *CompetitionInfo {
	req := &CompetitionInfo{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type ContractPeriod struct {
	PeriodType *int `json:"period_type,omitempty"` // 合同周期类型

	Period *int `json:"period,omitempty"` // 合同时长
}

type ContractPeriodBuilder struct {
	periodType     int // 合同周期类型
	periodTypeFlag bool

	period     int // 合同时长
	periodFlag bool
}

func NewContractPeriodBuilder() *ContractPeriodBuilder {
	builder := &ContractPeriodBuilder{}
	return builder
}

// 合同周期类型
//
// 示例值：1
func (builder *ContractPeriodBuilder) PeriodType(periodType int) *ContractPeriodBuilder {
	builder.periodType = periodType
	builder.periodTypeFlag = true
	return builder
}

// 合同时长
//
// 示例值：3
func (builder *ContractPeriodBuilder) Period(period int) *ContractPeriodBuilder {
	builder.period = period
	builder.periodFlag = true
	return builder
}

func (builder *ContractPeriodBuilder) Build() *ContractPeriod {
	req := &ContractPeriod{}
	if builder.periodTypeFlag {
		req.PeriodType = &builder.periodType

	}
	if builder.periodFlag {
		req.Period = &builder.period

	}
	return req
}

type ContractPeriodInfo struct {
	PeriodType *int `json:"period_type,omitempty"` // 合同周期类型

	Period *int `json:"period,omitempty"` // 合同时长
}

type ContractPeriodInfoBuilder struct {
	periodType     int // 合同周期类型
	periodTypeFlag bool

	period     int // 合同时长
	periodFlag bool
}

func NewContractPeriodInfoBuilder() *ContractPeriodInfoBuilder {
	builder := &ContractPeriodInfoBuilder{}
	return builder
}

// 合同周期类型
//
// 示例值：1
func (builder *ContractPeriodInfoBuilder) PeriodType(periodType int) *ContractPeriodInfoBuilder {
	builder.periodType = periodType
	builder.periodTypeFlag = true
	return builder
}

// 合同时长
//
// 示例值：3
func (builder *ContractPeriodInfoBuilder) Period(period int) *ContractPeriodInfoBuilder {
	builder.period = period
	builder.periodFlag = true
	return builder
}

func (builder *ContractPeriodInfoBuilder) Build() *ContractPeriodInfo {
	req := &ContractPeriodInfo{}
	if builder.periodTypeFlag {
		req.PeriodType = &builder.periodType

	}
	if builder.periodFlag {
		req.Period = &builder.period

	}
	return req
}

type Country struct {
	CountryCode *string `json:"country_code,omitempty"` // 国家编码

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type CountryBuilder struct {
	countryCode     string // 国家编码
	countryCodeFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewCountryBuilder() *CountryBuilder {
	builder := &CountryBuilder{}
	return builder
}

// 国家编码
//
// 示例值：
func (builder *CountryBuilder) CountryCode(countryCode string) *CountryBuilder {
	builder.countryCode = countryCode
	builder.countryCodeFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *CountryBuilder) Name(name string) *CountryBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *CountryBuilder) EnName(enName string) *CountryBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *CountryBuilder) Build() *Country {
	req := &Country{}
	if builder.countryCodeFlag {
		req.CountryCode = &builder.countryCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type DataPermission struct {
	Id *string `json:"id,omitempty"` // 权限点ID

	Name *I18n `json:"name,omitempty"` // 权限点名称

	SelectStatus *int `json:"select_status,omitempty"` // 数据权限状态
}

type DataPermissionBuilder struct {
	id     string // 权限点ID
	idFlag bool

	name     *I18n // 权限点名称
	nameFlag bool

	selectStatus     int // 数据权限状态
	selectStatusFlag bool
}

func NewDataPermissionBuilder() *DataPermissionBuilder {
	builder := &DataPermissionBuilder{}
	return builder
}

// 权限点ID
//
// 示例值：6930815272790114324
func (builder *DataPermissionBuilder) Id(id string) *DataPermissionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 权限点名称
//
// 示例值：
func (builder *DataPermissionBuilder) Name(name *I18n) *DataPermissionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 数据权限状态
//
// 示例值：
func (builder *DataPermissionBuilder) SelectStatus(selectStatus int) *DataPermissionBuilder {
	builder.selectStatus = selectStatus
	builder.selectStatusFlag = true
	return builder
}

func (builder *DataPermissionBuilder) Build() *DataPermission {
	req := &DataPermission{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.selectStatusFlag {
		req.SelectStatus = &builder.selectStatus

	}
	return req
}

type DegreeFilter struct {
	HideOption *int `json:"hide_option,omitempty"` // 是否过滤专升本

	Degree []string `json:"degree,omitempty"` // 学历列表
}

type DegreeFilterBuilder struct {
	hideOption     int // 是否过滤专升本
	hideOptionFlag bool

	degree     []string // 学历列表
	degreeFlag bool
}

func NewDegreeFilterBuilder() *DegreeFilterBuilder {
	builder := &DegreeFilterBuilder{}
	return builder
}

// 是否过滤专升本
//
// 示例值：1
func (builder *DegreeFilterBuilder) HideOption(hideOption int) *DegreeFilterBuilder {
	builder.hideOption = hideOption
	builder.hideOptionFlag = true
	return builder
}

// 学历列表
//
// 示例值：
func (builder *DegreeFilterBuilder) Degree(degree []string) *DegreeFilterBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

func (builder *DegreeFilterBuilder) Build() *DegreeFilter {
	req := &DegreeFilter{}
	if builder.hideOptionFlag {
		req.HideOption = &builder.hideOption

	}
	if builder.degreeFlag {
		req.Degree = builder.degree
	}
	return req
}

type Department struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type DepartmentBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewDepartmentBuilder() *DepartmentBuilder {
	builder := &DepartmentBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *DepartmentBuilder) Id(id string) *DepartmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：部门名A
func (builder *DepartmentBuilder) Name(name string) *DepartmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：Name
func (builder *DepartmentBuilder) EnName(enName string) *DepartmentBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *DepartmentBuilder) Build() *Department {
	req := &Department{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type DepartmentId struct {
	DepartmentId *string `json:"department_id,omitempty"` //

	OpenDepartmentId *string `json:"open_department_id,omitempty"` //
}

type DepartmentIdBuilder struct {
	departmentId     string //
	departmentIdFlag bool

	openDepartmentId     string //
	openDepartmentIdFlag bool
}

func NewDepartmentIdBuilder() *DepartmentIdBuilder {
	builder := &DepartmentIdBuilder{}
	return builder
}

//
//
// 示例值：
func (builder *DepartmentIdBuilder) DepartmentId(departmentId string) *DepartmentIdBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

//
//
// 示例值：
func (builder *DepartmentIdBuilder) OpenDepartmentId(openDepartmentId string) *DepartmentIdBuilder {
	builder.openDepartmentId = openDepartmentId
	builder.openDepartmentIdFlag = true
	return builder
}

func (builder *DepartmentIdBuilder) Build() *DepartmentId {
	req := &DepartmentId{}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.openDepartmentIdFlag {
		req.OpenDepartmentId = &builder.openDepartmentId

	}
	return req
}

type DiData struct {
	Value *string `json:"value,omitempty"` // 字段值 1. 单选： "1" 2. 多选："["1", "2"]" 3. 月份选择："{"date":"2022-01"}" 4. 年份选择："{"date":"2022"}" 5. 数字："123" 6. 单行文本："xxx " 7. 多行文本："xxx xxxx" 8. 日期范围 "[1688140800000,1688140800000]"

	ObjectAttribute *ObjectAttribute `json:"object_attribute,omitempty"` // 字段属性
}

type DiDataBuilder struct {
	value     string // 字段值 1. 单选： "1" 2. 多选："["1", "2"]" 3. 月份选择："{"date":"2022-01"}" 4. 年份选择："{"date":"2022"}" 5. 数字："123" 6. 单行文本："xxx " 7. 多行文本："xxx xxxx" 8. 日期范围 "[1688140800000,1688140800000]"
	valueFlag bool

	objectAttribute     *ObjectAttribute // 字段属性
	objectAttributeFlag bool
}

func NewDiDataBuilder() *DiDataBuilder {
	builder := &DiDataBuilder{}
	return builder
}

// 字段值 1. 单选： "1" 2. 多选："["1", "2"]" 3. 月份选择："{"date":"2022-01"}" 4. 年份选择："{"date":"2022"}" 5. 数字："123" 6. 单行文本："xxx " 7. 多行文本："xxx xxxx" 8. 日期范围 "[1688140800000,1688140800000]"
//
// 示例值："1"
func (builder *DiDataBuilder) Value(value string) *DiDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 字段属性
//
// 示例值：
func (builder *DiDataBuilder) ObjectAttribute(objectAttribute *ObjectAttribute) *DiDataBuilder {
	builder.objectAttribute = objectAttribute
	builder.objectAttributeFlag = true
	return builder
}

func (builder *DiDataBuilder) Build() *DiData {
	req := &DiData{}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.objectAttributeFlag {
		req.ObjectAttribute = builder.objectAttribute
	}
	return req
}

type DiInfo struct {
	Id *string `json:"id,omitempty"` // DI信息 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递ID

	TalentId *string `json:"talent_id,omitempty"` // 人才ID

	SourceType *int `json:"source_type,omitempty"` // 数据来源

	CreateTime *string `json:"create_time,omitempty"` // 创建时间毫秒时间戳

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间毫秒时间戳

	DiData []*DiData `json:"di_data,omitempty"` // 多元信息
}

type DiInfoBuilder struct {
	id     string // DI信息 ID
	idFlag bool

	applicationId     string // 投递ID
	applicationIdFlag bool

	talentId     string // 人才ID
	talentIdFlag bool

	sourceType     int // 数据来源
	sourceTypeFlag bool

	createTime     string // 创建时间毫秒时间戳
	createTimeFlag bool

	updateTime     string // 更新时间毫秒时间戳
	updateTimeFlag bool

	diData     []*DiData // 多元信息
	diDataFlag bool
}

func NewDiInfoBuilder() *DiInfoBuilder {
	builder := &DiInfoBuilder{}
	return builder
}

// DI信息 ID
//
// 示例值："6784008015948283904"
func (builder *DiInfoBuilder) Id(id string) *DiInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递ID
//
// 示例值："6784008015948283905"
func (builder *DiInfoBuilder) ApplicationId(applicationId string) *DiInfoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 人才ID
//
// 示例值："6784008015948283906"
func (builder *DiInfoBuilder) TalentId(talentId string) *DiInfoBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 数据来源
//
// 示例值：1
func (builder *DiInfoBuilder) SourceType(sourceType int) *DiInfoBuilder {
	builder.sourceType = sourceType
	builder.sourceTypeFlag = true
	return builder
}

// 创建时间毫秒时间戳
//
// 示例值："1681301987"
func (builder *DiInfoBuilder) CreateTime(createTime string) *DiInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间毫秒时间戳
//
// 示例值："1681301987"
func (builder *DiInfoBuilder) UpdateTime(updateTime string) *DiInfoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 多元信息
//
// 示例值：
func (builder *DiInfoBuilder) DiData(diData []*DiData) *DiInfoBuilder {
	builder.diData = diData
	builder.diDataFlag = true
	return builder
}

func (builder *DiInfoBuilder) Build() *DiInfo {
	req := &DiInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.sourceTypeFlag {
		req.SourceType = &builder.sourceType

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.diDataFlag {
		req.DiData = builder.diData
	}
	return req
}

type DimensionAbility struct {
	Id *string `json:"id,omitempty"` // 能力项ID

	Name *I18n `json:"name,omitempty"` // 能力项名称

	Description *I18n `json:"description,omitempty"` // 能力项描述
}

type DimensionAbilityBuilder struct {
	id     string // 能力项ID
	idFlag bool

	name     *I18n // 能力项名称
	nameFlag bool

	description     *I18n // 能力项描述
	descriptionFlag bool
}

func NewDimensionAbilityBuilder() *DimensionAbilityBuilder {
	builder := &DimensionAbilityBuilder{}
	return builder
}

// 能力项ID
//
// 示例值：6930815272790114324
func (builder *DimensionAbilityBuilder) Id(id string) *DimensionAbilityBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 能力项名称
//
// 示例值：
func (builder *DimensionAbilityBuilder) Name(name *I18n) *DimensionAbilityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 能力项描述
//
// 示例值：
func (builder *DimensionAbilityBuilder) Description(description *I18n) *DimensionAbilityBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *DimensionAbilityBuilder) Build() *DimensionAbility {
	req := &DimensionAbility{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	return req
}

type DimensionAbilityArgs struct {
	AbilityId *string `json:"ability_id,omitempty"` // 能力项id

	PlaceHolder *string `json:"place_holder,omitempty"` // 能力项占位符

	EnPlaceHolder *string `json:"en_place_holder,omitempty"` // 英文能力项占位符
}

type DimensionAbilityArgsBuilder struct {
	abilityId     string // 能力项id
	abilityIdFlag bool

	placeHolder     string // 能力项占位符
	placeHolderFlag bool

	enPlaceHolder     string // 英文能力项占位符
	enPlaceHolderFlag bool
}

func NewDimensionAbilityArgsBuilder() *DimensionAbilityArgsBuilder {
	builder := &DimensionAbilityArgsBuilder{}
	return builder
}

// 能力项id
//
// 示例值：6930815272790114324
func (builder *DimensionAbilityArgsBuilder) AbilityId(abilityId string) *DimensionAbilityArgsBuilder {
	builder.abilityId = abilityId
	builder.abilityIdFlag = true
	return builder
}

// 能力项占位符
//
// 示例值：占位符
func (builder *DimensionAbilityArgsBuilder) PlaceHolder(placeHolder string) *DimensionAbilityArgsBuilder {
	builder.placeHolder = placeHolder
	builder.placeHolderFlag = true
	return builder
}

// 英文能力项占位符
//
// 示例值：place holder
func (builder *DimensionAbilityArgsBuilder) EnPlaceHolder(enPlaceHolder string) *DimensionAbilityArgsBuilder {
	builder.enPlaceHolder = enPlaceHolder
	builder.enPlaceHolderFlag = true
	return builder
}

func (builder *DimensionAbilityArgsBuilder) Build() *DimensionAbilityArgs {
	req := &DimensionAbilityArgs{}
	if builder.abilityIdFlag {
		req.AbilityId = &builder.abilityId

	}
	if builder.placeHolderFlag {
		req.PlaceHolder = &builder.placeHolder

	}
	if builder.enPlaceHolderFlag {
		req.EnPlaceHolder = &builder.enPlaceHolder

	}
	return req
}

type DimensionAssessment struct {
	InterviewFeedbackFormDimensionId *string `json:"interview_feedback_form_dimension_id,omitempty"` // 对应模版中维度ID

	DimensionName *I18n `json:"dimension_name,omitempty"` // 维度名称

	DimensionType *int `json:"dimension_type,omitempty"` // 维度类型

	Weight *float64 `json:"weight,omitempty"` // 维度权重

	DimensionContent *string `json:"dimension_content,omitempty"` // 当维度类型为描述题时，从此取值

	DimensionOption *DimensionOption `json:"dimension_option,omitempty"` // 当维度类型为单选题时，从此取值

	DimensionOptions []*DimensionOption `json:"dimension_options,omitempty"` // 当维度类型为多选题时，从此取值

	DimensionScore *int `json:"dimension_score,omitempty"` // 当维度评价方式为「打分题(填空)时」，从此取值

	RecommendedJobLevel *RecommendedJobLevel `json:"recommended_job_level,omitempty"` // 当维度为「职级建议」时，从此取值

	QuestionAssessments []*QuestionAssessment `json:"question_assessments,omitempty"` // 维度关联面试题

	AbilityAssessments []*AbilityAssessment `json:"ability_assessments,omitempty"` // 能力项评价
}

type DimensionAssessmentBuilder struct {
	interviewFeedbackFormDimensionId     string // 对应模版中维度ID
	interviewFeedbackFormDimensionIdFlag bool

	dimensionName     *I18n // 维度名称
	dimensionNameFlag bool

	dimensionType     int // 维度类型
	dimensionTypeFlag bool

	weight     float64 // 维度权重
	weightFlag bool

	dimensionContent     string // 当维度类型为描述题时，从此取值
	dimensionContentFlag bool

	dimensionOption     *DimensionOption // 当维度类型为单选题时，从此取值
	dimensionOptionFlag bool

	dimensionOptions     []*DimensionOption // 当维度类型为多选题时，从此取值
	dimensionOptionsFlag bool

	dimensionScore     int // 当维度评价方式为「打分题(填空)时」，从此取值
	dimensionScoreFlag bool

	recommendedJobLevel     *RecommendedJobLevel // 当维度为「职级建议」时，从此取值
	recommendedJobLevelFlag bool

	questionAssessments     []*QuestionAssessment // 维度关联面试题
	questionAssessmentsFlag bool

	abilityAssessments     []*AbilityAssessment // 能力项评价
	abilityAssessmentsFlag bool
}

func NewDimensionAssessmentBuilder() *DimensionAssessmentBuilder {
	builder := &DimensionAssessmentBuilder{}
	return builder
}

// 对应模版中维度ID
//
// 示例值：7171693733661327361
func (builder *DimensionAssessmentBuilder) InterviewFeedbackFormDimensionId(interviewFeedbackFormDimensionId string) *DimensionAssessmentBuilder {
	builder.interviewFeedbackFormDimensionId = interviewFeedbackFormDimensionId
	builder.interviewFeedbackFormDimensionIdFlag = true
	return builder
}

// 维度名称
//
// 示例值：
func (builder *DimensionAssessmentBuilder) DimensionName(dimensionName *I18n) *DimensionAssessmentBuilder {
	builder.dimensionName = dimensionName
	builder.dimensionNameFlag = true
	return builder
}

// 维度类型
//
// 示例值：1
func (builder *DimensionAssessmentBuilder) DimensionType(dimensionType int) *DimensionAssessmentBuilder {
	builder.dimensionType = dimensionType
	builder.dimensionTypeFlag = true
	return builder
}

// 维度权重
//
// 示例值：1
func (builder *DimensionAssessmentBuilder) Weight(weight float64) *DimensionAssessmentBuilder {
	builder.weight = weight
	builder.weightFlag = true
	return builder
}

// 当维度类型为描述题时，从此取值
//
// 示例值：描述题作答
func (builder *DimensionAssessmentBuilder) DimensionContent(dimensionContent string) *DimensionAssessmentBuilder {
	builder.dimensionContent = dimensionContent
	builder.dimensionContentFlag = true
	return builder
}

// 当维度类型为单选题时，从此取值
//
// 示例值：
func (builder *DimensionAssessmentBuilder) DimensionOption(dimensionOption *DimensionOption) *DimensionAssessmentBuilder {
	builder.dimensionOption = dimensionOption
	builder.dimensionOptionFlag = true
	return builder
}

// 当维度类型为多选题时，从此取值
//
// 示例值：
func (builder *DimensionAssessmentBuilder) DimensionOptions(dimensionOptions []*DimensionOption) *DimensionAssessmentBuilder {
	builder.dimensionOptions = dimensionOptions
	builder.dimensionOptionsFlag = true
	return builder
}

// 当维度评价方式为「打分题(填空)时」，从此取值
//
// 示例值：10
func (builder *DimensionAssessmentBuilder) DimensionScore(dimensionScore int) *DimensionAssessmentBuilder {
	builder.dimensionScore = dimensionScore
	builder.dimensionScoreFlag = true
	return builder
}

// 当维度为「职级建议」时，从此取值
//
// 示例值：
func (builder *DimensionAssessmentBuilder) RecommendedJobLevel(recommendedJobLevel *RecommendedJobLevel) *DimensionAssessmentBuilder {
	builder.recommendedJobLevel = recommendedJobLevel
	builder.recommendedJobLevelFlag = true
	return builder
}

// 维度关联面试题
//
// 示例值：
func (builder *DimensionAssessmentBuilder) QuestionAssessments(questionAssessments []*QuestionAssessment) *DimensionAssessmentBuilder {
	builder.questionAssessments = questionAssessments
	builder.questionAssessmentsFlag = true
	return builder
}

// 能力项评价
//
// 示例值：
func (builder *DimensionAssessmentBuilder) AbilityAssessments(abilityAssessments []*AbilityAssessment) *DimensionAssessmentBuilder {
	builder.abilityAssessments = abilityAssessments
	builder.abilityAssessmentsFlag = true
	return builder
}

func (builder *DimensionAssessmentBuilder) Build() *DimensionAssessment {
	req := &DimensionAssessment{}
	if builder.interviewFeedbackFormDimensionIdFlag {
		req.InterviewFeedbackFormDimensionId = &builder.interviewFeedbackFormDimensionId

	}
	if builder.dimensionNameFlag {
		req.DimensionName = builder.dimensionName
	}
	if builder.dimensionTypeFlag {
		req.DimensionType = &builder.dimensionType

	}
	if builder.weightFlag {
		req.Weight = &builder.weight

	}
	if builder.dimensionContentFlag {
		req.DimensionContent = &builder.dimensionContent

	}
	if builder.dimensionOptionFlag {
		req.DimensionOption = builder.dimensionOption
	}
	if builder.dimensionOptionsFlag {
		req.DimensionOptions = builder.dimensionOptions
	}
	if builder.dimensionScoreFlag {
		req.DimensionScore = &builder.dimensionScore

	}
	if builder.recommendedJobLevelFlag {
		req.RecommendedJobLevel = builder.recommendedJobLevel
	}
	if builder.questionAssessmentsFlag {
		req.QuestionAssessments = builder.questionAssessments
	}
	if builder.abilityAssessmentsFlag {
		req.AbilityAssessments = builder.abilityAssessments
	}
	return req
}

type DimensionAssessmentRequest struct {
	DimensionId *string `json:"dimension_id,omitempty"` // 评价维度ID

	Content *string `json:"content,omitempty"` // 内容评价，描述题、系统预置-记录维度使用

	OptionIds []string `json:"option_ids,omitempty"` // 选项评价，单选题、多选题、打分题(单选)、系统预置-结论、系统预置-得分 维度使用

	ScoreValue *int `json:"score_value,omitempty"` // 得分评价，打分题(填空)维度使用

	MinJobLevelId *string `json:"min_job_level_id,omitempty"` // 职级建议下限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取

	MaxJobLevelId *string `json:"max_job_level_id,omitempty"` // 职级建议上限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取
}

type DimensionAssessmentRequestBuilder struct {
	dimensionId     string // 评价维度ID
	dimensionIdFlag bool

	content     string // 内容评价，描述题、系统预置-记录维度使用
	contentFlag bool

	optionIds     []string // 选项评价，单选题、多选题、打分题(单选)、系统预置-结论、系统预置-得分 维度使用
	optionIdsFlag bool

	scoreValue     int // 得分评价，打分题(填空)维度使用
	scoreValueFlag bool

	minJobLevelId     string // 职级建议下限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取
	minJobLevelIdFlag bool

	maxJobLevelId     string // 职级建议上限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取
	maxJobLevelIdFlag bool
}

func NewDimensionAssessmentRequestBuilder() *DimensionAssessmentRequestBuilder {
	builder := &DimensionAssessmentRequestBuilder{}
	return builder
}

// 评价维度ID
//
// 示例值：7484008015926434905
func (builder *DimensionAssessmentRequestBuilder) DimensionId(dimensionId string) *DimensionAssessmentRequestBuilder {
	builder.dimensionId = dimensionId
	builder.dimensionIdFlag = true
	return builder
}

// 内容评价，描述题、系统预置-记录维度使用
//
// 示例值：面试评价
func (builder *DimensionAssessmentRequestBuilder) Content(content string) *DimensionAssessmentRequestBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 选项评价，单选题、多选题、打分题(单选)、系统预置-结论、系统预置-得分 维度使用
//
// 示例值：
func (builder *DimensionAssessmentRequestBuilder) OptionIds(optionIds []string) *DimensionAssessmentRequestBuilder {
	builder.optionIds = optionIds
	builder.optionIdsFlag = true
	return builder
}

// 得分评价，打分题(填空)维度使用
//
// 示例值：20
func (builder *DimensionAssessmentRequestBuilder) ScoreValue(scoreValue int) *DimensionAssessmentRequestBuilder {
	builder.scoreValue = scoreValue
	builder.scoreValueFlag = true
	return builder
}

// 职级建议下限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取
//
// 示例值：1z3278jv8apy9yb
func (builder *DimensionAssessmentRequestBuilder) MinJobLevelId(minJobLevelId string) *DimensionAssessmentRequestBuilder {
	builder.minJobLevelId = minJobLevelId
	builder.minJobLevelIdFlag = true
	return builder
}

// 职级建议上限，职级建议维度使用，「无法判断」时，值为-1.  职级ID可从【获取租户职级列表】接口获取
//
// 示例值：1z3278jv8apy9yb
func (builder *DimensionAssessmentRequestBuilder) MaxJobLevelId(maxJobLevelId string) *DimensionAssessmentRequestBuilder {
	builder.maxJobLevelId = maxJobLevelId
	builder.maxJobLevelIdFlag = true
	return builder
}

func (builder *DimensionAssessmentRequestBuilder) Build() *DimensionAssessmentRequest {
	req := &DimensionAssessmentRequest{}
	if builder.dimensionIdFlag {
		req.DimensionId = &builder.dimensionId

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.optionIdsFlag {
		req.OptionIds = builder.optionIds
	}
	if builder.scoreValueFlag {
		req.ScoreValue = &builder.scoreValue

	}
	if builder.minJobLevelIdFlag {
		req.MinJobLevelId = &builder.minJobLevelId

	}
	if builder.maxJobLevelIdFlag {
		req.MaxJobLevelId = &builder.maxJobLevelId

	}
	return req
}

type DimensionOption struct {
	Id *string `json:"id,omitempty"` // 选项ID

	Name *I18n `json:"name,omitempty"` // 选项名称

	ScoreVal *int `json:"score_val,omitempty"` // 选项对应的分数

	AliasName *I18n `json:"alias_name,omitempty"` // 选项全称
}

type DimensionOptionBuilder struct {
	id     string // 选项ID
	idFlag bool

	name     *I18n // 选项名称
	nameFlag bool

	scoreVal     int // 选项对应的分数
	scoreValFlag bool

	aliasName     *I18n // 选项全称
	aliasNameFlag bool
}

func NewDimensionOptionBuilder() *DimensionOptionBuilder {
	builder := &DimensionOptionBuilder{}
	return builder
}

// 选项ID
//
// 示例值：7171693733661327361
func (builder *DimensionOptionBuilder) Id(id string) *DimensionOptionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 选项名称
//
// 示例值：7171693733661327361
func (builder *DimensionOptionBuilder) Name(name *I18n) *DimensionOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项对应的分数
//
// 示例值：10
func (builder *DimensionOptionBuilder) ScoreVal(scoreVal int) *DimensionOptionBuilder {
	builder.scoreVal = scoreVal
	builder.scoreValFlag = true
	return builder
}

// 选项全称
//
// 示例值：
func (builder *DimensionOptionBuilder) AliasName(aliasName *I18n) *DimensionOptionBuilder {
	builder.aliasName = aliasName
	builder.aliasNameFlag = true
	return builder
}

func (builder *DimensionOptionBuilder) Build() *DimensionOption {
	req := &DimensionOption{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.scoreValFlag {
		req.ScoreVal = &builder.scoreVal

	}
	if builder.aliasNameFlag {
		req.AliasName = builder.aliasName
	}
	return req
}

type Dummy struct {
	Id *string `json:"id,omitempty"` // id
}

type DummyBuilder struct {
	id     string // id
	idFlag bool
}

func NewDummyBuilder() *DummyBuilder {
	builder := &DummyBuilder{}
	return builder
}

// id
//
// 示例值：
func (builder *DummyBuilder) Id(id string) *DummyBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

func (builder *DummyBuilder) Build() *Dummy {
	req := &Dummy{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	return req
}

type EcoAccountCustomField struct {
	Scope *int `json:"scope,omitempty"` // 适用范围

	CustomFieldList []*EcoAccountCustomFieldData `json:"custom_field_list,omitempty"` // 自定义字段列表
}

type EcoAccountCustomFieldBuilder struct {
	scope     int // 适用范围
	scopeFlag bool

	customFieldList     []*EcoAccountCustomFieldData // 自定义字段列表
	customFieldListFlag bool
}

func NewEcoAccountCustomFieldBuilder() *EcoAccountCustomFieldBuilder {
	builder := &EcoAccountCustomFieldBuilder{}
	return builder
}

// 适用范围
//
// 示例值：1
func (builder *EcoAccountCustomFieldBuilder) Scope(scope int) *EcoAccountCustomFieldBuilder {
	builder.scope = scope
	builder.scopeFlag = true
	return builder
}

// 自定义字段列表
//
// 示例值：
func (builder *EcoAccountCustomFieldBuilder) CustomFieldList(customFieldList []*EcoAccountCustomFieldData) *EcoAccountCustomFieldBuilder {
	builder.customFieldList = customFieldList
	builder.customFieldListFlag = true
	return builder
}

func (builder *EcoAccountCustomFieldBuilder) Build() *EcoAccountCustomField {
	req := &EcoAccountCustomField{}
	if builder.scopeFlag {
		req.Scope = &builder.scope

	}
	if builder.customFieldListFlag {
		req.CustomFieldList = builder.customFieldList
	}
	return req
}

type EcoAccountCustomFieldData struct {
	Key *string `json:"key,omitempty"` // 自定义字段的标识，同一 scope 内须唯一

	Name *I18n `json:"name,omitempty"` // 自定义字段的名称，用户在添加账号表单看到的控件标题

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	Description *I18n `json:"description,omitempty"` // 自定义字段的描述，用户在添加账号表单看到的 place holder
}

type EcoAccountCustomFieldDataBuilder struct {
	key     string // 自定义字段的标识，同一 scope 内须唯一
	keyFlag bool

	name     *I18n // 自定义字段的名称，用户在添加账号表单看到的控件标题
	nameFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	description     *I18n // 自定义字段的描述，用户在添加账号表单看到的 place holder
	descriptionFlag bool
}

func NewEcoAccountCustomFieldDataBuilder() *EcoAccountCustomFieldDataBuilder {
	builder := &EcoAccountCustomFieldDataBuilder{}
	return builder
}

// 自定义字段的标识，同一 scope 内须唯一
//
// 示例值：org_id
func (builder *EcoAccountCustomFieldDataBuilder) Key(key string) *EcoAccountCustomFieldDataBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 自定义字段的名称，用户在添加账号表单看到的控件标题
//
// 示例值：
func (builder *EcoAccountCustomFieldDataBuilder) Name(name *I18n) *EcoAccountCustomFieldDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 是否必填
//
// 示例值：true
func (builder *EcoAccountCustomFieldDataBuilder) IsRequired(isRequired bool) *EcoAccountCustomFieldDataBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 自定义字段的描述，用户在添加账号表单看到的 place holder
//
// 示例值：
func (builder *EcoAccountCustomFieldDataBuilder) Description(description *I18n) *EcoAccountCustomFieldDataBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *EcoAccountCustomFieldDataBuilder) Build() *EcoAccountCustomFieldData {
	req := &EcoAccountCustomFieldData{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	return req
}

type EcoAccountCustomFieldEventData struct {
	Key *string `json:"key,omitempty"` // 自定义字段的标识

	Value *string `json:"value,omitempty"` // 自定义字段的值
}

type EcoAccountCustomFieldEventDataBuilder struct {
	key     string // 自定义字段的标识
	keyFlag bool

	value     string // 自定义字段的值
	valueFlag bool
}

func NewEcoAccountCustomFieldEventDataBuilder() *EcoAccountCustomFieldEventDataBuilder {
	builder := &EcoAccountCustomFieldEventDataBuilder{}
	return builder
}

// 自定义字段的标识
//
// 示例值：ord_id
func (builder *EcoAccountCustomFieldEventDataBuilder) Key(key string) *EcoAccountCustomFieldEventDataBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 自定义字段的值
//
// 示例值：7233333
func (builder *EcoAccountCustomFieldEventDataBuilder) Value(value string) *EcoAccountCustomFieldEventDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *EcoAccountCustomFieldEventDataBuilder) Build() *EcoAccountCustomFieldEventData {
	req := &EcoAccountCustomFieldEventData{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type EcoBackgroundCheckCreateEventCandidateInfo struct {
	Name *string `json:"name,omitempty"` // 候选人姓名

	Mobile *EcoBackgroundCheckCreateEventMobile `json:"mobile,omitempty"` // 候选人手机号

	Email *string `json:"email,omitempty"` // 候选人邮箱

	FirstName *string `json:"first_name,omitempty"` // 名字

	LastName *string `json:"last_name,omitempty"` // 姓氏
}

type EcoBackgroundCheckCreateEventCandidateInfoBuilder struct {
	name     string // 候选人姓名
	nameFlag bool

	mobile     *EcoBackgroundCheckCreateEventMobile // 候选人手机号
	mobileFlag bool

	email     string // 候选人邮箱
	emailFlag bool

	firstName     string // 名字
	firstNameFlag bool

	lastName     string // 姓氏
	lastNameFlag bool
}

func NewEcoBackgroundCheckCreateEventCandidateInfoBuilder() *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder := &EcoBackgroundCheckCreateEventCandidateInfoBuilder{}
	return builder
}

// 候选人姓名
//
// 示例值：王二
func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) Name(name string) *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 候选人手机号
//
// 示例值：
func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) Mobile(mobile *EcoBackgroundCheckCreateEventMobile) *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 候选人邮箱
//
// 示例值：xxx@abc.vom
func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) Email(email string) *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 名字
//
// 示例值：Ming
func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) FirstName(firstName string) *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder.firstName = firstName
	builder.firstNameFlag = true
	return builder
}

// 姓氏
//
// 示例值：Lee
func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) LastName(lastName string) *EcoBackgroundCheckCreateEventCandidateInfoBuilder {
	builder.lastName = lastName
	builder.lastNameFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCreateEventCandidateInfoBuilder) Build() *EcoBackgroundCheckCreateEventCandidateInfo {
	req := &EcoBackgroundCheckCreateEventCandidateInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = builder.mobile
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.firstNameFlag {
		req.FirstName = &builder.firstName

	}
	if builder.lastNameFlag {
		req.LastName = &builder.lastName

	}
	return req
}

type EcoBackgroundCheckCreateEventContactInfo struct {
	Name *string `json:"name,omitempty"` // 联系人姓名

	Mobile *EcoBackgroundCheckCreateEventMobile `json:"mobile,omitempty"` // 联系人手机号

	Email *string `json:"email,omitempty"` // 联系人邮箱
}

type EcoBackgroundCheckCreateEventContactInfoBuilder struct {
	name     string // 联系人姓名
	nameFlag bool

	mobile     *EcoBackgroundCheckCreateEventMobile // 联系人手机号
	mobileFlag bool

	email     string // 联系人邮箱
	emailFlag bool
}

func NewEcoBackgroundCheckCreateEventContactInfoBuilder() *EcoBackgroundCheckCreateEventContactInfoBuilder {
	builder := &EcoBackgroundCheckCreateEventContactInfoBuilder{}
	return builder
}

// 联系人姓名
//
// 示例值：王二
func (builder *EcoBackgroundCheckCreateEventContactInfoBuilder) Name(name string) *EcoBackgroundCheckCreateEventContactInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 联系人手机号
//
// 示例值：
func (builder *EcoBackgroundCheckCreateEventContactInfoBuilder) Mobile(mobile *EcoBackgroundCheckCreateEventMobile) *EcoBackgroundCheckCreateEventContactInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 联系人邮箱
//
// 示例值：xxx@abc.vom
func (builder *EcoBackgroundCheckCreateEventContactInfoBuilder) Email(email string) *EcoBackgroundCheckCreateEventContactInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCreateEventContactInfoBuilder) Build() *EcoBackgroundCheckCreateEventContactInfo {
	req := &EcoBackgroundCheckCreateEventContactInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = builder.mobile
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	return req
}

type EcoBackgroundCheckCreateEventCustomKv struct {
	Key *string `json:"key,omitempty"` // 自定义字段标识

	Value *string `json:"value,omitempty"` // 自定义字段值
}

type EcoBackgroundCheckCreateEventCustomKvBuilder struct {
	key     string // 自定义字段标识
	keyFlag bool

	value     string // 自定义字段值
	valueFlag bool
}

func NewEcoBackgroundCheckCreateEventCustomKvBuilder() *EcoBackgroundCheckCreateEventCustomKvBuilder {
	builder := &EcoBackgroundCheckCreateEventCustomKvBuilder{}
	return builder
}

// 自定义字段标识
//
// 示例值：auth_token
func (builder *EcoBackgroundCheckCreateEventCustomKvBuilder) Key(key string) *EcoBackgroundCheckCreateEventCustomKvBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：apikey_1233kkka
func (builder *EcoBackgroundCheckCreateEventCustomKvBuilder) Value(value string) *EcoBackgroundCheckCreateEventCustomKvBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCreateEventCustomKvBuilder) Build() *EcoBackgroundCheckCreateEventCustomKv {
	req := &EcoBackgroundCheckCreateEventCustomKv{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type EcoBackgroundCheckCreateEventMobile struct {
	Code *string `json:"code,omitempty"` // 国家代码

	Number *string `json:"number,omitempty"` // 手机号码
}

type EcoBackgroundCheckCreateEventMobileBuilder struct {
	code     string // 国家代码
	codeFlag bool

	number     string // 手机号码
	numberFlag bool
}

func NewEcoBackgroundCheckCreateEventMobileBuilder() *EcoBackgroundCheckCreateEventMobileBuilder {
	builder := &EcoBackgroundCheckCreateEventMobileBuilder{}
	return builder
}

// 国家代码
//
// 示例值：86
func (builder *EcoBackgroundCheckCreateEventMobileBuilder) Code(code string) *EcoBackgroundCheckCreateEventMobileBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 手机号码
//
// 示例值：18900001111
func (builder *EcoBackgroundCheckCreateEventMobileBuilder) Number(number string) *EcoBackgroundCheckCreateEventMobileBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCreateEventMobileBuilder) Build() *EcoBackgroundCheckCreateEventMobile {
	req := &EcoBackgroundCheckCreateEventMobile{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type EcoBackgroundCheckCustomField struct {
	AccountId *string `json:"account_id,omitempty"` // 背调账号 ID，可在「账号绑定」事件中获取

	CustomFieldList []*EcoBackgroundCheckCustomFieldData `json:"custom_field_list,omitempty"` // 自定义字段列表
}

type EcoBackgroundCheckCustomFieldBuilder struct {
	accountId     string // 背调账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool

	customFieldList     []*EcoBackgroundCheckCustomFieldData // 自定义字段列表
	customFieldListFlag bool
}

func NewEcoBackgroundCheckCustomFieldBuilder() *EcoBackgroundCheckCustomFieldBuilder {
	builder := &EcoBackgroundCheckCustomFieldBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
// 示例值：6995842370159937061
func (builder *EcoBackgroundCheckCustomFieldBuilder) AccountId(accountId string) *EcoBackgroundCheckCustomFieldBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 自定义字段列表
//
// 示例值：
func (builder *EcoBackgroundCheckCustomFieldBuilder) CustomFieldList(customFieldList []*EcoBackgroundCheckCustomFieldData) *EcoBackgroundCheckCustomFieldBuilder {
	builder.customFieldList = customFieldList
	builder.customFieldListFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCustomFieldBuilder) Build() *EcoBackgroundCheckCustomField {
	req := &EcoBackgroundCheckCustomField{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.customFieldListFlag {
		req.CustomFieldList = builder.customFieldList
	}
	return req
}

type EcoBackgroundCheckCustomFieldData struct {
	Type *string `json:"type,omitempty"` // 自定义字段类型

	Key *string `json:"key,omitempty"` // 自定义字段的标识，在同一账号内唯一

	Name *I18n `json:"name,omitempty"` // 自定义字段的名称，用户在安排背调表单看到的控件标题

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	Description *I18n `json:"description,omitempty"` // 自定义字段的描述，如果是输入控件，为用户在安排背调表单看到的 placeholder 或 提示文字

	Options []*EcoBackgroundCheckCustomFieldDataOption `json:"options,omitempty"` // type 为 select 或 multiselect 时必填，单选或多选的选项
}

type EcoBackgroundCheckCustomFieldDataBuilder struct {
	type_    string // 自定义字段类型
	typeFlag bool

	key     string // 自定义字段的标识，在同一账号内唯一
	keyFlag bool

	name     *I18n // 自定义字段的名称，用户在安排背调表单看到的控件标题
	nameFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	description     *I18n // 自定义字段的描述，如果是输入控件，为用户在安排背调表单看到的 placeholder 或 提示文字
	descriptionFlag bool

	options     []*EcoBackgroundCheckCustomFieldDataOption // type 为 select 或 multiselect 时必填，单选或多选的选项
	optionsFlag bool
}

func NewEcoBackgroundCheckCustomFieldDataBuilder() *EcoBackgroundCheckCustomFieldDataBuilder {
	builder := &EcoBackgroundCheckCustomFieldDataBuilder{}
	return builder
}

// 自定义字段类型
//
// 示例值：text
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Type(type_ string) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 自定义字段的标识，在同一账号内唯一
//
// 示例值：candidate_resume
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Key(key string) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 自定义字段的名称，用户在安排背调表单看到的控件标题
//
// 示例值：
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Name(name *I18n) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 是否必填
//
// 示例值：true
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) IsRequired(isRequired bool) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 自定义字段的描述，如果是输入控件，为用户在安排背调表单看到的 placeholder 或 提示文字
//
// 示例值：
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Description(description *I18n) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// type 为 select 或 multiselect 时必填，单选或多选的选项
//
// 示例值：
func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Options(options []*EcoBackgroundCheckCustomFieldDataOption) *EcoBackgroundCheckCustomFieldDataBuilder {
	builder.options = options
	builder.optionsFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCustomFieldDataBuilder) Build() *EcoBackgroundCheckCustomFieldData {
	req := &EcoBackgroundCheckCustomFieldData{}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.optionsFlag {
		req.Options = builder.options
	}
	return req
}

type EcoBackgroundCheckCustomFieldDataOption struct {
	Key *string `json:"key,omitempty"` // 选项的 key

	Name *I18n `json:"name,omitempty"` // 选项的名称
}

type EcoBackgroundCheckCustomFieldDataOptionBuilder struct {
	key     string // 选项的 key
	keyFlag bool

	name     *I18n // 选项的名称
	nameFlag bool
}

func NewEcoBackgroundCheckCustomFieldDataOptionBuilder() *EcoBackgroundCheckCustomFieldDataOptionBuilder {
	builder := &EcoBackgroundCheckCustomFieldDataOptionBuilder{}
	return builder
}

// 选项的 key
//
// 示例值：A
func (builder *EcoBackgroundCheckCustomFieldDataOptionBuilder) Key(key string) *EcoBackgroundCheckCustomFieldDataOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项的名称
//
// 示例值：
func (builder *EcoBackgroundCheckCustomFieldDataOptionBuilder) Name(name *I18n) *EcoBackgroundCheckCustomFieldDataOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *EcoBackgroundCheckCustomFieldDataOptionBuilder) Build() *EcoBackgroundCheckCustomFieldDataOption {
	req := &EcoBackgroundCheckCustomFieldDataOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type EcoBackgroundCheckPackage struct {
	AccountId *string `json:"account_id,omitempty"` // 背调账号 ID，可在「账号绑定」事件中获取

	PackageList []*EcoBackgroundCheckPackageData `json:"package_list,omitempty"` // 背调套餐列表

	AdditionalItemList []*EcoBackgroundCheckPackageAdditionalItem `json:"additional_item_list,omitempty"` // 附加调查项列表
}

type EcoBackgroundCheckPackageBuilder struct {
	accountId     string // 背调账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool

	packageList     []*EcoBackgroundCheckPackageData // 背调套餐列表
	packageListFlag bool

	additionalItemList     []*EcoBackgroundCheckPackageAdditionalItem // 附加调查项列表
	additionalItemListFlag bool
}

func NewEcoBackgroundCheckPackageBuilder() *EcoBackgroundCheckPackageBuilder {
	builder := &EcoBackgroundCheckPackageBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
// 示例值：ord_id
func (builder *EcoBackgroundCheckPackageBuilder) AccountId(accountId string) *EcoBackgroundCheckPackageBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 背调套餐列表
//
// 示例值：
func (builder *EcoBackgroundCheckPackageBuilder) PackageList(packageList []*EcoBackgroundCheckPackageData) *EcoBackgroundCheckPackageBuilder {
	builder.packageList = packageList
	builder.packageListFlag = true
	return builder
}

// 附加调查项列表
//
// 示例值：
func (builder *EcoBackgroundCheckPackageBuilder) AdditionalItemList(additionalItemList []*EcoBackgroundCheckPackageAdditionalItem) *EcoBackgroundCheckPackageBuilder {
	builder.additionalItemList = additionalItemList
	builder.additionalItemListFlag = true
	return builder
}

func (builder *EcoBackgroundCheckPackageBuilder) Build() *EcoBackgroundCheckPackage {
	req := &EcoBackgroundCheckPackage{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.packageListFlag {
		req.PackageList = builder.packageList
	}
	if builder.additionalItemListFlag {
		req.AdditionalItemList = builder.additionalItemList
	}
	return req
}

type EcoBackgroundCheckPackageAdditionalItem struct {
	Id *string `json:"id,omitempty"` // 附件调查项 ID

	Name *string `json:"name,omitempty"` // 附加调查项名称

	Description *string `json:"description,omitempty"` // 附加调查项描述
}

type EcoBackgroundCheckPackageAdditionalItemBuilder struct {
	id     string // 附件调查项 ID
	idFlag bool

	name     string // 附加调查项名称
	nameFlag bool

	description     string // 附加调查项描述
	descriptionFlag bool
}

func NewEcoBackgroundCheckPackageAdditionalItemBuilder() *EcoBackgroundCheckPackageAdditionalItemBuilder {
	builder := &EcoBackgroundCheckPackageAdditionalItemBuilder{}
	return builder
}

// 附件调查项 ID
//
// 示例值：ext001
func (builder *EcoBackgroundCheckPackageAdditionalItemBuilder) Id(id string) *EcoBackgroundCheckPackageAdditionalItemBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附加调查项名称
//
// 示例值：工作履历信息验证X2
func (builder *EcoBackgroundCheckPackageAdditionalItemBuilder) Name(name string) *EcoBackgroundCheckPackageAdditionalItemBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 附加调查项描述
//
// 示例值：详细调查
func (builder *EcoBackgroundCheckPackageAdditionalItemBuilder) Description(description string) *EcoBackgroundCheckPackageAdditionalItemBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *EcoBackgroundCheckPackageAdditionalItemBuilder) Build() *EcoBackgroundCheckPackageAdditionalItem {
	req := &EcoBackgroundCheckPackageAdditionalItem{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type EcoBackgroundCheckPackageData struct {
	Id *string `json:"id,omitempty"` // 套餐 ID

	Name *string `json:"name,omitempty"` // 背调名称

	Description *string `json:"description,omitempty"` // 套餐描述
}

type EcoBackgroundCheckPackageDataBuilder struct {
	id     string // 套餐 ID
	idFlag bool

	name     string // 背调名称
	nameFlag bool

	description     string // 套餐描述
	descriptionFlag bool
}

func NewEcoBackgroundCheckPackageDataBuilder() *EcoBackgroundCheckPackageDataBuilder {
	builder := &EcoBackgroundCheckPackageDataBuilder{}
	return builder
}

// 套餐 ID
//
// 示例值：pkg001
func (builder *EcoBackgroundCheckPackageDataBuilder) Id(id string) *EcoBackgroundCheckPackageDataBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 背调名称
//
// 示例值：基础套餐
func (builder *EcoBackgroundCheckPackageDataBuilder) Name(name string) *EcoBackgroundCheckPackageDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 套餐描述
//
// 示例值：工作履历信息验证X1，工作表现鉴定评价X1，教育背景核实，公民身份信息验证，简历对比，民事诉讼调查
func (builder *EcoBackgroundCheckPackageDataBuilder) Description(description string) *EcoBackgroundCheckPackageDataBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *EcoBackgroundCheckPackageDataBuilder) Build() *EcoBackgroundCheckPackageData {
	req := &EcoBackgroundCheckPackageData{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type EcoBackgroundCheckReportFile struct {
	ReportName *string `json:"report_name,omitempty"` // 报告名称

	ReportUrl *string `json:"report_url,omitempty"` // 报告地址

	ReportUrlType *int `json:"report_url_type,omitempty"` // 报告地址类型；枚举值 1 或为空时为可下载的 pdf 链接，2 为预览型链接
}

type EcoBackgroundCheckReportFileBuilder struct {
	reportName     string // 报告名称
	reportNameFlag bool

	reportUrl     string // 报告地址
	reportUrlFlag bool

	reportUrlType     int // 报告地址类型；枚举值 1 或为空时为可下载的 pdf 链接，2 为预览型链接
	reportUrlTypeFlag bool
}

func NewEcoBackgroundCheckReportFileBuilder() *EcoBackgroundCheckReportFileBuilder {
	builder := &EcoBackgroundCheckReportFileBuilder{}
	return builder
}

// 报告名称
//
// 示例值：阶段报告.pdf
func (builder *EcoBackgroundCheckReportFileBuilder) ReportName(reportName string) *EcoBackgroundCheckReportFileBuilder {
	builder.reportName = reportName
	builder.reportNameFlag = true
	return builder
}

// 报告地址
//
// 示例值：https://xxxxx/xxxxxx/xxxx.pdf
func (builder *EcoBackgroundCheckReportFileBuilder) ReportUrl(reportUrl string) *EcoBackgroundCheckReportFileBuilder {
	builder.reportUrl = reportUrl
	builder.reportUrlFlag = true
	return builder
}

// 报告地址类型；枚举值 1 或为空时为可下载的 pdf 链接，2 为预览型链接
//
// 示例值：1
func (builder *EcoBackgroundCheckReportFileBuilder) ReportUrlType(reportUrlType int) *EcoBackgroundCheckReportFileBuilder {
	builder.reportUrlType = reportUrlType
	builder.reportUrlTypeFlag = true
	return builder
}

func (builder *EcoBackgroundCheckReportFileBuilder) Build() *EcoBackgroundCheckReportFile {
	req := &EcoBackgroundCheckReportFile{}
	if builder.reportNameFlag {
		req.ReportName = &builder.reportName

	}
	if builder.reportUrlFlag {
		req.ReportUrl = &builder.reportUrl

	}
	if builder.reportUrlTypeFlag {
		req.ReportUrlType = &builder.reportUrlType

	}
	return req
}

type EcoExamCreateEventCandidateInfo struct {
	Name *string `json:"name,omitempty"` // 候选人姓名

	Mobile *EcoExamCreateEventMobile `json:"mobile,omitempty"` // 候选人手机号

	Email *string `json:"email,omitempty"` // 候选人邮箱
}

type EcoExamCreateEventCandidateInfoBuilder struct {
	name     string // 候选人姓名
	nameFlag bool

	mobile     *EcoExamCreateEventMobile // 候选人手机号
	mobileFlag bool

	email     string // 候选人邮箱
	emailFlag bool
}

func NewEcoExamCreateEventCandidateInfoBuilder() *EcoExamCreateEventCandidateInfoBuilder {
	builder := &EcoExamCreateEventCandidateInfoBuilder{}
	return builder
}

// 候选人姓名
//
// 示例值：王二
func (builder *EcoExamCreateEventCandidateInfoBuilder) Name(name string) *EcoExamCreateEventCandidateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 候选人手机号
//
// 示例值：
func (builder *EcoExamCreateEventCandidateInfoBuilder) Mobile(mobile *EcoExamCreateEventMobile) *EcoExamCreateEventCandidateInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 候选人邮箱
//
// 示例值：xxx@abc.vom
func (builder *EcoExamCreateEventCandidateInfoBuilder) Email(email string) *EcoExamCreateEventCandidateInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *EcoExamCreateEventCandidateInfoBuilder) Build() *EcoExamCreateEventCandidateInfo {
	req := &EcoExamCreateEventCandidateInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = builder.mobile
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	return req
}

type EcoExamCreateEventMobile struct {
	Code *string `json:"code,omitempty"` // 国家代码

	Number *string `json:"number,omitempty"` // 手机号码
}

type EcoExamCreateEventMobileBuilder struct {
	code     string // 国家代码
	codeFlag bool

	number     string // 手机号码
	numberFlag bool
}

func NewEcoExamCreateEventMobileBuilder() *EcoExamCreateEventMobileBuilder {
	builder := &EcoExamCreateEventMobileBuilder{}
	return builder
}

// 国家代码
//
// 示例值：86
func (builder *EcoExamCreateEventMobileBuilder) Code(code string) *EcoExamCreateEventMobileBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 手机号码
//
// 示例值：18900001111
func (builder *EcoExamCreateEventMobileBuilder) Number(number string) *EcoExamCreateEventMobileBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *EcoExamCreateEventMobileBuilder) Build() *EcoExamCreateEventMobile {
	req := &EcoExamCreateEventMobile{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type EcoExamLoginInfo struct {
	ExamUrl *string `json:"exam_url,omitempty"` // 笔试链接

	Username *string `json:"username,omitempty"` // 用户名

	Password *string `json:"password,omitempty"` // 密码
}

type EcoExamLoginInfoBuilder struct {
	examUrl     string // 笔试链接
	examUrlFlag bool

	username     string // 用户名
	usernameFlag bool

	password     string // 密码
	passwordFlag bool
}

func NewEcoExamLoginInfoBuilder() *EcoExamLoginInfoBuilder {
	builder := &EcoExamLoginInfoBuilder{}
	return builder
}

// 笔试链接
//
// 示例值：https://xxxx/xxxx/xxxx
func (builder *EcoExamLoginInfoBuilder) ExamUrl(examUrl string) *EcoExamLoginInfoBuilder {
	builder.examUrl = examUrl
	builder.examUrlFlag = true
	return builder
}

// 用户名
//
// 示例值：waxsdfbhg
func (builder *EcoExamLoginInfoBuilder) Username(username string) *EcoExamLoginInfoBuilder {
	builder.username = username
	builder.usernameFlag = true
	return builder
}

// 密码
//
// 示例值：xxxxxx
func (builder *EcoExamLoginInfoBuilder) Password(password string) *EcoExamLoginInfoBuilder {
	builder.password = password
	builder.passwordFlag = true
	return builder
}

func (builder *EcoExamLoginInfoBuilder) Build() *EcoExamLoginInfo {
	req := &EcoExamLoginInfo{}
	if builder.examUrlFlag {
		req.ExamUrl = &builder.examUrl

	}
	if builder.usernameFlag {
		req.Username = &builder.username

	}
	if builder.passwordFlag {
		req.Password = &builder.password

	}
	return req
}

type EcoExamPaper struct {
	AccountId *string `json:"account_id,omitempty"` // 账号 ID，可在「账号绑定」事件中获取

	PaperList []*EcoExamPaperData `json:"paper_list,omitempty"` // 试卷列表
}

type EcoExamPaperBuilder struct {
	accountId     string // 账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool

	paperList     []*EcoExamPaperData // 试卷列表
	paperListFlag bool
}

func NewEcoExamPaperBuilder() *EcoExamPaperBuilder {
	builder := &EcoExamPaperBuilder{}
	return builder
}

// 账号 ID，可在「账号绑定」事件中获取
//
// 示例值：7147998241542539527
func (builder *EcoExamPaperBuilder) AccountId(accountId string) *EcoExamPaperBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 试卷列表
//
// 示例值：
func (builder *EcoExamPaperBuilder) PaperList(paperList []*EcoExamPaperData) *EcoExamPaperBuilder {
	builder.paperList = paperList
	builder.paperListFlag = true
	return builder
}

func (builder *EcoExamPaperBuilder) Build() *EcoExamPaper {
	req := &EcoExamPaper{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.paperListFlag {
		req.PaperList = builder.paperList
	}
	return req
}

type EcoExamPaperData struct {
	Id *string `json:"id,omitempty"` // 试卷 ID

	Name *string `json:"name,omitempty"` // 试卷名称

	Duration *int `json:"duration,omitempty"` // 考试时长（分钟）

	QuestionCount *int `json:"question_count,omitempty"` // 试卷题目数量

	StartTime *string `json:"start_time,omitempty"` // 开始时间，留空或不传表示不限制开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间，留空或不传表示不限制结束时间
}

type EcoExamPaperDataBuilder struct {
	id     string // 试卷 ID
	idFlag bool

	name     string // 试卷名称
	nameFlag bool

	duration     int // 考试时长（分钟）
	durationFlag bool

	questionCount     int // 试卷题目数量
	questionCountFlag bool

	startTime     string // 开始时间，留空或不传表示不限制开始时间
	startTimeFlag bool

	endTime     string // 结束时间，留空或不传表示不限制结束时间
	endTimeFlag bool
}

func NewEcoExamPaperDataBuilder() *EcoExamPaperDataBuilder {
	builder := &EcoExamPaperDataBuilder{}
	return builder
}

// 试卷 ID
//
// 示例值：7147998241542539527
func (builder *EcoExamPaperDataBuilder) Id(id string) *EcoExamPaperDataBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 试卷名称
//
// 示例值：春季测评
func (builder *EcoExamPaperDataBuilder) Name(name string) *EcoExamPaperDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 考试时长（分钟）
//
// 示例值：30
func (builder *EcoExamPaperDataBuilder) Duration(duration int) *EcoExamPaperDataBuilder {
	builder.duration = duration
	builder.durationFlag = true
	return builder
}

// 试卷题目数量
//
// 示例值：30
func (builder *EcoExamPaperDataBuilder) QuestionCount(questionCount int) *EcoExamPaperDataBuilder {
	builder.questionCount = questionCount
	builder.questionCountFlag = true
	return builder
}

// 开始时间，留空或不传表示不限制开始时间
//
// 示例值：1658676234053
func (builder *EcoExamPaperDataBuilder) StartTime(startTime string) *EcoExamPaperDataBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间，留空或不传表示不限制结束时间
//
// 示例值：1672444800000
func (builder *EcoExamPaperDataBuilder) EndTime(endTime string) *EcoExamPaperDataBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *EcoExamPaperDataBuilder) Build() *EcoExamPaperData {
	req := &EcoExamPaperData{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.durationFlag {
		req.Duration = &builder.duration

	}
	if builder.questionCountFlag {
		req.QuestionCount = &builder.questionCount

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type EcoExamResult struct {
	Result *string `json:"result,omitempty"` // 笔试结果

	ResultTime *string `json:"result_time,omitempty"` // 笔试结果时间

	ReportList []*EcoExamResultReport `json:"report_list,omitempty"` // 报告列表

	DetailList []*EcoExamResultDetail `json:"detail_list,omitempty"` // 详细评价结果
}

type EcoExamResultBuilder struct {
	result     string // 笔试结果
	resultFlag bool

	resultTime     string // 笔试结果时间
	resultTimeFlag bool

	reportList     []*EcoExamResultReport // 报告列表
	reportListFlag bool

	detailList     []*EcoExamResultDetail // 详细评价结果
	detailListFlag bool
}

func NewEcoExamResultBuilder() *EcoExamResultBuilder {
	builder := &EcoExamResultBuilder{}
	return builder
}

// 笔试结果
//
// 示例值：60.5
func (builder *EcoExamResultBuilder) Result(result string) *EcoExamResultBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 笔试结果时间
//
// 示例值：1658676234053
func (builder *EcoExamResultBuilder) ResultTime(resultTime string) *EcoExamResultBuilder {
	builder.resultTime = resultTime
	builder.resultTimeFlag = true
	return builder
}

// 报告列表
//
// 示例值：
func (builder *EcoExamResultBuilder) ReportList(reportList []*EcoExamResultReport) *EcoExamResultBuilder {
	builder.reportList = reportList
	builder.reportListFlag = true
	return builder
}

// 详细评价结果
//
// 示例值：
func (builder *EcoExamResultBuilder) DetailList(detailList []*EcoExamResultDetail) *EcoExamResultBuilder {
	builder.detailList = detailList
	builder.detailListFlag = true
	return builder
}

func (builder *EcoExamResultBuilder) Build() *EcoExamResult {
	req := &EcoExamResult{}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	if builder.resultTimeFlag {
		req.ResultTime = &builder.resultTime

	}
	if builder.reportListFlag {
		req.ReportList = builder.reportList
	}
	if builder.detailListFlag {
		req.DetailList = builder.detailList
	}
	return req
}

type EcoExamResultDetail struct {
	Id *string `json:"id,omitempty"` // 评价 ID

	Name *string `json:"name,omitempty"` // 评价名称

	Result *string `json:"result,omitempty"` // 评价结果
}

type EcoExamResultDetailBuilder struct {
	id     string // 评价 ID
	idFlag bool

	name     string // 评价名称
	nameFlag bool

	result     string // 评价结果
	resultFlag bool
}

func NewEcoExamResultDetailBuilder() *EcoExamResultDetailBuilder {
	builder := &EcoExamResultDetailBuilder{}
	return builder
}

// 评价 ID
//
// 示例值：pj001
func (builder *EcoExamResultDetailBuilder) Id(id string) *EcoExamResultDetailBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 评价名称
//
// 示例值：基本功
func (builder *EcoExamResultDetailBuilder) Name(name string) *EcoExamResultDetailBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 评价结果
//
// 示例值：优秀
func (builder *EcoExamResultDetailBuilder) Result(result string) *EcoExamResultDetailBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

func (builder *EcoExamResultDetailBuilder) Build() *EcoExamResultDetail {
	req := &EcoExamResultDetail{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	return req
}

type EcoExamResultReport struct {
	Name *string `json:"name,omitempty"` // 报告名称

	Url *string `json:"url,omitempty"` // 报告链接

	AnswerTime *string `json:"answer_time,omitempty"` // 作答完成时间(毫秒时间戳)
}

type EcoExamResultReportBuilder struct {
	name     string // 报告名称
	nameFlag bool

	url     string // 报告链接
	urlFlag bool

	answerTime     string // 作答完成时间(毫秒时间戳)
	answerTimeFlag bool
}

func NewEcoExamResultReportBuilder() *EcoExamResultReportBuilder {
	builder := &EcoExamResultReportBuilder{}
	return builder
}

// 报告名称
//
// 示例值：阶段报告.pdf
func (builder *EcoExamResultReportBuilder) Name(name string) *EcoExamResultReportBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 报告链接
//
// 示例值：https://xxxxx/xxxxxx/xxxx.pdf
func (builder *EcoExamResultReportBuilder) Url(url string) *EcoExamResultReportBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// 作答完成时间(毫秒时间戳)
//
// 示例值：1658676234053
func (builder *EcoExamResultReportBuilder) AnswerTime(answerTime string) *EcoExamResultReportBuilder {
	builder.answerTime = answerTime
	builder.answerTimeFlag = true
	return builder
}

func (builder *EcoExamResultReportBuilder) Build() *EcoExamResultReport {
	req := &EcoExamResultReport{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.answerTimeFlag {
		req.AnswerTime = &builder.answerTime

	}
	return req
}

type EducationInfo struct {
	Degree *int `json:"degree,omitempty"` // 学历

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	School *string `json:"school,omitempty"` // 学校

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	EducationType *int `json:"education_type,omitempty"` // 学历类型

	AcademicRanking *int `json:"academic_ranking,omitempty"` // 排名
}

type EducationInfoBuilder struct {
	degree     int // 学历
	degreeFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	school     string // 学校
	schoolFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	educationType     int // 学历类型
	educationTypeFlag bool

	academicRanking     int // 排名
	academicRankingFlag bool
}

func NewEducationInfoBuilder() *EducationInfoBuilder {
	builder := &EducationInfoBuilder{}
	return builder
}

// 学历
//
// 示例值：1
func (builder *EducationInfoBuilder) Degree(degree int) *EducationInfoBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1735664461000
func (builder *EducationInfoBuilder) EndTime(endTime int64) *EducationInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 专业
//
// 示例值：xx专业
func (builder *EducationInfoBuilder) FieldOfStudy(fieldOfStudy string) *EducationInfoBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 学校
//
// 示例值：xx学校
func (builder *EducationInfoBuilder) School(school string) *EducationInfoBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 开始时间
//
// 示例值：1735664461000
func (builder *EducationInfoBuilder) StartTime(startTime int64) *EducationInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *EducationInfoBuilder) EducationType(educationType int) *EducationInfoBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 排名
//
// 示例值：1
func (builder *EducationInfoBuilder) AcademicRanking(academicRanking int) *EducationInfoBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

func (builder *EducationInfoBuilder) Build() *EducationInfo {
	req := &EducationInfo{}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	return req
}

type EhrImportTask struct {
	FailReason *string `json:"fail_reason,omitempty"` // 失败原因，仅在导入结果为失败时可用

	RedirectUrl *string `json:"redirect_url,omitempty"` // 跳转链接，若需返回跳转链接，请前往飞书招聘「设置 - 生态对接 - e-HR / OA 办公系统 - 『导入 e-HR』功能设置」中开启「支持对接的 e-HR / OA 系统返回外部链接」开关

	State *int `json:"state,omitempty"` // 导入结果
}

type EhrImportTaskBuilder struct {
	failReason     string // 失败原因，仅在导入结果为失败时可用
	failReasonFlag bool

	redirectUrl     string // 跳转链接，若需返回跳转链接，请前往飞书招聘「设置 - 生态对接 - e-HR / OA 办公系统 - 『导入 e-HR』功能设置」中开启「支持对接的 e-HR / OA 系统返回外部链接」开关
	redirectUrlFlag bool

	state     int // 导入结果
	stateFlag bool
}

func NewEhrImportTaskBuilder() *EhrImportTaskBuilder {
	builder := &EhrImportTaskBuilder{}
	return builder
}

// 失败原因，仅在导入结果为失败时可用
//
// 示例值：当前 HC 不可用
func (builder *EhrImportTaskBuilder) FailReason(failReason string) *EhrImportTaskBuilder {
	builder.failReason = failReason
	builder.failReasonFlag = true
	return builder
}

// 跳转链接，若需返回跳转链接，请前往飞书招聘「设置 - 生态对接 - e-HR / OA 办公系统 - 『导入 e-HR』功能设置」中开启「支持对接的 e-HR / OA 系统返回外部链接」开关
//
// 示例值：https://example.com
func (builder *EhrImportTaskBuilder) RedirectUrl(redirectUrl string) *EhrImportTaskBuilder {
	builder.redirectUrl = redirectUrl
	builder.redirectUrlFlag = true
	return builder
}

// 导入结果
//
// 示例值：2
func (builder *EhrImportTaskBuilder) State(state int) *EhrImportTaskBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

func (builder *EhrImportTaskBuilder) Build() *EhrImportTask {
	req := &EhrImportTask{}
	if builder.failReasonFlag {
		req.FailReason = &builder.failReason

	}
	if builder.redirectUrlFlag {
		req.RedirectUrl = &builder.redirectUrl

	}
	if builder.stateFlag {
		req.State = &builder.state

	}
	return req
}

type Employee struct {
	Id *string `json:"id,omitempty"` // 员工ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递ID

	OnboardStatus *int `json:"onboard_status,omitempty"` // 入职状态

	ConversionStatus *int `json:"conversion_status,omitempty"` // 转正状态

	OnboardTime *int64 `json:"onboard_time,omitempty"` // 实际入职时间

	ExpectedConversionTime *int64 `json:"expected_conversion_time,omitempty"` // 预期转正时间

	ActualConversionTime *int64 `json:"actual_conversion_time,omitempty"` // 实际转正时间

	OverboardTime *int64 `json:"overboard_time,omitempty"` // 离职时间

	OverboardNote *string `json:"overboard_note,omitempty"` // 离职原因

	OnboardCityCode *string `json:"onboard_city_code,omitempty"` // 办公地点

	Department *string `json:"department,omitempty"` // 入职部门

	Leader *string `json:"leader,omitempty"` // 直属上级

	Sequence *string `json:"sequence,omitempty"` // 序列

	Level *string `json:"level,omitempty"` // 职级

	EmployeeType *string `json:"employee_type,omitempty"` // 员工类型

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求ID

	ExternalEmploymentId *string `json:"external_employment_id,omitempty"` // 飞书人事的雇佣ID
}

type EmployeeBuilder struct {
	id     string // 员工ID
	idFlag bool

	applicationId     string // 投递ID
	applicationIdFlag bool

	onboardStatus     int // 入职状态
	onboardStatusFlag bool

	conversionStatus     int // 转正状态
	conversionStatusFlag bool

	onboardTime     int64 // 实际入职时间
	onboardTimeFlag bool

	expectedConversionTime     int64 // 预期转正时间
	expectedConversionTimeFlag bool

	actualConversionTime     int64 // 实际转正时间
	actualConversionTimeFlag bool

	overboardTime     int64 // 离职时间
	overboardTimeFlag bool

	overboardNote     string // 离职原因
	overboardNoteFlag bool

	onboardCityCode     string // 办公地点
	onboardCityCodeFlag bool

	department     string // 入职部门
	departmentFlag bool

	leader     string // 直属上级
	leaderFlag bool

	sequence     string // 序列
	sequenceFlag bool

	level     string // 职级
	levelFlag bool

	employeeType     string // 员工类型
	employeeTypeFlag bool

	jobRequirementId     string // 招聘需求ID
	jobRequirementIdFlag bool

	externalEmploymentId     string // 飞书人事的雇佣ID
	externalEmploymentIdFlag bool
}

func NewEmployeeBuilder() *EmployeeBuilder {
	builder := &EmployeeBuilder{}
	return builder
}

// 员工ID
//
// 示例值：7095600054216542508
func (builder *EmployeeBuilder) Id(id string) *EmployeeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递ID
//
// 示例值：7073372582620416300
func (builder *EmployeeBuilder) ApplicationId(applicationId string) *EmployeeBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 入职状态
//
// 示例值：1
func (builder *EmployeeBuilder) OnboardStatus(onboardStatus int) *EmployeeBuilder {
	builder.onboardStatus = onboardStatus
	builder.onboardStatusFlag = true
	return builder
}

// 转正状态
//
// 示例值：1
func (builder *EmployeeBuilder) ConversionStatus(conversionStatus int) *EmployeeBuilder {
	builder.conversionStatus = conversionStatus
	builder.conversionStatusFlag = true
	return builder
}

// 实际入职时间
//
// 示例值：1637596800000
func (builder *EmployeeBuilder) OnboardTime(onboardTime int64) *EmployeeBuilder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 预期转正时间
//
// 示例值：1637596800000
func (builder *EmployeeBuilder) ExpectedConversionTime(expectedConversionTime int64) *EmployeeBuilder {
	builder.expectedConversionTime = expectedConversionTime
	builder.expectedConversionTimeFlag = true
	return builder
}

// 实际转正时间
//
// 示例值：1637596800000
func (builder *EmployeeBuilder) ActualConversionTime(actualConversionTime int64) *EmployeeBuilder {
	builder.actualConversionTime = actualConversionTime
	builder.actualConversionTimeFlag = true
	return builder
}

// 离职时间
//
// 示例值：1637596800000
func (builder *EmployeeBuilder) OverboardTime(overboardTime int64) *EmployeeBuilder {
	builder.overboardTime = overboardTime
	builder.overboardTimeFlag = true
	return builder
}

// 离职原因
//
// 示例值：职业发展考虑
func (builder *EmployeeBuilder) OverboardNote(overboardNote string) *EmployeeBuilder {
	builder.overboardNote = overboardNote
	builder.overboardNoteFlag = true
	return builder
}

// 办公地点
//
// 示例值：CT_2
func (builder *EmployeeBuilder) OnboardCityCode(onboardCityCode string) *EmployeeBuilder {
	builder.onboardCityCode = onboardCityCode
	builder.onboardCityCodeFlag = true
	return builder
}

// 入职部门
//
// 示例值：6966123381141866028
func (builder *EmployeeBuilder) Department(department string) *EmployeeBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 直属上级
//
// 示例值：ou-xxx
func (builder *EmployeeBuilder) Leader(leader string) *EmployeeBuilder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 序列
//
// 示例值：6937934036379650311
func (builder *EmployeeBuilder) Sequence(sequence string) *EmployeeBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 职级
//
// 示例值：7006234385490345986
func (builder *EmployeeBuilder) Level(level string) *EmployeeBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 员工类型
//
// 示例值：1
func (builder *EmployeeBuilder) EmployeeType(employeeType string) *EmployeeBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// 招聘需求ID
//
// 示例值：123123123213
func (builder *EmployeeBuilder) JobRequirementId(jobRequirementId string) *EmployeeBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// 飞书人事的雇佣ID
//
// 示例值：6969595949493939291
func (builder *EmployeeBuilder) ExternalEmploymentId(externalEmploymentId string) *EmployeeBuilder {
	builder.externalEmploymentId = externalEmploymentId
	builder.externalEmploymentIdFlag = true
	return builder
}

func (builder *EmployeeBuilder) Build() *Employee {
	req := &Employee{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.onboardStatusFlag {
		req.OnboardStatus = &builder.onboardStatus

	}
	if builder.conversionStatusFlag {
		req.ConversionStatus = &builder.conversionStatus

	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime

	}
	if builder.expectedConversionTimeFlag {
		req.ExpectedConversionTime = &builder.expectedConversionTime

	}
	if builder.actualConversionTimeFlag {
		req.ActualConversionTime = &builder.actualConversionTime

	}
	if builder.overboardTimeFlag {
		req.OverboardTime = &builder.overboardTime

	}
	if builder.overboardNoteFlag {
		req.OverboardNote = &builder.overboardNote

	}
	if builder.onboardCityCodeFlag {
		req.OnboardCityCode = &builder.onboardCityCode

	}
	if builder.departmentFlag {
		req.Department = &builder.department

	}
	if builder.leaderFlag {
		req.Leader = &builder.leader

	}
	if builder.sequenceFlag {
		req.Sequence = &builder.sequence

	}
	if builder.levelFlag {
		req.Level = &builder.level

	}
	if builder.employeeTypeFlag {
		req.EmployeeType = &builder.employeeType

	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	if builder.externalEmploymentIdFlag {
		req.ExternalEmploymentId = &builder.externalEmploymentId

	}
	return req
}

type EmployeeConversionInfo struct {
	ActualConversionTime *int64 `json:"actual_conversion_time,omitempty"` // 实际转正日期
}

type EmployeeConversionInfoBuilder struct {
	actualConversionTime     int64 // 实际转正日期
	actualConversionTimeFlag bool
}

func NewEmployeeConversionInfoBuilder() *EmployeeConversionInfoBuilder {
	builder := &EmployeeConversionInfoBuilder{}
	return builder
}

// 实际转正日期
//
// 示例值：1637596800000
func (builder *EmployeeConversionInfoBuilder) ActualConversionTime(actualConversionTime int64) *EmployeeConversionInfoBuilder {
	builder.actualConversionTime = actualConversionTime
	builder.actualConversionTimeFlag = true
	return builder
}

func (builder *EmployeeConversionInfoBuilder) Build() *EmployeeConversionInfo {
	req := &EmployeeConversionInfo{}
	if builder.actualConversionTimeFlag {
		req.ActualConversionTime = &builder.actualConversionTime

	}
	return req
}

type EmployeeOverboardInfo struct {
	ActualOverboardTime *int64 `json:"actual_overboard_time,omitempty"` // 实际离职日期

	OverboardNote *string `json:"overboard_note,omitempty"` // 离职原因
}

type EmployeeOverboardInfoBuilder struct {
	actualOverboardTime     int64 // 实际离职日期
	actualOverboardTimeFlag bool

	overboardNote     string // 离职原因
	overboardNoteFlag bool
}

func NewEmployeeOverboardInfoBuilder() *EmployeeOverboardInfoBuilder {
	builder := &EmployeeOverboardInfoBuilder{}
	return builder
}

// 实际离职日期
//
// 示例值：1637596800000
func (builder *EmployeeOverboardInfoBuilder) ActualOverboardTime(actualOverboardTime int64) *EmployeeOverboardInfoBuilder {
	builder.actualOverboardTime = actualOverboardTime
	builder.actualOverboardTimeFlag = true
	return builder
}

// 离职原因
//
// 示例值：职业发展考虑
func (builder *EmployeeOverboardInfoBuilder) OverboardNote(overboardNote string) *EmployeeOverboardInfoBuilder {
	builder.overboardNote = overboardNote
	builder.overboardNoteFlag = true
	return builder
}

func (builder *EmployeeOverboardInfoBuilder) Build() *EmployeeOverboardInfo {
	req := &EmployeeOverboardInfo{}
	if builder.actualOverboardTimeFlag {
		req.ActualOverboardTime = &builder.actualOverboardTime

	}
	if builder.overboardNoteFlag {
		req.OverboardNote = &builder.overboardNote

	}
	return req
}

type EmployeeV2 struct {
	Id *string `json:"id,omitempty"` // 员工 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	OnboardStatus *int `json:"onboard_status,omitempty"` // 入职状态

	ConversionStatus *int `json:"conversion_status,omitempty"` // 转正状态

	OnboardTime *string `json:"onboard_time,omitempty"` // 实际入职时间

	ExpectedConversionTime *string `json:"expected_conversion_time,omitempty"` // 预期转正时间

	ActualConversionTime *string `json:"actual_conversion_time,omitempty"` // 实际转正时间

	OverboardTime *string `json:"overboard_time,omitempty"` // 离职时间

	OverboardNote *string `json:"overboard_note,omitempty"` // 离职原因

	OnboardCityCode *string `json:"onboard_city_code,omitempty"` // 办公地点

	DepartmentId *string `json:"department_id,omitempty"` // 入职部门 ID

	LeaderId *string `json:"leader_id,omitempty"` // 直属上级 ID

	SequenceId *string `json:"sequence_id,omitempty"` // 序列 ID

	LevelId *string `json:"level_id,omitempty"` // 职级 ID

	EmployeeType *string `json:"employee_type,omitempty"` // 员工类型

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求ID
}

type EmployeeV2Builder struct {
	id     string // 员工 ID
	idFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	onboardStatus     int // 入职状态
	onboardStatusFlag bool

	conversionStatus     int // 转正状态
	conversionStatusFlag bool

	onboardTime     string // 实际入职时间
	onboardTimeFlag bool

	expectedConversionTime     string // 预期转正时间
	expectedConversionTimeFlag bool

	actualConversionTime     string // 实际转正时间
	actualConversionTimeFlag bool

	overboardTime     string // 离职时间
	overboardTimeFlag bool

	overboardNote     string // 离职原因
	overboardNoteFlag bool

	onboardCityCode     string // 办公地点
	onboardCityCodeFlag bool

	departmentId     string // 入职部门 ID
	departmentIdFlag bool

	leaderId     string // 直属上级 ID
	leaderIdFlag bool

	sequenceId     string // 序列 ID
	sequenceIdFlag bool

	levelId     string // 职级 ID
	levelIdFlag bool

	employeeType     string // 员工类型
	employeeTypeFlag bool

	jobRequirementId     string // 招聘需求ID
	jobRequirementIdFlag bool
}

func NewEmployeeV2Builder() *EmployeeV2Builder {
	builder := &EmployeeV2Builder{}
	return builder
}

// 员工 ID
//
// 示例值：123
func (builder *EmployeeV2Builder) Id(id string) *EmployeeV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID
//
// 示例值：123
func (builder *EmployeeV2Builder) ApplicationId(applicationId string) *EmployeeV2Builder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 入职状态
//
// 示例值：1
func (builder *EmployeeV2Builder) OnboardStatus(onboardStatus int) *EmployeeV2Builder {
	builder.onboardStatus = onboardStatus
	builder.onboardStatusFlag = true
	return builder
}

// 转正状态
//
// 示例值：1
func (builder *EmployeeV2Builder) ConversionStatus(conversionStatus int) *EmployeeV2Builder {
	builder.conversionStatus = conversionStatus
	builder.conversionStatusFlag = true
	return builder
}

// 实际入职时间
//
// 示例值：1637596800000
func (builder *EmployeeV2Builder) OnboardTime(onboardTime string) *EmployeeV2Builder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 预期转正时间
//
// 示例值：1637596800000
func (builder *EmployeeV2Builder) ExpectedConversionTime(expectedConversionTime string) *EmployeeV2Builder {
	builder.expectedConversionTime = expectedConversionTime
	builder.expectedConversionTimeFlag = true
	return builder
}

// 实际转正时间
//
// 示例值：1637596800000
func (builder *EmployeeV2Builder) ActualConversionTime(actualConversionTime string) *EmployeeV2Builder {
	builder.actualConversionTime = actualConversionTime
	builder.actualConversionTimeFlag = true
	return builder
}

// 离职时间
//
// 示例值：1637596800000
func (builder *EmployeeV2Builder) OverboardTime(overboardTime string) *EmployeeV2Builder {
	builder.overboardTime = overboardTime
	builder.overboardTimeFlag = true
	return builder
}

// 离职原因
//
// 示例值：职业发展考虑
func (builder *EmployeeV2Builder) OverboardNote(overboardNote string) *EmployeeV2Builder {
	builder.overboardNote = overboardNote
	builder.overboardNoteFlag = true
	return builder
}

// 办公地点
//
// 示例值：C20
func (builder *EmployeeV2Builder) OnboardCityCode(onboardCityCode string) *EmployeeV2Builder {
	builder.onboardCityCode = onboardCityCode
	builder.onboardCityCodeFlag = true
	return builder
}

// 入职部门 ID
//
// 示例值：6966123381141866028
func (builder *EmployeeV2Builder) DepartmentId(departmentId string) *EmployeeV2Builder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 直属上级 ID
//
// 示例值：ou-xxx
func (builder *EmployeeV2Builder) LeaderId(leaderId string) *EmployeeV2Builder {
	builder.leaderId = leaderId
	builder.leaderIdFlag = true
	return builder
}

// 序列 ID
//
// 示例值：6501
func (builder *EmployeeV2Builder) SequenceId(sequenceId string) *EmployeeV2Builder {
	builder.sequenceId = sequenceId
	builder.sequenceIdFlag = true
	return builder
}

// 职级 ID
//
// 示例值：6301
func (builder *EmployeeV2Builder) LevelId(levelId string) *EmployeeV2Builder {
	builder.levelId = levelId
	builder.levelIdFlag = true
	return builder
}

// 员工类型
//
// 示例值：1
func (builder *EmployeeV2Builder) EmployeeType(employeeType string) *EmployeeV2Builder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// 招聘需求ID
//
// 示例值：123123123213
func (builder *EmployeeV2Builder) JobRequirementId(jobRequirementId string) *EmployeeV2Builder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

func (builder *EmployeeV2Builder) Build() *EmployeeV2 {
	req := &EmployeeV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.onboardStatusFlag {
		req.OnboardStatus = &builder.onboardStatus

	}
	if builder.conversionStatusFlag {
		req.ConversionStatus = &builder.conversionStatus

	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime

	}
	if builder.expectedConversionTimeFlag {
		req.ExpectedConversionTime = &builder.expectedConversionTime

	}
	if builder.actualConversionTimeFlag {
		req.ActualConversionTime = &builder.actualConversionTime

	}
	if builder.overboardTimeFlag {
		req.OverboardTime = &builder.overboardTime

	}
	if builder.overboardNoteFlag {
		req.OverboardNote = &builder.overboardNote

	}
	if builder.onboardCityCodeFlag {
		req.OnboardCityCode = &builder.onboardCityCode

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.leaderIdFlag {
		req.LeaderId = &builder.leaderId

	}
	if builder.sequenceIdFlag {
		req.SequenceId = &builder.sequenceId

	}
	if builder.levelIdFlag {
		req.LevelId = &builder.levelId

	}
	if builder.employeeTypeFlag {
		req.EmployeeType = &builder.employeeType

	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	return req
}

type EntityInfo struct {
	Code *string `json:"code,omitempty"` // 实体code

	Name *I18n `json:"name,omitempty"` // 实体名称
}

type EntityInfoBuilder struct {
	code     string // 实体code
	codeFlag bool

	name     *I18n // 实体名称
	nameFlag bool
}

func NewEntityInfoBuilder() *EntityInfoBuilder {
	builder := &EntityInfoBuilder{}
	return builder
}

// 实体code
//
// 示例值：application
func (builder *EntityInfoBuilder) Code(code string) *EntityInfoBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 实体名称
//
// 示例值：
func (builder *EntityInfoBuilder) Name(name *I18n) *EntityInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *EntityInfoBuilder) Build() *EntityInfo {
	req := &EntityInfo{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type Evaluation struct {
	Id *string `json:"id,omitempty"` // 评估 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	StageId *string `json:"stage_id,omitempty"` // 投递阶段

	CreatorId *string `json:"creator_id,omitempty"` // 创建人user_id

	EvaluatorId *string `json:"evaluator_id,omitempty"` // 评估人user_id

	CommitStatus *int `json:"commit_status,omitempty"` // 提交状态

	Conclusion *int `json:"conclusion,omitempty"` // 评估结论

	Content *string `json:"content,omitempty"` // 评估详情

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	UpdateTime *string `json:"update_time,omitempty"` // 最近更新时间
}

type EvaluationBuilder struct {
	id     string // 评估 ID
	idFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	stageId     string // 投递阶段
	stageIdFlag bool

	creatorId     string // 创建人user_id
	creatorIdFlag bool

	evaluatorId     string // 评估人user_id
	evaluatorIdFlag bool

	commitStatus     int // 提交状态
	commitStatusFlag bool

	conclusion     int // 评估结论
	conclusionFlag bool

	content     string // 评估详情
	contentFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	updateTime     string // 最近更新时间
	updateTimeFlag bool
}

func NewEvaluationBuilder() *EvaluationBuilder {
	builder := &EvaluationBuilder{}
	return builder
}

// 评估 ID
//
// 示例值：6875295756292425998
func (builder *EvaluationBuilder) Id(id string) *EvaluationBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID
//
// 示例值：6875569957036738823
func (builder *EvaluationBuilder) ApplicationId(applicationId string) *EvaluationBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 投递阶段
//
// 示例值：6784315427607595268
func (builder *EvaluationBuilder) StageId(stageId string) *EvaluationBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 创建人user_id
//
// 示例值：ou_aaf83d1b2c856ead36aa9a38784b9a5c
func (builder *EvaluationBuilder) CreatorId(creatorId string) *EvaluationBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 评估人user_id
//
// 示例值：ou_aaf83d1b2c856ead36aa9a38784b9a5c
func (builder *EvaluationBuilder) EvaluatorId(evaluatorId string) *EvaluationBuilder {
	builder.evaluatorId = evaluatorId
	builder.evaluatorIdFlag = true
	return builder
}

// 提交状态
//
// 示例值：1
func (builder *EvaluationBuilder) CommitStatus(commitStatus int) *EvaluationBuilder {
	builder.commitStatus = commitStatus
	builder.commitStatusFlag = true
	return builder
}

// 评估结论
//
// 示例值：1
func (builder *EvaluationBuilder) Conclusion(conclusion int) *EvaluationBuilder {
	builder.conclusion = conclusion
	builder.conclusionFlag = true
	return builder
}

// 评估详情
//
// 示例值：这位同学很优秀
func (builder *EvaluationBuilder) Content(content string) *EvaluationBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 创建时间
//
// 示例值：1600843767338
func (builder *EvaluationBuilder) CreateTime(createTime string) *EvaluationBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 最近更新时间
//
// 示例值：1600843937733
func (builder *EvaluationBuilder) UpdateTime(updateTime string) *EvaluationBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

func (builder *EvaluationBuilder) Build() *Evaluation {
	req := &Evaluation{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.evaluatorIdFlag {
		req.EvaluatorId = &builder.evaluatorId

	}
	if builder.commitStatusFlag {
		req.CommitStatus = &builder.commitStatus

	}
	if builder.conclusionFlag {
		req.Conclusion = &builder.conclusion

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	return req
}

type EvaluationTask struct {
	Id *string `json:"id,omitempty"` // 评估 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ActivityStatus *int `json:"activity_status,omitempty"` // 任务状态
}

type EvaluationTaskBuilder struct {
	id     string // 评估 ID
	idFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	activityStatus     int // 任务状态
	activityStatusFlag bool
}

func NewEvaluationTaskBuilder() *EvaluationTaskBuilder {
	builder := &EvaluationTaskBuilder{}
	return builder
}

// 评估 ID
//
// 示例值：6989202908470446380
func (builder *EvaluationTaskBuilder) Id(id string) *EvaluationTaskBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6897921873523247373
func (builder *EvaluationTaskBuilder) JobId(jobId string) *EvaluationTaskBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：7046263097923537196
func (builder *EvaluationTaskBuilder) TalentId(talentId string) *EvaluationTaskBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7046315599510833452
func (builder *EvaluationTaskBuilder) ApplicationId(applicationId string) *EvaluationTaskBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *EvaluationTaskBuilder) ActivityStatus(activityStatus int) *EvaluationTaskBuilder {
	builder.activityStatus = activityStatus
	builder.activityStatusFlag = true
	return builder
}

func (builder *EvaluationTaskBuilder) Build() *EvaluationTask {
	req := &EvaluationTask{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.activityStatusFlag {
		req.ActivityStatus = &builder.activityStatus

	}
	return req
}

type ExamMarkingTask struct {
	Id *string `json:"id,omitempty"` // 笔试 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ActivityStatus *int `json:"activity_status,omitempty"` // 任务状态
}

type ExamMarkingTaskBuilder struct {
	id     string // 笔试 ID
	idFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	activityStatus     int // 任务状态
	activityStatusFlag bool
}

func NewExamMarkingTaskBuilder() *ExamMarkingTaskBuilder {
	builder := &ExamMarkingTaskBuilder{}
	return builder
}

// 笔试 ID
//
// 示例值：6989202908470446380
func (builder *ExamMarkingTaskBuilder) Id(id string) *ExamMarkingTaskBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6897921873523247373
func (builder *ExamMarkingTaskBuilder) JobId(jobId string) *ExamMarkingTaskBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：7046263097923537196
func (builder *ExamMarkingTaskBuilder) TalentId(talentId string) *ExamMarkingTaskBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7046315599510833452
func (builder *ExamMarkingTaskBuilder) ApplicationId(applicationId string) *ExamMarkingTaskBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *ExamMarkingTaskBuilder) ActivityStatus(activityStatus int) *ExamMarkingTaskBuilder {
	builder.activityStatus = activityStatus
	builder.activityStatusFlag = true
	return builder
}

func (builder *ExamMarkingTaskBuilder) Build() *ExamMarkingTask {
	req := &ExamMarkingTask{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.activityStatusFlag {
		req.ActivityStatus = &builder.activityStatus

	}
	return req
}

type ExternalApplication struct {
	Id *string `json:"id,omitempty"` // 外部投递 ID

	ExternalId *string `json:"external_id,omitempty"` // 外部系统投递主键 （仅用于幂等）

	JobRecruitmentType *int `json:"job_recruitment_type,omitempty"` // 职位招聘类型

	JobTitle *string `json:"job_title,omitempty"` // 职位名称

	ResumeSource *string `json:"resume_source,omitempty"` // 简历来源

	Stage *string `json:"stage,omitempty"` // 阶段

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	TerminationReason *string `json:"termination_reason,omitempty"` // 终止原因

	DeliveryType *int `json:"delivery_type,omitempty"` // 投递类型

	ModifyTime *int64 `json:"modify_time,omitempty"` // 更新时间

	CreateTime *int64 `json:"create_time,omitempty"` // 投递在外部系统创建时间

	TerminationType *string `json:"termination_type,omitempty"` // 终止类型
}

type ExternalApplicationBuilder struct {
	id     string // 外部投递 ID
	idFlag bool

	externalId     string // 外部系统投递主键 （仅用于幂等）
	externalIdFlag bool

	jobRecruitmentType     int // 职位招聘类型
	jobRecruitmentTypeFlag bool

	jobTitle     string // 职位名称
	jobTitleFlag bool

	resumeSource     string // 简历来源
	resumeSourceFlag bool

	stage     string // 阶段
	stageFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	terminationReason     string // 终止原因
	terminationReasonFlag bool

	deliveryType     int // 投递类型
	deliveryTypeFlag bool

	modifyTime     int64 // 更新时间
	modifyTimeFlag bool

	createTime     int64 // 投递在外部系统创建时间
	createTimeFlag bool

	terminationType     string // 终止类型
	terminationTypeFlag bool
}

func NewExternalApplicationBuilder() *ExternalApplicationBuilder {
	builder := &ExternalApplicationBuilder{}
	return builder
}

// 外部投递 ID
//
// 示例值：6989202908470446380
func (builder *ExternalApplicationBuilder) Id(id string) *ExternalApplicationBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 外部系统投递主键 （仅用于幂等）
//
// 示例值：123
func (builder *ExternalApplicationBuilder) ExternalId(externalId string) *ExternalApplicationBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 职位招聘类型
//
// 示例值：1
func (builder *ExternalApplicationBuilder) JobRecruitmentType(jobRecruitmentType int) *ExternalApplicationBuilder {
	builder.jobRecruitmentType = jobRecruitmentType
	builder.jobRecruitmentTypeFlag = true
	return builder
}

// 职位名称
//
// 示例值：高级Java
func (builder *ExternalApplicationBuilder) JobTitle(jobTitle string) *ExternalApplicationBuilder {
	builder.jobTitle = jobTitle
	builder.jobTitleFlag = true
	return builder
}

// 简历来源
//
// 示例值：lagou
func (builder *ExternalApplicationBuilder) ResumeSource(resumeSource string) *ExternalApplicationBuilder {
	builder.resumeSource = resumeSource
	builder.resumeSourceFlag = true
	return builder
}

// 阶段
//
// 示例值：1
func (builder *ExternalApplicationBuilder) Stage(stage string) *ExternalApplicationBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 人才 ID
//
// 示例值：6960663240925956459
func (builder *ExternalApplicationBuilder) TalentId(talentId string) *ExternalApplicationBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 终止原因
//
// 示例值：不合适
func (builder *ExternalApplicationBuilder) TerminationReason(terminationReason string) *ExternalApplicationBuilder {
	builder.terminationReason = terminationReason
	builder.terminationReasonFlag = true
	return builder
}

// 投递类型
//
// 示例值：1
func (builder *ExternalApplicationBuilder) DeliveryType(deliveryType int) *ExternalApplicationBuilder {
	builder.deliveryType = deliveryType
	builder.deliveryTypeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1618500278645
func (builder *ExternalApplicationBuilder) ModifyTime(modifyTime int64) *ExternalApplicationBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 投递在外部系统创建时间
//
// 示例值：1618500278644
func (builder *ExternalApplicationBuilder) CreateTime(createTime int64) *ExternalApplicationBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 终止类型
//
// 示例值：health
func (builder *ExternalApplicationBuilder) TerminationType(terminationType string) *ExternalApplicationBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

func (builder *ExternalApplicationBuilder) Build() *ExternalApplication {
	req := &ExternalApplication{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.jobRecruitmentTypeFlag {
		req.JobRecruitmentType = &builder.jobRecruitmentType

	}
	if builder.jobTitleFlag {
		req.JobTitle = &builder.jobTitle

	}
	if builder.resumeSourceFlag {
		req.ResumeSource = &builder.resumeSource

	}
	if builder.stageFlag {
		req.Stage = &builder.stage

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.terminationReasonFlag {
		req.TerminationReason = &builder.terminationReason

	}
	if builder.deliveryTypeFlag {
		req.DeliveryType = &builder.deliveryType

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType

	}
	return req
}

type ExternalBackgroundCheck struct {
	Id *string `json:"id,omitempty"` // 外部背调 ID

	ExternalId *string `json:"external_id,omitempty"` // 外部系统背调主键 （仅用于幂等）

	ExternalApplicationId *string `json:"external_application_id,omitempty"` // 外部投递 ID

	Date *int64 `json:"date,omitempty"` // 背调日期

	Name *string `json:"name,omitempty"` // 背调名字

	Result *string `json:"result,omitempty"` // 背调结果

	AttachmentIdList []string `json:"attachment_id_list,omitempty"` // 背调附件ID列表

	AttachmentList []*ExternalBackgroundCheckAttachment `json:"attachment_list,omitempty"` // 背调附件
}

type ExternalBackgroundCheckBuilder struct {
	id     string // 外部背调 ID
	idFlag bool

	externalId     string // 外部系统背调主键 （仅用于幂等）
	externalIdFlag bool

	externalApplicationId     string // 外部投递 ID
	externalApplicationIdFlag bool

	date     int64 // 背调日期
	dateFlag bool

	name     string // 背调名字
	nameFlag bool

	result     string // 背调结果
	resultFlag bool

	attachmentIdList     []string // 背调附件ID列表
	attachmentIdListFlag bool

	attachmentList     []*ExternalBackgroundCheckAttachment // 背调附件
	attachmentListFlag bool
}

func NewExternalBackgroundCheckBuilder() *ExternalBackgroundCheckBuilder {
	builder := &ExternalBackgroundCheckBuilder{}
	return builder
}

// 外部背调 ID
//
// 示例值：6989202908470446380
func (builder *ExternalBackgroundCheckBuilder) Id(id string) *ExternalBackgroundCheckBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 外部系统背调主键 （仅用于幂等）
//
// 示例值：123
func (builder *ExternalBackgroundCheckBuilder) ExternalId(externalId string) *ExternalBackgroundCheckBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 外部投递 ID
//
// 示例值：1234111
func (builder *ExternalBackgroundCheckBuilder) ExternalApplicationId(externalApplicationId string) *ExternalBackgroundCheckBuilder {
	builder.externalApplicationId = externalApplicationId
	builder.externalApplicationIdFlag = true
	return builder
}

// 背调日期
//
// 示例值：1626602069393
func (builder *ExternalBackgroundCheckBuilder) Date(date int64) *ExternalBackgroundCheckBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

// 背调名字
//
// 示例值：测试.pdf
func (builder *ExternalBackgroundCheckBuilder) Name(name string) *ExternalBackgroundCheckBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 背调结果
//
// 示例值：1
func (builder *ExternalBackgroundCheckBuilder) Result(result string) *ExternalBackgroundCheckBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 背调附件ID列表
//
// 示例值：6989181065243969836
func (builder *ExternalBackgroundCheckBuilder) AttachmentIdList(attachmentIdList []string) *ExternalBackgroundCheckBuilder {
	builder.attachmentIdList = attachmentIdList
	builder.attachmentIdListFlag = true
	return builder
}

// 背调附件
//
// 示例值：
func (builder *ExternalBackgroundCheckBuilder) AttachmentList(attachmentList []*ExternalBackgroundCheckAttachment) *ExternalBackgroundCheckBuilder {
	builder.attachmentList = attachmentList
	builder.attachmentListFlag = true
	return builder
}

func (builder *ExternalBackgroundCheckBuilder) Build() *ExternalBackgroundCheck {
	req := &ExternalBackgroundCheck{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.externalApplicationIdFlag {
		req.ExternalApplicationId = &builder.externalApplicationId

	}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	if builder.attachmentIdListFlag {
		req.AttachmentIdList = builder.attachmentIdList
	}
	if builder.attachmentListFlag {
		req.AttachmentList = builder.attachmentList
	}
	return req
}

type ExternalBackgroundCheckAttachment struct {
	Id *string `json:"id,omitempty"` // 附件 ID

	Name *string `json:"name,omitempty"` // 附件名字

	Size *int64 `json:"size,omitempty"` // 附件大小
}

type ExternalBackgroundCheckAttachmentBuilder struct {
	id     string // 附件 ID
	idFlag bool

	name     string // 附件名字
	nameFlag bool

	size     int64 // 附件大小
	sizeFlag bool
}

func NewExternalBackgroundCheckAttachmentBuilder() *ExternalBackgroundCheckAttachmentBuilder {
	builder := &ExternalBackgroundCheckAttachmentBuilder{}
	return builder
}

// 附件 ID
//
// 示例值：6987954043925432620
func (builder *ExternalBackgroundCheckAttachmentBuilder) Id(id string) *ExternalBackgroundCheckAttachmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附件名字
//
// 示例值：test_resume.pdf
func (builder *ExternalBackgroundCheckAttachmentBuilder) Name(name string) *ExternalBackgroundCheckAttachmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 附件大小
//
// 示例值：126371
func (builder *ExternalBackgroundCheckAttachmentBuilder) Size(size int64) *ExternalBackgroundCheckAttachmentBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

func (builder *ExternalBackgroundCheckAttachmentBuilder) Build() *ExternalBackgroundCheckAttachment {
	req := &ExternalBackgroundCheckAttachment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	return req
}

type ExternalCommonAttachment struct {
	Id *string `json:"id,omitempty"` // 附件 ID

	Name *string `json:"name,omitempty"` // 附件名字

	Size *int64 `json:"size,omitempty"` // 附件大小
}

type ExternalCommonAttachmentBuilder struct {
	id     string // 附件 ID
	idFlag bool

	name     string // 附件名字
	nameFlag bool

	size     int64 // 附件大小
	sizeFlag bool
}

func NewExternalCommonAttachmentBuilder() *ExternalCommonAttachmentBuilder {
	builder := &ExternalCommonAttachmentBuilder{}
	return builder
}

// 附件 ID
//
// 示例值：6987954043925432620
func (builder *ExternalCommonAttachmentBuilder) Id(id string) *ExternalCommonAttachmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 附件名字
//
// 示例值：test_resume.pdf
func (builder *ExternalCommonAttachmentBuilder) Name(name string) *ExternalCommonAttachmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 附件大小
//
// 示例值：126371
func (builder *ExternalCommonAttachmentBuilder) Size(size int64) *ExternalCommonAttachmentBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

func (builder *ExternalCommonAttachmentBuilder) Build() *ExternalCommonAttachment {
	req := &ExternalCommonAttachment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	return req
}

type ExternalGrantRoleInfo struct {
	RoleId *string `json:"role_id,omitempty"` // 角色ID
}

type ExternalGrantRoleInfoBuilder struct {
	roleId     string // 角色ID
	roleIdFlag bool
}

func NewExternalGrantRoleInfoBuilder() *ExternalGrantRoleInfoBuilder {
	builder := &ExternalGrantRoleInfoBuilder{}
	return builder
}

// 角色ID
//
// 示例值：1001
func (builder *ExternalGrantRoleInfoBuilder) RoleId(roleId string) *ExternalGrantRoleInfoBuilder {
	builder.roleId = roleId
	builder.roleIdFlag = true
	return builder
}

func (builder *ExternalGrantRoleInfoBuilder) Build() *ExternalGrantRoleInfo {
	req := &ExternalGrantRoleInfo{}
	if builder.roleIdFlag {
		req.RoleId = &builder.roleId

	}
	return req
}

type ExternalInterview struct {
	ExternalId *string `json:"external_id,omitempty"` // 外部系统面试主键 （仅用于幂等）

	ExternalApplicationId *string `json:"external_application_id,omitempty"` // 外部投递 ID

	Id *string `json:"id,omitempty"` // 外部面试 ID

	ParticipateStatus *int `json:"participate_status,omitempty"` // 参与状态

	BeginTime *int64 `json:"begin_time,omitempty"` // 开始时间

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	InterviewAssessments []*ExternalInterviewAssessment `json:"interview_assessments,omitempty"` // 面试评价列表
}

type ExternalInterviewBuilder struct {
	externalId     string // 外部系统面试主键 （仅用于幂等）
	externalIdFlag bool

	externalApplicationId     string // 外部投递 ID
	externalApplicationIdFlag bool

	id     string // 外部面试 ID
	idFlag bool

	participateStatus     int // 参与状态
	participateStatusFlag bool

	beginTime     int64 // 开始时间
	beginTimeFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	interviewAssessments     []*ExternalInterviewAssessment // 面试评价列表
	interviewAssessmentsFlag bool
}

func NewExternalInterviewBuilder() *ExternalInterviewBuilder {
	builder := &ExternalInterviewBuilder{}
	return builder
}

// 外部系统面试主键 （仅用于幂等）
//
// 示例值：123
func (builder *ExternalInterviewBuilder) ExternalId(externalId string) *ExternalInterviewBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 外部投递 ID
//
// 示例值：6960663240925956437
func (builder *ExternalInterviewBuilder) ExternalApplicationId(externalApplicationId string) *ExternalInterviewBuilder {
	builder.externalApplicationId = externalApplicationId
	builder.externalApplicationIdFlag = true
	return builder
}

// 外部面试 ID
//
// 示例值：6960663240925956436
func (builder *ExternalInterviewBuilder) Id(id string) *ExternalInterviewBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 参与状态
//
// 示例值：1
func (builder *ExternalInterviewBuilder) ParticipateStatus(participateStatus int) *ExternalInterviewBuilder {
	builder.participateStatus = participateStatus
	builder.participateStatusFlag = true
	return builder
}

// 开始时间
//
// 示例值：1618500278638
func (builder *ExternalInterviewBuilder) BeginTime(beginTime int64) *ExternalInterviewBuilder {
	builder.beginTime = beginTime
	builder.beginTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1618500278639
func (builder *ExternalInterviewBuilder) EndTime(endTime int64) *ExternalInterviewBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 面试评价列表
//
// 示例值：
func (builder *ExternalInterviewBuilder) InterviewAssessments(interviewAssessments []*ExternalInterviewAssessment) *ExternalInterviewBuilder {
	builder.interviewAssessments = interviewAssessments
	builder.interviewAssessmentsFlag = true
	return builder
}

func (builder *ExternalInterviewBuilder) Build() *ExternalInterview {
	req := &ExternalInterview{}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.externalApplicationIdFlag {
		req.ExternalApplicationId = &builder.externalApplicationId

	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.participateStatusFlag {
		req.ParticipateStatus = &builder.participateStatus

	}
	if builder.beginTimeFlag {
		req.BeginTime = &builder.beginTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.interviewAssessmentsFlag {
		req.InterviewAssessments = builder.interviewAssessments
	}
	return req
}

type ExternalInterviewAssessment struct {
	Id *string `json:"id,omitempty"` // 外部面评 ID

	ExternalId *string `json:"external_id,omitempty"` // 外部系统面评主键（仅用于幂等）

	Username *string `json:"username,omitempty"` // 面试官姓名

	Conclusion *int `json:"conclusion,omitempty"` // 面试结果

	AssessmentDimensionList []*ExternalInterviewAssessmentDimension `json:"assessment_dimension_list,omitempty"` // 评价维度列表

	Content *string `json:"content,omitempty"` // 综合记录

	ExternalInterviewId *string `json:"external_interview_id,omitempty"` // 外部面试 ID
}

type ExternalInterviewAssessmentBuilder struct {
	id     string // 外部面评 ID
	idFlag bool

	externalId     string // 外部系统面评主键（仅用于幂等）
	externalIdFlag bool

	username     string // 面试官姓名
	usernameFlag bool

	conclusion     int // 面试结果
	conclusionFlag bool

	assessmentDimensionList     []*ExternalInterviewAssessmentDimension // 评价维度列表
	assessmentDimensionListFlag bool

	content     string // 综合记录
	contentFlag bool

	externalInterviewId     string // 外部面试 ID
	externalInterviewIdFlag bool
}

func NewExternalInterviewAssessmentBuilder() *ExternalInterviewAssessmentBuilder {
	builder := &ExternalInterviewAssessmentBuilder{}
	return builder
}

// 外部面评 ID
//
// 示例值：6989181065243969836
func (builder *ExternalInterviewAssessmentBuilder) Id(id string) *ExternalInterviewAssessmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 外部系统面评主键（仅用于幂等）
//
// 示例值：123
func (builder *ExternalInterviewAssessmentBuilder) ExternalId(externalId string) *ExternalInterviewAssessmentBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 面试官姓名
//
// 示例值：shaojiale
func (builder *ExternalInterviewAssessmentBuilder) Username(username string) *ExternalInterviewAssessmentBuilder {
	builder.username = username
	builder.usernameFlag = true
	return builder
}

// 面试结果
//
// 示例值：1
func (builder *ExternalInterviewAssessmentBuilder) Conclusion(conclusion int) *ExternalInterviewAssessmentBuilder {
	builder.conclusion = conclusion
	builder.conclusionFlag = true
	return builder
}

// 评价维度列表
//
// 示例值：
func (builder *ExternalInterviewAssessmentBuilder) AssessmentDimensionList(assessmentDimensionList []*ExternalInterviewAssessmentDimension) *ExternalInterviewAssessmentBuilder {
	builder.assessmentDimensionList = assessmentDimensionList
	builder.assessmentDimensionListFlag = true
	return builder
}

// 综合记录
//
// 示例值：hello world
func (builder *ExternalInterviewAssessmentBuilder) Content(content string) *ExternalInterviewAssessmentBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 外部面试 ID
//
// 示例值：6986199832494934316
func (builder *ExternalInterviewAssessmentBuilder) ExternalInterviewId(externalInterviewId string) *ExternalInterviewAssessmentBuilder {
	builder.externalInterviewId = externalInterviewId
	builder.externalInterviewIdFlag = true
	return builder
}

func (builder *ExternalInterviewAssessmentBuilder) Build() *ExternalInterviewAssessment {
	req := &ExternalInterviewAssessment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.usernameFlag {
		req.Username = &builder.username

	}
	if builder.conclusionFlag {
		req.Conclusion = &builder.conclusion

	}
	if builder.assessmentDimensionListFlag {
		req.AssessmentDimensionList = builder.assessmentDimensionList
	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.externalInterviewIdFlag {
		req.ExternalInterviewId = &builder.externalInterviewId

	}
	return req
}

type ExternalInterviewAssessmentDimension struct {
	Score *int `json:"score,omitempty"` // 打分题分数（当题目类型为「打分题」时使用）

	Option *string `json:"option,omitempty"` // 单选选项（当题目类型为「单选题」时使用）

	Options []string `json:"options,omitempty"` // 多选选项（当题目类型为「多选题」时使用）

	Content *string `json:"content,omitempty"` // 描述内容（当题目类型为「描述题」时使用）

	AssessmentType *int `json:"assessment_type,omitempty"` // 题目类型

	Title *string `json:"title,omitempty"` // 题目标题

	Description *string `json:"description,omitempty"` // 题目描述
}

type ExternalInterviewAssessmentDimensionBuilder struct {
	score     int // 打分题分数（当题目类型为「打分题」时使用）
	scoreFlag bool

	option     string // 单选选项（当题目类型为「单选题」时使用）
	optionFlag bool

	options     []string // 多选选项（当题目类型为「多选题」时使用）
	optionsFlag bool

	content     string // 描述内容（当题目类型为「描述题」时使用）
	contentFlag bool

	assessmentType     int // 题目类型
	assessmentTypeFlag bool

	title     string // 题目标题
	titleFlag bool

	description     string // 题目描述
	descriptionFlag bool
}

func NewExternalInterviewAssessmentDimensionBuilder() *ExternalInterviewAssessmentDimensionBuilder {
	builder := &ExternalInterviewAssessmentDimensionBuilder{}
	return builder
}

// 打分题分数（当题目类型为「打分题」时使用）
//
// 示例值：99
func (builder *ExternalInterviewAssessmentDimensionBuilder) Score(score int) *ExternalInterviewAssessmentDimensionBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 单选选项（当题目类型为「单选题」时使用）
//
// 示例值：opt
func (builder *ExternalInterviewAssessmentDimensionBuilder) Option(option string) *ExternalInterviewAssessmentDimensionBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 多选选项（当题目类型为「多选题」时使用）
//
// 示例值：6989181065243969836
func (builder *ExternalInterviewAssessmentDimensionBuilder) Options(options []string) *ExternalInterviewAssessmentDimensionBuilder {
	builder.options = options
	builder.optionsFlag = true
	return builder
}

// 描述内容（当题目类型为「描述题」时使用）
//
// 示例值：content
func (builder *ExternalInterviewAssessmentDimensionBuilder) Content(content string) *ExternalInterviewAssessmentDimensionBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 题目类型
//
// 示例值：1
func (builder *ExternalInterviewAssessmentDimensionBuilder) AssessmentType(assessmentType int) *ExternalInterviewAssessmentDimensionBuilder {
	builder.assessmentType = assessmentType
	builder.assessmentTypeFlag = true
	return builder
}

// 题目标题
//
// 示例值：title
func (builder *ExternalInterviewAssessmentDimensionBuilder) Title(title string) *ExternalInterviewAssessmentDimensionBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 题目描述
//
// 示例值：desc
func (builder *ExternalInterviewAssessmentDimensionBuilder) Description(description string) *ExternalInterviewAssessmentDimensionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *ExternalInterviewAssessmentDimensionBuilder) Build() *ExternalInterviewAssessmentDimension {
	req := &ExternalInterviewAssessmentDimension{}
	if builder.scoreFlag {
		req.Score = &builder.score

	}
	if builder.optionFlag {
		req.Option = &builder.option

	}
	if builder.optionsFlag {
		req.Options = builder.options
	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.assessmentTypeFlag {
		req.AssessmentType = &builder.assessmentType

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type ExternalOffer struct {
	Id *string `json:"id,omitempty"` // 外部 Offer ID

	ExternalId *string `json:"external_id,omitempty"` // 外部系统 Offer 主键（仅用于幂等）

	ExternalApplicationId *string `json:"external_application_id,omitempty"` // 外部投递 ID

	BizCreateTime *string `json:"biz_create_time,omitempty"` // Offer 创建时间，毫秒时间戳

	Owner *string `json:"owner,omitempty"` // Offer 负责人

	Creator *string `json:"creator,omitempty"` // Offer 创建人

	OfferStatus *string `json:"offer_status,omitempty"` // Offer 状态

	AttachmentIdList []string `json:"attachment_id_list,omitempty"` // Offer详情附件ID列表

	AttachmentList []*ExternalCommonAttachment `json:"attachment_list,omitempty"` // Offer 附件列表
}

type ExternalOfferBuilder struct {
	id     string // 外部 Offer ID
	idFlag bool

	externalId     string // 外部系统 Offer 主键（仅用于幂等）
	externalIdFlag bool

	externalApplicationId     string // 外部投递 ID
	externalApplicationIdFlag bool

	bizCreateTime     string // Offer 创建时间，毫秒时间戳
	bizCreateTimeFlag bool

	owner     string // Offer 负责人
	ownerFlag bool

	creator     string // Offer 创建人
	creatorFlag bool

	offerStatus     string // Offer 状态
	offerStatusFlag bool

	attachmentIdList     []string // Offer详情附件ID列表
	attachmentIdListFlag bool

	attachmentList     []*ExternalCommonAttachment // Offer 附件列表
	attachmentListFlag bool
}

func NewExternalOfferBuilder() *ExternalOfferBuilder {
	builder := &ExternalOfferBuilder{}
	return builder
}

// 外部 Offer ID
//
// 示例值：6989202908470446380
func (builder *ExternalOfferBuilder) Id(id string) *ExternalOfferBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 外部系统 Offer 主键（仅用于幂等）
//
// 示例值：123
func (builder *ExternalOfferBuilder) ExternalId(externalId string) *ExternalOfferBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 外部投递 ID
//
// 示例值：7395015673275697419
func (builder *ExternalOfferBuilder) ExternalApplicationId(externalApplicationId string) *ExternalOfferBuilder {
	builder.externalApplicationId = externalApplicationId
	builder.externalApplicationIdFlag = true
	return builder
}

// Offer 创建时间，毫秒时间戳
//
// 示例值：1721899352428
func (builder *ExternalOfferBuilder) BizCreateTime(bizCreateTime string) *ExternalOfferBuilder {
	builder.bizCreateTime = bizCreateTime
	builder.bizCreateTimeFlag = true
	return builder
}

// Offer 负责人
//
// 示例值：张三
func (builder *ExternalOfferBuilder) Owner(owner string) *ExternalOfferBuilder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

// Offer 创建人
//
// 示例值：张三
func (builder *ExternalOfferBuilder) Creator(creator string) *ExternalOfferBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// Offer 状态
//
// 示例值：已发送
func (builder *ExternalOfferBuilder) OfferStatus(offerStatus string) *ExternalOfferBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// Offer详情附件ID列表
//
// 示例值：
func (builder *ExternalOfferBuilder) AttachmentIdList(attachmentIdList []string) *ExternalOfferBuilder {
	builder.attachmentIdList = attachmentIdList
	builder.attachmentIdListFlag = true
	return builder
}

// Offer 附件列表
//
// 示例值：
func (builder *ExternalOfferBuilder) AttachmentList(attachmentList []*ExternalCommonAttachment) *ExternalOfferBuilder {
	builder.attachmentList = attachmentList
	builder.attachmentListFlag = true
	return builder
}

func (builder *ExternalOfferBuilder) Build() *ExternalOffer {
	req := &ExternalOffer{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.externalApplicationIdFlag {
		req.ExternalApplicationId = &builder.externalApplicationId

	}
	if builder.bizCreateTimeFlag {
		req.BizCreateTime = &builder.bizCreateTime

	}
	if builder.ownerFlag {
		req.Owner = &builder.owner

	}
	if builder.creatorFlag {
		req.Creator = &builder.creator

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.attachmentIdListFlag {
		req.AttachmentIdList = builder.attachmentIdList
	}
	if builder.attachmentListFlag {
		req.AttachmentList = builder.attachmentList
	}
	return req
}

type ExternalReward struct {
	ReferralUserId *string `json:"referral_user_id,omitempty"` // 内推人ID

	CreateUserId *string `json:"create_user_id,omitempty"` // 奖励创建人，管理员与内推人可见，若不传，则默认为「外部系统」

	ConfirmUserId *string `json:"confirm_user_id,omitempty"` // 奖励确认人，若导入的「内推奖励状态」为「已确认」可传入，若不传，则默认为「外部系统」

	PayUserId *string `json:"pay_user_id,omitempty"` // 奖励发放人，导入奖励状态为「已发放」的奖励传入，若不传，则默认为「外部系统」

	ExternalId *string `json:"external_id,omitempty"` // 外部系统奖励唯一id（仅用于幂等）

	ApplicationId *string `json:"application_id,omitempty"` // 投递id，和「人才id」二选一

	TalentId *string `json:"talent_id,omitempty"` // 人才id，和「投递id」二选一

	JobId *string `json:"job_id,omitempty"` // 职位id，当参数包含「人才id」时，可以选填职位id

	Reason *string `json:"reason,omitempty"` // 奖励原因

	RuleType *int `json:"rule_type,omitempty"` // 导入的奖励规则类型，将展示在内推奖励明细中，管理员与内推人可见

	Bonus *BonusAmount `json:"bonus,omitempty"` // 奖励数据

	Stage *int `json:"stage,omitempty"` // 导入的内推奖励状态

	CreateTime *string `json:"create_time,omitempty"` // 奖励产生时间，内推奖励触发时间，若未传入，取接口传入时间

	ConfirmTime *string `json:"confirm_time,omitempty"` // 奖励确认时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间

	PayTime *string `json:"pay_time,omitempty"` // 奖励发放时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间

	OnboardTime *string `json:"onboard_time,omitempty"` // 入职时间，管理员与内推人可见，若为「入职奖励」可传入

	ConversionTime *string `json:"conversion_time,omitempty"` // 入职时间，管理员与内推人可见，若为「入职奖励」可传入

	Comment *string `json:"comment,omitempty"` // 操作备注，管理员与内推人可见，若为空，将展示为奖励原因
}

type ExternalRewardBuilder struct {
	referralUserId     string // 内推人ID
	referralUserIdFlag bool

	createUserId     string // 奖励创建人，管理员与内推人可见，若不传，则默认为「外部系统」
	createUserIdFlag bool

	confirmUserId     string // 奖励确认人，若导入的「内推奖励状态」为「已确认」可传入，若不传，则默认为「外部系统」
	confirmUserIdFlag bool

	payUserId     string // 奖励发放人，导入奖励状态为「已发放」的奖励传入，若不传，则默认为「外部系统」
	payUserIdFlag bool

	externalId     string // 外部系统奖励唯一id（仅用于幂等）
	externalIdFlag bool

	applicationId     string // 投递id，和「人才id」二选一
	applicationIdFlag bool

	talentId     string // 人才id，和「投递id」二选一
	talentIdFlag bool

	jobId     string // 职位id，当参数包含「人才id」时，可以选填职位id
	jobIdFlag bool

	reason     string // 奖励原因
	reasonFlag bool

	ruleType     int // 导入的奖励规则类型，将展示在内推奖励明细中，管理员与内推人可见
	ruleTypeFlag bool

	bonus     *BonusAmount // 奖励数据
	bonusFlag bool

	stage     int // 导入的内推奖励状态
	stageFlag bool

	createTime     string // 奖励产生时间，内推奖励触发时间，若未传入，取接口传入时间
	createTimeFlag bool

	confirmTime     string // 奖励确认时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间
	confirmTimeFlag bool

	payTime     string // 奖励发放时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间
	payTimeFlag bool

	onboardTime     string // 入职时间，管理员与内推人可见，若为「入职奖励」可传入
	onboardTimeFlag bool

	conversionTime     string // 入职时间，管理员与内推人可见，若为「入职奖励」可传入
	conversionTimeFlag bool

	comment     string // 操作备注，管理员与内推人可见，若为空，将展示为奖励原因
	commentFlag bool
}

func NewExternalRewardBuilder() *ExternalRewardBuilder {
	builder := &ExternalRewardBuilder{}
	return builder
}

// 内推人ID
//
// 示例值：on_94a1ee5551019f18cd73d9f111898cf2
func (builder *ExternalRewardBuilder) ReferralUserId(referralUserId string) *ExternalRewardBuilder {
	builder.referralUserId = referralUserId
	builder.referralUserIdFlag = true
	return builder
}

// 奖励创建人，管理员与内推人可见，若不传，则默认为「外部系统」
//
// 示例值：on_94a1ee5551019f18cd73d9f111898cf2
func (builder *ExternalRewardBuilder) CreateUserId(createUserId string) *ExternalRewardBuilder {
	builder.createUserId = createUserId
	builder.createUserIdFlag = true
	return builder
}

// 奖励确认人，若导入的「内推奖励状态」为「已确认」可传入，若不传，则默认为「外部系统」
//
// 示例值：on_94a1ee5551019f18cd73d9f111898cf2
func (builder *ExternalRewardBuilder) ConfirmUserId(confirmUserId string) *ExternalRewardBuilder {
	builder.confirmUserId = confirmUserId
	builder.confirmUserIdFlag = true
	return builder
}

// 奖励发放人，导入奖励状态为「已发放」的奖励传入，若不传，则默认为「外部系统」
//
// 示例值：on_94a1ee5551019f18cd73d9f111898cf2
func (builder *ExternalRewardBuilder) PayUserId(payUserId string) *ExternalRewardBuilder {
	builder.payUserId = payUserId
	builder.payUserIdFlag = true
	return builder
}

// 外部系统奖励唯一id（仅用于幂等）
//
// 示例值：6930815272790114324
func (builder *ExternalRewardBuilder) ExternalId(externalId string) *ExternalRewardBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 投递id，和「人才id」二选一
//
// 示例值：6930815272790114325
func (builder *ExternalRewardBuilder) ApplicationId(applicationId string) *ExternalRewardBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 人才id，和「投递id」二选一
//
// 示例值：6930815272790114326
func (builder *ExternalRewardBuilder) TalentId(talentId string) *ExternalRewardBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位id，当参数包含「人才id」时，可以选填职位id
//
// 示例值：6930815272790114327
func (builder *ExternalRewardBuilder) JobId(jobId string) *ExternalRewardBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 奖励原因
//
// 示例值：首次推荐
func (builder *ExternalRewardBuilder) Reason(reason string) *ExternalRewardBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

// 导入的奖励规则类型，将展示在内推奖励明细中，管理员与内推人可见
//
// 示例值：1
func (builder *ExternalRewardBuilder) RuleType(ruleType int) *ExternalRewardBuilder {
	builder.ruleType = ruleType
	builder.ruleTypeFlag = true
	return builder
}

// 奖励数据
//
// 示例值：
func (builder *ExternalRewardBuilder) Bonus(bonus *BonusAmount) *ExternalRewardBuilder {
	builder.bonus = bonus
	builder.bonusFlag = true
	return builder
}

// 导入的内推奖励状态
//
// 示例值：1
func (builder *ExternalRewardBuilder) Stage(stage int) *ExternalRewardBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 奖励产生时间，内推奖励触发时间，若未传入，取接口传入时间
//
// 示例值：1704720275000
func (builder *ExternalRewardBuilder) CreateTime(createTime string) *ExternalRewardBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 奖励确认时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间
//
// 示例值：1704720275000
func (builder *ExternalRewardBuilder) ConfirmTime(confirmTime string) *ExternalRewardBuilder {
	builder.confirmTime = confirmTime
	builder.confirmTimeFlag = true
	return builder
}

// 奖励发放时间，若导入的「内推奖励状态」为「已确认」可传入，若未传入，取接口传入时间
//
// 示例值：1704720275001
func (builder *ExternalRewardBuilder) PayTime(payTime string) *ExternalRewardBuilder {
	builder.payTime = payTime
	builder.payTimeFlag = true
	return builder
}

// 入职时间，管理员与内推人可见，若为「入职奖励」可传入
//
// 示例值：1704720275002
func (builder *ExternalRewardBuilder) OnboardTime(onboardTime string) *ExternalRewardBuilder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 入职时间，管理员与内推人可见，若为「入职奖励」可传入
//
// 示例值：1704720275003
func (builder *ExternalRewardBuilder) ConversionTime(conversionTime string) *ExternalRewardBuilder {
	builder.conversionTime = conversionTime
	builder.conversionTimeFlag = true
	return builder
}

// 操作备注，管理员与内推人可见，若为空，将展示为奖励原因
//
// 示例值：已发放
func (builder *ExternalRewardBuilder) Comment(comment string) *ExternalRewardBuilder {
	builder.comment = comment
	builder.commentFlag = true
	return builder
}

func (builder *ExternalRewardBuilder) Build() *ExternalReward {
	req := &ExternalReward{}
	if builder.referralUserIdFlag {
		req.ReferralUserId = &builder.referralUserId

	}
	if builder.createUserIdFlag {
		req.CreateUserId = &builder.createUserId

	}
	if builder.confirmUserIdFlag {
		req.ConfirmUserId = &builder.confirmUserId

	}
	if builder.payUserIdFlag {
		req.PayUserId = &builder.payUserId

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.reasonFlag {
		req.Reason = &builder.reason

	}
	if builder.ruleTypeFlag {
		req.RuleType = &builder.ruleType

	}
	if builder.bonusFlag {
		req.Bonus = builder.bonus
	}
	if builder.stageFlag {
		req.Stage = &builder.stage

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.confirmTimeFlag {
		req.ConfirmTime = &builder.confirmTime

	}
	if builder.payTimeFlag {
		req.PayTime = &builder.payTime

	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime

	}
	if builder.conversionTimeFlag {
		req.ConversionTime = &builder.conversionTime

	}
	if builder.commentFlag {
		req.Comment = &builder.comment

	}
	return req
}

type Filter struct {
	Key *string `json:"key,omitempty"` // 筛选项 key

	ValueType *int `json:"value_type,omitempty"` // 筛选项值类型

	ValueList []string `json:"value_list,omitempty"` // 筛选项值列表

	RangeFilter *RangeFilter `json:"range_filter,omitempty"` // 范围筛选

	CandidateTagFilter *CandidateTagFilter `json:"candidate_tag_filter,omitempty"` // 候选人标签筛选

	DegreeFilter *DegreeFilter `json:"degree_filter,omitempty"` // 学历筛选
}

type FilterBuilder struct {
	key     string // 筛选项 key
	keyFlag bool

	valueType     int // 筛选项值类型
	valueTypeFlag bool

	valueList     []string // 筛选项值列表
	valueListFlag bool

	rangeFilter     *RangeFilter // 范围筛选
	rangeFilterFlag bool

	candidateTagFilter     *CandidateTagFilter // 候选人标签筛选
	candidateTagFilterFlag bool

	degreeFilter     *DegreeFilter // 学历筛选
	degreeFilterFlag bool
}

func NewFilterBuilder() *FilterBuilder {
	builder := &FilterBuilder{}
	return builder
}

// 筛选项 key
//
// 示例值：degree
func (builder *FilterBuilder) Key(key string) *FilterBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 筛选项值类型
//
// 示例值：1
func (builder *FilterBuilder) ValueType(valueType int) *FilterBuilder {
	builder.valueType = valueType
	builder.valueTypeFlag = true
	return builder
}

// 筛选项值列表
//
// 示例值：
func (builder *FilterBuilder) ValueList(valueList []string) *FilterBuilder {
	builder.valueList = valueList
	builder.valueListFlag = true
	return builder
}

// 范围筛选
//
// 示例值：
func (builder *FilterBuilder) RangeFilter(rangeFilter *RangeFilter) *FilterBuilder {
	builder.rangeFilter = rangeFilter
	builder.rangeFilterFlag = true
	return builder
}

// 候选人标签筛选
//
// 示例值：
func (builder *FilterBuilder) CandidateTagFilter(candidateTagFilter *CandidateTagFilter) *FilterBuilder {
	builder.candidateTagFilter = candidateTagFilter
	builder.candidateTagFilterFlag = true
	return builder
}

// 学历筛选
//
// 示例值：
func (builder *FilterBuilder) DegreeFilter(degreeFilter *DegreeFilter) *FilterBuilder {
	builder.degreeFilter = degreeFilter
	builder.degreeFilterFlag = true
	return builder
}

func (builder *FilterBuilder) Build() *Filter {
	req := &Filter{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueTypeFlag {
		req.ValueType = &builder.valueType

	}
	if builder.valueListFlag {
		req.ValueList = builder.valueList
	}
	if builder.rangeFilterFlag {
		req.RangeFilter = builder.rangeFilter
	}
	if builder.candidateTagFilterFlag {
		req.CandidateTagFilter = builder.candidateTagFilter
	}
	if builder.degreeFilterFlag {
		req.DegreeFilter = builder.degreeFilter
	}
	return req
}

type FiveStartScoringResult struct {
	HighestScoreDesc *string `json:"highest_score_desc,omitempty"` // 最高分中文描述

	HighestScoreEnDesc *string `json:"highest_score_en_desc,omitempty"` // 最高分英文描述

	LowestScoreDesc *string `json:"lowest_score_desc,omitempty"` // 最低分中文描述

	LowestScoreEnDesc *string `json:"lowest_score_en_desc,omitempty"` // 最低分英文描述

	ScoreResult *float64 `json:"score_result,omitempty"` // 评分分数
}

type FiveStartScoringResultBuilder struct {
	highestScoreDesc     string // 最高分中文描述
	highestScoreDescFlag bool

	highestScoreEnDesc     string // 最高分英文描述
	highestScoreEnDescFlag bool

	lowestScoreDesc     string // 最低分中文描述
	lowestScoreDescFlag bool

	lowestScoreEnDesc     string // 最低分英文描述
	lowestScoreEnDescFlag bool

	scoreResult     float64 // 评分分数
	scoreResultFlag bool
}

func NewFiveStartScoringResultBuilder() *FiveStartScoringResultBuilder {
	builder := &FiveStartScoringResultBuilder{}
	return builder
}

// 最高分中文描述
//
// 示例值：非常好
func (builder *FiveStartScoringResultBuilder) HighestScoreDesc(highestScoreDesc string) *FiveStartScoringResultBuilder {
	builder.highestScoreDesc = highestScoreDesc
	builder.highestScoreDescFlag = true
	return builder
}

// 最高分英文描述
//
// 示例值：Very Good
func (builder *FiveStartScoringResultBuilder) HighestScoreEnDesc(highestScoreEnDesc string) *FiveStartScoringResultBuilder {
	builder.highestScoreEnDesc = highestScoreEnDesc
	builder.highestScoreEnDescFlag = true
	return builder
}

// 最低分中文描述
//
// 示例值：非常差
func (builder *FiveStartScoringResultBuilder) LowestScoreDesc(lowestScoreDesc string) *FiveStartScoringResultBuilder {
	builder.lowestScoreDesc = lowestScoreDesc
	builder.lowestScoreDescFlag = true
	return builder
}

// 最低分英文描述
//
// 示例值：Very Bad
func (builder *FiveStartScoringResultBuilder) LowestScoreEnDesc(lowestScoreEnDesc string) *FiveStartScoringResultBuilder {
	builder.lowestScoreEnDesc = lowestScoreEnDesc
	builder.lowestScoreEnDescFlag = true
	return builder
}

// 评分分数
//
// 示例值：4
func (builder *FiveStartScoringResultBuilder) ScoreResult(scoreResult float64) *FiveStartScoringResultBuilder {
	builder.scoreResult = scoreResult
	builder.scoreResultFlag = true
	return builder
}

func (builder *FiveStartScoringResultBuilder) Build() *FiveStartScoringResult {
	req := &FiveStartScoringResult{}
	if builder.highestScoreDescFlag {
		req.HighestScoreDesc = &builder.highestScoreDesc

	}
	if builder.highestScoreEnDescFlag {
		req.HighestScoreEnDesc = &builder.highestScoreEnDesc

	}
	if builder.lowestScoreDescFlag {
		req.LowestScoreDesc = &builder.lowestScoreDesc

	}
	if builder.lowestScoreEnDescFlag {
		req.LowestScoreEnDesc = &builder.lowestScoreEnDesc

	}
	if builder.scoreResultFlag {
		req.ScoreResult = &builder.scoreResult

	}
	return req
}

type I18n struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文

	EnUs *string `json:"en_us,omitempty"` // 英文
}

type I18nBuilder struct {
	zhCn     string // 中文
	zhCnFlag bool

	enUs     string // 英文
	enUsFlag bool
}

func NewI18nBuilder() *I18nBuilder {
	builder := &I18nBuilder{}
	return builder
}

// 中文
//
// 示例值：测试
func (builder *I18nBuilder) ZhCn(zhCn string) *I18nBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文
//
// 示例值：test
func (builder *I18nBuilder) EnUs(enUs string) *I18nBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

func (builder *I18nBuilder) Build() *I18n {
	req := &I18n{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	return req
}

type IdNameObject struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称
}

type IdNameObjectBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewIdNameObjectBuilder() *IdNameObjectBuilder {
	builder := &IdNameObjectBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *IdNameObjectBuilder) Id(id string) *IdNameObjectBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *IdNameObjectBuilder) Name(name *I18n) *IdNameObjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *IdNameObjectBuilder) Build() *IdNameObject {
	req := &IdNameObject{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type Identification struct {
	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号码

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型
}

type IdentificationBuilder struct {
	identificationNumber     string // 证件号码
	identificationNumberFlag bool

	identificationType     int // 证件类型
	identificationTypeFlag bool
}

func NewIdentificationBuilder() *IdentificationBuilder {
	builder := &IdentificationBuilder{}
	return builder
}

// 证件号码
//
// 示例值：
func (builder *IdentificationBuilder) IdentificationNumber(identificationNumber string) *IdentificationBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 证件类型
//
// 示例值：
func (builder *IdentificationBuilder) IdentificationType(identificationType int) *IdentificationBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

func (builder *IdentificationBuilder) Build() *Identification {
	req := &Identification{}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	return req
}

type InternOfferOffboardingInfo struct {
	ActualOffboardingDate *string `json:"actual_offboarding_date,omitempty"` // 实际离职日期（实际离职日期需晚于实际入职日期）

	Notes *string `json:"notes,omitempty"` // 备注
}

type InternOfferOffboardingInfoBuilder struct {
	actualOffboardingDate     string // 实际离职日期（实际离职日期需晚于实际入职日期）
	actualOffboardingDateFlag bool

	notes     string // 备注
	notesFlag bool
}

func NewInternOfferOffboardingInfoBuilder() *InternOfferOffboardingInfoBuilder {
	builder := &InternOfferOffboardingInfoBuilder{}
	return builder
}

// 实际离职日期（实际离职日期需晚于实际入职日期）
//
// 示例值：2022-03-02
func (builder *InternOfferOffboardingInfoBuilder) ActualOffboardingDate(actualOffboardingDate string) *InternOfferOffboardingInfoBuilder {
	builder.actualOffboardingDate = actualOffboardingDate
	builder.actualOffboardingDateFlag = true
	return builder
}

// 备注
//
// 示例值：主动离职
func (builder *InternOfferOffboardingInfoBuilder) Notes(notes string) *InternOfferOffboardingInfoBuilder {
	builder.notes = notes
	builder.notesFlag = true
	return builder
}

func (builder *InternOfferOffboardingInfoBuilder) Build() *InternOfferOffboardingInfo {
	req := &InternOfferOffboardingInfo{}
	if builder.actualOffboardingDateFlag {
		req.ActualOffboardingDate = &builder.actualOffboardingDate

	}
	if builder.notesFlag {
		req.Notes = &builder.notes

	}
	return req
}

type InternOfferOnboardingInfo struct {
	ActualOnboardingDate *string `json:"actual_onboarding_date,omitempty"` // 实际入职日期
}

type InternOfferOnboardingInfoBuilder struct {
	actualOnboardingDate     string // 实际入职日期
	actualOnboardingDateFlag bool
}

func NewInternOfferOnboardingInfoBuilder() *InternOfferOnboardingInfoBuilder {
	builder := &InternOfferOnboardingInfoBuilder{}
	return builder
}

// 实际入职日期
//
// 示例值：2022-01-01
func (builder *InternOfferOnboardingInfoBuilder) ActualOnboardingDate(actualOnboardingDate string) *InternOfferOnboardingInfoBuilder {
	builder.actualOnboardingDate = actualOnboardingDate
	builder.actualOnboardingDateFlag = true
	return builder
}

func (builder *InternOfferOnboardingInfoBuilder) Build() *InternOfferOnboardingInfo {
	req := &InternOfferOnboardingInfo{}
	if builder.actualOnboardingDateFlag {
		req.ActualOnboardingDate = &builder.actualOnboardingDate

	}
	return req
}

type InternOfferStatus struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	Operation *string `json:"operation,omitempty"` // 更新入/离职状态的操作

	OnboardingInfo *InternOfferOnboardingInfo `json:"onboarding_info,omitempty"` // 入职表单信息（当 operation 为 confirm_onboarding 时，该字段必填）

	OffboardingInfo *InternOfferOffboardingInfo `json:"offboarding_info,omitempty"` // 离职表单信息（当 operation 为 offboard 时，该字段必填）
}

type InternOfferStatusBuilder struct {
	offerId     string // Offer ID
	offerIdFlag bool

	operation     string // 更新入/离职状态的操作
	operationFlag bool

	onboardingInfo     *InternOfferOnboardingInfo // 入职表单信息（当 operation 为 confirm_onboarding 时，该字段必填）
	onboardingInfoFlag bool

	offboardingInfo     *InternOfferOffboardingInfo // 离职表单信息（当 operation 为 offboard 时，该字段必填）
	offboardingInfoFlag bool
}

func NewInternOfferStatusBuilder() *InternOfferStatusBuilder {
	builder := &InternOfferStatusBuilder{}
	return builder
}

// Offer ID
//
// 示例值：6949805467799537964
func (builder *InternOfferStatusBuilder) OfferId(offerId string) *InternOfferStatusBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 更新入/离职状态的操作
//
// 示例值：confirm_onboarding
func (builder *InternOfferStatusBuilder) Operation(operation string) *InternOfferStatusBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 入职表单信息（当 operation 为 confirm_onboarding 时，该字段必填）
//
// 示例值：
func (builder *InternOfferStatusBuilder) OnboardingInfo(onboardingInfo *InternOfferOnboardingInfo) *InternOfferStatusBuilder {
	builder.onboardingInfo = onboardingInfo
	builder.onboardingInfoFlag = true
	return builder
}

// 离职表单信息（当 operation 为 offboard 时，该字段必填）
//
// 示例值：
func (builder *InternOfferStatusBuilder) OffboardingInfo(offboardingInfo *InternOfferOffboardingInfo) *InternOfferStatusBuilder {
	builder.offboardingInfo = offboardingInfo
	builder.offboardingInfoFlag = true
	return builder
}

func (builder *InternOfferStatusBuilder) Build() *InternOfferStatus {
	req := &InternOfferStatus{}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.operationFlag {
		req.Operation = &builder.operation

	}
	if builder.onboardingInfoFlag {
		req.OnboardingInfo = builder.onboardingInfo
	}
	if builder.offboardingInfoFlag {
		req.OffboardingInfo = builder.offboardingInfo
	}
	return req
}

type InternshipInfo struct {
	CareerType *int `json:"career_type,omitempty"` // 类型

	Company *string `json:"company,omitempty"` // 公司

	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	Title *string `json:"title,omitempty"` // 职称
}

type InternshipInfoBuilder struct {
	careerType     int // 类型
	careerTypeFlag bool

	company     string // 公司
	companyFlag bool

	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	title     string // 职称
	titleFlag bool
}

func NewInternshipInfoBuilder() *InternshipInfoBuilder {
	builder := &InternshipInfoBuilder{}
	return builder
}

// 类型
//
// 示例值：1
func (builder *InternshipInfoBuilder) CareerType(careerType int) *InternshipInfoBuilder {
	builder.careerType = careerType
	builder.careerTypeFlag = true
	return builder
}

// 公司
//
// 示例值：xx公司
func (builder *InternshipInfoBuilder) Company(company string) *InternshipInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 描述
//
// 示例值：描述
func (builder *InternshipInfoBuilder) Desc(desc string) *InternshipInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间
//
// 示例值：1735664461000
func (builder *InternshipInfoBuilder) EndTime(endTime int64) *InternshipInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 开始时间
//
// 示例值：1735664461000
func (builder *InternshipInfoBuilder) StartTime(startTime int64) *InternshipInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 职称
//
// 示例值：xx职称
func (builder *InternshipInfoBuilder) Title(title string) *InternshipInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

func (builder *InternshipInfoBuilder) Build() *InternshipInfo {
	req := &InternshipInfo{}
	if builder.careerTypeFlag {
		req.CareerType = &builder.careerType

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	return req
}

type Interview struct {
	Id *string `json:"id,omitempty"` // 面试id

	BeginTime *int64 `json:"begin_time,omitempty"` // 面试开始时间（ms）

	EndTime *int64 `json:"end_time,omitempty"` // 面试结束时间（ms）

	Round *int `json:"round,omitempty"` // 面试轮次（从0开始计数）

	StageId *string `json:"stage_id,omitempty"` // 面试关联的投递阶段

	InterviewRecordList []*InterviewRecord `json:"interview_record_list,omitempty"` // 面试官记录列表
}

type InterviewBuilder struct {
	id     string // 面试id
	idFlag bool

	beginTime     int64 // 面试开始时间（ms）
	beginTimeFlag bool

	endTime     int64 // 面试结束时间（ms）
	endTimeFlag bool

	round     int // 面试轮次（从0开始计数）
	roundFlag bool

	stageId     string // 面试关联的投递阶段
	stageIdFlag bool

	interviewRecordList     []*InterviewRecord // 面试官记录列表
	interviewRecordListFlag bool
}

func NewInterviewBuilder() *InterviewBuilder {
	builder := &InterviewBuilder{}
	return builder
}

// 面试id
//
// 示例值：6949805467799537964
func (builder *InterviewBuilder) Id(id string) *InterviewBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试开始时间（ms）
//
// 示例值：1618899376474
func (builder *InterviewBuilder) BeginTime(beginTime int64) *InterviewBuilder {
	builder.beginTime = beginTime
	builder.beginTimeFlag = true
	return builder
}

// 面试结束时间（ms）
//
// 示例值：1618999376474
func (builder *InterviewBuilder) EndTime(endTime int64) *InterviewBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 面试轮次（从0开始计数）
//
// 示例值：0
func (builder *InterviewBuilder) Round(round int) *InterviewBuilder {
	builder.round = round
	builder.roundFlag = true
	return builder
}

// 面试关联的投递阶段
//
// 示例值：634324253532232
func (builder *InterviewBuilder) StageId(stageId string) *InterviewBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 面试官记录列表
//
// 示例值：
func (builder *InterviewBuilder) InterviewRecordList(interviewRecordList []*InterviewRecord) *InterviewBuilder {
	builder.interviewRecordList = interviewRecordList
	builder.interviewRecordListFlag = true
	return builder
}

func (builder *InterviewBuilder) Build() *Interview {
	req := &Interview{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.beginTimeFlag {
		req.BeginTime = &builder.beginTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.roundFlag {
		req.Round = &builder.round

	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId

	}
	if builder.interviewRecordListFlag {
		req.InterviewRecordList = builder.interviewRecordList
	}
	return req
}

type InterviewAddress struct {
	Id *string `json:"id,omitempty"` // 地址 ID

	Name *I18n `json:"name,omitempty"` // 地址名称

	District *CodeNameObject `json:"district,omitempty"` // 区域

	City *CodeNameObject `json:"city,omitempty"` // 城市

	State *CodeNameObject `json:"state,omitempty"` // 省

	Country *CodeNameObject `json:"country,omitempty"` // 国家
}

type InterviewAddressBuilder struct {
	id     string // 地址 ID
	idFlag bool

	name     *I18n // 地址名称
	nameFlag bool

	district     *CodeNameObject // 区域
	districtFlag bool

	city     *CodeNameObject // 城市
	cityFlag bool

	state     *CodeNameObject // 省
	stateFlag bool

	country     *CodeNameObject // 国家
	countryFlag bool
}

func NewInterviewAddressBuilder() *InterviewAddressBuilder {
	builder := &InterviewAddressBuilder{}
	return builder
}

// 地址 ID
//
// 示例值：6949805467799537964
func (builder *InterviewAddressBuilder) Id(id string) *InterviewAddressBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 地址名称
//
// 示例值：
func (builder *InterviewAddressBuilder) Name(name *I18n) *InterviewAddressBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 区域
//
// 示例值：
func (builder *InterviewAddressBuilder) District(district *CodeNameObject) *InterviewAddressBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 城市
//
// 示例值：
func (builder *InterviewAddressBuilder) City(city *CodeNameObject) *InterviewAddressBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省
//
// 示例值：
func (builder *InterviewAddressBuilder) State(state *CodeNameObject) *InterviewAddressBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家
//
// 示例值：
func (builder *InterviewAddressBuilder) Country(country *CodeNameObject) *InterviewAddressBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

func (builder *InterviewAddressBuilder) Build() *InterviewAddress {
	req := &InterviewAddress{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	return req
}

type InterviewAggregation struct {
	Interviews []*InterviewExtendV2 `json:"interviews,omitempty"` // 面试信息列表
}

type InterviewAggregationBuilder struct {
	interviews     []*InterviewExtendV2 // 面试信息列表
	interviewsFlag bool
}

func NewInterviewAggregationBuilder() *InterviewAggregationBuilder {
	builder := &InterviewAggregationBuilder{}
	return builder
}

// 面试信息列表
//
// 示例值：
func (builder *InterviewAggregationBuilder) Interviews(interviews []*InterviewExtendV2) *InterviewAggregationBuilder {
	builder.interviews = interviews
	builder.interviewsFlag = true
	return builder
}

func (builder *InterviewAggregationBuilder) Build() *InterviewAggregation {
	req := &InterviewAggregation{}
	if builder.interviewsFlag {
		req.Interviews = builder.interviews
	}
	return req
}

type InterviewAppointmentConfig struct {
	EnableInterviewAppointmentByInterviewer *bool `json:"enable_interview_appointment_by_interviewer,omitempty"` // 是否开启面试官自助约面

	Config *InterviewAppointmentConfigContent `json:"config,omitempty"` // 配置详情
}

type InterviewAppointmentConfigBuilder struct {
	enableInterviewAppointmentByInterviewer     bool // 是否开启面试官自助约面
	enableInterviewAppointmentByInterviewerFlag bool

	config     *InterviewAppointmentConfigContent // 配置详情
	configFlag bool
}

func NewInterviewAppointmentConfigBuilder() *InterviewAppointmentConfigBuilder {
	builder := &InterviewAppointmentConfigBuilder{}
	return builder
}

// 是否开启面试官自助约面
//
// 示例值：true
func (builder *InterviewAppointmentConfigBuilder) EnableInterviewAppointmentByInterviewer(enableInterviewAppointmentByInterviewer bool) *InterviewAppointmentConfigBuilder {
	builder.enableInterviewAppointmentByInterviewer = enableInterviewAppointmentByInterviewer
	builder.enableInterviewAppointmentByInterviewerFlag = true
	return builder
}

// 配置详情
//
// 示例值：
func (builder *InterviewAppointmentConfigBuilder) Config(config *InterviewAppointmentConfigContent) *InterviewAppointmentConfigBuilder {
	builder.config = config
	builder.configFlag = true
	return builder
}

func (builder *InterviewAppointmentConfigBuilder) Build() *InterviewAppointmentConfig {
	req := &InterviewAppointmentConfig{}
	if builder.enableInterviewAppointmentByInterviewerFlag {
		req.EnableInterviewAppointmentByInterviewer = &builder.enableInterviewAppointmentByInterviewer

	}
	if builder.configFlag {
		req.Config = builder.config
	}
	return req
}

type InterviewAppointmentConfigContent struct {
	InterviewType *int `json:"interview_type,omitempty"` // 面试类型

	TalentTimezoneCode *string `json:"talent_timezone_code,omitempty"` // 时区

	ContactUserId *string `json:"contact_user_id,omitempty"` // 联系人id

	ContactMobile *string `json:"contact_mobile,omitempty"` // 联系人电话

	ContactEmail *string `json:"contact_email,omitempty"` // 联系人邮箱

	AddressId *string `json:"address_id,omitempty"` // 地址id

	VideoType *int `json:"video_type,omitempty"` // 地址id

	Cc []string `json:"cc,omitempty"` // 抄送人id lsit

	Remark *string `json:"remark,omitempty"` // 备注

	InterviewNotificationTemplateId *string `json:"interview_notification_template_id,omitempty"` // 面试通知模板

	AppointmentNotificationTemplateId *string `json:"appointment_notification_template_id,omitempty"` // 预约通知模板

	CancelInterviewNotificationTemplateId *string `json:"cancel_interview_notification_template_id,omitempty"` // 取消面试通知
}

type InterviewAppointmentConfigContentBuilder struct {
	interviewType     int // 面试类型
	interviewTypeFlag bool

	talentTimezoneCode     string // 时区
	talentTimezoneCodeFlag bool

	contactUserId     string // 联系人id
	contactUserIdFlag bool

	contactMobile     string // 联系人电话
	contactMobileFlag bool

	contactEmail     string // 联系人邮箱
	contactEmailFlag bool

	addressId     string // 地址id
	addressIdFlag bool

	videoType     int // 地址id
	videoTypeFlag bool

	cc     []string // 抄送人id lsit
	ccFlag bool

	remark     string // 备注
	remarkFlag bool

	interviewNotificationTemplateId     string // 面试通知模板
	interviewNotificationTemplateIdFlag bool

	appointmentNotificationTemplateId     string // 预约通知模板
	appointmentNotificationTemplateIdFlag bool

	cancelInterviewNotificationTemplateId     string // 取消面试通知
	cancelInterviewNotificationTemplateIdFlag bool
}

func NewInterviewAppointmentConfigContentBuilder() *InterviewAppointmentConfigContentBuilder {
	builder := &InterviewAppointmentConfigContentBuilder{}
	return builder
}

// 面试类型
//
// 示例值：1
func (builder *InterviewAppointmentConfigContentBuilder) InterviewType(interviewType int) *InterviewAppointmentConfigContentBuilder {
	builder.interviewType = interviewType
	builder.interviewTypeFlag = true
	return builder
}

// 时区
//
// 示例值：Asia/Shanghai
func (builder *InterviewAppointmentConfigContentBuilder) TalentTimezoneCode(talentTimezoneCode string) *InterviewAppointmentConfigContentBuilder {
	builder.talentTimezoneCode = talentTimezoneCode
	builder.talentTimezoneCodeFlag = true
	return builder
}

// 联系人id
//
// 示例值：ou_c99c5f35d542efc7ee492afe11af19ef
func (builder *InterviewAppointmentConfigContentBuilder) ContactUserId(contactUserId string) *InterviewAppointmentConfigContentBuilder {
	builder.contactUserId = contactUserId
	builder.contactUserIdFlag = true
	return builder
}

// 联系人电话
//
// 示例值：151********
func (builder *InterviewAppointmentConfigContentBuilder) ContactMobile(contactMobile string) *InterviewAppointmentConfigContentBuilder {
	builder.contactMobile = contactMobile
	builder.contactMobileFlag = true
	return builder
}

// 联系人邮箱
//
// 示例值：test@email
func (builder *InterviewAppointmentConfigContentBuilder) ContactEmail(contactEmail string) *InterviewAppointmentConfigContentBuilder {
	builder.contactEmail = contactEmail
	builder.contactEmailFlag = true
	return builder
}

// 地址id
//
// 示例值：6960663240925956576
func (builder *InterviewAppointmentConfigContentBuilder) AddressId(addressId string) *InterviewAppointmentConfigContentBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 地址id
//
// 示例值：1
func (builder *InterviewAppointmentConfigContentBuilder) VideoType(videoType int) *InterviewAppointmentConfigContentBuilder {
	builder.videoType = videoType
	builder.videoTypeFlag = true
	return builder
}

// 抄送人id lsit
//
// 示例值：ou_c99c5f35d542efc7ee492afe11af19ef
func (builder *InterviewAppointmentConfigContentBuilder) Cc(cc []string) *InterviewAppointmentConfigContentBuilder {
	builder.cc = cc
	builder.ccFlag = true
	return builder
}

// 备注
//
// 示例值：备注
func (builder *InterviewAppointmentConfigContentBuilder) Remark(remark string) *InterviewAppointmentConfigContentBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 面试通知模板
//
// 示例值：6960663240925956573
func (builder *InterviewAppointmentConfigContentBuilder) InterviewNotificationTemplateId(interviewNotificationTemplateId string) *InterviewAppointmentConfigContentBuilder {
	builder.interviewNotificationTemplateId = interviewNotificationTemplateId
	builder.interviewNotificationTemplateIdFlag = true
	return builder
}

// 预约通知模板
//
// 示例值：6960663240925956573
func (builder *InterviewAppointmentConfigContentBuilder) AppointmentNotificationTemplateId(appointmentNotificationTemplateId string) *InterviewAppointmentConfigContentBuilder {
	builder.appointmentNotificationTemplateId = appointmentNotificationTemplateId
	builder.appointmentNotificationTemplateIdFlag = true
	return builder
}

// 取消面试通知
//
// 示例值：6960663240925956573
func (builder *InterviewAppointmentConfigContentBuilder) CancelInterviewNotificationTemplateId(cancelInterviewNotificationTemplateId string) *InterviewAppointmentConfigContentBuilder {
	builder.cancelInterviewNotificationTemplateId = cancelInterviewNotificationTemplateId
	builder.cancelInterviewNotificationTemplateIdFlag = true
	return builder
}

func (builder *InterviewAppointmentConfigContentBuilder) Build() *InterviewAppointmentConfigContent {
	req := &InterviewAppointmentConfigContent{}
	if builder.interviewTypeFlag {
		req.InterviewType = &builder.interviewType

	}
	if builder.talentTimezoneCodeFlag {
		req.TalentTimezoneCode = &builder.talentTimezoneCode

	}
	if builder.contactUserIdFlag {
		req.ContactUserId = &builder.contactUserId

	}
	if builder.contactMobileFlag {
		req.ContactMobile = &builder.contactMobile

	}
	if builder.contactEmailFlag {
		req.ContactEmail = &builder.contactEmail

	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId

	}
	if builder.videoTypeFlag {
		req.VideoType = &builder.videoType

	}
	if builder.ccFlag {
		req.Cc = builder.cc
	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.interviewNotificationTemplateIdFlag {
		req.InterviewNotificationTemplateId = &builder.interviewNotificationTemplateId

	}
	if builder.appointmentNotificationTemplateIdFlag {
		req.AppointmentNotificationTemplateId = &builder.appointmentNotificationTemplateId

	}
	if builder.cancelInterviewNotificationTemplateIdFlag {
		req.CancelInterviewNotificationTemplateId = &builder.cancelInterviewNotificationTemplateId

	}
	return req
}

type InterviewAssessmentDimension struct {
	Id *string `json:"id,omitempty"` // 题目 ID

	Name *I18n `json:"name,omitempty"` // 题目名称

	Description *I18n `json:"description,omitempty"` // 题目描述

	Enabled *bool `json:"enabled,omitempty"` // 是否启用

	Seq *int `json:"seq,omitempty"` // 题目排序

	Required *bool `json:"required,omitempty"` // 是否必填

	DimensionType *int `json:"dimension_type,omitempty"` // 题目类型

	Args *InterviewAssessmentDimensionArgs `json:"args,omitempty"` // 选项信息，仅当题目类型为单选题、多选题时有值
}

type InterviewAssessmentDimensionBuilder struct {
	id     string // 题目 ID
	idFlag bool

	name     *I18n // 题目名称
	nameFlag bool

	description     *I18n // 题目描述
	descriptionFlag bool

	enabled     bool // 是否启用
	enabledFlag bool

	seq     int // 题目排序
	seqFlag bool

	required     bool // 是否必填
	requiredFlag bool

	dimensionType     int // 题目类型
	dimensionTypeFlag bool

	args     *InterviewAssessmentDimensionArgs // 选项信息，仅当题目类型为单选题、多选题时有值
	argsFlag bool
}

func NewInterviewAssessmentDimensionBuilder() *InterviewAssessmentDimensionBuilder {
	builder := &InterviewAssessmentDimensionBuilder{}
	return builder
}

// 题目 ID
//
// 示例值：6949805467799537964
func (builder *InterviewAssessmentDimensionBuilder) Id(id string) *InterviewAssessmentDimensionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 题目名称
//
// 示例值：
func (builder *InterviewAssessmentDimensionBuilder) Name(name *I18n) *InterviewAssessmentDimensionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 题目描述
//
// 示例值：
func (builder *InterviewAssessmentDimensionBuilder) Description(description *I18n) *InterviewAssessmentDimensionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 是否启用
//
// 示例值：true
func (builder *InterviewAssessmentDimensionBuilder) Enabled(enabled bool) *InterviewAssessmentDimensionBuilder {
	builder.enabled = enabled
	builder.enabledFlag = true
	return builder
}

// 题目排序
//
// 示例值：1
func (builder *InterviewAssessmentDimensionBuilder) Seq(seq int) *InterviewAssessmentDimensionBuilder {
	builder.seq = seq
	builder.seqFlag = true
	return builder
}

// 是否必填
//
// 示例值：true
func (builder *InterviewAssessmentDimensionBuilder) Required(required bool) *InterviewAssessmentDimensionBuilder {
	builder.required = required
	builder.requiredFlag = true
	return builder
}

// 题目类型
//
// 示例值：1
func (builder *InterviewAssessmentDimensionBuilder) DimensionType(dimensionType int) *InterviewAssessmentDimensionBuilder {
	builder.dimensionType = dimensionType
	builder.dimensionTypeFlag = true
	return builder
}

// 选项信息，仅当题目类型为单选题、多选题时有值
//
// 示例值：
func (builder *InterviewAssessmentDimensionBuilder) Args(args *InterviewAssessmentDimensionArgs) *InterviewAssessmentDimensionBuilder {
	builder.args = args
	builder.argsFlag = true
	return builder
}

func (builder *InterviewAssessmentDimensionBuilder) Build() *InterviewAssessmentDimension {
	req := &InterviewAssessmentDimension{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.enabledFlag {
		req.Enabled = &builder.enabled

	}
	if builder.seqFlag {
		req.Seq = &builder.seq

	}
	if builder.requiredFlag {
		req.Required = &builder.required

	}
	if builder.dimensionTypeFlag {
		req.DimensionType = &builder.dimensionType

	}
	if builder.argsFlag {
		req.Args = builder.args
	}
	return req
}

type InterviewAssessmentDimensionArgs struct {
	ScoreList []*InterviewAssessmentDimensionArgsScore `json:"score_list,omitempty"` // 选项列表
}

type InterviewAssessmentDimensionArgsBuilder struct {
	scoreList     []*InterviewAssessmentDimensionArgsScore // 选项列表
	scoreListFlag bool
}

func NewInterviewAssessmentDimensionArgsBuilder() *InterviewAssessmentDimensionArgsBuilder {
	builder := &InterviewAssessmentDimensionArgsBuilder{}
	return builder
}

// 选项列表
//
// 示例值：
func (builder *InterviewAssessmentDimensionArgsBuilder) ScoreList(scoreList []*InterviewAssessmentDimensionArgsScore) *InterviewAssessmentDimensionArgsBuilder {
	builder.scoreList = scoreList
	builder.scoreListFlag = true
	return builder
}

func (builder *InterviewAssessmentDimensionArgsBuilder) Build() *InterviewAssessmentDimensionArgs {
	req := &InterviewAssessmentDimensionArgs{}
	if builder.scoreListFlag {
		req.ScoreList = builder.scoreList
	}
	return req
}

type InterviewAssessmentDimensionArgsScore struct {
	Id *string `json:"id,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称

	Description *I18n `json:"description,omitempty"` // 选项描述

	Enabled *bool `json:"enabled,omitempty"` // 是否启用
}

type InterviewAssessmentDimensionArgsScoreBuilder struct {
	id     string // 选项 ID
	idFlag bool

	name     *I18n // 选项名称
	nameFlag bool

	description     *I18n // 选项描述
	descriptionFlag bool

	enabled     bool // 是否启用
	enabledFlag bool
}

func NewInterviewAssessmentDimensionArgsScoreBuilder() *InterviewAssessmentDimensionArgsScoreBuilder {
	builder := &InterviewAssessmentDimensionArgsScoreBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：6949805467799537964
func (builder *InterviewAssessmentDimensionArgsScoreBuilder) Id(id string) *InterviewAssessmentDimensionArgsScoreBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *InterviewAssessmentDimensionArgsScoreBuilder) Name(name *I18n) *InterviewAssessmentDimensionArgsScoreBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项描述
//
// 示例值：
func (builder *InterviewAssessmentDimensionArgsScoreBuilder) Description(description *I18n) *InterviewAssessmentDimensionArgsScoreBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 是否启用
//
// 示例值：true
func (builder *InterviewAssessmentDimensionArgsScoreBuilder) Enabled(enabled bool) *InterviewAssessmentDimensionArgsScoreBuilder {
	builder.enabled = enabled
	builder.enabledFlag = true
	return builder
}

func (builder *InterviewAssessmentDimensionArgsScoreBuilder) Build() *InterviewAssessmentDimensionArgsScore {
	req := &InterviewAssessmentDimensionArgsScore{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.enabledFlag {
		req.Enabled = &builder.enabled

	}
	return req
}

type InterviewAssessmentTemplate struct {
	Id *string `json:"id,omitempty"` // 面试评价表 ID

	Name *I18n `json:"name,omitempty"` // 面试评价表名称

	Args *InterviewAssessmentTemplateArgs `json:"args,omitempty"` // 面试评价表题目
}

type InterviewAssessmentTemplateBuilder struct {
	id     string // 面试评价表 ID
	idFlag bool

	name     *I18n // 面试评价表名称
	nameFlag bool

	args     *InterviewAssessmentTemplateArgs // 面试评价表题目
	argsFlag bool
}

func NewInterviewAssessmentTemplateBuilder() *InterviewAssessmentTemplateBuilder {
	builder := &InterviewAssessmentTemplateBuilder{}
	return builder
}

// 面试评价表 ID
//
// 示例值：6949805467799537964
func (builder *InterviewAssessmentTemplateBuilder) Id(id string) *InterviewAssessmentTemplateBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试评价表名称
//
// 示例值：
func (builder *InterviewAssessmentTemplateBuilder) Name(name *I18n) *InterviewAssessmentTemplateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 面试评价表题目
//
// 示例值：
func (builder *InterviewAssessmentTemplateBuilder) Args(args *InterviewAssessmentTemplateArgs) *InterviewAssessmentTemplateBuilder {
	builder.args = args
	builder.argsFlag = true
	return builder
}

func (builder *InterviewAssessmentTemplateBuilder) Build() *InterviewAssessmentTemplate {
	req := &InterviewAssessmentTemplate{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.argsFlag {
		req.Args = builder.args
	}
	return req
}

type InterviewAssessmentTemplateArgs struct {
	ConclusionDimension *InterviewAssessmentDimension `json:"conclusion_dimension,omitempty"` // 结论题

	ScoreDimension *InterviewAssessmentDimension `json:"score_dimension,omitempty"` // 得分题

	ContentDimension *InterviewAssessmentDimension `json:"content_dimension,omitempty"` // 记录题

	CustomDimensionList []*InterviewAssessmentDimension `json:"custom_dimension_list,omitempty"` // 自定义题目
}

type InterviewAssessmentTemplateArgsBuilder struct {
	conclusionDimension     *InterviewAssessmentDimension // 结论题
	conclusionDimensionFlag bool

	scoreDimension     *InterviewAssessmentDimension // 得分题
	scoreDimensionFlag bool

	contentDimension     *InterviewAssessmentDimension // 记录题
	contentDimensionFlag bool

	customDimensionList     []*InterviewAssessmentDimension // 自定义题目
	customDimensionListFlag bool
}

func NewInterviewAssessmentTemplateArgsBuilder() *InterviewAssessmentTemplateArgsBuilder {
	builder := &InterviewAssessmentTemplateArgsBuilder{}
	return builder
}

// 结论题
//
// 示例值：
func (builder *InterviewAssessmentTemplateArgsBuilder) ConclusionDimension(conclusionDimension *InterviewAssessmentDimension) *InterviewAssessmentTemplateArgsBuilder {
	builder.conclusionDimension = conclusionDimension
	builder.conclusionDimensionFlag = true
	return builder
}

// 得分题
//
// 示例值：
func (builder *InterviewAssessmentTemplateArgsBuilder) ScoreDimension(scoreDimension *InterviewAssessmentDimension) *InterviewAssessmentTemplateArgsBuilder {
	builder.scoreDimension = scoreDimension
	builder.scoreDimensionFlag = true
	return builder
}

// 记录题
//
// 示例值：
func (builder *InterviewAssessmentTemplateArgsBuilder) ContentDimension(contentDimension *InterviewAssessmentDimension) *InterviewAssessmentTemplateArgsBuilder {
	builder.contentDimension = contentDimension
	builder.contentDimensionFlag = true
	return builder
}

// 自定义题目
//
// 示例值：
func (builder *InterviewAssessmentTemplateArgsBuilder) CustomDimensionList(customDimensionList []*InterviewAssessmentDimension) *InterviewAssessmentTemplateArgsBuilder {
	builder.customDimensionList = customDimensionList
	builder.customDimensionListFlag = true
	return builder
}

func (builder *InterviewAssessmentTemplateArgsBuilder) Build() *InterviewAssessmentTemplateArgs {
	req := &InterviewAssessmentTemplateArgs{}
	if builder.conclusionDimensionFlag {
		req.ConclusionDimension = builder.conclusionDimension
	}
	if builder.scoreDimensionFlag {
		req.ScoreDimension = builder.scoreDimension
	}
	if builder.contentDimensionFlag {
		req.ContentDimension = builder.contentDimension
	}
	if builder.customDimensionListFlag {
		req.CustomDimensionList = builder.customDimensionList
	}
	return req
}

type InterviewAttachment struct {
	FileId *string `json:"file_id,omitempty"` // 附件 ID

	FileName *string `json:"file_name,omitempty"` // 附件名称

	ContentType *string `json:"content_type,omitempty"` // 附件类型

	CreateTime *string `json:"create_time,omitempty"` // 附件创建时间(ms)
}

type InterviewAttachmentBuilder struct {
	fileId     string // 附件 ID
	fileIdFlag bool

	fileName     string // 附件名称
	fileNameFlag bool

	contentType     string // 附件类型
	contentTypeFlag bool

	createTime     string // 附件创建时间(ms)
	createTimeFlag bool
}

func NewInterviewAttachmentBuilder() *InterviewAttachmentBuilder {
	builder := &InterviewAttachmentBuilder{}
	return builder
}

// 附件 ID
//
// 示例值：7140517838785481004
func (builder *InterviewAttachmentBuilder) FileId(fileId string) *InterviewAttachmentBuilder {
	builder.fileId = fileId
	builder.fileIdFlag = true
	return builder
}

// 附件名称
//
// 示例值：1.13测试1的面试记录.pdf
func (builder *InterviewAttachmentBuilder) FileName(fileName string) *InterviewAttachmentBuilder {
	builder.fileName = fileName
	builder.fileNameFlag = true
	return builder
}

// 附件类型
//
// 示例值：application/pdf
func (builder *InterviewAttachmentBuilder) ContentType(contentType string) *InterviewAttachmentBuilder {
	builder.contentType = contentType
	builder.contentTypeFlag = true
	return builder
}

// 附件创建时间(ms)
//
// 示例值：1710399930151
func (builder *InterviewAttachmentBuilder) CreateTime(createTime string) *InterviewAttachmentBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *InterviewAttachmentBuilder) Build() *InterviewAttachment {
	req := &InterviewAttachment{}
	if builder.fileIdFlag {
		req.FileId = &builder.fileId

	}
	if builder.fileNameFlag {
		req.FileName = &builder.fileName

	}
	if builder.contentTypeFlag {
		req.ContentType = &builder.contentType

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type InterviewDimensionAssessment struct {
	Id *string `json:"id,omitempty"` // 题目评价 ID

	Name *I18n `json:"name,omitempty"` // 题目名称

	FullScore *int `json:"full_score,omitempty"` // 打分题总分，仅当题目类型为「打分题(单选)」、「打分题(填空)」时可用

	Content *string `json:"content,omitempty"` // 当题目类型为描述题时，从此取值

	DimensionId *string `json:"dimension_id,omitempty"` // 题目 ID

	DimensionScore *InterviewDimensionScore `json:"dimension_score,omitempty"` // 当题目类型为单选题时，从此取值

	DimensionScoreList []*InterviewDimensionScore `json:"dimension_score_list,omitempty"` // 当题目类型为多选题时，从此取值

	DimensionCustomScore *int `json:"dimension_custom_score,omitempty"` // 当维度评价方式为「打分题(填空)时」，从此取值

	AbilityList []*Ability `json:"ability_list,omitempty"` // 维度关联能力项

	QuestionList []*InterviewQuestion `json:"question_list,omitempty"` // 维度关联面试题

	DimensionType *int `json:"dimension_type,omitempty"` // 题目类型
}

type InterviewDimensionAssessmentBuilder struct {
	id     string // 题目评价 ID
	idFlag bool

	name     *I18n // 题目名称
	nameFlag bool

	fullScore     int // 打分题总分，仅当题目类型为「打分题(单选)」、「打分题(填空)」时可用
	fullScoreFlag bool

	content     string // 当题目类型为描述题时，从此取值
	contentFlag bool

	dimensionId     string // 题目 ID
	dimensionIdFlag bool

	dimensionScore     *InterviewDimensionScore // 当题目类型为单选题时，从此取值
	dimensionScoreFlag bool

	dimensionScoreList     []*InterviewDimensionScore // 当题目类型为多选题时，从此取值
	dimensionScoreListFlag bool

	dimensionCustomScore     int // 当维度评价方式为「打分题(填空)时」，从此取值
	dimensionCustomScoreFlag bool

	abilityList     []*Ability // 维度关联能力项
	abilityListFlag bool

	questionList     []*InterviewQuestion // 维度关联面试题
	questionListFlag bool

	dimensionType     int // 题目类型
	dimensionTypeFlag bool
}

func NewInterviewDimensionAssessmentBuilder() *InterviewDimensionAssessmentBuilder {
	builder := &InterviewDimensionAssessmentBuilder{}
	return builder
}

// 题目评价 ID
//
// 示例值：6949805467799537964
func (builder *InterviewDimensionAssessmentBuilder) Id(id string) *InterviewDimensionAssessmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 题目名称
//
// 示例值：
func (builder *InterviewDimensionAssessmentBuilder) Name(name *I18n) *InterviewDimensionAssessmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 打分题总分，仅当题目类型为「打分题(单选)」、「打分题(填空)」时可用
//
// 示例值：100
func (builder *InterviewDimensionAssessmentBuilder) FullScore(fullScore int) *InterviewDimensionAssessmentBuilder {
	builder.fullScore = fullScore
	builder.fullScoreFlag = true
	return builder
}

// 当题目类型为描述题时，从此取值
//
// 示例值：这个候选人还不错
func (builder *InterviewDimensionAssessmentBuilder) Content(content string) *InterviewDimensionAssessmentBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 题目 ID
//
// 示例值：11111111
func (builder *InterviewDimensionAssessmentBuilder) DimensionId(dimensionId string) *InterviewDimensionAssessmentBuilder {
	builder.dimensionId = dimensionId
	builder.dimensionIdFlag = true
	return builder
}

// 当题目类型为单选题时，从此取值
//
// 示例值：
func (builder *InterviewDimensionAssessmentBuilder) DimensionScore(dimensionScore *InterviewDimensionScore) *InterviewDimensionAssessmentBuilder {
	builder.dimensionScore = dimensionScore
	builder.dimensionScoreFlag = true
	return builder
}

// 当题目类型为多选题时，从此取值
//
// 示例值：
func (builder *InterviewDimensionAssessmentBuilder) DimensionScoreList(dimensionScoreList []*InterviewDimensionScore) *InterviewDimensionAssessmentBuilder {
	builder.dimensionScoreList = dimensionScoreList
	builder.dimensionScoreListFlag = true
	return builder
}

// 当维度评价方式为「打分题(填空)时」，从此取值
//
// 示例值：10
func (builder *InterviewDimensionAssessmentBuilder) DimensionCustomScore(dimensionCustomScore int) *InterviewDimensionAssessmentBuilder {
	builder.dimensionCustomScore = dimensionCustomScore
	builder.dimensionCustomScoreFlag = true
	return builder
}

// 维度关联能力项
//
// 示例值：
func (builder *InterviewDimensionAssessmentBuilder) AbilityList(abilityList []*Ability) *InterviewDimensionAssessmentBuilder {
	builder.abilityList = abilityList
	builder.abilityListFlag = true
	return builder
}

// 维度关联面试题
//
// 示例值：
func (builder *InterviewDimensionAssessmentBuilder) QuestionList(questionList []*InterviewQuestion) *InterviewDimensionAssessmentBuilder {
	builder.questionList = questionList
	builder.questionListFlag = true
	return builder
}

// 题目类型
//
// 示例值：1
func (builder *InterviewDimensionAssessmentBuilder) DimensionType(dimensionType int) *InterviewDimensionAssessmentBuilder {
	builder.dimensionType = dimensionType
	builder.dimensionTypeFlag = true
	return builder
}

func (builder *InterviewDimensionAssessmentBuilder) Build() *InterviewDimensionAssessment {
	req := &InterviewDimensionAssessment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.fullScoreFlag {
		req.FullScore = &builder.fullScore

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.dimensionIdFlag {
		req.DimensionId = &builder.dimensionId

	}
	if builder.dimensionScoreFlag {
		req.DimensionScore = builder.dimensionScore
	}
	if builder.dimensionScoreListFlag {
		req.DimensionScoreList = builder.dimensionScoreList
	}
	if builder.dimensionCustomScoreFlag {
		req.DimensionCustomScore = &builder.dimensionCustomScore

	}
	if builder.abilityListFlag {
		req.AbilityList = builder.abilityList
	}
	if builder.questionListFlag {
		req.QuestionList = builder.questionList
	}
	if builder.dimensionTypeFlag {
		req.DimensionType = &builder.dimensionType

	}
	return req
}

type InterviewDimensionOption struct {
	Id *string `json:"id,omitempty"` // 选项ID

	Name *I18n `json:"name,omitempty"` //

	Description *I18n `json:"description,omitempty"` //

	ScoreVal *int `json:"score_val,omitempty"` // 选项分数值

	AliasName *I18n `json:"alias_name,omitempty"` // 选项全称
}

type InterviewDimensionOptionBuilder struct {
	id     string // 选项ID
	idFlag bool

	name     *I18n //
	nameFlag bool

	description     *I18n //
	descriptionFlag bool

	scoreVal     int // 选项分数值
	scoreValFlag bool

	aliasName     *I18n // 选项全称
	aliasNameFlag bool
}

func NewInterviewDimensionOptionBuilder() *InterviewDimensionOptionBuilder {
	builder := &InterviewDimensionOptionBuilder{}
	return builder
}

// 选项ID
//
// 示例值：6930815272790114324
func (builder *InterviewDimensionOptionBuilder) Id(id string) *InterviewDimensionOptionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

//
//
// 示例值：
func (builder *InterviewDimensionOptionBuilder) Name(name *I18n) *InterviewDimensionOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

//
//
// 示例值：
func (builder *InterviewDimensionOptionBuilder) Description(description *I18n) *InterviewDimensionOptionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 选项分数值
//
// 示例值：1
func (builder *InterviewDimensionOptionBuilder) ScoreVal(scoreVal int) *InterviewDimensionOptionBuilder {
	builder.scoreVal = scoreVal
	builder.scoreValFlag = true
	return builder
}

// 选项全称
//
// 示例值：
func (builder *InterviewDimensionOptionBuilder) AliasName(aliasName *I18n) *InterviewDimensionOptionBuilder {
	builder.aliasName = aliasName
	builder.aliasNameFlag = true
	return builder
}

func (builder *InterviewDimensionOptionBuilder) Build() *InterviewDimensionOption {
	req := &InterviewDimensionOption{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.scoreValFlag {
		req.ScoreVal = &builder.scoreVal

	}
	if builder.aliasNameFlag {
		req.AliasName = builder.aliasName
	}
	return req
}

type InterviewDimensionScore struct {
	Id *string `json:"id,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称

	ScoreVal *int `json:"score_val,omitempty"` // 选项对应的分数，维度评价为方式「打分题(单选)」时关注该字段
}

type InterviewDimensionScoreBuilder struct {
	id     string // 选项 ID
	idFlag bool

	name     *I18n // 选项名称
	nameFlag bool

	scoreVal     int // 选项对应的分数，维度评价为方式「打分题(单选)」时关注该字段
	scoreValFlag bool
}

func NewInterviewDimensionScoreBuilder() *InterviewDimensionScoreBuilder {
	builder := &InterviewDimensionScoreBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：6949805467799537964
func (builder *InterviewDimensionScoreBuilder) Id(id string) *InterviewDimensionScoreBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *InterviewDimensionScoreBuilder) Name(name *I18n) *InterviewDimensionScoreBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项对应的分数，维度评价为方式「打分题(单选)」时关注该字段
//
// 示例值：10
func (builder *InterviewDimensionScoreBuilder) ScoreVal(scoreVal int) *InterviewDimensionScoreBuilder {
	builder.scoreVal = scoreVal
	builder.scoreValFlag = true
	return builder
}

func (builder *InterviewDimensionScoreBuilder) Build() *InterviewDimensionScore {
	req := &InterviewDimensionScore{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.scoreValFlag {
		req.ScoreVal = &builder.scoreVal

	}
	return req
}

type InterviewExtend struct {
	Id *string `json:"id,omitempty"` // 面试 ID

	BeginTime *int64 `json:"begin_time,omitempty"` // 面试开始时间（ms）

	EndTime *int64 `json:"end_time,omitempty"` // 面试结束时间（ms）

	Round *int `json:"round,omitempty"` // 面试轮次

	InterviewRecordList []*InterviewRecord `json:"interview_record_list,omitempty"` // 面试记录信息

	FeedbackSubmitTime *int64 `json:"feedback_submit_time,omitempty"` // 面试评价提交时间

	StageId *string `json:"stage_id,omitempty"` // 面试关联的投递阶段

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	Stage *IdNameObject `json:"stage,omitempty"` // 阶段信息

	Creator *IdNameObject `json:"creator,omitempty"` // 创建人

	BizCreateTime *int64 `json:"biz_create_time,omitempty"` // 创建时间（ms）

	BizModifyTime *int64 `json:"biz_modify_time,omitempty"` // 最近更新时间（ms）

	InterviewRoundSummary *int `json:"interview_round_summary,omitempty"` // 面试状态

	InterviewArrangementId *string `json:"interview_arrangement_id,omitempty"` // 面试安排 ID

	InterviewType *int `json:"interview_type,omitempty"` // 面试类型

	TalentTimeZone *CodeNameObject `json:"talent_time_zone,omitempty"` // 候选人时区

	ContactUser *IdNameObject `json:"contact_user,omitempty"` // 面试联系人

	ContactMobile *string `json:"contact_mobile,omitempty"` // 面试联系人电话

	Remark *string `json:"remark,omitempty"` // 备注

	Address *InterviewAddress `json:"address,omitempty"` // 面试地点

	VideoType *int `json:"video_type,omitempty"` // 视频面试工具

	ArrangementStatus *int `json:"arrangement_status,omitempty"` // 当安排类型为集中面试时，此值表示集中面试的安排状态

	ArrangementType *int `json:"arrangement_type,omitempty"` // 安排类型

	ArrangementAppointmentKind *int `json:"arrangement_appointment_kind,omitempty"` // 安排方式（是否使用自助约面）

	MeetingRoomList []*InterviewMeetingRoom `json:"meeting_room_list,omitempty"` // 面试会议室

	InterviewRoundType *IdNameObject `json:"interview_round_type,omitempty"` // 面试轮次类型
}

type InterviewExtendBuilder struct {
	id     string // 面试 ID
	idFlag bool

	beginTime     int64 // 面试开始时间（ms）
	beginTimeFlag bool

	endTime     int64 // 面试结束时间（ms）
	endTimeFlag bool

	round     int // 面试轮次
	roundFlag bool

	interviewRecordList     []*InterviewRecord // 面试记录信息
	interviewRecordListFlag bool

	feedbackSubmitTime     int64 // 面试评价提交时间
	feedbackSubmitTimeFlag bool

	stageId     string // 面试关联的投递阶段
	stageIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	stage     *IdNameObject // 阶段信息
	stageFlag bool

	creator     *IdNameObject // 创建人
	creatorFlag bool

	bizCreateTime     int64 // 创建时间（ms）
	bizCreateTimeFlag bool

	bizModifyTime     int64 // 最近更新时间（ms）
	bizModifyTimeFlag bool

	interviewRoundSummary     int // 面试状态
	interviewRoundSummaryFlag bool

	interviewArrangementId     string // 面试安排 ID
	interviewArrangementIdFlag bool

	interviewType     int // 面试类型
	interviewTypeFlag bool

	talentTimeZone     *CodeNameObject // 候选人时区
	talentTimeZoneFlag bool

	contactUser     *IdNameObject // 面试联系人
	contactUserFlag bool

	contactMobile     string // 面试联系人电话
	contactMobileFlag bool

	remark     string // 备注
	remarkFlag bool

	address     *InterviewAddress // 面试地点
	addressFlag bool

	videoType     int // 视频面试工具
	videoTypeFlag bool

	arrangementStatus     int // 当安排类型为集中面试时，此值表示集中面试的安排状态
	arrangementStatusFlag bool

	arrangementType     int // 安排类型
	arrangementTypeFlag bool

	arrangementAppointmentKind     int // 安排方式（是否使用自助约面）
	arrangementAppointmentKindFlag bool

	meetingRoomList     []*InterviewMeetingRoom // 面试会议室
	meetingRoomListFlag bool

	interviewRoundType     *IdNameObject // 面试轮次类型
	interviewRoundTypeFlag bool
}

func NewInterviewExtendBuilder() *InterviewExtendBuilder {
	builder := &InterviewExtendBuilder{}
	return builder
}

// 面试 ID
//
// 示例值：6949805467799537964
func (builder *InterviewExtendBuilder) Id(id string) *InterviewExtendBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试开始时间（ms）
//
// 示例值：1618899376474
func (builder *InterviewExtendBuilder) BeginTime(beginTime int64) *InterviewExtendBuilder {
	builder.beginTime = beginTime
	builder.beginTimeFlag = true
	return builder
}

// 面试结束时间（ms）
//
// 示例值：1618999376474
func (builder *InterviewExtendBuilder) EndTime(endTime int64) *InterviewExtendBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 面试轮次
//
// 示例值：0
func (builder *InterviewExtendBuilder) Round(round int) *InterviewExtendBuilder {
	builder.round = round
	builder.roundFlag = true
	return builder
}

// 面试记录信息
//
// 示例值：
func (builder *InterviewExtendBuilder) InterviewRecordList(interviewRecordList []*InterviewRecord) *InterviewExtendBuilder {
	builder.interviewRecordList = interviewRecordList
	builder.interviewRecordListFlag = true
	return builder
}

// 面试评价提交时间
//
// 示例值：1659318415000
func (builder *InterviewExtendBuilder) FeedbackSubmitTime(feedbackSubmitTime int64) *InterviewExtendBuilder {
	builder.feedbackSubmitTime = feedbackSubmitTime
	builder.feedbackSubmitTimeFlag = true
	return builder
}

// 面试关联的投递阶段
//
// 示例值：634324253532232
func (builder *InterviewExtendBuilder) StageId(stageId string) *InterviewExtendBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：634324253532232
func (builder *InterviewExtendBuilder) ApplicationId(applicationId string) *InterviewExtendBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 阶段信息
//
// 示例值：
func (builder *InterviewExtendBuilder) Stage(stage *IdNameObject) *InterviewExtendBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 创建人
//
// 示例值：
func (builder *InterviewExtendBuilder) Creator(creator *IdNameObject) *InterviewExtendBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// 创建时间（ms）
//
// 示例值：1618999376474
func (builder *InterviewExtendBuilder) BizCreateTime(bizCreateTime int64) *InterviewExtendBuilder {
	builder.bizCreateTime = bizCreateTime
	builder.bizCreateTimeFlag = true
	return builder
}

// 最近更新时间（ms）
//
// 示例值：1618999376474
func (builder *InterviewExtendBuilder) BizModifyTime(bizModifyTime int64) *InterviewExtendBuilder {
	builder.bizModifyTime = bizModifyTime
	builder.bizModifyTimeFlag = true
	return builder
}

// 面试状态
//
// 示例值：1
func (builder *InterviewExtendBuilder) InterviewRoundSummary(interviewRoundSummary int) *InterviewExtendBuilder {
	builder.interviewRoundSummary = interviewRoundSummary
	builder.interviewRoundSummaryFlag = true
	return builder
}

// 面试安排 ID
//
// 示例值：1111111
func (builder *InterviewExtendBuilder) InterviewArrangementId(interviewArrangementId string) *InterviewExtendBuilder {
	builder.interviewArrangementId = interviewArrangementId
	builder.interviewArrangementIdFlag = true
	return builder
}

// 面试类型
//
// 示例值：1
func (builder *InterviewExtendBuilder) InterviewType(interviewType int) *InterviewExtendBuilder {
	builder.interviewType = interviewType
	builder.interviewTypeFlag = true
	return builder
}

// 候选人时区
//
// 示例值：
func (builder *InterviewExtendBuilder) TalentTimeZone(talentTimeZone *CodeNameObject) *InterviewExtendBuilder {
	builder.talentTimeZone = talentTimeZone
	builder.talentTimeZoneFlag = true
	return builder
}

// 面试联系人
//
// 示例值：
func (builder *InterviewExtendBuilder) ContactUser(contactUser *IdNameObject) *InterviewExtendBuilder {
	builder.contactUser = contactUser
	builder.contactUserFlag = true
	return builder
}

// 面试联系人电话
//
// 示例值：13333333333
func (builder *InterviewExtendBuilder) ContactMobile(contactMobile string) *InterviewExtendBuilder {
	builder.contactMobile = contactMobile
	builder.contactMobileFlag = true
	return builder
}

// 备注
//
// 示例值：test
func (builder *InterviewExtendBuilder) Remark(remark string) *InterviewExtendBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 面试地点
//
// 示例值：
func (builder *InterviewExtendBuilder) Address(address *InterviewAddress) *InterviewExtendBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 视频面试工具
//
// 示例值：1
func (builder *InterviewExtendBuilder) VideoType(videoType int) *InterviewExtendBuilder {
	builder.videoType = videoType
	builder.videoTypeFlag = true
	return builder
}

// 当安排类型为集中面试时，此值表示集中面试的安排状态
//
// 示例值：1
func (builder *InterviewExtendBuilder) ArrangementStatus(arrangementStatus int) *InterviewExtendBuilder {
	builder.arrangementStatus = arrangementStatus
	builder.arrangementStatusFlag = true
	return builder
}

// 安排类型
//
// 示例值：1
func (builder *InterviewExtendBuilder) ArrangementType(arrangementType int) *InterviewExtendBuilder {
	builder.arrangementType = arrangementType
	builder.arrangementTypeFlag = true
	return builder
}

// 安排方式（是否使用自助约面）
//
// 示例值：1
func (builder *InterviewExtendBuilder) ArrangementAppointmentKind(arrangementAppointmentKind int) *InterviewExtendBuilder {
	builder.arrangementAppointmentKind = arrangementAppointmentKind
	builder.arrangementAppointmentKindFlag = true
	return builder
}

// 面试会议室
//
// 示例值：
func (builder *InterviewExtendBuilder) MeetingRoomList(meetingRoomList []*InterviewMeetingRoom) *InterviewExtendBuilder {
	builder.meetingRoomList = meetingRoomList
	builder.meetingRoomListFlag = true
	return builder
}

// 面试轮次类型
//
// 示例值：
func (builder *InterviewExtendBuilder) InterviewRoundType(interviewRoundType *IdNameObject) *InterviewExtendBuilder {
	builder.interviewRoundType = interviewRoundType
	builder.interviewRoundTypeFlag = true
	return builder
}

func (builder *InterviewExtendBuilder) Build() *InterviewExtend {
	req := &InterviewExtend{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.beginTimeFlag {
		req.BeginTime = &builder.beginTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.roundFlag {
		req.Round = &builder.round

	}
	if builder.interviewRecordListFlag {
		req.InterviewRecordList = builder.interviewRecordList
	}
	if builder.feedbackSubmitTimeFlag {
		req.FeedbackSubmitTime = &builder.feedbackSubmitTime

	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.stageFlag {
		req.Stage = builder.stage
	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	if builder.bizCreateTimeFlag {
		req.BizCreateTime = &builder.bizCreateTime

	}
	if builder.bizModifyTimeFlag {
		req.BizModifyTime = &builder.bizModifyTime

	}
	if builder.interviewRoundSummaryFlag {
		req.InterviewRoundSummary = &builder.interviewRoundSummary

	}
	if builder.interviewArrangementIdFlag {
		req.InterviewArrangementId = &builder.interviewArrangementId

	}
	if builder.interviewTypeFlag {
		req.InterviewType = &builder.interviewType

	}
	if builder.talentTimeZoneFlag {
		req.TalentTimeZone = builder.talentTimeZone
	}
	if builder.contactUserFlag {
		req.ContactUser = builder.contactUser
	}
	if builder.contactMobileFlag {
		req.ContactMobile = &builder.contactMobile

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.videoTypeFlag {
		req.VideoType = &builder.videoType

	}
	if builder.arrangementStatusFlag {
		req.ArrangementStatus = &builder.arrangementStatus

	}
	if builder.arrangementTypeFlag {
		req.ArrangementType = &builder.arrangementType

	}
	if builder.arrangementAppointmentKindFlag {
		req.ArrangementAppointmentKind = &builder.arrangementAppointmentKind

	}
	if builder.meetingRoomListFlag {
		req.MeetingRoomList = builder.meetingRoomList
	}
	if builder.interviewRoundTypeFlag {
		req.InterviewRoundType = builder.interviewRoundType
	}
	return req
}

type InterviewExtendV2 struct {
	Id *string `json:"id,omitempty"` // 面试 ID

	BeginTime *string `json:"begin_time,omitempty"` // 面试开始时间（ms）

	EndTime *string `json:"end_time,omitempty"` // 面试结束时间（ms）

	Round *int `json:"round,omitempty"` // 面试轮次（从0开始计数）

	InterviewRecordList []*InterviewRecordV2 `json:"interview_record_list,omitempty"` // 面试记录信息

	FeedbackSubmitTime *string `json:"feedback_submit_time,omitempty"` // 面试评价提交时间

	StageId *string `json:"stage_id,omitempty"` // 面试关联的投递阶段

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	Stage *IdNameObject `json:"stage,omitempty"` // 阶段信息

	Creator *IdNameObject `json:"creator,omitempty"` // 创建人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间戳（单位：毫秒）

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间戳（单位：毫秒）

	InterviewRoundSummary *int `json:"interview_round_summary,omitempty"` // 面试状态

	InterviewArrangementId *string `json:"interview_arrangement_id,omitempty"` // 面试安排 ID

	InterviewType *int `json:"interview_type,omitempty"` // 面试类型

	TalentTimeZone *CodeNameObject `json:"talent_time_zone,omitempty"` // 候选人时区

	ContactUser *IdNameObject `json:"contact_user,omitempty"` // 面试联系人

	ContactMobile *string `json:"contact_mobile,omitempty"` // 面试联系人电话

	Remark *string `json:"remark,omitempty"` // 备注

	Address *BaseAddressV2 `json:"address,omitempty"` // 面试地点

	VideoType *int `json:"video_type,omitempty"` // 视频面试工具

	ArrangementStatus *int `json:"arrangement_status,omitempty"` // 当安排类型为集中面试时，此值表示集中面试的安排状态

	ArrangementType *int `json:"arrangement_type,omitempty"` // 安排类型

	ArrangementAppointmentKind *int `json:"arrangement_appointment_kind,omitempty"` // 安排方式（是否使用自助约面）

	MeetingRoomList []*InterviewMeetingRoom `json:"meeting_room_list,omitempty"` // 面试会议室

	InterviewRoundType *IdNameObject `json:"interview_round_type,omitempty"` // 面试轮次类型
}

type InterviewExtendV2Builder struct {
	id     string // 面试 ID
	idFlag bool

	beginTime     string // 面试开始时间（ms）
	beginTimeFlag bool

	endTime     string // 面试结束时间（ms）
	endTimeFlag bool

	round     int // 面试轮次（从0开始计数）
	roundFlag bool

	interviewRecordList     []*InterviewRecordV2 // 面试记录信息
	interviewRecordListFlag bool

	feedbackSubmitTime     string // 面试评价提交时间
	feedbackSubmitTimeFlag bool

	stageId     string // 面试关联的投递阶段
	stageIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	stage     *IdNameObject // 阶段信息
	stageFlag bool

	creator     *IdNameObject // 创建人
	creatorFlag bool

	createTime     string // 创建时间戳（单位：毫秒）
	createTimeFlag bool

	updateTime     string // 更新时间戳（单位：毫秒）
	updateTimeFlag bool

	interviewRoundSummary     int // 面试状态
	interviewRoundSummaryFlag bool

	interviewArrangementId     string // 面试安排 ID
	interviewArrangementIdFlag bool

	interviewType     int // 面试类型
	interviewTypeFlag bool

	talentTimeZone     *CodeNameObject // 候选人时区
	talentTimeZoneFlag bool

	contactUser     *IdNameObject // 面试联系人
	contactUserFlag bool

	contactMobile     string // 面试联系人电话
	contactMobileFlag bool

	remark     string // 备注
	remarkFlag bool

	address     *BaseAddressV2 // 面试地点
	addressFlag bool

	videoType     int // 视频面试工具
	videoTypeFlag bool

	arrangementStatus     int // 当安排类型为集中面试时，此值表示集中面试的安排状态
	arrangementStatusFlag bool

	arrangementType     int // 安排类型
	arrangementTypeFlag bool

	arrangementAppointmentKind     int // 安排方式（是否使用自助约面）
	arrangementAppointmentKindFlag bool

	meetingRoomList     []*InterviewMeetingRoom // 面试会议室
	meetingRoomListFlag bool

	interviewRoundType     *IdNameObject // 面试轮次类型
	interviewRoundTypeFlag bool
}

func NewInterviewExtendV2Builder() *InterviewExtendV2Builder {
	builder := &InterviewExtendV2Builder{}
	return builder
}

// 面试 ID
//
// 示例值：6949805467799537964
func (builder *InterviewExtendV2Builder) Id(id string) *InterviewExtendV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试开始时间（ms）
//
// 示例值：1618899376474
func (builder *InterviewExtendV2Builder) BeginTime(beginTime string) *InterviewExtendV2Builder {
	builder.beginTime = beginTime
	builder.beginTimeFlag = true
	return builder
}

// 面试结束时间（ms）
//
// 示例值：1618999376474
func (builder *InterviewExtendV2Builder) EndTime(endTime string) *InterviewExtendV2Builder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 面试轮次（从0开始计数）
//
// 示例值：0
func (builder *InterviewExtendV2Builder) Round(round int) *InterviewExtendV2Builder {
	builder.round = round
	builder.roundFlag = true
	return builder
}

// 面试记录信息
//
// 示例值：
func (builder *InterviewExtendV2Builder) InterviewRecordList(interviewRecordList []*InterviewRecordV2) *InterviewExtendV2Builder {
	builder.interviewRecordList = interviewRecordList
	builder.interviewRecordListFlag = true
	return builder
}

// 面试评价提交时间
//
// 示例值：1659318415000
func (builder *InterviewExtendV2Builder) FeedbackSubmitTime(feedbackSubmitTime string) *InterviewExtendV2Builder {
	builder.feedbackSubmitTime = feedbackSubmitTime
	builder.feedbackSubmitTimeFlag = true
	return builder
}

// 面试关联的投递阶段
//
// 示例值：634324253532232
func (builder *InterviewExtendV2Builder) StageId(stageId string) *InterviewExtendV2Builder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：634324253532232
func (builder *InterviewExtendV2Builder) ApplicationId(applicationId string) *InterviewExtendV2Builder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 阶段信息
//
// 示例值：
func (builder *InterviewExtendV2Builder) Stage(stage *IdNameObject) *InterviewExtendV2Builder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 创建人
//
// 示例值：
func (builder *InterviewExtendV2Builder) Creator(creator *IdNameObject) *InterviewExtendV2Builder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// 创建时间戳（单位：毫秒）
//
// 示例值：1618999376474
func (builder *InterviewExtendV2Builder) CreateTime(createTime string) *InterviewExtendV2Builder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间戳（单位：毫秒）
//
// 示例值：1618999376474
func (builder *InterviewExtendV2Builder) UpdateTime(updateTime string) *InterviewExtendV2Builder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 面试状态
//
// 示例值：2
func (builder *InterviewExtendV2Builder) InterviewRoundSummary(interviewRoundSummary int) *InterviewExtendV2Builder {
	builder.interviewRoundSummary = interviewRoundSummary
	builder.interviewRoundSummaryFlag = true
	return builder
}

// 面试安排 ID
//
// 示例值：1111111
func (builder *InterviewExtendV2Builder) InterviewArrangementId(interviewArrangementId string) *InterviewExtendV2Builder {
	builder.interviewArrangementId = interviewArrangementId
	builder.interviewArrangementIdFlag = true
	return builder
}

// 面试类型
//
// 示例值：1
func (builder *InterviewExtendV2Builder) InterviewType(interviewType int) *InterviewExtendV2Builder {
	builder.interviewType = interviewType
	builder.interviewTypeFlag = true
	return builder
}

// 候选人时区
//
// 示例值：
func (builder *InterviewExtendV2Builder) TalentTimeZone(talentTimeZone *CodeNameObject) *InterviewExtendV2Builder {
	builder.talentTimeZone = talentTimeZone
	builder.talentTimeZoneFlag = true
	return builder
}

// 面试联系人
//
// 示例值：
func (builder *InterviewExtendV2Builder) ContactUser(contactUser *IdNameObject) *InterviewExtendV2Builder {
	builder.contactUser = contactUser
	builder.contactUserFlag = true
	return builder
}

// 面试联系人电话
//
// 示例值：13333333333
func (builder *InterviewExtendV2Builder) ContactMobile(contactMobile string) *InterviewExtendV2Builder {
	builder.contactMobile = contactMobile
	builder.contactMobileFlag = true
	return builder
}

// 备注
//
// 示例值：test
func (builder *InterviewExtendV2Builder) Remark(remark string) *InterviewExtendV2Builder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 面试地点
//
// 示例值：
func (builder *InterviewExtendV2Builder) Address(address *BaseAddressV2) *InterviewExtendV2Builder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 视频面试工具
//
// 示例值：1
func (builder *InterviewExtendV2Builder) VideoType(videoType int) *InterviewExtendV2Builder {
	builder.videoType = videoType
	builder.videoTypeFlag = true
	return builder
}

// 当安排类型为集中面试时，此值表示集中面试的安排状态
//
// 示例值：1
func (builder *InterviewExtendV2Builder) ArrangementStatus(arrangementStatus int) *InterviewExtendV2Builder {
	builder.arrangementStatus = arrangementStatus
	builder.arrangementStatusFlag = true
	return builder
}

// 安排类型
//
// 示例值：1
func (builder *InterviewExtendV2Builder) ArrangementType(arrangementType int) *InterviewExtendV2Builder {
	builder.arrangementType = arrangementType
	builder.arrangementTypeFlag = true
	return builder
}

// 安排方式（是否使用自助约面）
//
// 示例值：1
func (builder *InterviewExtendV2Builder) ArrangementAppointmentKind(arrangementAppointmentKind int) *InterviewExtendV2Builder {
	builder.arrangementAppointmentKind = arrangementAppointmentKind
	builder.arrangementAppointmentKindFlag = true
	return builder
}

// 面试会议室
//
// 示例值：
func (builder *InterviewExtendV2Builder) MeetingRoomList(meetingRoomList []*InterviewMeetingRoom) *InterviewExtendV2Builder {
	builder.meetingRoomList = meetingRoomList
	builder.meetingRoomListFlag = true
	return builder
}

// 面试轮次类型
//
// 示例值：
func (builder *InterviewExtendV2Builder) InterviewRoundType(interviewRoundType *IdNameObject) *InterviewExtendV2Builder {
	builder.interviewRoundType = interviewRoundType
	builder.interviewRoundTypeFlag = true
	return builder
}

func (builder *InterviewExtendV2Builder) Build() *InterviewExtendV2 {
	req := &InterviewExtendV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.beginTimeFlag {
		req.BeginTime = &builder.beginTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.roundFlag {
		req.Round = &builder.round

	}
	if builder.interviewRecordListFlag {
		req.InterviewRecordList = builder.interviewRecordList
	}
	if builder.feedbackSubmitTimeFlag {
		req.FeedbackSubmitTime = &builder.feedbackSubmitTime

	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.stageFlag {
		req.Stage = builder.stage
	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.interviewRoundSummaryFlag {
		req.InterviewRoundSummary = &builder.interviewRoundSummary

	}
	if builder.interviewArrangementIdFlag {
		req.InterviewArrangementId = &builder.interviewArrangementId

	}
	if builder.interviewTypeFlag {
		req.InterviewType = &builder.interviewType

	}
	if builder.talentTimeZoneFlag {
		req.TalentTimeZone = builder.talentTimeZone
	}
	if builder.contactUserFlag {
		req.ContactUser = builder.contactUser
	}
	if builder.contactMobileFlag {
		req.ContactMobile = &builder.contactMobile

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.videoTypeFlag {
		req.VideoType = &builder.videoType

	}
	if builder.arrangementStatusFlag {
		req.ArrangementStatus = &builder.arrangementStatus

	}
	if builder.arrangementTypeFlag {
		req.ArrangementType = &builder.arrangementType

	}
	if builder.arrangementAppointmentKindFlag {
		req.ArrangementAppointmentKind = &builder.arrangementAppointmentKind

	}
	if builder.meetingRoomListFlag {
		req.MeetingRoomList = builder.meetingRoomList
	}
	if builder.interviewRoundTypeFlag {
		req.InterviewRoundType = builder.interviewRoundType
	}
	return req
}

type InterviewFeedbackForm struct {
	Id *string `json:"id,omitempty"` // 面试评价表ID

	Version *int `json:"version,omitempty"` // 面试评价表版本号

	Name *I18n `json:"name,omitempty"` // 面试评价表名称

	Type *int `json:"type,omitempty"` // 面试评价表类型

	ScoreCalculationConfig *ScoreCalculationConfig `json:"score_calculation_config,omitempty"` // 面试评价表打分计算配置（适用于打分评价表）

	Modules []*InterviewFeedbackFormModule `json:"modules,omitempty"` // 面试评价表模块列表
}

type InterviewFeedbackFormBuilder struct {
	id     string // 面试评价表ID
	idFlag bool

	version     int // 面试评价表版本号
	versionFlag bool

	name     *I18n // 面试评价表名称
	nameFlag bool

	type_    int // 面试评价表类型
	typeFlag bool

	scoreCalculationConfig     *ScoreCalculationConfig // 面试评价表打分计算配置（适用于打分评价表）
	scoreCalculationConfigFlag bool

	modules     []*InterviewFeedbackFormModule // 面试评价表模块列表
	modulesFlag bool
}

func NewInterviewFeedbackFormBuilder() *InterviewFeedbackFormBuilder {
	builder := &InterviewFeedbackFormBuilder{}
	return builder
}

// 面试评价表ID
//
// 示例值：6969137186734393644
func (builder *InterviewFeedbackFormBuilder) Id(id string) *InterviewFeedbackFormBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试评价表版本号
//
// 示例值：1
func (builder *InterviewFeedbackFormBuilder) Version(version int) *InterviewFeedbackFormBuilder {
	builder.version = version
	builder.versionFlag = true
	return builder
}

// 面试评价表名称
//
// 示例值：
func (builder *InterviewFeedbackFormBuilder) Name(name *I18n) *InterviewFeedbackFormBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 面试评价表类型
//
// 示例值：1
func (builder *InterviewFeedbackFormBuilder) Type(type_ int) *InterviewFeedbackFormBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 面试评价表打分计算配置（适用于打分评价表）
//
// 示例值：
func (builder *InterviewFeedbackFormBuilder) ScoreCalculationConfig(scoreCalculationConfig *ScoreCalculationConfig) *InterviewFeedbackFormBuilder {
	builder.scoreCalculationConfig = scoreCalculationConfig
	builder.scoreCalculationConfigFlag = true
	return builder
}

// 面试评价表模块列表
//
// 示例值：
func (builder *InterviewFeedbackFormBuilder) Modules(modules []*InterviewFeedbackFormModule) *InterviewFeedbackFormBuilder {
	builder.modules = modules
	builder.modulesFlag = true
	return builder
}

func (builder *InterviewFeedbackFormBuilder) Build() *InterviewFeedbackForm {
	req := &InterviewFeedbackForm{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.versionFlag {
		req.Version = &builder.version

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.scoreCalculationConfigFlag {
		req.ScoreCalculationConfig = builder.scoreCalculationConfig
	}
	if builder.modulesFlag {
		req.Modules = builder.modules
	}
	return req
}

type InterviewFeedbackFormDimension struct {
	Id *string `json:"id,omitempty"` // 模块维度ID

	Name *I18n `json:"name,omitempty"` // 维度名称

	Description *I18n `json:"description,omitempty"` // 维度描述

	Type *int `json:"type,omitempty"` // 维度类型

	Enabled *bool `json:"enabled,omitempty"` // 是否启用

	Sequence *int `json:"sequence,omitempty"` // 维度顺序

	IsRequired *bool `json:"is_required,omitempty"` // 是否必选

	Weight *float64 `json:"weight,omitempty"` // 维度权重

	ScoreDimensionConfig *ScoreDimensionConfig `json:"score_dimension_config,omitempty"` // 评价维度的分数配置（适用于打分题）

	OptionItems []*InterviewDimensionOption `json:"option_items,omitempty"` // 选项列表(适用于单选题和多选题)

	DisplayNotEvident *bool `json:"display_not_evident,omitempty"` // 是否展示「无法判断」选项，仅针对「职级建议」的维度类型

	AbilityList []*DimensionAbility `json:"ability_list,omitempty"` // 能力项列表

	RelatedDimensionConfig *RelatedDimensionConfig `json:"related_dimension_config,omitempty"` // 维度间关联配置

	DimensionAbilityArgs []*DimensionAbilityArgs `json:"dimension_ability_args,omitempty"` // 能力项关联配置
}

type InterviewFeedbackFormDimensionBuilder struct {
	id     string // 模块维度ID
	idFlag bool

	name     *I18n // 维度名称
	nameFlag bool

	description     *I18n // 维度描述
	descriptionFlag bool

	type_    int // 维度类型
	typeFlag bool

	enabled     bool // 是否启用
	enabledFlag bool

	sequence     int // 维度顺序
	sequenceFlag bool

	isRequired     bool // 是否必选
	isRequiredFlag bool

	weight     float64 // 维度权重
	weightFlag bool

	scoreDimensionConfig     *ScoreDimensionConfig // 评价维度的分数配置（适用于打分题）
	scoreDimensionConfigFlag bool

	optionItems     []*InterviewDimensionOption // 选项列表(适用于单选题和多选题)
	optionItemsFlag bool

	displayNotEvident     bool // 是否展示「无法判断」选项，仅针对「职级建议」的维度类型
	displayNotEvidentFlag bool

	abilityList     []*DimensionAbility // 能力项列表
	abilityListFlag bool

	relatedDimensionConfig     *RelatedDimensionConfig // 维度间关联配置
	relatedDimensionConfigFlag bool

	dimensionAbilityArgs     []*DimensionAbilityArgs // 能力项关联配置
	dimensionAbilityArgsFlag bool
}

func NewInterviewFeedbackFormDimensionBuilder() *InterviewFeedbackFormDimensionBuilder {
	builder := &InterviewFeedbackFormDimensionBuilder{}
	return builder
}

// 模块维度ID
//
// 示例值：6930815272790114324
func (builder *InterviewFeedbackFormDimensionBuilder) Id(id string) *InterviewFeedbackFormDimensionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 维度名称
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) Name(name *I18n) *InterviewFeedbackFormDimensionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 维度描述
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) Description(description *I18n) *InterviewFeedbackFormDimensionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 维度类型
//
// 示例值：1
func (builder *InterviewFeedbackFormDimensionBuilder) Type(type_ int) *InterviewFeedbackFormDimensionBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 是否启用
//
// 示例值：true
func (builder *InterviewFeedbackFormDimensionBuilder) Enabled(enabled bool) *InterviewFeedbackFormDimensionBuilder {
	builder.enabled = enabled
	builder.enabledFlag = true
	return builder
}

// 维度顺序
//
// 示例值：1
func (builder *InterviewFeedbackFormDimensionBuilder) Sequence(sequence int) *InterviewFeedbackFormDimensionBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 是否必选
//
// 示例值：true
func (builder *InterviewFeedbackFormDimensionBuilder) IsRequired(isRequired bool) *InterviewFeedbackFormDimensionBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 维度权重
//
// 示例值：1
func (builder *InterviewFeedbackFormDimensionBuilder) Weight(weight float64) *InterviewFeedbackFormDimensionBuilder {
	builder.weight = weight
	builder.weightFlag = true
	return builder
}

// 评价维度的分数配置（适用于打分题）
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) ScoreDimensionConfig(scoreDimensionConfig *ScoreDimensionConfig) *InterviewFeedbackFormDimensionBuilder {
	builder.scoreDimensionConfig = scoreDimensionConfig
	builder.scoreDimensionConfigFlag = true
	return builder
}

// 选项列表(适用于单选题和多选题)
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) OptionItems(optionItems []*InterviewDimensionOption) *InterviewFeedbackFormDimensionBuilder {
	builder.optionItems = optionItems
	builder.optionItemsFlag = true
	return builder
}

// 是否展示「无法判断」选项，仅针对「职级建议」的维度类型
//
// 示例值：true
func (builder *InterviewFeedbackFormDimensionBuilder) DisplayNotEvident(displayNotEvident bool) *InterviewFeedbackFormDimensionBuilder {
	builder.displayNotEvident = displayNotEvident
	builder.displayNotEvidentFlag = true
	return builder
}

// 能力项列表
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) AbilityList(abilityList []*DimensionAbility) *InterviewFeedbackFormDimensionBuilder {
	builder.abilityList = abilityList
	builder.abilityListFlag = true
	return builder
}

// 维度间关联配置
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) RelatedDimensionConfig(relatedDimensionConfig *RelatedDimensionConfig) *InterviewFeedbackFormDimensionBuilder {
	builder.relatedDimensionConfig = relatedDimensionConfig
	builder.relatedDimensionConfigFlag = true
	return builder
}

// 能力项关联配置
//
// 示例值：
func (builder *InterviewFeedbackFormDimensionBuilder) DimensionAbilityArgs(dimensionAbilityArgs []*DimensionAbilityArgs) *InterviewFeedbackFormDimensionBuilder {
	builder.dimensionAbilityArgs = dimensionAbilityArgs
	builder.dimensionAbilityArgsFlag = true
	return builder
}

func (builder *InterviewFeedbackFormDimensionBuilder) Build() *InterviewFeedbackFormDimension {
	req := &InterviewFeedbackFormDimension{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.enabledFlag {
		req.Enabled = &builder.enabled

	}
	if builder.sequenceFlag {
		req.Sequence = &builder.sequence

	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.weightFlag {
		req.Weight = &builder.weight

	}
	if builder.scoreDimensionConfigFlag {
		req.ScoreDimensionConfig = builder.scoreDimensionConfig
	}
	if builder.optionItemsFlag {
		req.OptionItems = builder.optionItems
	}
	if builder.displayNotEvidentFlag {
		req.DisplayNotEvident = &builder.displayNotEvident

	}
	if builder.abilityListFlag {
		req.AbilityList = builder.abilityList
	}
	if builder.relatedDimensionConfigFlag {
		req.RelatedDimensionConfig = builder.relatedDimensionConfig
	}
	if builder.dimensionAbilityArgsFlag {
		req.DimensionAbilityArgs = builder.dimensionAbilityArgs
	}
	return req
}

type InterviewFeedbackFormModule struct {
	Id *string `json:"id,omitempty"` // 面试评价表模块ID

	Name *I18n `json:"name,omitempty"` // 模块名称

	Description *I18n `json:"description,omitempty"` // 模块描述

	Type *int `json:"type,omitempty"` // 模块类型

	Sequence *int `json:"sequence,omitempty"` // 模块顺序

	Weight *float64 `json:"weight,omitempty"` // 模块权重

	Dimensions []*InterviewFeedbackFormDimension `json:"dimensions,omitempty"` // 模块维度列表
}

type InterviewFeedbackFormModuleBuilder struct {
	id     string // 面试评价表模块ID
	idFlag bool

	name     *I18n // 模块名称
	nameFlag bool

	description     *I18n // 模块描述
	descriptionFlag bool

	type_    int // 模块类型
	typeFlag bool

	sequence     int // 模块顺序
	sequenceFlag bool

	weight     float64 // 模块权重
	weightFlag bool

	dimensions     []*InterviewFeedbackFormDimension // 模块维度列表
	dimensionsFlag bool
}

func NewInterviewFeedbackFormModuleBuilder() *InterviewFeedbackFormModuleBuilder {
	builder := &InterviewFeedbackFormModuleBuilder{}
	return builder
}

// 面试评价表模块ID
//
// 示例值：6930815272790114324
func (builder *InterviewFeedbackFormModuleBuilder) Id(id string) *InterviewFeedbackFormModuleBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 模块名称
//
// 示例值：
func (builder *InterviewFeedbackFormModuleBuilder) Name(name *I18n) *InterviewFeedbackFormModuleBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 模块描述
//
// 示例值：
func (builder *InterviewFeedbackFormModuleBuilder) Description(description *I18n) *InterviewFeedbackFormModuleBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 模块类型
//
// 示例值：
func (builder *InterviewFeedbackFormModuleBuilder) Type(type_ int) *InterviewFeedbackFormModuleBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 模块顺序
//
// 示例值：1
func (builder *InterviewFeedbackFormModuleBuilder) Sequence(sequence int) *InterviewFeedbackFormModuleBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 模块权重
//
// 示例值：1
func (builder *InterviewFeedbackFormModuleBuilder) Weight(weight float64) *InterviewFeedbackFormModuleBuilder {
	builder.weight = weight
	builder.weightFlag = true
	return builder
}

// 模块维度列表
//
// 示例值：
func (builder *InterviewFeedbackFormModuleBuilder) Dimensions(dimensions []*InterviewFeedbackFormDimension) *InterviewFeedbackFormModuleBuilder {
	builder.dimensions = dimensions
	builder.dimensionsFlag = true
	return builder
}

func (builder *InterviewFeedbackFormModuleBuilder) Build() *InterviewFeedbackFormModule {
	req := &InterviewFeedbackFormModule{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.sequenceFlag {
		req.Sequence = &builder.sequence

	}
	if builder.weightFlag {
		req.Weight = &builder.weight

	}
	if builder.dimensionsFlag {
		req.Dimensions = builder.dimensions
	}
	return req
}

type InterviewMeetingRoom struct {
	RoomId *string `json:"room_id,omitempty"` // 会议室 ID

	RoomName *string `json:"room_name,omitempty"` // 会议室名称

	BuildingName *string `json:"building_name,omitempty"` // 建筑名称

	ReservedStatus *int `json:"reserved_status,omitempty"` // 会议室预定状态

	FloorName *string `json:"floor_name,omitempty"` // 楼层
}

type InterviewMeetingRoomBuilder struct {
	roomId     string // 会议室 ID
	roomIdFlag bool

	roomName     string // 会议室名称
	roomNameFlag bool

	buildingName     string // 建筑名称
	buildingNameFlag bool

	reservedStatus     int // 会议室预定状态
	reservedStatusFlag bool

	floorName     string // 楼层
	floorNameFlag bool
}

func NewInterviewMeetingRoomBuilder() *InterviewMeetingRoomBuilder {
	builder := &InterviewMeetingRoomBuilder{}
	return builder
}

// 会议室 ID
//
// 示例值：6949805467799537964
func (builder *InterviewMeetingRoomBuilder) RoomId(roomId string) *InterviewMeetingRoomBuilder {
	builder.roomId = roomId
	builder.roomIdFlag = true
	return builder
}

// 会议室名称
//
// 示例值：OCG111
func (builder *InterviewMeetingRoomBuilder) RoomName(roomName string) *InterviewMeetingRoomBuilder {
	builder.roomName = roomName
	builder.roomNameFlag = true
	return builder
}

// 建筑名称
//
// 示例值：OCG
func (builder *InterviewMeetingRoomBuilder) BuildingName(buildingName string) *InterviewMeetingRoomBuilder {
	builder.buildingName = buildingName
	builder.buildingNameFlag = true
	return builder
}

// 会议室预定状态
//
// 示例值：1
func (builder *InterviewMeetingRoomBuilder) ReservedStatus(reservedStatus int) *InterviewMeetingRoomBuilder {
	builder.reservedStatus = reservedStatus
	builder.reservedStatusFlag = true
	return builder
}

// 楼层
//
// 示例值：17
func (builder *InterviewMeetingRoomBuilder) FloorName(floorName string) *InterviewMeetingRoomBuilder {
	builder.floorName = floorName
	builder.floorNameFlag = true
	return builder
}

func (builder *InterviewMeetingRoomBuilder) Build() *InterviewMeetingRoom {
	req := &InterviewMeetingRoom{}
	if builder.roomIdFlag {
		req.RoomId = &builder.roomId

	}
	if builder.roomNameFlag {
		req.RoomName = &builder.roomName

	}
	if builder.buildingNameFlag {
		req.BuildingName = &builder.buildingName

	}
	if builder.reservedStatusFlag {
		req.ReservedStatus = &builder.reservedStatus

	}
	if builder.floorNameFlag {
		req.FloorName = &builder.floorName

	}
	return req
}

type InterviewQuestion struct {
	Id *string `json:"id,omitempty"` // 面试题题目ID

	Title *I18n `json:"title,omitempty"` // 面试题题目

	Description *I18n `json:"description,omitempty"` // 面试题描述

	Content *string `json:"content,omitempty"` // 面试者作答内容

	AbilityList []*Ability `json:"ability_list,omitempty"` // 题目关联的能力项
}

type InterviewQuestionBuilder struct {
	id     string // 面试题题目ID
	idFlag bool

	title     *I18n // 面试题题目
	titleFlag bool

	description     *I18n // 面试题描述
	descriptionFlag bool

	content     string // 面试者作答内容
	contentFlag bool

	abilityList     []*Ability // 题目关联的能力项
	abilityListFlag bool
}

func NewInterviewQuestionBuilder() *InterviewQuestionBuilder {
	builder := &InterviewQuestionBuilder{}
	return builder
}

// 面试题题目ID
//
// 示例值：7270798542321666367
func (builder *InterviewQuestionBuilder) Id(id string) *InterviewQuestionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试题题目
//
// 示例值：
func (builder *InterviewQuestionBuilder) Title(title *I18n) *InterviewQuestionBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 面试题描述
//
// 示例值：
func (builder *InterviewQuestionBuilder) Description(description *I18n) *InterviewQuestionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 面试者作答内容
//
// 示例值：没有
func (builder *InterviewQuestionBuilder) Content(content string) *InterviewQuestionBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 题目关联的能力项
//
// 示例值：
func (builder *InterviewQuestionBuilder) AbilityList(abilityList []*Ability) *InterviewQuestionBuilder {
	builder.abilityList = abilityList
	builder.abilityListFlag = true
	return builder
}

func (builder *InterviewQuestionBuilder) Build() *InterviewQuestion {
	req := &InterviewQuestion{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = builder.title
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.abilityListFlag {
		req.AbilityList = builder.abilityList
	}
	return req
}

type InterviewRecord struct {
	Id *string `json:"id,omitempty"` // 面试记录 ID

	UserId *string `json:"user_id,omitempty"` // 面试官用户 ID

	Content *string `json:"content,omitempty"` // 系统预设「记录」题目内容

	MinJobLevelId *string `json:"min_job_level_id,omitempty"` // 建议定级下限的职级 ID

	MaxJobLevelId *string `json:"max_job_level_id,omitempty"` // 建议定级上限的职级 ID

	CommitStatus *int `json:"commit_status,omitempty"` // 提交状态

	FeedbackSubmitTime *int64 `json:"feedback_submit_time,omitempty"` // 面试评价提交时间

	Conclusion *int `json:"conclusion,omitempty"` // 面试结论

	InterviewScore *InterviewScore `json:"interview_score,omitempty"` // 面试评分

	AssessmentScore *AssessmentScoreInfo `json:"assessment_score,omitempty"` // 面评打分题分数

	QuestionList []*InterviewQuestion `json:"question_list,omitempty"` // 面试题目

	CodeQuestionList []*InterviewQuestion `json:"code_question_list,omitempty"` // 在线编程题目

	Interviewer *IdNameObject `json:"interviewer,omitempty"` // 面试官信息

	ImageList []*AttachmentV2 `json:"image_list,omitempty"` // 面试评价图片

	DimensionAssessmentList []*InterviewDimensionAssessment `json:"dimension_assessment_list,omitempty"` // 面试评价
}

type InterviewRecordBuilder struct {
	id     string // 面试记录 ID
	idFlag bool

	userId     string // 面试官用户 ID
	userIdFlag bool

	content     string // 系统预设「记录」题目内容
	contentFlag bool

	minJobLevelId     string // 建议定级下限的职级 ID
	minJobLevelIdFlag bool

	maxJobLevelId     string // 建议定级上限的职级 ID
	maxJobLevelIdFlag bool

	commitStatus     int // 提交状态
	commitStatusFlag bool

	feedbackSubmitTime     int64 // 面试评价提交时间
	feedbackSubmitTimeFlag bool

	conclusion     int // 面试结论
	conclusionFlag bool

	interviewScore     *InterviewScore // 面试评分
	interviewScoreFlag bool

	assessmentScore     *AssessmentScoreInfo // 面评打分题分数
	assessmentScoreFlag bool

	questionList     []*InterviewQuestion // 面试题目
	questionListFlag bool

	codeQuestionList     []*InterviewQuestion // 在线编程题目
	codeQuestionListFlag bool

	interviewer     *IdNameObject // 面试官信息
	interviewerFlag bool

	imageList     []*AttachmentV2 // 面试评价图片
	imageListFlag bool

	dimensionAssessmentList     []*InterviewDimensionAssessment // 面试评价
	dimensionAssessmentListFlag bool
}

func NewInterviewRecordBuilder() *InterviewRecordBuilder {
	builder := &InterviewRecordBuilder{}
	return builder
}

// 面试记录 ID
//
// 示例值：6949805467799537964
func (builder *InterviewRecordBuilder) Id(id string) *InterviewRecordBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试官用户 ID
//
// 示例值：1618899376474
func (builder *InterviewRecordBuilder) UserId(userId string) *InterviewRecordBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 系统预设「记录」题目内容
//
// 示例值：代码还行，只是不够聪明
func (builder *InterviewRecordBuilder) Content(content string) *InterviewRecordBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 建议定级下限的职级 ID
//
// 示例值：6435238827342432
func (builder *InterviewRecordBuilder) MinJobLevelId(minJobLevelId string) *InterviewRecordBuilder {
	builder.minJobLevelId = minJobLevelId
	builder.minJobLevelIdFlag = true
	return builder
}

// 建议定级上限的职级 ID
//
// 示例值：643523885843573
func (builder *InterviewRecordBuilder) MaxJobLevelId(maxJobLevelId string) *InterviewRecordBuilder {
	builder.maxJobLevelId = maxJobLevelId
	builder.maxJobLevelIdFlag = true
	return builder
}

// 提交状态
//
// 示例值：1
func (builder *InterviewRecordBuilder) CommitStatus(commitStatus int) *InterviewRecordBuilder {
	builder.commitStatus = commitStatus
	builder.commitStatusFlag = true
	return builder
}

// 面试评价提交时间
//
// 示例值：1659318415000
func (builder *InterviewRecordBuilder) FeedbackSubmitTime(feedbackSubmitTime int64) *InterviewRecordBuilder {
	builder.feedbackSubmitTime = feedbackSubmitTime
	builder.feedbackSubmitTimeFlag = true
	return builder
}

// 面试结论
//
// 示例值：1
func (builder *InterviewRecordBuilder) Conclusion(conclusion int) *InterviewRecordBuilder {
	builder.conclusion = conclusion
	builder.conclusionFlag = true
	return builder
}

// 面试评分
//
// 示例值：
func (builder *InterviewRecordBuilder) InterviewScore(interviewScore *InterviewScore) *InterviewRecordBuilder {
	builder.interviewScore = interviewScore
	builder.interviewScoreFlag = true
	return builder
}

// 面评打分题分数
//
// 示例值：
func (builder *InterviewRecordBuilder) AssessmentScore(assessmentScore *AssessmentScoreInfo) *InterviewRecordBuilder {
	builder.assessmentScore = assessmentScore
	builder.assessmentScoreFlag = true
	return builder
}

// 面试题目
//
// 示例值：
func (builder *InterviewRecordBuilder) QuestionList(questionList []*InterviewQuestion) *InterviewRecordBuilder {
	builder.questionList = questionList
	builder.questionListFlag = true
	return builder
}

// 在线编程题目
//
// 示例值：
func (builder *InterviewRecordBuilder) CodeQuestionList(codeQuestionList []*InterviewQuestion) *InterviewRecordBuilder {
	builder.codeQuestionList = codeQuestionList
	builder.codeQuestionListFlag = true
	return builder
}

// 面试官信息
//
// 示例值：
func (builder *InterviewRecordBuilder) Interviewer(interviewer *IdNameObject) *InterviewRecordBuilder {
	builder.interviewer = interviewer
	builder.interviewerFlag = true
	return builder
}

// 面试评价图片
//
// 示例值：
func (builder *InterviewRecordBuilder) ImageList(imageList []*AttachmentV2) *InterviewRecordBuilder {
	builder.imageList = imageList
	builder.imageListFlag = true
	return builder
}

// 面试评价
//
// 示例值：
func (builder *InterviewRecordBuilder) DimensionAssessmentList(dimensionAssessmentList []*InterviewDimensionAssessment) *InterviewRecordBuilder {
	builder.dimensionAssessmentList = dimensionAssessmentList
	builder.dimensionAssessmentListFlag = true
	return builder
}

func (builder *InterviewRecordBuilder) Build() *InterviewRecord {
	req := &InterviewRecord{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.minJobLevelIdFlag {
		req.MinJobLevelId = &builder.minJobLevelId

	}
	if builder.maxJobLevelIdFlag {
		req.MaxJobLevelId = &builder.maxJobLevelId

	}
	if builder.commitStatusFlag {
		req.CommitStatus = &builder.commitStatus

	}
	if builder.feedbackSubmitTimeFlag {
		req.FeedbackSubmitTime = &builder.feedbackSubmitTime

	}
	if builder.conclusionFlag {
		req.Conclusion = &builder.conclusion

	}
	if builder.interviewScoreFlag {
		req.InterviewScore = builder.interviewScore
	}
	if builder.assessmentScoreFlag {
		req.AssessmentScore = builder.assessmentScore
	}
	if builder.questionListFlag {
		req.QuestionList = builder.questionList
	}
	if builder.codeQuestionListFlag {
		req.CodeQuestionList = builder.codeQuestionList
	}
	if builder.interviewerFlag {
		req.Interviewer = builder.interviewer
	}
	if builder.imageListFlag {
		req.ImageList = builder.imageList
	}
	if builder.dimensionAssessmentListFlag {
		req.DimensionAssessmentList = builder.dimensionAssessmentList
	}
	return req
}

type InterviewRecordTemplate struct {
	AssessmentTemplate *InterviewAssessmentTemplate `json:"assessment_template,omitempty"` // 面试评价表
}

type InterviewRecordTemplateBuilder struct {
	assessmentTemplate     *InterviewAssessmentTemplate // 面试评价表
	assessmentTemplateFlag bool
}

func NewInterviewRecordTemplateBuilder() *InterviewRecordTemplateBuilder {
	builder := &InterviewRecordTemplateBuilder{}
	return builder
}

// 面试评价表
//
// 示例值：
func (builder *InterviewRecordTemplateBuilder) AssessmentTemplate(assessmentTemplate *InterviewAssessmentTemplate) *InterviewRecordTemplateBuilder {
	builder.assessmentTemplate = assessmentTemplate
	builder.assessmentTemplateFlag = true
	return builder
}

func (builder *InterviewRecordTemplateBuilder) Build() *InterviewRecordTemplate {
	req := &InterviewRecordTemplate{}
	if builder.assessmentTemplateFlag {
		req.AssessmentTemplate = builder.assessmentTemplate
	}
	return req
}

type InterviewRecordV2 struct {
	Id *string `json:"id,omitempty"` // 面试评价ID

	FeedbackFormId *string `json:"feedback_form_id,omitempty"` // 面试评价表ID

	CommitStatus *int `json:"commit_status,omitempty"` // 提交状态

	SubmitTime *string `json:"submit_time,omitempty"` // 面试评价提交时间

	RecordScore *RecordScore `json:"record_score,omitempty"` // 面试评价分数

	Interviewer *BasicUserInfo `json:"interviewer,omitempty"` // 面试官信息

	Attachments []*InterviewAttachment `json:"attachments,omitempty"` // 面试评价附件列表

	ModuleAssessments []*ModuleAssessment `json:"module_assessments,omitempty"` // 模块评价列表
}

type InterviewRecordV2Builder struct {
	id     string // 面试评价ID
	idFlag bool

	feedbackFormId     string // 面试评价表ID
	feedbackFormIdFlag bool

	commitStatus     int // 提交状态
	commitStatusFlag bool

	submitTime     string // 面试评价提交时间
	submitTimeFlag bool

	recordScore     *RecordScore // 面试评价分数
	recordScoreFlag bool

	interviewer     *BasicUserInfo // 面试官信息
	interviewerFlag bool

	attachments     []*InterviewAttachment // 面试评价附件列表
	attachmentsFlag bool

	moduleAssessments     []*ModuleAssessment // 模块评价列表
	moduleAssessmentsFlag bool
}

func NewInterviewRecordV2Builder() *InterviewRecordV2Builder {
	builder := &InterviewRecordV2Builder{}
	return builder
}

// 面试评价ID
//
// 示例值：7171693733661327361
func (builder *InterviewRecordV2Builder) Id(id string) *InterviewRecordV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试评价表ID
//
// 示例值：71716937336613273612
func (builder *InterviewRecordV2Builder) FeedbackFormId(feedbackFormId string) *InterviewRecordV2Builder {
	builder.feedbackFormId = feedbackFormId
	builder.feedbackFormIdFlag = true
	return builder
}

// 提交状态
//
// 示例值：1
func (builder *InterviewRecordV2Builder) CommitStatus(commitStatus int) *InterviewRecordV2Builder {
	builder.commitStatus = commitStatus
	builder.commitStatusFlag = true
	return builder
}

// 面试评价提交时间
//
// 示例值：1710405457390
func (builder *InterviewRecordV2Builder) SubmitTime(submitTime string) *InterviewRecordV2Builder {
	builder.submitTime = submitTime
	builder.submitTimeFlag = true
	return builder
}

// 面试评价分数
//
// 示例值：
func (builder *InterviewRecordV2Builder) RecordScore(recordScore *RecordScore) *InterviewRecordV2Builder {
	builder.recordScore = recordScore
	builder.recordScoreFlag = true
	return builder
}

// 面试官信息
//
// 示例值：
func (builder *InterviewRecordV2Builder) Interviewer(interviewer *BasicUserInfo) *InterviewRecordV2Builder {
	builder.interviewer = interviewer
	builder.interviewerFlag = true
	return builder
}

// 面试评价附件列表
//
// 示例值：
func (builder *InterviewRecordV2Builder) Attachments(attachments []*InterviewAttachment) *InterviewRecordV2Builder {
	builder.attachments = attachments
	builder.attachmentsFlag = true
	return builder
}

// 模块评价列表
//
// 示例值：
func (builder *InterviewRecordV2Builder) ModuleAssessments(moduleAssessments []*ModuleAssessment) *InterviewRecordV2Builder {
	builder.moduleAssessments = moduleAssessments
	builder.moduleAssessmentsFlag = true
	return builder
}

func (builder *InterviewRecordV2Builder) Build() *InterviewRecordV2 {
	req := &InterviewRecordV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.feedbackFormIdFlag {
		req.FeedbackFormId = &builder.feedbackFormId

	}
	if builder.commitStatusFlag {
		req.CommitStatus = &builder.commitStatus

	}
	if builder.submitTimeFlag {
		req.SubmitTime = &builder.submitTime

	}
	if builder.recordScoreFlag {
		req.RecordScore = builder.recordScore
	}
	if builder.interviewerFlag {
		req.Interviewer = builder.interviewer
	}
	if builder.attachmentsFlag {
		req.Attachments = builder.attachments
	}
	if builder.moduleAssessmentsFlag {
		req.ModuleAssessments = builder.moduleAssessments
	}
	return req
}

type InterviewRegistrationSchema struct {
	Id *string `json:"id,omitempty"` // 面试登记表模板 ID

	Name *string `json:"name,omitempty"` // 面试登记表模板名称

	IsUsedAsInterview *bool `json:"is_used_as_interview,omitempty"` // 是否用作面试登记表

	ObjectList []*CommonSchema `json:"object_list,omitempty"` // 模块列表
}

type InterviewRegistrationSchemaBuilder struct {
	id     string // 面试登记表模板 ID
	idFlag bool

	name     string // 面试登记表模板名称
	nameFlag bool

	isUsedAsInterview     bool // 是否用作面试登记表
	isUsedAsInterviewFlag bool

	objectList     []*CommonSchema // 模块列表
	objectListFlag bool
}

func NewInterviewRegistrationSchemaBuilder() *InterviewRegistrationSchemaBuilder {
	builder := &InterviewRegistrationSchemaBuilder{}
	return builder
}

// 面试登记表模板 ID
//
// 示例值：7044739584859326764
func (builder *InterviewRegistrationSchemaBuilder) Id(id string) *InterviewRegistrationSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试登记表模板名称
//
// 示例值：默认面试登记表
func (builder *InterviewRegistrationSchemaBuilder) Name(name string) *InterviewRegistrationSchemaBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 是否用作面试登记表
//
// 示例值：true
func (builder *InterviewRegistrationSchemaBuilder) IsUsedAsInterview(isUsedAsInterview bool) *InterviewRegistrationSchemaBuilder {
	builder.isUsedAsInterview = isUsedAsInterview
	builder.isUsedAsInterviewFlag = true
	return builder
}

// 模块列表
//
// 示例值：
func (builder *InterviewRegistrationSchemaBuilder) ObjectList(objectList []*CommonSchema) *InterviewRegistrationSchemaBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *InterviewRegistrationSchemaBuilder) Build() *InterviewRegistrationSchema {
	req := &InterviewRegistrationSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.isUsedAsInterviewFlag {
		req.IsUsedAsInterview = &builder.isUsedAsInterview

	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type InterviewRoundType struct {
	Id *string `json:"id,omitempty"` // 面试轮次类型 ID

	BizId *string `json:"biz_id,omitempty"` // 面试轮次类型业务 ID

	Name *I18n `json:"name,omitempty"` // 面试轮次类型名称

	ProcessType *int `json:"process_type,omitempty"` // 职位流程类型

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	InterviewAssessmentTemplateInfo *InterviewRoundTypeAssessmentTemplate `json:"interview_assessment_template_info,omitempty"` // 面试评价表
}

type InterviewRoundTypeBuilder struct {
	id     string // 面试轮次类型 ID
	idFlag bool

	bizId     string // 面试轮次类型业务 ID
	bizIdFlag bool

	name     *I18n // 面试轮次类型名称
	nameFlag bool

	processType     int // 职位流程类型
	processTypeFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	interviewAssessmentTemplateInfo     *InterviewRoundTypeAssessmentTemplate // 面试评价表
	interviewAssessmentTemplateInfoFlag bool
}

func NewInterviewRoundTypeBuilder() *InterviewRoundTypeBuilder {
	builder := &InterviewRoundTypeBuilder{}
	return builder
}

// 面试轮次类型 ID
//
// 示例值：7012129842917869868
func (builder *InterviewRoundTypeBuilder) Id(id string) *InterviewRoundTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试轮次类型业务 ID
//
// 示例值：7012129842917869868
func (builder *InterviewRoundTypeBuilder) BizId(bizId string) *InterviewRoundTypeBuilder {
	builder.bizId = bizId
	builder.bizIdFlag = true
	return builder
}

// 面试轮次类型名称
//
// 示例值：
func (builder *InterviewRoundTypeBuilder) Name(name *I18n) *InterviewRoundTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *InterviewRoundTypeBuilder) ProcessType(processType int) *InterviewRoundTypeBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *InterviewRoundTypeBuilder) ActiveStatus(activeStatus int) *InterviewRoundTypeBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 面试评价表
//
// 示例值：
func (builder *InterviewRoundTypeBuilder) InterviewAssessmentTemplateInfo(interviewAssessmentTemplateInfo *InterviewRoundTypeAssessmentTemplate) *InterviewRoundTypeBuilder {
	builder.interviewAssessmentTemplateInfo = interviewAssessmentTemplateInfo
	builder.interviewAssessmentTemplateInfoFlag = true
	return builder
}

func (builder *InterviewRoundTypeBuilder) Build() *InterviewRoundType {
	req := &InterviewRoundType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.bizIdFlag {
		req.BizId = &builder.bizId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.interviewAssessmentTemplateInfoFlag {
		req.InterviewAssessmentTemplateInfo = builder.interviewAssessmentTemplateInfo
	}
	return req
}

type InterviewRoundTypeAssessmentTemplate struct {
	Id *string `json:"id,omitempty"` // 面试评价表 ID

	BizId *string `json:"biz_id,omitempty"` // 面试评价表业务 ID

	Name *I18n `json:"name,omitempty"` // 面试评价表名称
}

type InterviewRoundTypeAssessmentTemplateBuilder struct {
	id     string // 面试评价表 ID
	idFlag bool

	bizId     string // 面试评价表业务 ID
	bizIdFlag bool

	name     *I18n // 面试评价表名称
	nameFlag bool
}

func NewInterviewRoundTypeAssessmentTemplateBuilder() *InterviewRoundTypeAssessmentTemplateBuilder {
	builder := &InterviewRoundTypeAssessmentTemplateBuilder{}
	return builder
}

// 面试评价表 ID
//
// 示例值：7012129842917869868
func (builder *InterviewRoundTypeAssessmentTemplateBuilder) Id(id string) *InterviewRoundTypeAssessmentTemplateBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 面试评价表业务 ID
//
// 示例值：7012129842917869868
func (builder *InterviewRoundTypeAssessmentTemplateBuilder) BizId(bizId string) *InterviewRoundTypeAssessmentTemplateBuilder {
	builder.bizId = bizId
	builder.bizIdFlag = true
	return builder
}

// 面试评价表名称
//
// 示例值：
func (builder *InterviewRoundTypeAssessmentTemplateBuilder) Name(name *I18n) *InterviewRoundTypeAssessmentTemplateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *InterviewRoundTypeAssessmentTemplateBuilder) Build() *InterviewRoundTypeAssessmentTemplate {
	req := &InterviewRoundTypeAssessmentTemplate{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.bizIdFlag {
		req.BizId = &builder.bizId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type InterviewScore struct {
	Id *string `json:"id,omitempty"` // 面试评分 ID

	Level *int `json:"level,omitempty"` // 分数级别

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	ZhDescription *string `json:"zh_description,omitempty"` // 中文描述

	EnName *string `json:"en_name,omitempty"` // 英文名称

	EnDescription *string `json:"en_description,omitempty"` // 英文描述
}

type InterviewScoreBuilder struct {
	id     string // 面试评分 ID
	idFlag bool

	level     int // 分数级别
	levelFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	zhDescription     string // 中文描述
	zhDescriptionFlag bool

	enName     string // 英文名称
	enNameFlag bool

	enDescription     string // 英文描述
	enDescriptionFlag bool
}

func NewInterviewScoreBuilder() *InterviewScoreBuilder {
	builder := &InterviewScoreBuilder{}
	return builder
}

// 面试评分 ID
//
// 示例值：6949805467799537964
func (builder *InterviewScoreBuilder) Id(id string) *InterviewScoreBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 分数级别
//
// 示例值：3
func (builder *InterviewScoreBuilder) Level(level int) *InterviewScoreBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 中文名称
//
// 示例值：3
func (builder *InterviewScoreBuilder) ZhName(zhName string) *InterviewScoreBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 中文描述
//
// 示例值：通过, 能力达到要求, 建议录用
func (builder *InterviewScoreBuilder) ZhDescription(zhDescription string) *InterviewScoreBuilder {
	builder.zhDescription = zhDescription
	builder.zhDescriptionFlag = true
	return builder
}

// 英文名称
//
// 示例值：three
func (builder *InterviewScoreBuilder) EnName(enName string) *InterviewScoreBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 英文描述
//
// 示例值：Pass, ability to meet the requirements, suggest to hire
func (builder *InterviewScoreBuilder) EnDescription(enDescription string) *InterviewScoreBuilder {
	builder.enDescription = enDescription
	builder.enDescriptionFlag = true
	return builder
}

func (builder *InterviewScoreBuilder) Build() *InterviewScore {
	req := &InterviewScore{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.levelFlag {
		req.Level = &builder.level

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.zhDescriptionFlag {
		req.ZhDescription = &builder.zhDescription

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.enDescriptionFlag {
		req.EnDescription = &builder.enDescription

	}
	return req
}

type InterviewTask struct {
	Id *string `json:"id,omitempty"` // 面试 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ActivityStatus *int `json:"activity_status,omitempty"` // 任务状态
}

type InterviewTaskBuilder struct {
	id     string // 面试 ID
	idFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	activityStatus     int // 任务状态
	activityStatusFlag bool
}

func NewInterviewTaskBuilder() *InterviewTaskBuilder {
	builder := &InterviewTaskBuilder{}
	return builder
}

// 面试 ID
//
// 示例值：6989202908470446380
func (builder *InterviewTaskBuilder) Id(id string) *InterviewTaskBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6897921873523247373
func (builder *InterviewTaskBuilder) JobId(jobId string) *InterviewTaskBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：7046263097923537196
func (builder *InterviewTaskBuilder) TalentId(talentId string) *InterviewTaskBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7046315599510833452
func (builder *InterviewTaskBuilder) ApplicationId(applicationId string) *InterviewTaskBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *InterviewTaskBuilder) ActivityStatus(activityStatus int) *InterviewTaskBuilder {
	builder.activityStatus = activityStatus
	builder.activityStatusFlag = true
	return builder
}

func (builder *InterviewTaskBuilder) Build() *InterviewTask {
	req := &InterviewTask{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.activityStatusFlag {
		req.ActivityStatus = &builder.activityStatus

	}
	return req
}

type Interviewer struct {
	UserId *string `json:"user_id,omitempty"` // 面试官userID

	VerifyStatus *int `json:"verify_status,omitempty"` // 认证状态
}

type InterviewerBuilder struct {
	userId     string // 面试官userID
	userIdFlag bool

	verifyStatus     int // 认证状态
	verifyStatusFlag bool
}

func NewInterviewerBuilder() *InterviewerBuilder {
	builder := &InterviewerBuilder{}
	return builder
}

// 面试官userID
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *InterviewerBuilder) UserId(userId string) *InterviewerBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 认证状态
//
// 示例值：1
func (builder *InterviewerBuilder) VerifyStatus(verifyStatus int) *InterviewerBuilder {
	builder.verifyStatus = verifyStatus
	builder.verifyStatusFlag = true
	return builder
}

func (builder *InterviewerBuilder) Build() *Interviewer {
	req := &Interviewer{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.verifyStatusFlag {
		req.VerifyStatus = &builder.verifyStatus

	}
	return req
}

type InterviewerTag struct {
	Id *string `json:"id,omitempty"` // 标签 ID

	Name *I18n `json:"name,omitempty"` // 标签名称

	ActiveStatus *int `json:"active_status,omitempty"` // 停启用状态

	CreatorId *string `json:"creator_id,omitempty"` // 创建人UserID

	UpdaterId *string `json:"updater_id,omitempty"` // 修改人UserID

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间
}

type InterviewerTagBuilder struct {
	id     string // 标签 ID
	idFlag bool

	name     *I18n // 标签名称
	nameFlag bool

	activeStatus     int // 停启用状态
	activeStatusFlag bool

	creatorId     string // 创建人UserID
	creatorIdFlag bool

	updaterId     string // 修改人UserID
	updaterIdFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	updateTime     string // 更新时间
	updateTimeFlag bool
}

func NewInterviewerTagBuilder() *InterviewerTagBuilder {
	builder := &InterviewerTagBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：6949805467799537964
func (builder *InterviewerTagBuilder) Id(id string) *InterviewerTagBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标签名称
//
// 示例值：
func (builder *InterviewerTagBuilder) Name(name *I18n) *InterviewerTagBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 停启用状态
//
// 示例值：1
func (builder *InterviewerTagBuilder) ActiveStatus(activeStatus int) *InterviewerTagBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 创建人UserID
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *InterviewerTagBuilder) CreatorId(creatorId string) *InterviewerTagBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 修改人UserID
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *InterviewerTagBuilder) UpdaterId(updaterId string) *InterviewerTagBuilder {
	builder.updaterId = updaterId
	builder.updaterIdFlag = true
	return builder
}

// 创建时间
//
// 示例值：1733729032000
func (builder *InterviewerTagBuilder) CreateTime(createTime string) *InterviewerTagBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1733993842000
func (builder *InterviewerTagBuilder) UpdateTime(updateTime string) *InterviewerTagBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

func (builder *InterviewerTagBuilder) Build() *InterviewerTag {
	req := &InterviewerTag{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.updaterIdFlag {
		req.UpdaterId = &builder.updaterId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	return req
}

type Job struct {
	Id *string `json:"id,omitempty"` // 职位 ID

	Title *string `json:"title,omitempty"` // 职位名称

	Description *string `json:"description,omitempty"` // 职位描述

	Code *string `json:"code,omitempty"` // 职位编号

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	RecruitmentType *JobRecruitmentType `json:"recruitment_type,omitempty"` // 雇佣类型

	Department *JobDepartment `json:"department,omitempty"` // 部门

	City *JobCity `json:"city,omitempty"` // 工作地点

	MinJobLevel *JobLevel `json:"min_job_level,omitempty"` // 最低职级

	MaxJobLevel *JobLevel `json:"max_job_level,omitempty"` // 最高职级

	HighlightList []*JobHighlight `json:"highlight_list,omitempty"` // 职位亮点

	JobCategory *JobCategory `json:"job_category,omitempty"` // 职位序列

	JobType *JobType `json:"job_type,omitempty"` // 职位类别

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	CreateUserId *string `json:"create_user_id,omitempty"` // 创建人ID，若为空则为系统或其他对接系统创建

	CreateTime *int64 `json:"create_time,omitempty"` // 创建时间

	UpdateTime *int64 `json:"update_time,omitempty"` // 更新时间

	ProcessType *int `json:"process_type,omitempty"` // 招聘流程类型

	ProcessId *string `json:"process_id,omitempty"` // 招聘流程 ID

	ProcessName *string `json:"process_name,omitempty"` // 招聘流程中文名称

	ProcessEnName *string `json:"process_en_name,omitempty"` // 招聘流程英文名称

	CustomizedDataList []*JobCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段列表

	JobFunction *IdNameObject `json:"job_function,omitempty"` // 职能分类

	Subject *IdNameObject `json:"subject,omitempty"` // 职位项目

	HeadCount *int `json:"head_count,omitempty"` // 招聘数量

	Experience *int `json:"experience,omitempty"` // 工作年限

	ExpiryTime *int64 `json:"expiry_time,omitempty"` // 到期日期

	MinSalary *int `json:"min_salary,omitempty"` // 最低薪资，单位:k

	MaxSalary *int `json:"max_salary,omitempty"` // 最高薪资，单位:k

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	CityList []*CodeNameObject `json:"city_list,omitempty"` // 工作地点列表

	JobAttribute *int `json:"job_attribute,omitempty"` // 职位属性，1是实体职位，2是虚拟职位

	CreateTimestamp *string `json:"create_timestamp,omitempty"` // 创建时间戳

	UpdateTimestamp *string `json:"update_timestamp,omitempty"` // 更新时间戳

	ExpiryTimestamp *string `json:"expiry_timestamp,omitempty"` // 到期时间戳

	TargetMajorList []*TargetMajorInfo `json:"target_major_list,omitempty"` // 目标专业
}

type JobBuilder struct {
	id     string // 职位 ID
	idFlag bool

	title     string // 职位名称
	titleFlag bool

	description     string // 职位描述
	descriptionFlag bool

	code     string // 职位编号
	codeFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	recruitmentType     *JobRecruitmentType // 雇佣类型
	recruitmentTypeFlag bool

	department     *JobDepartment // 部门
	departmentFlag bool

	city     *JobCity // 工作地点
	cityFlag bool

	minJobLevel     *JobLevel // 最低职级
	minJobLevelFlag bool

	maxJobLevel     *JobLevel // 最高职级
	maxJobLevelFlag bool

	highlightList     []*JobHighlight // 职位亮点
	highlightListFlag bool

	jobCategory     *JobCategory // 职位序列
	jobCategoryFlag bool

	jobType     *JobType // 职位类别
	jobTypeFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	createUserId     string // 创建人ID，若为空则为系统或其他对接系统创建
	createUserIdFlag bool

	createTime     int64 // 创建时间
	createTimeFlag bool

	updateTime     int64 // 更新时间
	updateTimeFlag bool

	processType     int // 招聘流程类型
	processTypeFlag bool

	processId     string // 招聘流程 ID
	processIdFlag bool

	processName     string // 招聘流程中文名称
	processNameFlag bool

	processEnName     string // 招聘流程英文名称
	processEnNameFlag bool

	customizedDataList     []*JobCustomizedData // 自定义字段列表
	customizedDataListFlag bool

	jobFunction     *IdNameObject // 职能分类
	jobFunctionFlag bool

	subject     *IdNameObject // 职位项目
	subjectFlag bool

	headCount     int // 招聘数量
	headCountFlag bool

	experience     int // 工作年限
	experienceFlag bool

	expiryTime     int64 // 到期日期
	expiryTimeFlag bool

	minSalary     int // 最低薪资，单位:k
	minSalaryFlag bool

	maxSalary     int // 最高薪资，单位:k
	maxSalaryFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	cityList     []*CodeNameObject // 工作地点列表
	cityListFlag bool

	jobAttribute     int // 职位属性，1是实体职位，2是虚拟职位
	jobAttributeFlag bool

	createTimestamp     string // 创建时间戳
	createTimestampFlag bool

	updateTimestamp     string // 更新时间戳
	updateTimestampFlag bool

	expiryTimestamp     string // 到期时间戳
	expiryTimestampFlag bool

	targetMajorList     []*TargetMajorInfo // 目标专业
	targetMajorListFlag bool
}

func NewJobBuilder() *JobBuilder {
	builder := &JobBuilder{}
	return builder
}

// 职位 ID
//
// 示例值：6001
func (builder *JobBuilder) Id(id string) *JobBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位名称
//
// 示例值：测试职位
func (builder *JobBuilder) Title(title string) *JobBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位描述
//
// 示例值：职位描述文本
func (builder *JobBuilder) Description(description string) *JobBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位编号
//
// 示例值：R18
func (builder *JobBuilder) Code(code string) *JobBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 职位要求
//
// 示例值：职位要求文本
func (builder *JobBuilder) Requirement(requirement string) *JobBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 雇佣类型
//
// 示例值：
func (builder *JobBuilder) RecruitmentType(recruitmentType *JobRecruitmentType) *JobBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *JobBuilder) Department(department *JobDepartment) *JobBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 工作地点
//
// 示例值：
func (builder *JobBuilder) City(city *JobCity) *JobBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 最低职级
//
// 示例值：
func (builder *JobBuilder) MinJobLevel(minJobLevel *JobLevel) *JobBuilder {
	builder.minJobLevel = minJobLevel
	builder.minJobLevelFlag = true
	return builder
}

// 最高职级
//
// 示例值：
func (builder *JobBuilder) MaxJobLevel(maxJobLevel *JobLevel) *JobBuilder {
	builder.maxJobLevel = maxJobLevel
	builder.maxJobLevelFlag = true
	return builder
}

// 职位亮点
//
// 示例值：
func (builder *JobBuilder) HighlightList(highlightList []*JobHighlight) *JobBuilder {
	builder.highlightList = highlightList
	builder.highlightListFlag = true
	return builder
}

// 职位序列
//
// 示例值：
func (builder *JobBuilder) JobCategory(jobCategory *JobCategory) *JobBuilder {
	builder.jobCategory = jobCategory
	builder.jobCategoryFlag = true
	return builder
}

// 职位类别
//
// 示例值：
func (builder *JobBuilder) JobType(jobType *JobType) *JobBuilder {
	builder.jobType = jobType
	builder.jobTypeFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *JobBuilder) ActiveStatus(activeStatus int) *JobBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 创建人ID，若为空则为系统或其他对接系统创建
//
// 示例值：ou-xxx
func (builder *JobBuilder) CreateUserId(createUserId string) *JobBuilder {
	builder.createUserId = createUserId
	builder.createUserIdFlag = true
	return builder
}

// 创建时间
//
// 示例值：1617170925462
func (builder *JobBuilder) CreateTime(createTime int64) *JobBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1617170925462
func (builder *JobBuilder) UpdateTime(updateTime int64) *JobBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 招聘流程类型
//
// 示例值：1
func (builder *JobBuilder) ProcessType(processType int) *JobBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 招聘流程 ID
//
// 示例值：1
func (builder *JobBuilder) ProcessId(processId string) *JobBuilder {
	builder.processId = processId
	builder.processIdFlag = true
	return builder
}

// 招聘流程中文名称
//
// 示例值：流程中文名
func (builder *JobBuilder) ProcessName(processName string) *JobBuilder {
	builder.processName = processName
	builder.processNameFlag = true
	return builder
}

// 招聘流程英文名称
//
// 示例值：流程英文名
func (builder *JobBuilder) ProcessEnName(processEnName string) *JobBuilder {
	builder.processEnName = processEnName
	builder.processEnNameFlag = true
	return builder
}

// 自定义字段列表
//
// 示例值：
func (builder *JobBuilder) CustomizedDataList(customizedDataList []*JobCustomizedData) *JobBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 职能分类
//
// 示例值：
func (builder *JobBuilder) JobFunction(jobFunction *IdNameObject) *JobBuilder {
	builder.jobFunction = jobFunction
	builder.jobFunctionFlag = true
	return builder
}

// 职位项目
//
// 示例值：
func (builder *JobBuilder) Subject(subject *IdNameObject) *JobBuilder {
	builder.subject = subject
	builder.subjectFlag = true
	return builder
}

// 招聘数量
//
// 示例值：100
func (builder *JobBuilder) HeadCount(headCount int) *JobBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 工作年限
//
// 示例值：1
func (builder *JobBuilder) Experience(experience int) *JobBuilder {
	builder.experience = experience
	builder.experienceFlag = true
	return builder
}

// 到期日期
//
// 示例值：1622484739955
func (builder *JobBuilder) ExpiryTime(expiryTime int64) *JobBuilder {
	builder.expiryTime = expiryTime
	builder.expiryTimeFlag = true
	return builder
}

// 最低薪资，单位:k
//
// 示例值：10
func (builder *JobBuilder) MinSalary(minSalary int) *JobBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 最高薪资，单位:k
//
// 示例值：20
func (builder *JobBuilder) MaxSalary(maxSalary int) *JobBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *JobBuilder) RequiredDegree(requiredDegree int) *JobBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 工作地点列表
//
// 示例值：
func (builder *JobBuilder) CityList(cityList []*CodeNameObject) *JobBuilder {
	builder.cityList = cityList
	builder.cityListFlag = true
	return builder
}

// 职位属性，1是实体职位，2是虚拟职位
//
// 示例值：1
func (builder *JobBuilder) JobAttribute(jobAttribute int) *JobBuilder {
	builder.jobAttribute = jobAttribute
	builder.jobAttributeFlag = true
	return builder
}

// 创建时间戳
//
// 示例值：1617170925462
func (builder *JobBuilder) CreateTimestamp(createTimestamp string) *JobBuilder {
	builder.createTimestamp = createTimestamp
	builder.createTimestampFlag = true
	return builder
}

// 更新时间戳
//
// 示例值：1617170925462
func (builder *JobBuilder) UpdateTimestamp(updateTimestamp string) *JobBuilder {
	builder.updateTimestamp = updateTimestamp
	builder.updateTimestampFlag = true
	return builder
}

// 到期时间戳
//
// 示例值：1622484739955
func (builder *JobBuilder) ExpiryTimestamp(expiryTimestamp string) *JobBuilder {
	builder.expiryTimestamp = expiryTimestamp
	builder.expiryTimestampFlag = true
	return builder
}

// 目标专业
//
// 示例值：
func (builder *JobBuilder) TargetMajorList(targetMajorList []*TargetMajorInfo) *JobBuilder {
	builder.targetMajorList = targetMajorList
	builder.targetMajorListFlag = true
	return builder
}

func (builder *JobBuilder) Build() *Job {
	req := &Job{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.minJobLevelFlag {
		req.MinJobLevel = builder.minJobLevel
	}
	if builder.maxJobLevelFlag {
		req.MaxJobLevel = builder.maxJobLevel
	}
	if builder.highlightListFlag {
		req.HighlightList = builder.highlightList
	}
	if builder.jobCategoryFlag {
		req.JobCategory = builder.jobCategory
	}
	if builder.jobTypeFlag {
		req.JobType = builder.jobType
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.createUserIdFlag {
		req.CreateUserId = &builder.createUserId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.processIdFlag {
		req.ProcessId = &builder.processId

	}
	if builder.processNameFlag {
		req.ProcessName = &builder.processName

	}
	if builder.processEnNameFlag {
		req.ProcessEnName = &builder.processEnName

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.jobFunctionFlag {
		req.JobFunction = builder.jobFunction
	}
	if builder.subjectFlag {
		req.Subject = builder.subject
	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount

	}
	if builder.experienceFlag {
		req.Experience = &builder.experience

	}
	if builder.expiryTimeFlag {
		req.ExpiryTime = &builder.expiryTime

	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.cityListFlag {
		req.CityList = builder.cityList
	}
	if builder.jobAttributeFlag {
		req.JobAttribute = &builder.jobAttribute

	}
	if builder.createTimestampFlag {
		req.CreateTimestamp = &builder.createTimestamp

	}
	if builder.updateTimestampFlag {
		req.UpdateTimestamp = &builder.updateTimestamp

	}
	if builder.expiryTimestampFlag {
		req.ExpiryTimestamp = &builder.expiryTimestamp

	}
	if builder.targetMajorListFlag {
		req.TargetMajorList = builder.targetMajorList
	}
	return req
}

type JobManager struct {
	Id *string `json:"id,omitempty"` // 职位 ID

	RecruiterId *string `json:"recruiter_id,omitempty"` // 招聘负责人 ID，仅一位，可通过用户相关接口获取用户 ID

	HiringManagerIdList []string `json:"hiring_manager_id_list,omitempty"` // 用人经理 ID 列表

	AssistantIdList []string `json:"assistant_id_list,omitempty"` // 协助人 ID 列表
}

type JobManagerBuilder struct {
	id     string // 职位 ID
	idFlag bool

	recruiterId     string // 招聘负责人 ID，仅一位，可通过用户相关接口获取用户 ID
	recruiterIdFlag bool

	hiringManagerIdList     []string // 用人经理 ID 列表
	hiringManagerIdListFlag bool

	assistantIdList     []string // 协助人 ID 列表
	assistantIdListFlag bool
}

func NewJobManagerBuilder() *JobManagerBuilder {
	builder := &JobManagerBuilder{}
	return builder
}

// 职位 ID
//
// 示例值：1618209327096
func (builder *JobManagerBuilder) Id(id string) *JobManagerBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 招聘负责人 ID，仅一位，可通过用户相关接口获取用户 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *JobManagerBuilder) RecruiterId(recruiterId string) *JobManagerBuilder {
	builder.recruiterId = recruiterId
	builder.recruiterIdFlag = true
	return builder
}

// 用人经理 ID 列表
//
// 示例值：6960663240925956554
func (builder *JobManagerBuilder) HiringManagerIdList(hiringManagerIdList []string) *JobManagerBuilder {
	builder.hiringManagerIdList = hiringManagerIdList
	builder.hiringManagerIdListFlag = true
	return builder
}

// 协助人 ID 列表
//
// 示例值：6960663240925956554
func (builder *JobManagerBuilder) AssistantIdList(assistantIdList []string) *JobManagerBuilder {
	builder.assistantIdList = assistantIdList
	builder.assistantIdListFlag = true
	return builder
}

func (builder *JobManagerBuilder) Build() *JobManager {
	req := &JobManager{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.recruiterIdFlag {
		req.RecruiterId = &builder.recruiterId

	}
	if builder.hiringManagerIdListFlag {
		req.HiringManagerIdList = builder.hiringManagerIdList
	}
	if builder.assistantIdListFlag {
		req.AssistantIdList = builder.assistantIdList
	}
	return req
}

type JobRecruiter struct {
	Id *string `json:"id,omitempty"` // 职位ID

	RecruiterId *string `json:"recruiter_id,omitempty"` // 招聘负责人ID

	HiringManagerIdList []string `json:"hiring_manager_id_list,omitempty"` // 用人经理ID列表

	AssistantIdList []string `json:"assistant_id_list,omitempty"` // 协助人ID列表
}

type JobRecruiterBuilder struct {
	id     string // 职位ID
	idFlag bool

	recruiterId     string // 招聘负责人ID
	recruiterIdFlag bool

	hiringManagerIdList     []string // 用人经理ID列表
	hiringManagerIdListFlag bool

	assistantIdList     []string // 协助人ID列表
	assistantIdListFlag bool
}

func NewJobRecruiterBuilder() *JobRecruiterBuilder {
	builder := &JobRecruiterBuilder{}
	return builder
}

// 职位ID
//
// 示例值：
func (builder *JobRecruiterBuilder) Id(id string) *JobRecruiterBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 招聘负责人ID
//
// 示例值：
func (builder *JobRecruiterBuilder) RecruiterId(recruiterId string) *JobRecruiterBuilder {
	builder.recruiterId = recruiterId
	builder.recruiterIdFlag = true
	return builder
}

// 用人经理ID列表
//
// 示例值：
func (builder *JobRecruiterBuilder) HiringManagerIdList(hiringManagerIdList []string) *JobRecruiterBuilder {
	builder.hiringManagerIdList = hiringManagerIdList
	builder.hiringManagerIdListFlag = true
	return builder
}

// 协助人ID列表
//
// 示例值：
func (builder *JobRecruiterBuilder) AssistantIdList(assistantIdList []string) *JobRecruiterBuilder {
	builder.assistantIdList = assistantIdList
	builder.assistantIdListFlag = true
	return builder
}

func (builder *JobRecruiterBuilder) Build() *JobRecruiter {
	req := &JobRecruiter{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.recruiterIdFlag {
		req.RecruiterId = &builder.recruiterId

	}
	if builder.hiringManagerIdListFlag {
		req.HiringManagerIdList = builder.hiringManagerIdList
	}
	if builder.assistantIdListFlag {
		req.AssistantIdList = builder.assistantIdList
	}
	return req
}

type JobBasicInfo struct {
	Id *string `json:"id,omitempty"` // 职位 ID

	Name *string `json:"name,omitempty"` // 职位名称

	Code *string `json:"code,omitempty"` // 职位编码
}

type JobBasicInfoBuilder struct {
	id     string // 职位 ID
	idFlag bool

	name     string // 职位名称
	nameFlag bool

	code     string // 职位编码
	codeFlag bool
}

func NewJobBasicInfoBuilder() *JobBasicInfoBuilder {
	builder := &JobBasicInfoBuilder{}
	return builder
}

// 职位 ID
//
// 示例值：6956499586395523359
func (builder *JobBasicInfoBuilder) Id(id string) *JobBasicInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位名称
//
// 示例值：后端研发工程师
func (builder *JobBasicInfoBuilder) Name(name string) *JobBasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 职位编码
//
// 示例值：A75256
func (builder *JobBasicInfoBuilder) Code(code string) *JobBasicInfoBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

func (builder *JobBasicInfoBuilder) Build() *JobBasicInfo {
	req := &JobBasicInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	return req
}

type JobCategory struct {
	Id *string `json:"id,omitempty"` // 职位序列 ID

	ZhName *string `json:"zh_name,omitempty"` // 职位序列中文名称

	EnName *string `json:"en_name,omitempty"` // 职位序列英文名称

	ActiveStatus *int `json:"active_status,omitempty"` // 职位序列启用状态
}

type JobCategoryBuilder struct {
	id     string // 职位序列 ID
	idFlag bool

	zhName     string // 职位序列中文名称
	zhNameFlag bool

	enName     string // 职位序列英文名称
	enNameFlag bool

	activeStatus     int // 职位序列启用状态
	activeStatusFlag bool
}

func NewJobCategoryBuilder() *JobCategoryBuilder {
	builder := &JobCategoryBuilder{}
	return builder
}

// 职位序列 ID
//
// 示例值：6301
func (builder *JobCategoryBuilder) Id(id string) *JobCategoryBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位序列中文名称
//
// 示例值：序列-A
func (builder *JobCategoryBuilder) ZhName(zhName string) *JobCategoryBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 职位序列英文名称
//
// 示例值：category-A
func (builder *JobCategoryBuilder) EnName(enName string) *JobCategoryBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 职位序列启用状态
//
// 示例值：1
func (builder *JobCategoryBuilder) ActiveStatus(activeStatus int) *JobCategoryBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobCategoryBuilder) Build() *JobCategory {
	req := &JobCategory{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobCity struct {
	CityCode *string `json:"city_code,omitempty"` // 工作地点城市代码

	ZhName *string `json:"zh_name,omitempty"` // 工作地点中文名称

	EnName *string `json:"en_name,omitempty"` // 工作地点英文名称
}

type JobCityBuilder struct {
	cityCode     string // 工作地点城市代码
	cityCodeFlag bool

	zhName     string // 工作地点中文名称
	zhNameFlag bool

	enName     string // 工作地点英文名称
	enNameFlag bool
}

func NewJobCityBuilder() *JobCityBuilder {
	builder := &JobCityBuilder{}
	return builder
}

// 工作地点城市代码
//
// 示例值：C20
func (builder *JobCityBuilder) CityCode(cityCode string) *JobCityBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 工作地点中文名称
//
// 示例值：成都
func (builder *JobCityBuilder) ZhName(zhName string) *JobCityBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 工作地点英文名称
//
// 示例值：Chengdu
func (builder *JobCityBuilder) EnName(enName string) *JobCityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *JobCityBuilder) Build() *JobCity {
	req := &JobCity{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type JobConfig struct {
	OfferApplySchemaId *string `json:"offer_apply_schema_id,omitempty"` // Offer 申请表，枚举通过接口「获取 Offer 申请表列表」获取

	OfferProcessConf *string `json:"offer_process_conf,omitempty"` // Offer 审批流，枚举通过接口「获取 Offer 审批流列表」获取

	RecommendedEvaluatorIdList []string `json:"recommended_evaluator_id_list,omitempty"` // 建议评估人 ID 列表

	UpdateOptionList []int `json:"update_option_list,omitempty"` // 更新选项，传入要更新的配置项，1=更新面试评价表，2=更新 Offer 申请表，3=更新 Offer 审批流程，4=更新招聘需求，5=更新建议面试官，6=更新推荐评估人

	AssessmentTemplateBizId *string `json:"assessment_template_biz_id,omitempty"` // 面试评价表，枚举通过接口「获取面试评价表列表」获取

	InterviewRoundConfList []*JobConfigInterviewRoundConf `json:"interview_round_conf_list,omitempty"` // 建议面试官列表

	JrIdList []string `json:"jr_id_list,omitempty"` // 关联招聘需求，支持关联多个，枚举通过接口「获取招聘需求」获取

	InterviewRegistrationSchemaId *string `json:"interview_registration_schema_id,omitempty"` // 面试登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 面试登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。

	OnboardRegistrationSchemaId *string `json:"onboard_registration_schema_id,omitempty"` // 入职登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 入职登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。

	InterviewRoundTypeConfList []*JobConfigRoundType `json:"interview_round_type_conf_list,omitempty"` // 面试轮次类型 ID 列表

	RelatedJobIdList []string `json:"related_job_id_list,omitempty"` // 关联职位列表，如职位为实体职位则关联虚拟职位id，如职位为虚拟职位则关联实体职位id

	InterviewAppointmentConfig *InterviewAppointmentConfig `json:"interview_appointment_config,omitempty"` // 自助约面配置

	PortalWebsiteApplyFormSchemaId *string `json:"portal_website_apply_form_schema_id,omitempty"` // 官网申请表ID
}

type JobConfigBuilder struct {
	offerApplySchemaId     string // Offer 申请表，枚举通过接口「获取 Offer 申请表列表」获取
	offerApplySchemaIdFlag bool

	offerProcessConf     string // Offer 审批流，枚举通过接口「获取 Offer 审批流列表」获取
	offerProcessConfFlag bool

	recommendedEvaluatorIdList     []string // 建议评估人 ID 列表
	recommendedEvaluatorIdListFlag bool

	updateOptionList     []int // 更新选项，传入要更新的配置项，1=更新面试评价表，2=更新 Offer 申请表，3=更新 Offer 审批流程，4=更新招聘需求，5=更新建议面试官，6=更新推荐评估人
	updateOptionListFlag bool

	assessmentTemplateBizId     string // 面试评价表，枚举通过接口「获取面试评价表列表」获取
	assessmentTemplateBizIdFlag bool

	interviewRoundConfList     []*JobConfigInterviewRoundConf // 建议面试官列表
	interviewRoundConfListFlag bool

	jrIdList     []string // 关联招聘需求，支持关联多个，枚举通过接口「获取招聘需求」获取
	jrIdListFlag bool

	interviewRegistrationSchemaId     string // 面试登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 面试登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。
	interviewRegistrationSchemaIdFlag bool

	onboardRegistrationSchemaId     string // 入职登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 入职登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。
	onboardRegistrationSchemaIdFlag bool

	interviewRoundTypeConfList     []*JobConfigRoundType // 面试轮次类型 ID 列表
	interviewRoundTypeConfListFlag bool

	relatedJobIdList     []string // 关联职位列表，如职位为实体职位则关联虚拟职位id，如职位为虚拟职位则关联实体职位id
	relatedJobIdListFlag bool

	interviewAppointmentConfig     *InterviewAppointmentConfig // 自助约面配置
	interviewAppointmentConfigFlag bool

	portalWebsiteApplyFormSchemaId     string // 官网申请表ID
	portalWebsiteApplyFormSchemaIdFlag bool
}

func NewJobConfigBuilder() *JobConfigBuilder {
	builder := &JobConfigBuilder{}
	return builder
}

// Offer 申请表，枚举通过接口「获取 Offer 申请表列表」获取
//
// 示例值：6960663240925956573
func (builder *JobConfigBuilder) OfferApplySchemaId(offerApplySchemaId string) *JobConfigBuilder {
	builder.offerApplySchemaId = offerApplySchemaId
	builder.offerApplySchemaIdFlag = true
	return builder
}

// Offer 审批流，枚举通过接口「获取 Offer 审批流列表」获取
//
// 示例值：6960663240925956572
func (builder *JobConfigBuilder) OfferProcessConf(offerProcessConf string) *JobConfigBuilder {
	builder.offerProcessConf = offerProcessConf
	builder.offerProcessConfFlag = true
	return builder
}

// 建议评估人 ID 列表
//
// 示例值：6966533137982392320
func (builder *JobConfigBuilder) RecommendedEvaluatorIdList(recommendedEvaluatorIdList []string) *JobConfigBuilder {
	builder.recommendedEvaluatorIdList = recommendedEvaluatorIdList
	builder.recommendedEvaluatorIdListFlag = true
	return builder
}

// 更新选项，传入要更新的配置项，1=更新面试评价表，2=更新 Offer 申请表，3=更新 Offer 审批流程，4=更新招聘需求，5=更新建议面试官，6=更新推荐评估人
//
// 示例值：1
func (builder *JobConfigBuilder) UpdateOptionList(updateOptionList []int) *JobConfigBuilder {
	builder.updateOptionList = updateOptionList
	builder.updateOptionListFlag = true
	return builder
}

// 面试评价表，枚举通过接口「获取面试评价表列表」获取
//
// 示例值：6960663240925956571
func (builder *JobConfigBuilder) AssessmentTemplateBizId(assessmentTemplateBizId string) *JobConfigBuilder {
	builder.assessmentTemplateBizId = assessmentTemplateBizId
	builder.assessmentTemplateBizIdFlag = true
	return builder
}

// 建议面试官列表
//
// 示例值：
func (builder *JobConfigBuilder) InterviewRoundConfList(interviewRoundConfList []*JobConfigInterviewRoundConf) *JobConfigBuilder {
	builder.interviewRoundConfList = interviewRoundConfList
	builder.interviewRoundConfListFlag = true
	return builder
}

// 关联招聘需求，支持关联多个，枚举通过接口「获取招聘需求」获取
//
// 示例值：6966533137982392320
func (builder *JobConfigBuilder) JrIdList(jrIdList []string) *JobConfigBuilder {
	builder.jrIdList = jrIdList
	builder.jrIdListFlag = true
	return builder
}

// 面试登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 面试登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。
//
// 示例值：6930815272790114324
func (builder *JobConfigBuilder) InterviewRegistrationSchemaId(interviewRegistrationSchemaId string) *JobConfigBuilder {
	builder.interviewRegistrationSchemaId = interviewRegistrationSchemaId
	builder.interviewRegistrationSchemaIdFlag = true
	return builder
}

// 入职登记表ID，当在飞书招聘「设置 - 信息登记表使用设置 - 入职登记表使用方式」中选择「HR 按职位选择登记表」时，该字段为必填；否则该字段不生效。
//
// 示例值：6930815272790114324
func (builder *JobConfigBuilder) OnboardRegistrationSchemaId(onboardRegistrationSchemaId string) *JobConfigBuilder {
	builder.onboardRegistrationSchemaId = onboardRegistrationSchemaId
	builder.onboardRegistrationSchemaIdFlag = true
	return builder
}

// 面试轮次类型 ID 列表
//
// 示例值：
func (builder *JobConfigBuilder) InterviewRoundTypeConfList(interviewRoundTypeConfList []*JobConfigRoundType) *JobConfigBuilder {
	builder.interviewRoundTypeConfList = interviewRoundTypeConfList
	builder.interviewRoundTypeConfListFlag = true
	return builder
}

// 关联职位列表，如职位为实体职位则关联虚拟职位id，如职位为虚拟职位则关联实体职位id
//
// 示例值：6966533137982392320
func (builder *JobConfigBuilder) RelatedJobIdList(relatedJobIdList []string) *JobConfigBuilder {
	builder.relatedJobIdList = relatedJobIdList
	builder.relatedJobIdListFlag = true
	return builder
}

// 自助约面配置
//
// 示例值：
func (builder *JobConfigBuilder) InterviewAppointmentConfig(interviewAppointmentConfig *InterviewAppointmentConfig) *JobConfigBuilder {
	builder.interviewAppointmentConfig = interviewAppointmentConfig
	builder.interviewAppointmentConfigFlag = true
	return builder
}

// 官网申请表ID
//
// 示例值：6930815272790114324
func (builder *JobConfigBuilder) PortalWebsiteApplyFormSchemaId(portalWebsiteApplyFormSchemaId string) *JobConfigBuilder {
	builder.portalWebsiteApplyFormSchemaId = portalWebsiteApplyFormSchemaId
	builder.portalWebsiteApplyFormSchemaIdFlag = true
	return builder
}

func (builder *JobConfigBuilder) Build() *JobConfig {
	req := &JobConfig{}
	if builder.offerApplySchemaIdFlag {
		req.OfferApplySchemaId = &builder.offerApplySchemaId

	}
	if builder.offerProcessConfFlag {
		req.OfferProcessConf = &builder.offerProcessConf

	}
	if builder.recommendedEvaluatorIdListFlag {
		req.RecommendedEvaluatorIdList = builder.recommendedEvaluatorIdList
	}
	if builder.updateOptionListFlag {
		req.UpdateOptionList = builder.updateOptionList
	}
	if builder.assessmentTemplateBizIdFlag {
		req.AssessmentTemplateBizId = &builder.assessmentTemplateBizId

	}
	if builder.interviewRoundConfListFlag {
		req.InterviewRoundConfList = builder.interviewRoundConfList
	}
	if builder.jrIdListFlag {
		req.JrIdList = builder.jrIdList
	}
	if builder.interviewRegistrationSchemaIdFlag {
		req.InterviewRegistrationSchemaId = &builder.interviewRegistrationSchemaId

	}
	if builder.onboardRegistrationSchemaIdFlag {
		req.OnboardRegistrationSchemaId = &builder.onboardRegistrationSchemaId

	}
	if builder.interviewRoundTypeConfListFlag {
		req.InterviewRoundTypeConfList = builder.interviewRoundTypeConfList
	}
	if builder.relatedJobIdListFlag {
		req.RelatedJobIdList = builder.relatedJobIdList
	}
	if builder.interviewAppointmentConfigFlag {
		req.InterviewAppointmentConfig = builder.interviewAppointmentConfig
	}
	if builder.portalWebsiteApplyFormSchemaIdFlag {
		req.PortalWebsiteApplyFormSchemaId = &builder.portalWebsiteApplyFormSchemaId

	}
	return req
}

type JobConfigDetail struct {
	OfferApplySchema *IdNameObject `json:"offer_apply_schema,omitempty"` // Offer 申请表，含 ID+name

	OfferProcessConf *IdNameObject `json:"offer_process_conf,omitempty"` // Offer 审批流，含 ID+name

	RecommendedEvaluatorList []*IdNameObject `json:"recommended_evaluator_list,omitempty"` // 建议评估人，可多位

	AssessmentTemplate *IdNameObject `json:"assessment_template,omitempty"` // 面试评价表，含 ID+name

	Id *string `json:"id,omitempty"` // 职位 ID

	InterviewRoundList []*JobConfigInterviewRound `json:"interview_round_list,omitempty"` // 建议面试官列表，可多位

	InterviewRegistration *RegistrationInfo `json:"interview_registration,omitempty"` // 面试登记表

	OnboardRegistration *RegistrationInfo `json:"onboard_registration,omitempty"` // 入职登记表

	InterviewRoundTypeList []*JobConfigRoundTypeResult `json:"interview_round_type_list,omitempty"` // 面试轮次类型列表

	RelatedJobList []*IdNameObject `json:"related_job_list,omitempty"` // 关联职位列表

	JobAttribute *int `json:"job_attribute,omitempty"` // 职位属性，1是实体职位，2是虚拟职位

	InterviewAppointmentConfig *InterviewAppointmentConfig `json:"interview_appointment_config,omitempty"` // 面试官安排面试配置

	InternshipOfferApplySchema *IdNameObject `json:"internship_offer_apply_schema,omitempty"` // 实习Offer 申请表，含 ID+name
}

type JobConfigDetailBuilder struct {
	offerApplySchema     *IdNameObject // Offer 申请表，含 ID+name
	offerApplySchemaFlag bool

	offerProcessConf     *IdNameObject // Offer 审批流，含 ID+name
	offerProcessConfFlag bool

	recommendedEvaluatorList     []*IdNameObject // 建议评估人，可多位
	recommendedEvaluatorListFlag bool

	assessmentTemplate     *IdNameObject // 面试评价表，含 ID+name
	assessmentTemplateFlag bool

	id     string // 职位 ID
	idFlag bool

	interviewRoundList     []*JobConfigInterviewRound // 建议面试官列表，可多位
	interviewRoundListFlag bool

	interviewRegistration     *RegistrationInfo // 面试登记表
	interviewRegistrationFlag bool

	onboardRegistration     *RegistrationInfo // 入职登记表
	onboardRegistrationFlag bool

	interviewRoundTypeList     []*JobConfigRoundTypeResult // 面试轮次类型列表
	interviewRoundTypeListFlag bool

	relatedJobList     []*IdNameObject // 关联职位列表
	relatedJobListFlag bool

	jobAttribute     int // 职位属性，1是实体职位，2是虚拟职位
	jobAttributeFlag bool

	interviewAppointmentConfig     *InterviewAppointmentConfig // 面试官安排面试配置
	interviewAppointmentConfigFlag bool

	internshipOfferApplySchema     *IdNameObject // 实习Offer 申请表，含 ID+name
	internshipOfferApplySchemaFlag bool
}

func NewJobConfigDetailBuilder() *JobConfigDetailBuilder {
	builder := &JobConfigDetailBuilder{}
	return builder
}

// Offer 申请表，含 ID+name
//
// 示例值：
func (builder *JobConfigDetailBuilder) OfferApplySchema(offerApplySchema *IdNameObject) *JobConfigDetailBuilder {
	builder.offerApplySchema = offerApplySchema
	builder.offerApplySchemaFlag = true
	return builder
}

// Offer 审批流，含 ID+name
//
// 示例值：
func (builder *JobConfigDetailBuilder) OfferProcessConf(offerProcessConf *IdNameObject) *JobConfigDetailBuilder {
	builder.offerProcessConf = offerProcessConf
	builder.offerProcessConfFlag = true
	return builder
}

// 建议评估人，可多位
//
// 示例值：
func (builder *JobConfigDetailBuilder) RecommendedEvaluatorList(recommendedEvaluatorList []*IdNameObject) *JobConfigDetailBuilder {
	builder.recommendedEvaluatorList = recommendedEvaluatorList
	builder.recommendedEvaluatorListFlag = true
	return builder
}

// 面试评价表，含 ID+name
//
// 示例值：
func (builder *JobConfigDetailBuilder) AssessmentTemplate(assessmentTemplate *IdNameObject) *JobConfigDetailBuilder {
	builder.assessmentTemplate = assessmentTemplate
	builder.assessmentTemplateFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956574
func (builder *JobConfigDetailBuilder) Id(id string) *JobConfigDetailBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 建议面试官列表，可多位
//
// 示例值：
func (builder *JobConfigDetailBuilder) InterviewRoundList(interviewRoundList []*JobConfigInterviewRound) *JobConfigDetailBuilder {
	builder.interviewRoundList = interviewRoundList
	builder.interviewRoundListFlag = true
	return builder
}

// 面试登记表
//
// 示例值：
func (builder *JobConfigDetailBuilder) InterviewRegistration(interviewRegistration *RegistrationInfo) *JobConfigDetailBuilder {
	builder.interviewRegistration = interviewRegistration
	builder.interviewRegistrationFlag = true
	return builder
}

// 入职登记表
//
// 示例值：
func (builder *JobConfigDetailBuilder) OnboardRegistration(onboardRegistration *RegistrationInfo) *JobConfigDetailBuilder {
	builder.onboardRegistration = onboardRegistration
	builder.onboardRegistrationFlag = true
	return builder
}

// 面试轮次类型列表
//
// 示例值：
func (builder *JobConfigDetailBuilder) InterviewRoundTypeList(interviewRoundTypeList []*JobConfigRoundTypeResult) *JobConfigDetailBuilder {
	builder.interviewRoundTypeList = interviewRoundTypeList
	builder.interviewRoundTypeListFlag = true
	return builder
}

// 关联职位列表
//
// 示例值：
func (builder *JobConfigDetailBuilder) RelatedJobList(relatedJobList []*IdNameObject) *JobConfigDetailBuilder {
	builder.relatedJobList = relatedJobList
	builder.relatedJobListFlag = true
	return builder
}

// 职位属性，1是实体职位，2是虚拟职位
//
// 示例值：1
func (builder *JobConfigDetailBuilder) JobAttribute(jobAttribute int) *JobConfigDetailBuilder {
	builder.jobAttribute = jobAttribute
	builder.jobAttributeFlag = true
	return builder
}

// 面试官安排面试配置
//
// 示例值：
func (builder *JobConfigDetailBuilder) InterviewAppointmentConfig(interviewAppointmentConfig *InterviewAppointmentConfig) *JobConfigDetailBuilder {
	builder.interviewAppointmentConfig = interviewAppointmentConfig
	builder.interviewAppointmentConfigFlag = true
	return builder
}

// 实习Offer 申请表，含 ID+name
//
// 示例值：
func (builder *JobConfigDetailBuilder) InternshipOfferApplySchema(internshipOfferApplySchema *IdNameObject) *JobConfigDetailBuilder {
	builder.internshipOfferApplySchema = internshipOfferApplySchema
	builder.internshipOfferApplySchemaFlag = true
	return builder
}

func (builder *JobConfigDetailBuilder) Build() *JobConfigDetail {
	req := &JobConfigDetail{}
	if builder.offerApplySchemaFlag {
		req.OfferApplySchema = builder.offerApplySchema
	}
	if builder.offerProcessConfFlag {
		req.OfferProcessConf = builder.offerProcessConf
	}
	if builder.recommendedEvaluatorListFlag {
		req.RecommendedEvaluatorList = builder.recommendedEvaluatorList
	}
	if builder.assessmentTemplateFlag {
		req.AssessmentTemplate = builder.assessmentTemplate
	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.interviewRoundListFlag {
		req.InterviewRoundList = builder.interviewRoundList
	}
	if builder.interviewRegistrationFlag {
		req.InterviewRegistration = builder.interviewRegistration
	}
	if builder.onboardRegistrationFlag {
		req.OnboardRegistration = builder.onboardRegistration
	}
	if builder.interviewRoundTypeListFlag {
		req.InterviewRoundTypeList = builder.interviewRoundTypeList
	}
	if builder.relatedJobListFlag {
		req.RelatedJobList = builder.relatedJobList
	}
	if builder.jobAttributeFlag {
		req.JobAttribute = &builder.jobAttribute

	}
	if builder.interviewAppointmentConfigFlag {
		req.InterviewAppointmentConfig = builder.interviewAppointmentConfig
	}
	if builder.internshipOfferApplySchemaFlag {
		req.InternshipOfferApplySchema = builder.internshipOfferApplySchema
	}
	return req
}

type JobConfigInterviewRound struct {
	InterviewerList []*IdNameObject `json:"interviewer_list,omitempty"` // 面试官列表

	Round *int `json:"round,omitempty"` // 面试轮次
}

type JobConfigInterviewRoundBuilder struct {
	interviewerList     []*IdNameObject // 面试官列表
	interviewerListFlag bool

	round     int // 面试轮次
	roundFlag bool
}

func NewJobConfigInterviewRoundBuilder() *JobConfigInterviewRoundBuilder {
	builder := &JobConfigInterviewRoundBuilder{}
	return builder
}

// 面试官列表
//
// 示例值：
func (builder *JobConfigInterviewRoundBuilder) InterviewerList(interviewerList []*IdNameObject) *JobConfigInterviewRoundBuilder {
	builder.interviewerList = interviewerList
	builder.interviewerListFlag = true
	return builder
}

// 面试轮次
//
// 示例值：1
func (builder *JobConfigInterviewRoundBuilder) Round(round int) *JobConfigInterviewRoundBuilder {
	builder.round = round
	builder.roundFlag = true
	return builder
}

func (builder *JobConfigInterviewRoundBuilder) Build() *JobConfigInterviewRound {
	req := &JobConfigInterviewRound{}
	if builder.interviewerListFlag {
		req.InterviewerList = builder.interviewerList
	}
	if builder.roundFlag {
		req.Round = &builder.round

	}
	return req
}

type JobConfigInterviewRoundConf struct {
	InterviewerIdList []string `json:"interviewer_id_list,omitempty"` // 建议面试官 ID 列表

	Round *int `json:"round,omitempty"` // 面试轮次
}

type JobConfigInterviewRoundConfBuilder struct {
	interviewerIdList     []string // 建议面试官 ID 列表
	interviewerIdListFlag bool

	round     int // 面试轮次
	roundFlag bool
}

func NewJobConfigInterviewRoundConfBuilder() *JobConfigInterviewRoundConfBuilder {
	builder := &JobConfigInterviewRoundConfBuilder{}
	return builder
}

// 建议面试官 ID 列表
//
// 示例值：6960663240925956571
func (builder *JobConfigInterviewRoundConfBuilder) InterviewerIdList(interviewerIdList []string) *JobConfigInterviewRoundConfBuilder {
	builder.interviewerIdList = interviewerIdList
	builder.interviewerIdListFlag = true
	return builder
}

// 面试轮次
//
// 示例值：1
func (builder *JobConfigInterviewRoundConfBuilder) Round(round int) *JobConfigInterviewRoundConfBuilder {
	builder.round = round
	builder.roundFlag = true
	return builder
}

func (builder *JobConfigInterviewRoundConfBuilder) Build() *JobConfigInterviewRoundConf {
	req := &JobConfigInterviewRoundConf{}
	if builder.interviewerIdListFlag {
		req.InterviewerIdList = builder.interviewerIdList
	}
	if builder.roundFlag {
		req.Round = &builder.round

	}
	return req
}

type JobConfigResult struct {
	OfferApplySchema *IdNameObject `json:"offer_apply_schema,omitempty"` // Offer 申请表

	OfferProcessConf *IdNameObject `json:"offer_process_conf,omitempty"` // Offer 审批流

	RecommendedEvaluatorList []*IdNameObject `json:"recommended_evaluator_list,omitempty"` // 建议评估人列表

	AssessmentTemplate *IdNameObject `json:"assessment_template,omitempty"` // 面试评价表

	Id *string `json:"id,omitempty"` // 职位 ID

	InterviewRoundList []*JobConfigInterviewRound `json:"interview_round_list,omitempty"` // 建议面试官列表

	JobRequirementList []*IdNameObject `json:"job_requirement_list,omitempty"` // 招聘需求

	InterviewRegistration *RegistrationInfo `json:"interview_registration,omitempty"` // 面试登记表

	OnboardRegistration *RegistrationInfo `json:"onboard_registration,omitempty"` // 入职登记表

	InterviewRoundTypeList []*JobConfigRoundTypeResult `json:"interview_round_type_list,omitempty"` // 面试轮次类型列表

	RelatedJobList []*IdNameObject `json:"related_job_list,omitempty"` // 关联职位列表

	JobAttribute *int `json:"job_attribute,omitempty"` // 职位属性，1是实体职位，2是虚拟职位

	InterviewAppointmentConfig *InterviewAppointmentConfig `json:"interview_appointment_config,omitempty"` // 面试官安排面试配置

	PortalWebsiteApplyFormSchemaInfo *RegistrationInfo `json:"portal_website_apply_form_schema_info,omitempty"` // 官网申请表
}

type JobConfigResultBuilder struct {
	offerApplySchema     *IdNameObject // Offer 申请表
	offerApplySchemaFlag bool

	offerProcessConf     *IdNameObject // Offer 审批流
	offerProcessConfFlag bool

	recommendedEvaluatorList     []*IdNameObject // 建议评估人列表
	recommendedEvaluatorListFlag bool

	assessmentTemplate     *IdNameObject // 面试评价表
	assessmentTemplateFlag bool

	id     string // 职位 ID
	idFlag bool

	interviewRoundList     []*JobConfigInterviewRound // 建议面试官列表
	interviewRoundListFlag bool

	jobRequirementList     []*IdNameObject // 招聘需求
	jobRequirementListFlag bool

	interviewRegistration     *RegistrationInfo // 面试登记表
	interviewRegistrationFlag bool

	onboardRegistration     *RegistrationInfo // 入职登记表
	onboardRegistrationFlag bool

	interviewRoundTypeList     []*JobConfigRoundTypeResult // 面试轮次类型列表
	interviewRoundTypeListFlag bool

	relatedJobList     []*IdNameObject // 关联职位列表
	relatedJobListFlag bool

	jobAttribute     int // 职位属性，1是实体职位，2是虚拟职位
	jobAttributeFlag bool

	interviewAppointmentConfig     *InterviewAppointmentConfig // 面试官安排面试配置
	interviewAppointmentConfigFlag bool

	portalWebsiteApplyFormSchemaInfo     *RegistrationInfo // 官网申请表
	portalWebsiteApplyFormSchemaInfoFlag bool
}

func NewJobConfigResultBuilder() *JobConfigResultBuilder {
	builder := &JobConfigResultBuilder{}
	return builder
}

// Offer 申请表
//
// 示例值：
func (builder *JobConfigResultBuilder) OfferApplySchema(offerApplySchema *IdNameObject) *JobConfigResultBuilder {
	builder.offerApplySchema = offerApplySchema
	builder.offerApplySchemaFlag = true
	return builder
}

// Offer 审批流
//
// 示例值：
func (builder *JobConfigResultBuilder) OfferProcessConf(offerProcessConf *IdNameObject) *JobConfigResultBuilder {
	builder.offerProcessConf = offerProcessConf
	builder.offerProcessConfFlag = true
	return builder
}

// 建议评估人列表
//
// 示例值：
func (builder *JobConfigResultBuilder) RecommendedEvaluatorList(recommendedEvaluatorList []*IdNameObject) *JobConfigResultBuilder {
	builder.recommendedEvaluatorList = recommendedEvaluatorList
	builder.recommendedEvaluatorListFlag = true
	return builder
}

// 面试评价表
//
// 示例值：
func (builder *JobConfigResultBuilder) AssessmentTemplate(assessmentTemplate *IdNameObject) *JobConfigResultBuilder {
	builder.assessmentTemplate = assessmentTemplate
	builder.assessmentTemplateFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956574
func (builder *JobConfigResultBuilder) Id(id string) *JobConfigResultBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 建议面试官列表
//
// 示例值：
func (builder *JobConfigResultBuilder) InterviewRoundList(interviewRoundList []*JobConfigInterviewRound) *JobConfigResultBuilder {
	builder.interviewRoundList = interviewRoundList
	builder.interviewRoundListFlag = true
	return builder
}

// 招聘需求
//
// 示例值：
func (builder *JobConfigResultBuilder) JobRequirementList(jobRequirementList []*IdNameObject) *JobConfigResultBuilder {
	builder.jobRequirementList = jobRequirementList
	builder.jobRequirementListFlag = true
	return builder
}

// 面试登记表
//
// 示例值：
func (builder *JobConfigResultBuilder) InterviewRegistration(interviewRegistration *RegistrationInfo) *JobConfigResultBuilder {
	builder.interviewRegistration = interviewRegistration
	builder.interviewRegistrationFlag = true
	return builder
}

// 入职登记表
//
// 示例值：
func (builder *JobConfigResultBuilder) OnboardRegistration(onboardRegistration *RegistrationInfo) *JobConfigResultBuilder {
	builder.onboardRegistration = onboardRegistration
	builder.onboardRegistrationFlag = true
	return builder
}

// 面试轮次类型列表
//
// 示例值：
func (builder *JobConfigResultBuilder) InterviewRoundTypeList(interviewRoundTypeList []*JobConfigRoundTypeResult) *JobConfigResultBuilder {
	builder.interviewRoundTypeList = interviewRoundTypeList
	builder.interviewRoundTypeListFlag = true
	return builder
}

// 关联职位列表
//
// 示例值：
func (builder *JobConfigResultBuilder) RelatedJobList(relatedJobList []*IdNameObject) *JobConfigResultBuilder {
	builder.relatedJobList = relatedJobList
	builder.relatedJobListFlag = true
	return builder
}

// 职位属性，1是实体职位，2是虚拟职位
//
// 示例值：1
func (builder *JobConfigResultBuilder) JobAttribute(jobAttribute int) *JobConfigResultBuilder {
	builder.jobAttribute = jobAttribute
	builder.jobAttributeFlag = true
	return builder
}

// 面试官安排面试配置
//
// 示例值：
func (builder *JobConfigResultBuilder) InterviewAppointmentConfig(interviewAppointmentConfig *InterviewAppointmentConfig) *JobConfigResultBuilder {
	builder.interviewAppointmentConfig = interviewAppointmentConfig
	builder.interviewAppointmentConfigFlag = true
	return builder
}

// 官网申请表
//
// 示例值：
func (builder *JobConfigResultBuilder) PortalWebsiteApplyFormSchemaInfo(portalWebsiteApplyFormSchemaInfo *RegistrationInfo) *JobConfigResultBuilder {
	builder.portalWebsiteApplyFormSchemaInfo = portalWebsiteApplyFormSchemaInfo
	builder.portalWebsiteApplyFormSchemaInfoFlag = true
	return builder
}

func (builder *JobConfigResultBuilder) Build() *JobConfigResult {
	req := &JobConfigResult{}
	if builder.offerApplySchemaFlag {
		req.OfferApplySchema = builder.offerApplySchema
	}
	if builder.offerProcessConfFlag {
		req.OfferProcessConf = builder.offerProcessConf
	}
	if builder.recommendedEvaluatorListFlag {
		req.RecommendedEvaluatorList = builder.recommendedEvaluatorList
	}
	if builder.assessmentTemplateFlag {
		req.AssessmentTemplate = builder.assessmentTemplate
	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.interviewRoundListFlag {
		req.InterviewRoundList = builder.interviewRoundList
	}
	if builder.jobRequirementListFlag {
		req.JobRequirementList = builder.jobRequirementList
	}
	if builder.interviewRegistrationFlag {
		req.InterviewRegistration = builder.interviewRegistration
	}
	if builder.onboardRegistrationFlag {
		req.OnboardRegistration = builder.onboardRegistration
	}
	if builder.interviewRoundTypeListFlag {
		req.InterviewRoundTypeList = builder.interviewRoundTypeList
	}
	if builder.relatedJobListFlag {
		req.RelatedJobList = builder.relatedJobList
	}
	if builder.jobAttributeFlag {
		req.JobAttribute = &builder.jobAttribute

	}
	if builder.interviewAppointmentConfigFlag {
		req.InterviewAppointmentConfig = builder.interviewAppointmentConfig
	}
	if builder.portalWebsiteApplyFormSchemaInfoFlag {
		req.PortalWebsiteApplyFormSchemaInfo = builder.portalWebsiteApplyFormSchemaInfo
	}
	return req
}

type JobConfigRoundType struct {
	RoundBizId *string `json:"round_biz_id,omitempty"` // 面试轮次类型业务 ID

	AssessmentTemplateBizId *string `json:"assessment_template_biz_id,omitempty"` // 面试评价表业务 ID
}

type JobConfigRoundTypeBuilder struct {
	roundBizId     string // 面试轮次类型业务 ID
	roundBizIdFlag bool

	assessmentTemplateBizId     string // 面试评价表业务 ID
	assessmentTemplateBizIdFlag bool
}

func NewJobConfigRoundTypeBuilder() *JobConfigRoundTypeBuilder {
	builder := &JobConfigRoundTypeBuilder{}
	return builder
}

// 面试轮次类型业务 ID
//
// 示例值：7012129842917837100
func (builder *JobConfigRoundTypeBuilder) RoundBizId(roundBizId string) *JobConfigRoundTypeBuilder {
	builder.roundBizId = roundBizId
	builder.roundBizIdFlag = true
	return builder
}

// 面试评价表业务 ID
//
// 示例值：6960663240925956632
func (builder *JobConfigRoundTypeBuilder) AssessmentTemplateBizId(assessmentTemplateBizId string) *JobConfigRoundTypeBuilder {
	builder.assessmentTemplateBizId = assessmentTemplateBizId
	builder.assessmentTemplateBizIdFlag = true
	return builder
}

func (builder *JobConfigRoundTypeBuilder) Build() *JobConfigRoundType {
	req := &JobConfigRoundType{}
	if builder.roundBizIdFlag {
		req.RoundBizId = &builder.roundBizId

	}
	if builder.assessmentTemplateBizIdFlag {
		req.AssessmentTemplateBizId = &builder.assessmentTemplateBizId

	}
	return req
}

type JobConfigRoundTypeResult struct {
	AssessmentRound *IdNameObject `json:"assessment_round,omitempty"` // 面试轮次类型

	AssessmentTemplate *IdNameObject `json:"assessment_template,omitempty"` // 面试评价表
}

type JobConfigRoundTypeResultBuilder struct {
	assessmentRound     *IdNameObject // 面试轮次类型
	assessmentRoundFlag bool

	assessmentTemplate     *IdNameObject // 面试评价表
	assessmentTemplateFlag bool
}

func NewJobConfigRoundTypeResultBuilder() *JobConfigRoundTypeResultBuilder {
	builder := &JobConfigRoundTypeResultBuilder{}
	return builder
}

// 面试轮次类型
//
// 示例值：
func (builder *JobConfigRoundTypeResultBuilder) AssessmentRound(assessmentRound *IdNameObject) *JobConfigRoundTypeResultBuilder {
	builder.assessmentRound = assessmentRound
	builder.assessmentRoundFlag = true
	return builder
}

// 面试评价表
//
// 示例值：
func (builder *JobConfigRoundTypeResultBuilder) AssessmentTemplate(assessmentTemplate *IdNameObject) *JobConfigRoundTypeResultBuilder {
	builder.assessmentTemplate = assessmentTemplate
	builder.assessmentTemplateFlag = true
	return builder
}

func (builder *JobConfigRoundTypeResultBuilder) Build() *JobConfigRoundTypeResult {
	req := &JobConfigRoundTypeResult{}
	if builder.assessmentRoundFlag {
		req.AssessmentRound = builder.assessmentRound
	}
	if builder.assessmentTemplateFlag {
		req.AssessmentTemplate = builder.assessmentTemplate
	}
	return req
}

type JobCustomizedData struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	ObjectType *int `json:"object_type,omitempty"` // 字段类型

	Value *JobCustomizedValue `json:"value,omitempty"` // 自定义字段值
}

type JobCustomizedDataBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	objectType     int // 字段类型
	objectTypeFlag bool

	value     *JobCustomizedValue // 自定义字段值
	valueFlag bool
}

func NewJobCustomizedDataBuilder() *JobCustomizedDataBuilder {
	builder := &JobCustomizedDataBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：xxxx
func (builder *JobCustomizedDataBuilder) ObjectId(objectId string) *JobCustomizedDataBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *JobCustomizedDataBuilder) Name(name *I18n) *JobCustomizedDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *JobCustomizedDataBuilder) ObjectType(objectType int) *JobCustomizedDataBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：
func (builder *JobCustomizedDataBuilder) Value(value *JobCustomizedValue) *JobCustomizedDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *JobCustomizedDataBuilder) Build() *JobCustomizedData {
	req := &JobCustomizedData{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type JobCustomizedOption struct {
	Key *string `json:"key,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称
}

type JobCustomizedOptionBuilder struct {
	key     string // 选项 ID
	keyFlag bool

	name     *I18n // 选项名称
	nameFlag bool
}

func NewJobCustomizedOptionBuilder() *JobCustomizedOptionBuilder {
	builder := &JobCustomizedOptionBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：AA
func (builder *JobCustomizedOptionBuilder) Key(key string) *JobCustomizedOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *JobCustomizedOptionBuilder) Name(name *I18n) *JobCustomizedOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobCustomizedOptionBuilder) Build() *JobCustomizedOption {
	req := &JobCustomizedOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobCustomizedTimeRange struct {
	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type JobCustomizedTimeRangeBuilder struct {
	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewJobCustomizedTimeRangeBuilder() *JobCustomizedTimeRangeBuilder {
	builder := &JobCustomizedTimeRangeBuilder{}
	return builder
}

// 开始时间
//
// 示例值：AA
func (builder *JobCustomizedTimeRangeBuilder) StartTime(startTime string) *JobCustomizedTimeRangeBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：AA
func (builder *JobCustomizedTimeRangeBuilder) EndTime(endTime string) *JobCustomizedTimeRangeBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *JobCustomizedTimeRangeBuilder) Build() *JobCustomizedTimeRange {
	req := &JobCustomizedTimeRange{}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type JobCustomizedValue struct {
	Content *string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值

	Option *JobCustomizedOption `json:"option,omitempty"` // 当字段类型为单选时，从此字段取值

	OptionList []*JobCustomizedOption `json:"option_list,omitempty"` // 当字段类型为多选时，从此字段取值

	TimeRange *JobCustomizedTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时，从此字段取值

	Time *string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳

	Number *string `json:"number,omitempty"` // 当字段类型为数字时，从此字段取值
}

type JobCustomizedValueBuilder struct {
	content     string // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
	contentFlag bool

	option     *JobCustomizedOption // 当字段类型为单选时，从此字段取值
	optionFlag bool

	optionList     []*JobCustomizedOption // 当字段类型为多选时，从此字段取值
	optionListFlag bool

	timeRange     *JobCustomizedTimeRange // 当字段类型为时间段时，从此字段取值
	timeRangeFlag bool

	time     string // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
	timeFlag bool

	number     string // 当字段类型为数字时，从此字段取值
	numberFlag bool
}

func NewJobCustomizedValueBuilder() *JobCustomizedValueBuilder {
	builder := &JobCustomizedValueBuilder{}
	return builder
}

// 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
//
// 示例值：text
func (builder *JobCustomizedValueBuilder) Content(content string) *JobCustomizedValueBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 当字段类型为单选时，从此字段取值
//
// 示例值：
func (builder *JobCustomizedValueBuilder) Option(option *JobCustomizedOption) *JobCustomizedValueBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 当字段类型为多选时，从此字段取值
//
// 示例值：
func (builder *JobCustomizedValueBuilder) OptionList(optionList []*JobCustomizedOption) *JobCustomizedValueBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

// 当字段类型为时间段时，从此字段取值
//
// 示例值：
func (builder *JobCustomizedValueBuilder) TimeRange(timeRange *JobCustomizedTimeRange) *JobCustomizedValueBuilder {
	builder.timeRange = timeRange
	builder.timeRangeFlag = true
	return builder
}

// 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
//
// 示例值：1625456721000
func (builder *JobCustomizedValueBuilder) Time(time string) *JobCustomizedValueBuilder {
	builder.time = time
	builder.timeFlag = true
	return builder
}

// 当字段类型为数字时，从此字段取值
//
// 示例值：111
func (builder *JobCustomizedValueBuilder) Number(number string) *JobCustomizedValueBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *JobCustomizedValueBuilder) Build() *JobCustomizedValue {
	req := &JobCustomizedValue{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.optionFlag {
		req.Option = builder.option
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	if builder.timeRangeFlag {
		req.TimeRange = builder.timeRange
	}
	if builder.timeFlag {
		req.Time = &builder.time

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type JobDepartment struct {
	Id *string `json:"id,omitempty"` // 部门 ID

	ZhName *string `json:"zh_name,omitempty"` // 部门中文名称

	EnName *string `json:"en_name,omitempty"` // 部门英文名称
}

type JobDepartmentBuilder struct {
	id     string // 部门 ID
	idFlag bool

	zhName     string // 部门中文名称
	zhNameFlag bool

	enName     string // 部门英文名称
	enNameFlag bool
}

func NewJobDepartmentBuilder() *JobDepartmentBuilder {
	builder := &JobDepartmentBuilder{}
	return builder
}

// 部门 ID
//
// 示例值：od-xxxx
func (builder *JobDepartmentBuilder) Id(id string) *JobDepartmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 部门中文名称
//
// 示例值：字节跳动
func (builder *JobDepartmentBuilder) ZhName(zhName string) *JobDepartmentBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 部门英文名称
//
// 示例值：Bytedance
func (builder *JobDepartmentBuilder) EnName(enName string) *JobDepartmentBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *JobDepartmentBuilder) Build() *JobDepartment {
	req := &JobDepartment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type JobDepartmentSimple struct {
	Id *string `json:"id,omitempty"` // 部门 ID

	Name *I18n `json:"name,omitempty"` // 部门名称
}

type JobDepartmentSimpleBuilder struct {
	id     string // 部门 ID
	idFlag bool

	name     *I18n // 部门名称
	nameFlag bool
}

func NewJobDepartmentSimpleBuilder() *JobDepartmentSimpleBuilder {
	builder := &JobDepartmentSimpleBuilder{}
	return builder
}

// 部门 ID
//
// 示例值：od-xxxx
func (builder *JobDepartmentSimpleBuilder) Id(id string) *JobDepartmentSimpleBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 部门名称
//
// 示例值：
func (builder *JobDepartmentSimpleBuilder) Name(name *I18n) *JobDepartmentSimpleBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobDepartmentSimpleBuilder) Build() *JobDepartmentSimple {
	req := &JobDepartmentSimple{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobDetail struct {
	BasicInfo *JobDetailBasicInfo `json:"basic_info,omitempty"` // 职位基本信息

	Recruiter *JobUserInfo `json:"recruiter,omitempty"` // 职位负责人

	AssistantList []*JobUserInfo `json:"assistant_list,omitempty"` // 职位协助人列表

	HiringManagerList []*JobUserInfo `json:"hiring_manager_list,omitempty"` // 职位用人经理列表

	JobRequirementList []*JobRequirementSimple `json:"job_requirement_list,omitempty"` // 招聘需求列表

	AddressList []*CommonAddress `json:"address_list,omitempty"` // 职位地址列表

	JobConfig *JobConfigDetail `json:"job_config,omitempty"` // 职位设置

	StorefrontList []*JobStorefront `json:"storefront_list,omitempty"` // 门店列表

	TagList []*JobDetailTag `json:"tag_list,omitempty"` // 职位标签列表
}

type JobDetailBuilder struct {
	basicInfo     *JobDetailBasicInfo // 职位基本信息
	basicInfoFlag bool

	recruiter     *JobUserInfo // 职位负责人
	recruiterFlag bool

	assistantList     []*JobUserInfo // 职位协助人列表
	assistantListFlag bool

	hiringManagerList     []*JobUserInfo // 职位用人经理列表
	hiringManagerListFlag bool

	jobRequirementList     []*JobRequirementSimple // 招聘需求列表
	jobRequirementListFlag bool

	addressList     []*CommonAddress // 职位地址列表
	addressListFlag bool

	jobConfig     *JobConfigDetail // 职位设置
	jobConfigFlag bool

	storefrontList     []*JobStorefront // 门店列表
	storefrontListFlag bool

	tagList     []*JobDetailTag // 职位标签列表
	tagListFlag bool
}

func NewJobDetailBuilder() *JobDetailBuilder {
	builder := &JobDetailBuilder{}
	return builder
}

// 职位基本信息
//
// 示例值：
func (builder *JobDetailBuilder) BasicInfo(basicInfo *JobDetailBasicInfo) *JobDetailBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 职位负责人
//
// 示例值：
func (builder *JobDetailBuilder) Recruiter(recruiter *JobUserInfo) *JobDetailBuilder {
	builder.recruiter = recruiter
	builder.recruiterFlag = true
	return builder
}

// 职位协助人列表
//
// 示例值：
func (builder *JobDetailBuilder) AssistantList(assistantList []*JobUserInfo) *JobDetailBuilder {
	builder.assistantList = assistantList
	builder.assistantListFlag = true
	return builder
}

// 职位用人经理列表
//
// 示例值：
func (builder *JobDetailBuilder) HiringManagerList(hiringManagerList []*JobUserInfo) *JobDetailBuilder {
	builder.hiringManagerList = hiringManagerList
	builder.hiringManagerListFlag = true
	return builder
}

// 招聘需求列表
//
// 示例值：
func (builder *JobDetailBuilder) JobRequirementList(jobRequirementList []*JobRequirementSimple) *JobDetailBuilder {
	builder.jobRequirementList = jobRequirementList
	builder.jobRequirementListFlag = true
	return builder
}

// 职位地址列表
//
// 示例值：
func (builder *JobDetailBuilder) AddressList(addressList []*CommonAddress) *JobDetailBuilder {
	builder.addressList = addressList
	builder.addressListFlag = true
	return builder
}

// 职位设置
//
// 示例值：
func (builder *JobDetailBuilder) JobConfig(jobConfig *JobConfigDetail) *JobDetailBuilder {
	builder.jobConfig = jobConfig
	builder.jobConfigFlag = true
	return builder
}

// 门店列表
//
// 示例值：
func (builder *JobDetailBuilder) StorefrontList(storefrontList []*JobStorefront) *JobDetailBuilder {
	builder.storefrontList = storefrontList
	builder.storefrontListFlag = true
	return builder
}

// 职位标签列表
//
// 示例值：
func (builder *JobDetailBuilder) TagList(tagList []*JobDetailTag) *JobDetailBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

func (builder *JobDetailBuilder) Build() *JobDetail {
	req := &JobDetail{}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.recruiterFlag {
		req.Recruiter = builder.recruiter
	}
	if builder.assistantListFlag {
		req.AssistantList = builder.assistantList
	}
	if builder.hiringManagerListFlag {
		req.HiringManagerList = builder.hiringManagerList
	}
	if builder.jobRequirementListFlag {
		req.JobRequirementList = builder.jobRequirementList
	}
	if builder.addressListFlag {
		req.AddressList = builder.addressList
	}
	if builder.jobConfigFlag {
		req.JobConfig = builder.jobConfig
	}
	if builder.storefrontListFlag {
		req.StorefrontList = builder.storefrontList
	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	return req
}

type JobDetailBasicInfo struct {
	Id *string `json:"id,omitempty"` // 职位 ID

	Title *string `json:"title,omitempty"` // 职位名称

	Description *string `json:"description,omitempty"` // 职位描述

	Code *string `json:"code,omitempty"` // 职位编号

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	RecruitmentType *JobDetailRecruitmentType `json:"recruitment_type,omitempty"` // 雇佣类型

	Department *JobDetailDepartment `json:"department,omitempty"` // 部门

	MinJobLevel *JobDetailLevel `json:"min_job_level,omitempty"` // 最低职级

	MaxJobLevel *JobDetailLevel `json:"max_job_level,omitempty"` // 最高职级

	HighlightList []*JobDetailHighlight `json:"highlight_list,omitempty"` // 职位亮点

	JobCategory *JobDetailCategory `json:"job_category,omitempty"` // 职位序列

	JobType *JobDetailType `json:"job_type,omitempty"` // 职位类别

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	CreatorId *string `json:"creator_id,omitempty"` // 创建人ID，若为空则为系统或其他对接系统创建

	CreateTime *string `json:"create_time,omitempty"` // 创建时间, 毫秒级时间戳

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间，毫秒级时间戳

	ProcessType *int `json:"process_type,omitempty"` // 职位流程类型

	ProcessId *string `json:"process_id,omitempty"` // 职位流程 ID

	ProcessName *I18n `json:"process_name,omitempty"` // 职位流程名称

	CustomizedDataList []*JobCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段列表

	JobFunction *IdNameObject `json:"job_function,omitempty"` // 职能分类

	Subject *IdNameObject `json:"subject,omitempty"` // 职位项目

	HeadCount *int `json:"head_count,omitempty"` // 招聘数量

	Experience *int `json:"experience,omitempty"` // 工作年限

	ExpiryTime *string `json:"expiry_time,omitempty"` // 到期日期,毫秒级时间戳

	MinSalary *int `json:"min_salary,omitempty"` // 最低薪资，单位:k

	MaxSalary *int `json:"max_salary,omitempty"` // 最高薪资，单位:k

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	CityList []*CodeNameObject `json:"city_list,omitempty"` // 工作地点列表

	JobAttribute *int `json:"job_attribute,omitempty"` // 职位属性，1是实体职位，2是虚拟职位

	TargetMajorList []*JobDetailTargetMajorInfo `json:"target_major_list,omitempty"` // 目标专业

	StorefrontMode *int `json:"storefront_mode,omitempty"` // 标志是否门店职位，1是普通职位，2是门店职位
}

type JobDetailBasicInfoBuilder struct {
	id     string // 职位 ID
	idFlag bool

	title     string // 职位名称
	titleFlag bool

	description     string // 职位描述
	descriptionFlag bool

	code     string // 职位编号
	codeFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	recruitmentType     *JobDetailRecruitmentType // 雇佣类型
	recruitmentTypeFlag bool

	department     *JobDetailDepartment // 部门
	departmentFlag bool

	minJobLevel     *JobDetailLevel // 最低职级
	minJobLevelFlag bool

	maxJobLevel     *JobDetailLevel // 最高职级
	maxJobLevelFlag bool

	highlightList     []*JobDetailHighlight // 职位亮点
	highlightListFlag bool

	jobCategory     *JobDetailCategory // 职位序列
	jobCategoryFlag bool

	jobType     *JobDetailType // 职位类别
	jobTypeFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	creatorId     string // 创建人ID，若为空则为系统或其他对接系统创建
	creatorIdFlag bool

	createTime     string // 创建时间, 毫秒级时间戳
	createTimeFlag bool

	updateTime     string // 更新时间，毫秒级时间戳
	updateTimeFlag bool

	processType     int // 职位流程类型
	processTypeFlag bool

	processId     string // 职位流程 ID
	processIdFlag bool

	processName     *I18n // 职位流程名称
	processNameFlag bool

	customizedDataList     []*JobCustomizedData // 自定义字段列表
	customizedDataListFlag bool

	jobFunction     *IdNameObject // 职能分类
	jobFunctionFlag bool

	subject     *IdNameObject // 职位项目
	subjectFlag bool

	headCount     int // 招聘数量
	headCountFlag bool

	experience     int // 工作年限
	experienceFlag bool

	expiryTime     string // 到期日期,毫秒级时间戳
	expiryTimeFlag bool

	minSalary     int // 最低薪资，单位:k
	minSalaryFlag bool

	maxSalary     int // 最高薪资，单位:k
	maxSalaryFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	cityList     []*CodeNameObject // 工作地点列表
	cityListFlag bool

	jobAttribute     int // 职位属性，1是实体职位，2是虚拟职位
	jobAttributeFlag bool

	targetMajorList     []*JobDetailTargetMajorInfo // 目标专业
	targetMajorListFlag bool

	storefrontMode     int // 标志是否门店职位，1是普通职位，2是门店职位
	storefrontModeFlag bool
}

func NewJobDetailBasicInfoBuilder() *JobDetailBasicInfoBuilder {
	builder := &JobDetailBasicInfoBuilder{}
	return builder
}

// 职位 ID
//
// 示例值：6001
func (builder *JobDetailBasicInfoBuilder) Id(id string) *JobDetailBasicInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位名称
//
// 示例值：测试职位
func (builder *JobDetailBasicInfoBuilder) Title(title string) *JobDetailBasicInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位描述
//
// 示例值：职位描述文本
func (builder *JobDetailBasicInfoBuilder) Description(description string) *JobDetailBasicInfoBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位编号
//
// 示例值：R18
func (builder *JobDetailBasicInfoBuilder) Code(code string) *JobDetailBasicInfoBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 职位要求
//
// 示例值：职位要求文本
func (builder *JobDetailBasicInfoBuilder) Requirement(requirement string) *JobDetailBasicInfoBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 雇佣类型
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) RecruitmentType(recruitmentType *JobDetailRecruitmentType) *JobDetailBasicInfoBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) Department(department *JobDetailDepartment) *JobDetailBasicInfoBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 最低职级
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) MinJobLevel(minJobLevel *JobDetailLevel) *JobDetailBasicInfoBuilder {
	builder.minJobLevel = minJobLevel
	builder.minJobLevelFlag = true
	return builder
}

// 最高职级
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) MaxJobLevel(maxJobLevel *JobDetailLevel) *JobDetailBasicInfoBuilder {
	builder.maxJobLevel = maxJobLevel
	builder.maxJobLevelFlag = true
	return builder
}

// 职位亮点
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) HighlightList(highlightList []*JobDetailHighlight) *JobDetailBasicInfoBuilder {
	builder.highlightList = highlightList
	builder.highlightListFlag = true
	return builder
}

// 职位序列
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) JobCategory(jobCategory *JobDetailCategory) *JobDetailBasicInfoBuilder {
	builder.jobCategory = jobCategory
	builder.jobCategoryFlag = true
	return builder
}

// 职位类别
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) JobType(jobType *JobDetailType) *JobDetailBasicInfoBuilder {
	builder.jobType = jobType
	builder.jobTypeFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) ActiveStatus(activeStatus int) *JobDetailBasicInfoBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 创建人ID，若为空则为系统或其他对接系统创建
//
// 示例值：ou-xxx
func (builder *JobDetailBasicInfoBuilder) CreatorId(creatorId string) *JobDetailBasicInfoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 创建时间, 毫秒级时间戳
//
// 示例值：1617170925462
func (builder *JobDetailBasicInfoBuilder) CreateTime(createTime string) *JobDetailBasicInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间，毫秒级时间戳
//
// 示例值：1617170925462
func (builder *JobDetailBasicInfoBuilder) UpdateTime(updateTime string) *JobDetailBasicInfoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) ProcessType(processType int) *JobDetailBasicInfoBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 职位流程 ID
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) ProcessId(processId string) *JobDetailBasicInfoBuilder {
	builder.processId = processId
	builder.processIdFlag = true
	return builder
}

// 职位流程名称
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) ProcessName(processName *I18n) *JobDetailBasicInfoBuilder {
	builder.processName = processName
	builder.processNameFlag = true
	return builder
}

// 自定义字段列表
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) CustomizedDataList(customizedDataList []*JobCustomizedData) *JobDetailBasicInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 职能分类
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) JobFunction(jobFunction *IdNameObject) *JobDetailBasicInfoBuilder {
	builder.jobFunction = jobFunction
	builder.jobFunctionFlag = true
	return builder
}

// 职位项目
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) Subject(subject *IdNameObject) *JobDetailBasicInfoBuilder {
	builder.subject = subject
	builder.subjectFlag = true
	return builder
}

// 招聘数量
//
// 示例值：100
func (builder *JobDetailBasicInfoBuilder) HeadCount(headCount int) *JobDetailBasicInfoBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 工作年限
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) Experience(experience int) *JobDetailBasicInfoBuilder {
	builder.experience = experience
	builder.experienceFlag = true
	return builder
}

// 到期日期,毫秒级时间戳
//
// 示例值：1622484739955
func (builder *JobDetailBasicInfoBuilder) ExpiryTime(expiryTime string) *JobDetailBasicInfoBuilder {
	builder.expiryTime = expiryTime
	builder.expiryTimeFlag = true
	return builder
}

// 最低薪资，单位:k
//
// 示例值：10
func (builder *JobDetailBasicInfoBuilder) MinSalary(minSalary int) *JobDetailBasicInfoBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 最高薪资，单位:k
//
// 示例值：20
func (builder *JobDetailBasicInfoBuilder) MaxSalary(maxSalary int) *JobDetailBasicInfoBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) RequiredDegree(requiredDegree int) *JobDetailBasicInfoBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 工作地点列表
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) CityList(cityList []*CodeNameObject) *JobDetailBasicInfoBuilder {
	builder.cityList = cityList
	builder.cityListFlag = true
	return builder
}

// 职位属性，1是实体职位，2是虚拟职位
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) JobAttribute(jobAttribute int) *JobDetailBasicInfoBuilder {
	builder.jobAttribute = jobAttribute
	builder.jobAttributeFlag = true
	return builder
}

// 目标专业
//
// 示例值：
func (builder *JobDetailBasicInfoBuilder) TargetMajorList(targetMajorList []*JobDetailTargetMajorInfo) *JobDetailBasicInfoBuilder {
	builder.targetMajorList = targetMajorList
	builder.targetMajorListFlag = true
	return builder
}

// 标志是否门店职位，1是普通职位，2是门店职位
//
// 示例值：1
func (builder *JobDetailBasicInfoBuilder) StorefrontMode(storefrontMode int) *JobDetailBasicInfoBuilder {
	builder.storefrontMode = storefrontMode
	builder.storefrontModeFlag = true
	return builder
}

func (builder *JobDetailBasicInfoBuilder) Build() *JobDetailBasicInfo {
	req := &JobDetailBasicInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.minJobLevelFlag {
		req.MinJobLevel = builder.minJobLevel
	}
	if builder.maxJobLevelFlag {
		req.MaxJobLevel = builder.maxJobLevel
	}
	if builder.highlightListFlag {
		req.HighlightList = builder.highlightList
	}
	if builder.jobCategoryFlag {
		req.JobCategory = builder.jobCategory
	}
	if builder.jobTypeFlag {
		req.JobType = builder.jobType
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.processIdFlag {
		req.ProcessId = &builder.processId

	}
	if builder.processNameFlag {
		req.ProcessName = builder.processName
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.jobFunctionFlag {
		req.JobFunction = builder.jobFunction
	}
	if builder.subjectFlag {
		req.Subject = builder.subject
	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount

	}
	if builder.experienceFlag {
		req.Experience = &builder.experience

	}
	if builder.expiryTimeFlag {
		req.ExpiryTime = &builder.expiryTime

	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.cityListFlag {
		req.CityList = builder.cityList
	}
	if builder.jobAttributeFlag {
		req.JobAttribute = &builder.jobAttribute

	}
	if builder.targetMajorListFlag {
		req.TargetMajorList = builder.targetMajorList
	}
	if builder.storefrontModeFlag {
		req.StorefrontMode = &builder.storefrontMode

	}
	return req
}

type JobDetailCategory struct {
	Id *string `json:"id,omitempty"` // 职位序列 ID

	Name *I18n `json:"name,omitempty"` // 职位序列名称

	ActiveStatus *int `json:"active_status,omitempty"` // 职位序列启用状态
}

type JobDetailCategoryBuilder struct {
	id     string // 职位序列 ID
	idFlag bool

	name     *I18n // 职位序列名称
	nameFlag bool

	activeStatus     int // 职位序列启用状态
	activeStatusFlag bool
}

func NewJobDetailCategoryBuilder() *JobDetailCategoryBuilder {
	builder := &JobDetailCategoryBuilder{}
	return builder
}

// 职位序列 ID
//
// 示例值：6301
func (builder *JobDetailCategoryBuilder) Id(id string) *JobDetailCategoryBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位序列名称
//
// 示例值：
func (builder *JobDetailCategoryBuilder) Name(name *I18n) *JobDetailCategoryBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 职位序列启用状态
//
// 示例值：1
func (builder *JobDetailCategoryBuilder) ActiveStatus(activeStatus int) *JobDetailCategoryBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobDetailCategoryBuilder) Build() *JobDetailCategory {
	req := &JobDetailCategory{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobDetailDepartment struct {
	Id *string `json:"id,omitempty"` // 部门 ID

	Name *I18n `json:"name,omitempty"` // 部门名称
}

type JobDetailDepartmentBuilder struct {
	id     string // 部门 ID
	idFlag bool

	name     *I18n // 部门名称
	nameFlag bool
}

func NewJobDetailDepartmentBuilder() *JobDetailDepartmentBuilder {
	builder := &JobDetailDepartmentBuilder{}
	return builder
}

// 部门 ID
//
// 示例值：od-xxxx
func (builder *JobDetailDepartmentBuilder) Id(id string) *JobDetailDepartmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 部门名称
//
// 示例值：
func (builder *JobDetailDepartmentBuilder) Name(name *I18n) *JobDetailDepartmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobDetailDepartmentBuilder) Build() *JobDetailDepartment {
	req := &JobDetailDepartment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobDetailHighlight struct {
	Id *string `json:"id,omitempty"` // 职位亮点 ID

	Name *I18n `json:"name,omitempty"` // 职位亮点名称
}

type JobDetailHighlightBuilder struct {
	id     string // 职位亮点 ID
	idFlag bool

	name     *I18n // 职位亮点名称
	nameFlag bool
}

func NewJobDetailHighlightBuilder() *JobDetailHighlightBuilder {
	builder := &JobDetailHighlightBuilder{}
	return builder
}

// 职位亮点 ID
//
// 示例值：6301
func (builder *JobDetailHighlightBuilder) Id(id string) *JobDetailHighlightBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位亮点名称
//
// 示例值：
func (builder *JobDetailHighlightBuilder) Name(name *I18n) *JobDetailHighlightBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobDetailHighlightBuilder) Build() *JobDetailHighlight {
	req := &JobDetailHighlight{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobDetailLevel struct {
	Id *string `json:"id,omitempty"` // 职级 ID

	Name *I18n `json:"name,omitempty"` // 职级名称

	ActiveStatus *int `json:"active_status,omitempty"` // 职级启用状态
}

type JobDetailLevelBuilder struct {
	id     string // 职级 ID
	idFlag bool

	name     *I18n // 职级名称
	nameFlag bool

	activeStatus     int // 职级启用状态
	activeStatusFlag bool
}

func NewJobDetailLevelBuilder() *JobDetailLevelBuilder {
	builder := &JobDetailLevelBuilder{}
	return builder
}

// 职级 ID
//
// 示例值：6301
func (builder *JobDetailLevelBuilder) Id(id string) *JobDetailLevelBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职级名称
//
// 示例值：
func (builder *JobDetailLevelBuilder) Name(name *I18n) *JobDetailLevelBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 职级启用状态
//
// 示例值：1
func (builder *JobDetailLevelBuilder) ActiveStatus(activeStatus int) *JobDetailLevelBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobDetailLevelBuilder) Build() *JobDetailLevel {
	req := &JobDetailLevel{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobDetailRecruitmentType struct {
	Id *string `json:"id,omitempty"` // 雇佣类型 ID

	Name *I18n `json:"name,omitempty"` // 雇佣类型名称

	ActiveStatus *int `json:"active_status,omitempty"` // 雇佣类型启用状态
}

type JobDetailRecruitmentTypeBuilder struct {
	id     string // 雇佣类型 ID
	idFlag bool

	name     *I18n // 雇佣类型名称
	nameFlag bool

	activeStatus     int // 雇佣类型启用状态
	activeStatusFlag bool
}

func NewJobDetailRecruitmentTypeBuilder() *JobDetailRecruitmentTypeBuilder {
	builder := &JobDetailRecruitmentTypeBuilder{}
	return builder
}

// 雇佣类型 ID
//
// 示例值：6001
func (builder *JobDetailRecruitmentTypeBuilder) Id(id string) *JobDetailRecruitmentTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 雇佣类型名称
//
// 示例值：
func (builder *JobDetailRecruitmentTypeBuilder) Name(name *I18n) *JobDetailRecruitmentTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 雇佣类型启用状态
//
// 示例值：1
func (builder *JobDetailRecruitmentTypeBuilder) ActiveStatus(activeStatus int) *JobDetailRecruitmentTypeBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobDetailRecruitmentTypeBuilder) Build() *JobDetailRecruitmentType {
	req := &JobDetailRecruitmentType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobDetailTag struct {
	Id *string `json:"id,omitempty"` // 标签 ID

	Name *I18n `json:"name,omitempty"` // 标签名称

	Order *int `json:"order,omitempty"` // 标签顺序
}

type JobDetailTagBuilder struct {
	id     string // 标签 ID
	idFlag bool

	name     *I18n // 标签名称
	nameFlag bool

	order     int // 标签顺序
	orderFlag bool
}

func NewJobDetailTagBuilder() *JobDetailTagBuilder {
	builder := &JobDetailTagBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：6949805467799537964
func (builder *JobDetailTagBuilder) Id(id string) *JobDetailTagBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标签名称
//
// 示例值：
func (builder *JobDetailTagBuilder) Name(name *I18n) *JobDetailTagBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 标签顺序
//
// 示例值：1
func (builder *JobDetailTagBuilder) Order(order int) *JobDetailTagBuilder {
	builder.order = order
	builder.orderFlag = true
	return builder
}

func (builder *JobDetailTagBuilder) Build() *JobDetailTag {
	req := &JobDetailTag{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.orderFlag {
		req.Order = &builder.order

	}
	return req
}

type JobDetailTargetMajorInfo struct {
	Id *string `json:"id,omitempty"` // 目标专业ID

	Name *I18n `json:"name,omitempty"` // 目标专业名称
}

type JobDetailTargetMajorInfoBuilder struct {
	id     string // 目标专业ID
	idFlag bool

	name     *I18n // 目标专业名称
	nameFlag bool
}

func NewJobDetailTargetMajorInfoBuilder() *JobDetailTargetMajorInfoBuilder {
	builder := &JobDetailTargetMajorInfoBuilder{}
	return builder
}

// 目标专业ID
//
// 示例值：6930815272790114324
func (builder *JobDetailTargetMajorInfoBuilder) Id(id string) *JobDetailTargetMajorInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 目标专业名称
//
// 示例值：
func (builder *JobDetailTargetMajorInfoBuilder) Name(name *I18n) *JobDetailTargetMajorInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobDetailTargetMajorInfoBuilder) Build() *JobDetailTargetMajorInfo {
	req := &JobDetailTargetMajorInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobDetailType struct {
	Id *string `json:"id,omitempty"` // 职位类别 ID

	Name *I18n `json:"name,omitempty"` // 职位类别名称
}

type JobDetailTypeBuilder struct {
	id     string // 职位类别 ID
	idFlag bool

	name     *I18n // 职位类别名称
	nameFlag bool
}

func NewJobDetailTypeBuilder() *JobDetailTypeBuilder {
	builder := &JobDetailTypeBuilder{}
	return builder
}

// 职位类别 ID
//
// 示例值：6890840777044265230
func (builder *JobDetailTypeBuilder) Id(id string) *JobDetailTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位类别名称
//
// 示例值：
func (builder *JobDetailTypeBuilder) Name(name *I18n) *JobDetailTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobDetailTypeBuilder) Build() *JobDetailType {
	req := &JobDetailType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobFunction struct {
	Id *string `json:"id,omitempty"` // 职能分类 ID

	Name *I18n `json:"name,omitempty"` // 职能名称

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	ParentId *string `json:"parent_id,omitempty"` // 父级职能分类 ID
}

type JobFunctionBuilder struct {
	id     string // 职能分类 ID
	idFlag bool

	name     *I18n // 职能名称
	nameFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	parentId     string // 父级职能分类 ID
	parentIdFlag bool
}

func NewJobFunctionBuilder() *JobFunctionBuilder {
	builder := &JobFunctionBuilder{}
	return builder
}

// 职能分类 ID
//
// 示例值：7010952553315895596
func (builder *JobFunctionBuilder) Id(id string) *JobFunctionBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职能名称
//
// 示例值：
func (builder *JobFunctionBuilder) Name(name *I18n) *JobFunctionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *JobFunctionBuilder) ActiveStatus(activeStatus int) *JobFunctionBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 父级职能分类 ID
//
// 示例值：0
func (builder *JobFunctionBuilder) ParentId(parentId string) *JobFunctionBuilder {
	builder.parentId = parentId
	builder.parentIdFlag = true
	return builder
}

func (builder *JobFunctionBuilder) Build() *JobFunction {
	req := &JobFunction{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.parentIdFlag {
		req.ParentId = &builder.parentId

	}
	return req
}

type JobHighlight struct {
	Id *string `json:"id,omitempty"` // 职位亮点 ID

	ZhName *string `json:"zh_name,omitempty"` // 职位亮点中文名称

	EnName *string `json:"en_name,omitempty"` // 职位亮点英文名称
}

type JobHighlightBuilder struct {
	id     string // 职位亮点 ID
	idFlag bool

	zhName     string // 职位亮点中文名称
	zhNameFlag bool

	enName     string // 职位亮点英文名称
	enNameFlag bool
}

func NewJobHighlightBuilder() *JobHighlightBuilder {
	builder := &JobHighlightBuilder{}
	return builder
}

// 职位亮点 ID
//
// 示例值：6301
func (builder *JobHighlightBuilder) Id(id string) *JobHighlightBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位亮点中文名称
//
// 示例值：团队氛围好
func (builder *JobHighlightBuilder) ZhName(zhName string) *JobHighlightBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 职位亮点英文名称
//
// 示例值：Positive team atmosphere
func (builder *JobHighlightBuilder) EnName(enName string) *JobHighlightBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *JobHighlightBuilder) Build() *JobHighlight {
	req := &JobHighlight{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type JobLevel struct {
	Id *string `json:"id,omitempty"` // 职级 ID

	ZhName *string `json:"zh_name,omitempty"` // 职级中文名称

	EnName *string `json:"en_name,omitempty"` // 职级英文名称

	ActiveStatus *int `json:"active_status,omitempty"` // 职级启用状态
}

type JobLevelBuilder struct {
	id     string // 职级 ID
	idFlag bool

	zhName     string // 职级中文名称
	zhNameFlag bool

	enName     string // 职级英文名称
	enNameFlag bool

	activeStatus     int // 职级启用状态
	activeStatusFlag bool
}

func NewJobLevelBuilder() *JobLevelBuilder {
	builder := &JobLevelBuilder{}
	return builder
}

// 职级 ID
//
// 示例值：6301
func (builder *JobLevelBuilder) Id(id string) *JobLevelBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职级中文名称
//
// 示例值：级别-2
func (builder *JobLevelBuilder) ZhName(zhName string) *JobLevelBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 职级英文名称
//
// 示例值：level-2
func (builder *JobLevelBuilder) EnName(enName string) *JobLevelBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 职级启用状态
//
// 示例值：1
func (builder *JobLevelBuilder) ActiveStatus(activeStatus int) *JobLevelBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobLevelBuilder) Build() *JobLevel {
	req := &JobLevel{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobProcess struct {
	YourPropertyName *string `json:"your_property_name,omitempty"` // id
}

type JobProcessBuilder struct {
	yourPropertyName     string // id
	yourPropertyNameFlag bool
}

func NewJobProcessBuilder() *JobProcessBuilder {
	builder := &JobProcessBuilder{}
	return builder
}

// id
//
// 示例值：
func (builder *JobProcessBuilder) YourPropertyName(yourPropertyName string) *JobProcessBuilder {
	builder.yourPropertyName = yourPropertyName
	builder.yourPropertyNameFlag = true
	return builder
}

func (builder *JobProcessBuilder) Build() *JobProcess {
	req := &JobProcess{}
	if builder.yourPropertyNameFlag {
		req.YourPropertyName = &builder.yourPropertyName

	}
	return req
}

type JobProcesses struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	Type *int `json:"type,omitempty"` // 类型 1=社招流程, 2=校招流程,

	StageList []*JobProcessesStage `json:"stage_list,omitempty"` // 阶段列表, 内部按用户设置顺序排列
}

type JobProcessesBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	type_    int // 类型 1=社招流程, 2=校招流程,
	typeFlag bool

	stageList     []*JobProcessesStage // 阶段列表, 内部按用户设置顺序排列
	stageListFlag bool
}

func NewJobProcessesBuilder() *JobProcessesBuilder {
	builder := &JobProcessesBuilder{}
	return builder
}

// ID
//
// 示例值：123123123123
func (builder *JobProcessesBuilder) Id(id string) *JobProcessesBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名称
//
// 示例值：中文
func (builder *JobProcessesBuilder) ZhName(zhName string) *JobProcessesBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：name
func (builder *JobProcessesBuilder) EnName(enName string) *JobProcessesBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 类型 1=社招流程, 2=校招流程,
//
// 示例值：1
func (builder *JobProcessesBuilder) Type(type_ int) *JobProcessesBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 阶段列表, 内部按用户设置顺序排列
//
// 示例值：
func (builder *JobProcessesBuilder) StageList(stageList []*JobProcessesStage) *JobProcessesBuilder {
	builder.stageList = stageList
	builder.stageListFlag = true
	return builder
}

func (builder *JobProcessesBuilder) Build() *JobProcesses {
	req := &JobProcesses{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.stageListFlag {
		req.StageList = builder.stageList
	}
	return req
}

type JobProcessesStage struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称

	Type *int `json:"type,omitempty"` // 1=筛选型, 2=评估型, 3=笔试型, 4=面试型, 5=Offer型, 6=待入职, 7=已入职, 8=其它类型, 255=系统默认，后端模型中并没有该字段，仅用于前端显示,
}

type JobProcessesStageBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool

	type_    int // 1=筛选型, 2=评估型, 3=笔试型, 4=面试型, 5=Offer型, 6=待入职, 7=已入职, 8=其它类型, 255=系统默认，后端模型中并没有该字段，仅用于前端显示,
	typeFlag bool
}

func NewJobProcessesStageBuilder() *JobProcessesStageBuilder {
	builder := &JobProcessesStageBuilder{}
	return builder
}

// ID
//
// 示例值：123123123123123
func (builder *JobProcessesStageBuilder) Id(id string) *JobProcessesStageBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名称
//
// 示例值：名字
func (builder *JobProcessesStageBuilder) ZhName(zhName string) *JobProcessesStageBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：name
func (builder *JobProcessesStageBuilder) EnName(enName string) *JobProcessesStageBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 1=筛选型, 2=评估型, 3=笔试型, 4=面试型, 5=Offer型, 6=待入职, 7=已入职, 8=其它类型, 255=系统默认，后端模型中并没有该字段，仅用于前端显示,
//
// 示例值：1
func (builder *JobProcessesStageBuilder) Type(type_ int) *JobProcessesStageBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

func (builder *JobProcessesStageBuilder) Build() *JobProcessesStage {
	req := &JobProcessesStage{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	return req
}

type JobRecruiter2 struct {
	Id *string `json:"id,omitempty"` // 职位ID

	RecruiterId *string `json:"recruiter_id,omitempty"` // 招聘负责人ID

	HiringManagerIdList []string `json:"hiring_manager_id_list,omitempty"` // 用人经理ID列表

	AssistantIdList []string `json:"assistant_id_list,omitempty"` // 协助人ID列表
}

type JobRecruiter2Builder struct {
	id     string // 职位ID
	idFlag bool

	recruiterId     string // 招聘负责人ID
	recruiterIdFlag bool

	hiringManagerIdList     []string // 用人经理ID列表
	hiringManagerIdListFlag bool

	assistantIdList     []string // 协助人ID列表
	assistantIdListFlag bool
}

func NewJobRecruiter2Builder() *JobRecruiter2Builder {
	builder := &JobRecruiter2Builder{}
	return builder
}

// 职位ID
//
// 示例值：
func (builder *JobRecruiter2Builder) Id(id string) *JobRecruiter2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 招聘负责人ID
//
// 示例值：
func (builder *JobRecruiter2Builder) RecruiterId(recruiterId string) *JobRecruiter2Builder {
	builder.recruiterId = recruiterId
	builder.recruiterIdFlag = true
	return builder
}

// 用人经理ID列表
//
// 示例值：
func (builder *JobRecruiter2Builder) HiringManagerIdList(hiringManagerIdList []string) *JobRecruiter2Builder {
	builder.hiringManagerIdList = hiringManagerIdList
	builder.hiringManagerIdListFlag = true
	return builder
}

// 协助人ID列表
//
// 示例值：
func (builder *JobRecruiter2Builder) AssistantIdList(assistantIdList []string) *JobRecruiter2Builder {
	builder.assistantIdList = assistantIdList
	builder.assistantIdListFlag = true
	return builder
}

func (builder *JobRecruiter2Builder) Build() *JobRecruiter2 {
	req := &JobRecruiter2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.recruiterIdFlag {
		req.RecruiterId = &builder.recruiterId

	}
	if builder.hiringManagerIdListFlag {
		req.HiringManagerIdList = builder.hiringManagerIdList
	}
	if builder.assistantIdListFlag {
		req.AssistantIdList = builder.assistantIdList
	}
	return req
}

type JobRecruitmentType struct {
	Id *string `json:"id,omitempty"` // 雇佣类型 ID

	ZhName *string `json:"zh_name,omitempty"` // 雇佣类型中文名称

	EnName *string `json:"en_name,omitempty"` // 雇佣类型英文名称

	ActiveStatus *int `json:"active_status,omitempty"` // 雇佣类型启用状态
}

type JobRecruitmentTypeBuilder struct {
	id     string // 雇佣类型 ID
	idFlag bool

	zhName     string // 雇佣类型中文名称
	zhNameFlag bool

	enName     string // 雇佣类型英文名称
	enNameFlag bool

	activeStatus     int // 雇佣类型启用状态
	activeStatusFlag bool
}

func NewJobRecruitmentTypeBuilder() *JobRecruitmentTypeBuilder {
	builder := &JobRecruitmentTypeBuilder{}
	return builder
}

// 雇佣类型 ID
//
// 示例值：6001
func (builder *JobRecruitmentTypeBuilder) Id(id string) *JobRecruitmentTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 雇佣类型中文名称
//
// 示例值：全职
func (builder *JobRecruitmentTypeBuilder) ZhName(zhName string) *JobRecruitmentTypeBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 雇佣类型英文名称
//
// 示例值：FullTime
func (builder *JobRecruitmentTypeBuilder) EnName(enName string) *JobRecruitmentTypeBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 雇佣类型启用状态
//
// 示例值：1
func (builder *JobRecruitmentTypeBuilder) ActiveStatus(activeStatus int) *JobRecruitmentTypeBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *JobRecruitmentTypeBuilder) Build() *JobRecruitmentType {
	req := &JobRecruitmentType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type JobRequirement struct {
	ShortCode *string `json:"short_code,omitempty"` // 招聘需求编号

	Name *string `json:"name,omitempty"` // 需求名称

	DisplayProgress *int `json:"display_progress,omitempty"` // 需求状态

	HeadCount *int `json:"head_count,omitempty"` // 需求人数

	RecruitmentTypeId *string `json:"recruitment_type_id,omitempty"` // 职位性质 ID，可在「招聘枚举常量」文档中查看枚举值

	EmployeeTypeId *string `json:"employee_type_id,omitempty"` // 人员类型

	MaxLevelId *string `json:"max_level_id,omitempty"` // 最高职级 ID

	MinLevelId *string `json:"min_level_id,omitempty"` // 最低职级 ID

	SequenceId *string `json:"sequence_id,omitempty"` // 职位序列 ID

	Category *int `json:"category,omitempty"` // 需求类型

	DepartmentId *string `json:"department_id,omitempty"` // 需求部门的 open department id

	RecruiterIdList []string `json:"recruiter_id_list,omitempty"` // 需求负责人 ID 列表

	JrHiringManagerIdList []string `json:"jr_hiring_manager_id_list,omitempty"` // 需求用人经理 ID 列表

	DirectLeaderIdList []string `json:"direct_leader_id_list,omitempty"` // 直属上级 ID

	StartTime *string `json:"start_time,omitempty"` // 开始日期，毫秒级时间戳

	Deadline *string `json:"deadline,omitempty"` // 预计完成日期，毫秒级时间戳

	Priority *int `json:"priority,omitempty"` // 招聘优先级

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	MaxSalary *string `json:"max_salary,omitempty"` // 最高薪资，单位：千

	MinSalary *string `json:"min_salary,omitempty"` // 最低薪资，单位：千

	AddressId *string `json:"address_id,omitempty"` // 工作地点 ID，枚举值可通过「获取地址列表」接口查询获得

	Description *string `json:"description,omitempty"` // 需求描述

	CustomizedDataList []*JobRequirementCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段

	ProcessType *int `json:"process_type,omitempty"` // 支持的招聘类型列表

	JobTypeId *string `json:"job_type_id,omitempty"` // 招聘需求中的职位类别

	JobIdList []string `json:"job_id_list,omitempty"` // 关联的职位 ID 列表。注：若企业开启了“招聘需求审批”，未通过审批的需求无法关联职位，请勿传入该字段。

	EmploymentJobId *string `json:"employment_job_id,omitempty"` // 职务 ID

	PositionId *string `json:"position_id,omitempty"` // 岗位 ID

	UpdateOption *JobRequirementUpdateOption `json:"update_option,omitempty"` // 招聘需求修改确认控制
}

type JobRequirementBuilder struct {
	shortCode     string // 招聘需求编号
	shortCodeFlag bool

	name     string // 需求名称
	nameFlag bool

	displayProgress     int // 需求状态
	displayProgressFlag bool

	headCount     int // 需求人数
	headCountFlag bool

	recruitmentTypeId     string // 职位性质 ID，可在「招聘枚举常量」文档中查看枚举值
	recruitmentTypeIdFlag bool

	employeeTypeId     string // 人员类型
	employeeTypeIdFlag bool

	maxLevelId     string // 最高职级 ID
	maxLevelIdFlag bool

	minLevelId     string // 最低职级 ID
	minLevelIdFlag bool

	sequenceId     string // 职位序列 ID
	sequenceIdFlag bool

	category     int // 需求类型
	categoryFlag bool

	departmentId     string // 需求部门的 open department id
	departmentIdFlag bool

	recruiterIdList     []string // 需求负责人 ID 列表
	recruiterIdListFlag bool

	jrHiringManagerIdList     []string // 需求用人经理 ID 列表
	jrHiringManagerIdListFlag bool

	directLeaderIdList     []string // 直属上级 ID
	directLeaderIdListFlag bool

	startTime     string // 开始日期，毫秒级时间戳
	startTimeFlag bool

	deadline     string // 预计完成日期，毫秒级时间戳
	deadlineFlag bool

	priority     int // 招聘优先级
	priorityFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	maxSalary     string // 最高薪资，单位：千
	maxSalaryFlag bool

	minSalary     string // 最低薪资，单位：千
	minSalaryFlag bool

	addressId     string // 工作地点 ID，枚举值可通过「获取地址列表」接口查询获得
	addressIdFlag bool

	description     string // 需求描述
	descriptionFlag bool

	customizedDataList     []*JobRequirementCustomizedData // 自定义字段
	customizedDataListFlag bool

	processType     int // 支持的招聘类型列表
	processTypeFlag bool

	jobTypeId     string // 招聘需求中的职位类别
	jobTypeIdFlag bool

	jobIdList     []string // 关联的职位 ID 列表。注：若企业开启了“招聘需求审批”，未通过审批的需求无法关联职位，请勿传入该字段。
	jobIdListFlag bool

	employmentJobId     string // 职务 ID
	employmentJobIdFlag bool

	positionId     string // 岗位 ID
	positionIdFlag bool

	updateOption     *JobRequirementUpdateOption // 招聘需求修改确认控制
	updateOptionFlag bool
}

func NewJobRequirementBuilder() *JobRequirementBuilder {
	builder := &JobRequirementBuilder{}
	return builder
}

// 招聘需求编号
//
// 示例值：xx1
func (builder *JobRequirementBuilder) ShortCode(shortCode string) *JobRequirementBuilder {
	builder.shortCode = shortCode
	builder.shortCodeFlag = true
	return builder
}

// 需求名称
//
// 示例值：test
func (builder *JobRequirementBuilder) Name(name string) *JobRequirementBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 需求状态
//
// 示例值：1
func (builder *JobRequirementBuilder) DisplayProgress(displayProgress int) *JobRequirementBuilder {
	builder.displayProgress = displayProgress
	builder.displayProgressFlag = true
	return builder
}

// 需求人数
//
// 示例值：11
func (builder *JobRequirementBuilder) HeadCount(headCount int) *JobRequirementBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 职位性质 ID，可在「招聘枚举常量」文档中查看枚举值
//
// 示例值：101
func (builder *JobRequirementBuilder) RecruitmentTypeId(recruitmentTypeId string) *JobRequirementBuilder {
	builder.recruitmentTypeId = recruitmentTypeId
	builder.recruitmentTypeIdFlag = true
	return builder
}

// 人员类型
//
// 示例值：6807409776231254285
func (builder *JobRequirementBuilder) EmployeeTypeId(employeeTypeId string) *JobRequirementBuilder {
	builder.employeeTypeId = employeeTypeId
	builder.employeeTypeIdFlag = true
	return builder
}

// 最高职级 ID
//
// 示例值：6807409776231254285
func (builder *JobRequirementBuilder) MaxLevelId(maxLevelId string) *JobRequirementBuilder {
	builder.maxLevelId = maxLevelId
	builder.maxLevelIdFlag = true
	return builder
}

// 最低职级 ID
//
// 示例值：6911957338526091534
func (builder *JobRequirementBuilder) MinLevelId(minLevelId string) *JobRequirementBuilder {
	builder.minLevelId = minLevelId
	builder.minLevelIdFlag = true
	return builder
}

// 职位序列 ID
//
// 示例值：6911957338526091536
func (builder *JobRequirementBuilder) SequenceId(sequenceId string) *JobRequirementBuilder {
	builder.sequenceId = sequenceId
	builder.sequenceIdFlag = true
	return builder
}

// 需求类型
//
// 示例值：1
func (builder *JobRequirementBuilder) Category(category int) *JobRequirementBuilder {
	builder.category = category
	builder.categoryFlag = true
	return builder
}

// 需求部门的 open department id
//
// 示例值：od-4e6ac4d14bcd5071a37a39de902c7141
func (builder *JobRequirementBuilder) DepartmentId(departmentId string) *JobRequirementBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 需求负责人 ID 列表
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *JobRequirementBuilder) RecruiterIdList(recruiterIdList []string) *JobRequirementBuilder {
	builder.recruiterIdList = recruiterIdList
	builder.recruiterIdListFlag = true
	return builder
}

// 需求用人经理 ID 列表
//
// 示例值：
func (builder *JobRequirementBuilder) JrHiringManagerIdList(jrHiringManagerIdList []string) *JobRequirementBuilder {
	builder.jrHiringManagerIdList = jrHiringManagerIdList
	builder.jrHiringManagerIdListFlag = true
	return builder
}

// 直属上级 ID
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *JobRequirementBuilder) DirectLeaderIdList(directLeaderIdList []string) *JobRequirementBuilder {
	builder.directLeaderIdList = directLeaderIdList
	builder.directLeaderIdListFlag = true
	return builder
}

// 开始日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *JobRequirementBuilder) StartTime(startTime string) *JobRequirementBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 预计完成日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *JobRequirementBuilder) Deadline(deadline string) *JobRequirementBuilder {
	builder.deadline = deadline
	builder.deadlineFlag = true
	return builder
}

// 招聘优先级
//
// 示例值：1
func (builder *JobRequirementBuilder) Priority(priority int) *JobRequirementBuilder {
	builder.priority = priority
	builder.priorityFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *JobRequirementBuilder) RequiredDegree(requiredDegree int) *JobRequirementBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 最高薪资，单位：千
//
// 示例值：10
func (builder *JobRequirementBuilder) MaxSalary(maxSalary string) *JobRequirementBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 最低薪资，单位：千
//
// 示例值：15
func (builder *JobRequirementBuilder) MinSalary(minSalary string) *JobRequirementBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 工作地点 ID，枚举值可通过「获取地址列表」接口查询获得
//
// 示例值：11
func (builder *JobRequirementBuilder) AddressId(addressId string) *JobRequirementBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 需求描述
//
// 示例值：11
func (builder *JobRequirementBuilder) Description(description string) *JobRequirementBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *JobRequirementBuilder) CustomizedDataList(customizedDataList []*JobRequirementCustomizedData) *JobRequirementBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 支持的招聘类型列表
//
// 示例值：1
func (builder *JobRequirementBuilder) ProcessType(processType int) *JobRequirementBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 招聘需求中的职位类别
//
// 示例值：6930815272790114324
func (builder *JobRequirementBuilder) JobTypeId(jobTypeId string) *JobRequirementBuilder {
	builder.jobTypeId = jobTypeId
	builder.jobTypeIdFlag = true
	return builder
}

// 关联的职位 ID 列表。注：若企业开启了“招聘需求审批”，未通过审批的需求无法关联职位，请勿传入该字段。
//
// 示例值：
func (builder *JobRequirementBuilder) JobIdList(jobIdList []string) *JobRequirementBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 职务 ID
//
// 示例值：123
func (builder *JobRequirementBuilder) EmploymentJobId(employmentJobId string) *JobRequirementBuilder {
	builder.employmentJobId = employmentJobId
	builder.employmentJobIdFlag = true
	return builder
}

// 岗位 ID
//
// 示例值：123
func (builder *JobRequirementBuilder) PositionId(positionId string) *JobRequirementBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

// 招聘需求修改确认控制
//
// 示例值：
func (builder *JobRequirementBuilder) UpdateOption(updateOption *JobRequirementUpdateOption) *JobRequirementBuilder {
	builder.updateOption = updateOption
	builder.updateOptionFlag = true
	return builder
}

func (builder *JobRequirementBuilder) Build() *JobRequirement {
	req := &JobRequirement{}
	if builder.shortCodeFlag {
		req.ShortCode = &builder.shortCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.displayProgressFlag {
		req.DisplayProgress = &builder.displayProgress

	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount

	}
	if builder.recruitmentTypeIdFlag {
		req.RecruitmentTypeId = &builder.recruitmentTypeId

	}
	if builder.employeeTypeIdFlag {
		req.EmployeeTypeId = &builder.employeeTypeId

	}
	if builder.maxLevelIdFlag {
		req.MaxLevelId = &builder.maxLevelId

	}
	if builder.minLevelIdFlag {
		req.MinLevelId = &builder.minLevelId

	}
	if builder.sequenceIdFlag {
		req.SequenceId = &builder.sequenceId

	}
	if builder.categoryFlag {
		req.Category = &builder.category

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.recruiterIdListFlag {
		req.RecruiterIdList = builder.recruiterIdList
	}
	if builder.jrHiringManagerIdListFlag {
		req.JrHiringManagerIdList = builder.jrHiringManagerIdList
	}
	if builder.directLeaderIdListFlag {
		req.DirectLeaderIdList = builder.directLeaderIdList
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.deadlineFlag {
		req.Deadline = &builder.deadline

	}
	if builder.priorityFlag {
		req.Priority = &builder.priority

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.jobTypeIdFlag {
		req.JobTypeId = &builder.jobTypeId

	}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.employmentJobIdFlag {
		req.EmploymentJobId = &builder.employmentJobId

	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId

	}
	if builder.updateOptionFlag {
		req.UpdateOption = builder.updateOption
	}
	return req
}

type JobRequirementCustomizedData struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Value *string `json:"value,omitempty"` // 自定义字段 value，1. 对于自定义字段，若字段类型为单行文本/多行文本，传值格式为"这是一个文本"；2. 若字段类型为单选，传值内容为选项的 ID，格式为"6890840516938696974"；;3. 若字段类型为多选，传值内容为选项的ID 列表，格式为"[\"6890840516938696974\", \"6890840516938696975\" ]"；;4. 若字段类型为时间段，传值格式为"[\"1609430400000\", \"1612108800000\" ]"，单位是毫米级时间戳；;5. 若字段类型为年份选择，传值格式为"1609430400000"，单位是毫秒级时间戳；;6. 若字段类型为月份选择，传值格式为"1625068800000"，单位是毫秒级时间戳；;7. 若字段类型为数字，传值格式为"1";
}

type JobRequirementCustomizedDataBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	value     string // 自定义字段 value，1. 对于自定义字段，若字段类型为单行文本/多行文本，传值格式为"这是一个文本"；2. 若字段类型为单选，传值内容为选项的 ID，格式为"6890840516938696974"；;3. 若字段类型为多选，传值内容为选项的ID 列表，格式为"[\"6890840516938696974\", \"6890840516938696975\" ]"；;4. 若字段类型为时间段，传值格式为"[\"1609430400000\", \"1612108800000\" ]"，单位是毫米级时间戳；;5. 若字段类型为年份选择，传值格式为"1609430400000"，单位是毫秒级时间戳；;6. 若字段类型为月份选择，传值格式为"1625068800000"，单位是毫秒级时间戳；;7. 若字段类型为数字，传值格式为"1";
	valueFlag bool
}

func NewJobRequirementCustomizedDataBuilder() *JobRequirementCustomizedDataBuilder {
	builder := &JobRequirementCustomizedDataBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：1213213123123
func (builder *JobRequirementCustomizedDataBuilder) ObjectId(objectId string) *JobRequirementCustomizedDataBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 自定义字段 value，1. 对于自定义字段，若字段类型为单行文本/多行文本，传值格式为"这是一个文本"；2. 若字段类型为单选，传值内容为选项的 ID，格式为"6890840516938696974"；;3. 若字段类型为多选，传值内容为选项的ID 列表，格式为"[\"6890840516938696974\", \"6890840516938696975\" ]"；;4. 若字段类型为时间段，传值格式为"[\"1609430400000\", \"1612108800000\" ]"，单位是毫米级时间戳；;5. 若字段类型为年份选择，传值格式为"1609430400000"，单位是毫秒级时间戳；;6. 若字段类型为月份选择，传值格式为"1625068800000"，单位是毫秒级时间戳；;7. 若字段类型为数字，传值格式为"1";
//
// 示例值：测试
func (builder *JobRequirementCustomizedDataBuilder) Value(value string) *JobRequirementCustomizedDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *JobRequirementCustomizedDataBuilder) Build() *JobRequirementCustomizedData {
	req := &JobRequirementCustomizedData{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type JobRequirementCustomizedDataDto struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	ObjectType *int `json:"object_type,omitempty"` // 字段类型

	Value *JobRequirementCustomizedValue `json:"value,omitempty"` // 自定义字段值
}

type JobRequirementCustomizedDataDtoBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	objectType     int // 字段类型
	objectTypeFlag bool

	value     *JobRequirementCustomizedValue // 自定义字段值
	valueFlag bool
}

func NewJobRequirementCustomizedDataDtoBuilder() *JobRequirementCustomizedDataDtoBuilder {
	builder := &JobRequirementCustomizedDataDtoBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：xxxx
func (builder *JobRequirementCustomizedDataDtoBuilder) ObjectId(objectId string) *JobRequirementCustomizedDataDtoBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *JobRequirementCustomizedDataDtoBuilder) Name(name *I18n) *JobRequirementCustomizedDataDtoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *JobRequirementCustomizedDataDtoBuilder) ObjectType(objectType int) *JobRequirementCustomizedDataDtoBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：
func (builder *JobRequirementCustomizedDataDtoBuilder) Value(value *JobRequirementCustomizedValue) *JobRequirementCustomizedDataDtoBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *JobRequirementCustomizedDataDtoBuilder) Build() *JobRequirementCustomizedDataDto {
	req := &JobRequirementCustomizedDataDto{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type JobRequirementCustomizedOption struct {
	Key *string `json:"key,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称
}

type JobRequirementCustomizedOptionBuilder struct {
	key     string // 选项 ID
	keyFlag bool

	name     *I18n // 选项名称
	nameFlag bool
}

func NewJobRequirementCustomizedOptionBuilder() *JobRequirementCustomizedOptionBuilder {
	builder := &JobRequirementCustomizedOptionBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：AA
func (builder *JobRequirementCustomizedOptionBuilder) Key(key string) *JobRequirementCustomizedOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *JobRequirementCustomizedOptionBuilder) Name(name *I18n) *JobRequirementCustomizedOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobRequirementCustomizedOptionBuilder) Build() *JobRequirementCustomizedOption {
	req := &JobRequirementCustomizedOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JobRequirementCustomizedTimeRange struct {
	StartTime *string `json:"start_time,omitempty"` // 开始时间，毫秒级时间戳

	EndTime *string `json:"end_time,omitempty"` // 结束时间，毫秒级时间戳
}

type JobRequirementCustomizedTimeRangeBuilder struct {
	startTime     string // 开始时间，毫秒级时间戳
	startTimeFlag bool

	endTime     string // 结束时间，毫秒级时间戳
	endTimeFlag bool
}

func NewJobRequirementCustomizedTimeRangeBuilder() *JobRequirementCustomizedTimeRangeBuilder {
	builder := &JobRequirementCustomizedTimeRangeBuilder{}
	return builder
}

// 开始时间，毫秒级时间戳
//
// 示例值：AA
func (builder *JobRequirementCustomizedTimeRangeBuilder) StartTime(startTime string) *JobRequirementCustomizedTimeRangeBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间，毫秒级时间戳
//
// 示例值：AA
func (builder *JobRequirementCustomizedTimeRangeBuilder) EndTime(endTime string) *JobRequirementCustomizedTimeRangeBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *JobRequirementCustomizedTimeRangeBuilder) Build() *JobRequirementCustomizedTimeRange {
	req := &JobRequirementCustomizedTimeRange{}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type JobRequirementCustomizedValue struct {
	Content *string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值

	Option *JobRequirementCustomizedOption `json:"option,omitempty"` // 当字段类型为单选时，从此字段取值

	OptionList []*JobRequirementCustomizedOption `json:"option_list,omitempty"` // 当字段类型为多选时，从此字段取值

	TimeRange *JobRequirementCustomizedTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时，从此字段取值

	Time *string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳

	Number *string `json:"number,omitempty"` // 当字段类型为数字时，从此字段取值
}

type JobRequirementCustomizedValueBuilder struct {
	content     string // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
	contentFlag bool

	option     *JobRequirementCustomizedOption // 当字段类型为单选时，从此字段取值
	optionFlag bool

	optionList     []*JobRequirementCustomizedOption // 当字段类型为多选时，从此字段取值
	optionListFlag bool

	timeRange     *JobRequirementCustomizedTimeRange // 当字段类型为时间段时，从此字段取值
	timeRangeFlag bool

	time     string // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
	timeFlag bool

	number     string // 当字段类型为数字时，从此字段取值
	numberFlag bool
}

func NewJobRequirementCustomizedValueBuilder() *JobRequirementCustomizedValueBuilder {
	builder := &JobRequirementCustomizedValueBuilder{}
	return builder
}

// 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
//
// 示例值：text
func (builder *JobRequirementCustomizedValueBuilder) Content(content string) *JobRequirementCustomizedValueBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 当字段类型为单选时，从此字段取值
//
// 示例值：
func (builder *JobRequirementCustomizedValueBuilder) Option(option *JobRequirementCustomizedOption) *JobRequirementCustomizedValueBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 当字段类型为多选时，从此字段取值
//
// 示例值：
func (builder *JobRequirementCustomizedValueBuilder) OptionList(optionList []*JobRequirementCustomizedOption) *JobRequirementCustomizedValueBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

// 当字段类型为时间段时，从此字段取值
//
// 示例值：
func (builder *JobRequirementCustomizedValueBuilder) TimeRange(timeRange *JobRequirementCustomizedTimeRange) *JobRequirementCustomizedValueBuilder {
	builder.timeRange = timeRange
	builder.timeRangeFlag = true
	return builder
}

// 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
//
// 示例值：1625456721000
func (builder *JobRequirementCustomizedValueBuilder) Time(time string) *JobRequirementCustomizedValueBuilder {
	builder.time = time
	builder.timeFlag = true
	return builder
}

// 当字段类型为数字时，从此字段取值
//
// 示例值：111
func (builder *JobRequirementCustomizedValueBuilder) Number(number string) *JobRequirementCustomizedValueBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *JobRequirementCustomizedValueBuilder) Build() *JobRequirementCustomizedValue {
	req := &JobRequirementCustomizedValue{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.optionFlag {
		req.Option = builder.option
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	if builder.timeRangeFlag {
		req.TimeRange = builder.timeRange
	}
	if builder.timeFlag {
		req.Time = &builder.time

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type JobRequirementDto struct {
	Id *string `json:"id,omitempty"` // 招聘需求 ID

	ShortCode *string `json:"short_code,omitempty"` // 招聘需求编号

	Name *string `json:"name,omitempty"` // 需求名称

	DisplayProgress *int `json:"display_progress,omitempty"` // 需求状态

	HeadCount *int `json:"head_count,omitempty"` // 需求人数

	RecruitmentType *IdNameObject `json:"recruitment_type,omitempty"` // 职位性质

	EmployeeType *IdNameObject `json:"employee_type,omitempty"` // 人员类型

	MaxLevel *IdNameObject `json:"max_level,omitempty"` // 最高职级

	MinLevel *IdNameObject `json:"min_level,omitempty"` // 最低职级

	Sequence *IdNameObject `json:"sequence,omitempty"` // 职位序列

	Category *int `json:"category,omitempty"` // 需求类型

	Department *IdNameObject `json:"department,omitempty"` // 需求部门

	RecruiterList []*IdNameObject `json:"recruiter_list,omitempty"` // 需求负责人

	JrHiringManagers []*IdNameObject `json:"jr_hiring_managers,omitempty"` // 需求用人经理

	DirectLeaderList []*IdNameObject `json:"direct_leader_list,omitempty"` // 直属上级

	StartTime *string `json:"start_time,omitempty"` // 开始日期，毫秒级时间戳

	Deadline *string `json:"deadline,omitempty"` // 预计完成日期，毫秒级时间戳

	Priority *int `json:"priority,omitempty"` // 招聘优先级

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	MaxSalary *string `json:"max_salary,omitempty"` // 最高薪资

	MinSalary *string `json:"min_salary,omitempty"` // 最低薪资

	Address *IdNameObject `json:"address,omitempty"` // 工作地点

	Description *string `json:"description,omitempty"` // 需求描述

	CustomizedDataList []*JobRequirementCustomizedDataDto `json:"customized_data_list,omitempty"` // 自定义字段

	JobIdList []string `json:"job_id_list,omitempty"` // 关联职位 ID

	ProcessType *int `json:"process_type,omitempty"` // 招聘需求支持的招聘类型

	JobType *JobTypeInfo `json:"job_type,omitempty"` // 职位类别

	CreateTime *string `json:"create_time,omitempty"` // 创建时间,毫秒级时间戳

	CreatorId *string `json:"creator_id,omitempty"` // 创建人ID

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间,毫秒级时间戳

	EmploymentJobId *string `json:"employment_job_id,omitempty"` // 职务 ID

	PositionId *string `json:"position_id,omitempty"` // 岗位 ID

	CompletionTime *string `json:"completion_time,omitempty"` // 完成时间，毫秒级时间戳

	ApprovalStatus *int `json:"approval_status,omitempty"` // 审批状态

	CountData *JrCountDataInfo `json:"count_data,omitempty"` // 招聘需求招聘进展统计数值
}

type JobRequirementDtoBuilder struct {
	id     string // 招聘需求 ID
	idFlag bool

	shortCode     string // 招聘需求编号
	shortCodeFlag bool

	name     string // 需求名称
	nameFlag bool

	displayProgress     int // 需求状态
	displayProgressFlag bool

	headCount     int // 需求人数
	headCountFlag bool

	recruitmentType     *IdNameObject // 职位性质
	recruitmentTypeFlag bool

	employeeType     *IdNameObject // 人员类型
	employeeTypeFlag bool

	maxLevel     *IdNameObject // 最高职级
	maxLevelFlag bool

	minLevel     *IdNameObject // 最低职级
	minLevelFlag bool

	sequence     *IdNameObject // 职位序列
	sequenceFlag bool

	category     int // 需求类型
	categoryFlag bool

	department     *IdNameObject // 需求部门
	departmentFlag bool

	recruiterList     []*IdNameObject // 需求负责人
	recruiterListFlag bool

	jrHiringManagers     []*IdNameObject // 需求用人经理
	jrHiringManagersFlag bool

	directLeaderList     []*IdNameObject // 直属上级
	directLeaderListFlag bool

	startTime     string // 开始日期，毫秒级时间戳
	startTimeFlag bool

	deadline     string // 预计完成日期，毫秒级时间戳
	deadlineFlag bool

	priority     int // 招聘优先级
	priorityFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	maxSalary     string // 最高薪资
	maxSalaryFlag bool

	minSalary     string // 最低薪资
	minSalaryFlag bool

	address     *IdNameObject // 工作地点
	addressFlag bool

	description     string // 需求描述
	descriptionFlag bool

	customizedDataList     []*JobRequirementCustomizedDataDto // 自定义字段
	customizedDataListFlag bool

	jobIdList     []string // 关联职位 ID
	jobIdListFlag bool

	processType     int // 招聘需求支持的招聘类型
	processTypeFlag bool

	jobType     *JobTypeInfo // 职位类别
	jobTypeFlag bool

	createTime     string // 创建时间,毫秒级时间戳
	createTimeFlag bool

	creatorId     string // 创建人ID
	creatorIdFlag bool

	updateTime     string // 更新时间,毫秒级时间戳
	updateTimeFlag bool

	employmentJobId     string // 职务 ID
	employmentJobIdFlag bool

	positionId     string // 岗位 ID
	positionIdFlag bool

	completionTime     string // 完成时间，毫秒级时间戳
	completionTimeFlag bool

	approvalStatus     int // 审批状态
	approvalStatusFlag bool

	countData     *JrCountDataInfo // 招聘需求招聘进展统计数值
	countDataFlag bool
}

func NewJobRequirementDtoBuilder() *JobRequirementDtoBuilder {
	builder := &JobRequirementDtoBuilder{}
	return builder
}

// 招聘需求 ID
//
// 示例值：6949805467799537964
func (builder *JobRequirementDtoBuilder) Id(id string) *JobRequirementDtoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 招聘需求编号
//
// 示例值：xx1
func (builder *JobRequirementDtoBuilder) ShortCode(shortCode string) *JobRequirementDtoBuilder {
	builder.shortCode = shortCode
	builder.shortCodeFlag = true
	return builder
}

// 需求名称
//
// 示例值：test
func (builder *JobRequirementDtoBuilder) Name(name string) *JobRequirementDtoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 需求状态
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) DisplayProgress(displayProgress int) *JobRequirementDtoBuilder {
	builder.displayProgress = displayProgress
	builder.displayProgressFlag = true
	return builder
}

// 需求人数
//
// 示例值：11
func (builder *JobRequirementDtoBuilder) HeadCount(headCount int) *JobRequirementDtoBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 职位性质
//
// 示例值：
func (builder *JobRequirementDtoBuilder) RecruitmentType(recruitmentType *IdNameObject) *JobRequirementDtoBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 人员类型
//
// 示例值：
func (builder *JobRequirementDtoBuilder) EmployeeType(employeeType *IdNameObject) *JobRequirementDtoBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// 最高职级
//
// 示例值：
func (builder *JobRequirementDtoBuilder) MaxLevel(maxLevel *IdNameObject) *JobRequirementDtoBuilder {
	builder.maxLevel = maxLevel
	builder.maxLevelFlag = true
	return builder
}

// 最低职级
//
// 示例值：
func (builder *JobRequirementDtoBuilder) MinLevel(minLevel *IdNameObject) *JobRequirementDtoBuilder {
	builder.minLevel = minLevel
	builder.minLevelFlag = true
	return builder
}

// 职位序列
//
// 示例值：
func (builder *JobRequirementDtoBuilder) Sequence(sequence *IdNameObject) *JobRequirementDtoBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 需求类型
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) Category(category int) *JobRequirementDtoBuilder {
	builder.category = category
	builder.categoryFlag = true
	return builder
}

// 需求部门
//
// 示例值：
func (builder *JobRequirementDtoBuilder) Department(department *IdNameObject) *JobRequirementDtoBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 需求负责人
//
// 示例值：
func (builder *JobRequirementDtoBuilder) RecruiterList(recruiterList []*IdNameObject) *JobRequirementDtoBuilder {
	builder.recruiterList = recruiterList
	builder.recruiterListFlag = true
	return builder
}

// 需求用人经理
//
// 示例值：
func (builder *JobRequirementDtoBuilder) JrHiringManagers(jrHiringManagers []*IdNameObject) *JobRequirementDtoBuilder {
	builder.jrHiringManagers = jrHiringManagers
	builder.jrHiringManagersFlag = true
	return builder
}

// 直属上级
//
// 示例值：
func (builder *JobRequirementDtoBuilder) DirectLeaderList(directLeaderList []*IdNameObject) *JobRequirementDtoBuilder {
	builder.directLeaderList = directLeaderList
	builder.directLeaderListFlag = true
	return builder
}

// 开始日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *JobRequirementDtoBuilder) StartTime(startTime string) *JobRequirementDtoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 预计完成日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *JobRequirementDtoBuilder) Deadline(deadline string) *JobRequirementDtoBuilder {
	builder.deadline = deadline
	builder.deadlineFlag = true
	return builder
}

// 招聘优先级
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) Priority(priority int) *JobRequirementDtoBuilder {
	builder.priority = priority
	builder.priorityFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) RequiredDegree(requiredDegree int) *JobRequirementDtoBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 最高薪资
//
// 示例值：123
func (builder *JobRequirementDtoBuilder) MaxSalary(maxSalary string) *JobRequirementDtoBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 最低薪资
//
// 示例值：11
func (builder *JobRequirementDtoBuilder) MinSalary(minSalary string) *JobRequirementDtoBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 工作地点
//
// 示例值：
func (builder *JobRequirementDtoBuilder) Address(address *IdNameObject) *JobRequirementDtoBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 需求描述
//
// 示例值：11
func (builder *JobRequirementDtoBuilder) Description(description string) *JobRequirementDtoBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *JobRequirementDtoBuilder) CustomizedDataList(customizedDataList []*JobRequirementCustomizedDataDto) *JobRequirementDtoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 关联职位 ID
//
// 示例值：
func (builder *JobRequirementDtoBuilder) JobIdList(jobIdList []string) *JobRequirementDtoBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 招聘需求支持的招聘类型
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) ProcessType(processType int) *JobRequirementDtoBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 职位类别
//
// 示例值：
func (builder *JobRequirementDtoBuilder) JobType(jobType *JobTypeInfo) *JobRequirementDtoBuilder {
	builder.jobType = jobType
	builder.jobTypeFlag = true
	return builder
}

// 创建时间,毫秒级时间戳
//
// 示例值：1718856006000
func (builder *JobRequirementDtoBuilder) CreateTime(createTime string) *JobRequirementDtoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 创建人ID
//
// 示例值：ou_e2fc714c4727ee9395f324cd2e7f331f
func (builder *JobRequirementDtoBuilder) CreatorId(creatorId string) *JobRequirementDtoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 更新时间,毫秒级时间戳
//
// 示例值：1718856006000
func (builder *JobRequirementDtoBuilder) UpdateTime(updateTime string) *JobRequirementDtoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 职务 ID
//
// 示例值：123
func (builder *JobRequirementDtoBuilder) EmploymentJobId(employmentJobId string) *JobRequirementDtoBuilder {
	builder.employmentJobId = employmentJobId
	builder.employmentJobIdFlag = true
	return builder
}

// 岗位 ID
//
// 示例值：123
func (builder *JobRequirementDtoBuilder) PositionId(positionId string) *JobRequirementDtoBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

// 完成时间，毫秒级时间戳
//
// 示例值：1736846689278
func (builder *JobRequirementDtoBuilder) CompletionTime(completionTime string) *JobRequirementDtoBuilder {
	builder.completionTime = completionTime
	builder.completionTimeFlag = true
	return builder
}

// 审批状态
//
// 示例值：1
func (builder *JobRequirementDtoBuilder) ApprovalStatus(approvalStatus int) *JobRequirementDtoBuilder {
	builder.approvalStatus = approvalStatus
	builder.approvalStatusFlag = true
	return builder
}

// 招聘需求招聘进展统计数值
//
// 示例值：
func (builder *JobRequirementDtoBuilder) CountData(countData *JrCountDataInfo) *JobRequirementDtoBuilder {
	builder.countData = countData
	builder.countDataFlag = true
	return builder
}

func (builder *JobRequirementDtoBuilder) Build() *JobRequirementDto {
	req := &JobRequirementDto{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.shortCodeFlag {
		req.ShortCode = &builder.shortCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.displayProgressFlag {
		req.DisplayProgress = &builder.displayProgress

	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount

	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.employeeTypeFlag {
		req.EmployeeType = builder.employeeType
	}
	if builder.maxLevelFlag {
		req.MaxLevel = builder.maxLevel
	}
	if builder.minLevelFlag {
		req.MinLevel = builder.minLevel
	}
	if builder.sequenceFlag {
		req.Sequence = builder.sequence
	}
	if builder.categoryFlag {
		req.Category = &builder.category

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.recruiterListFlag {
		req.RecruiterList = builder.recruiterList
	}
	if builder.jrHiringManagersFlag {
		req.JrHiringManagers = builder.jrHiringManagers
	}
	if builder.directLeaderListFlag {
		req.DirectLeaderList = builder.directLeaderList
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.deadlineFlag {
		req.Deadline = &builder.deadline

	}
	if builder.priorityFlag {
		req.Priority = &builder.priority

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType

	}
	if builder.jobTypeFlag {
		req.JobType = builder.jobType
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.employmentJobIdFlag {
		req.EmploymentJobId = &builder.employmentJobId

	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId

	}
	if builder.completionTimeFlag {
		req.CompletionTime = &builder.completionTime

	}
	if builder.approvalStatusFlag {
		req.ApprovalStatus = &builder.approvalStatus

	}
	if builder.countDataFlag {
		req.CountData = builder.countData
	}
	return req
}

type JobRequirementSchema struct {
	Id *string `json:"id,omitempty"` // 模板 ID

	Name *I18n `json:"name,omitempty"` // 国际化模板名称

	ObjectList []*CommonSchema `json:"object_list,omitempty"` // 模板字段
}

type JobRequirementSchemaBuilder struct {
	id     string // 模板 ID
	idFlag bool

	name     *I18n // 国际化模板名称
	nameFlag bool

	objectList     []*CommonSchema // 模板字段
	objectListFlag bool
}

func NewJobRequirementSchemaBuilder() *JobRequirementSchemaBuilder {
	builder := &JobRequirementSchemaBuilder{}
	return builder
}

// 模板 ID
//
// 示例值：6949805467799537964
func (builder *JobRequirementSchemaBuilder) Id(id string) *JobRequirementSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 国际化模板名称
//
// 示例值：
func (builder *JobRequirementSchemaBuilder) Name(name *I18n) *JobRequirementSchemaBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 模板字段
//
// 示例值：
func (builder *JobRequirementSchemaBuilder) ObjectList(objectList []*CommonSchema) *JobRequirementSchemaBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *JobRequirementSchemaBuilder) Build() *JobRequirementSchema {
	req := &JobRequirementSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type JobRequirementSimple struct {
	Id *string `json:"id,omitempty"` // 招聘需求 ID

	ShortCode *string `json:"short_code,omitempty"` // 招聘需求编号

	Name *string `json:"name,omitempty"` // 需求名称

	DepartmentId *string `json:"department_id,omitempty"` // 需求部门 ID
}

type JobRequirementSimpleBuilder struct {
	id     string // 招聘需求 ID
	idFlag bool

	shortCode     string // 招聘需求编号
	shortCodeFlag bool

	name     string // 需求名称
	nameFlag bool

	departmentId     string // 需求部门 ID
	departmentIdFlag bool
}

func NewJobRequirementSimpleBuilder() *JobRequirementSimpleBuilder {
	builder := &JobRequirementSimpleBuilder{}
	return builder
}

// 招聘需求 ID
//
// 示例值：6949805467799537964
func (builder *JobRequirementSimpleBuilder) Id(id string) *JobRequirementSimpleBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 招聘需求编号
//
// 示例值：xx1
func (builder *JobRequirementSimpleBuilder) ShortCode(shortCode string) *JobRequirementSimpleBuilder {
	builder.shortCode = shortCode
	builder.shortCodeFlag = true
	return builder
}

// 需求名称
//
// 示例值：华中大区部门
func (builder *JobRequirementSimpleBuilder) Name(name string) *JobRequirementSimpleBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 需求部门 ID
//
// 示例值：6833685612520950030
func (builder *JobRequirementSimpleBuilder) DepartmentId(departmentId string) *JobRequirementSimpleBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

func (builder *JobRequirementSimpleBuilder) Build() *JobRequirementSimple {
	req := &JobRequirementSimple{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.shortCodeFlag {
		req.ShortCode = &builder.shortCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	return req
}

type JobRequirementUpdateOption struct {
	NeedUpdateRelatedJob *bool `json:"need_update_related_job,omitempty"` // 是否需要修改关联的职位
}

type JobRequirementUpdateOptionBuilder struct {
	needUpdateRelatedJob     bool // 是否需要修改关联的职位
	needUpdateRelatedJobFlag bool
}

func NewJobRequirementUpdateOptionBuilder() *JobRequirementUpdateOptionBuilder {
	builder := &JobRequirementUpdateOptionBuilder{}
	return builder
}

// 是否需要修改关联的职位
//
// 示例值：false
func (builder *JobRequirementUpdateOptionBuilder) NeedUpdateRelatedJob(needUpdateRelatedJob bool) *JobRequirementUpdateOptionBuilder {
	builder.needUpdateRelatedJob = needUpdateRelatedJob
	builder.needUpdateRelatedJobFlag = true
	return builder
}

func (builder *JobRequirementUpdateOptionBuilder) Build() *JobRequirementUpdateOption {
	req := &JobRequirementUpdateOption{}
	if builder.needUpdateRelatedJobFlag {
		req.NeedUpdateRelatedJob = &builder.needUpdateRelatedJob

	}
	return req
}

type JobSchema struct {
	Id *string `json:"id,omitempty"` // 职位模板 ID

	Name *I18n `json:"name,omitempty"` // 职位模板名称

	ScenarioType *int `json:"scenario_type,omitempty"` // 职位模板类型

	ObjectList []*CommonSchema `json:"object_list,omitempty"` // 模块列表
}

type JobSchemaBuilder struct {
	id     string // 职位模板 ID
	idFlag bool

	name     *I18n // 职位模板名称
	nameFlag bool

	scenarioType     int // 职位模板类型
	scenarioTypeFlag bool

	objectList     []*CommonSchema // 模块列表
	objectListFlag bool
}

func NewJobSchemaBuilder() *JobSchemaBuilder {
	builder := &JobSchemaBuilder{}
	return builder
}

// 职位模板 ID
//
// 示例值：6949805467799537964
func (builder *JobSchemaBuilder) Id(id string) *JobSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位模板名称
//
// 示例值：
func (builder *JobSchemaBuilder) Name(name *I18n) *JobSchemaBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 职位模板类型
//
// 示例值：1
func (builder *JobSchemaBuilder) ScenarioType(scenarioType int) *JobSchemaBuilder {
	builder.scenarioType = scenarioType
	builder.scenarioTypeFlag = true
	return builder
}

// 模块列表
//
// 示例值：
func (builder *JobSchemaBuilder) ObjectList(objectList []*CommonSchema) *JobSchemaBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *JobSchemaBuilder) Build() *JobSchema {
	req := &JobSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.scenarioTypeFlag {
		req.ScenarioType = &builder.scenarioType

	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type JobStorefront struct {
	Id *string `json:"id,omitempty"` // 门店ID

	Name *I18n `json:"name,omitempty"` // 门店名称

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	Department *JobDepartmentSimple `json:"department,omitempty"` // 门店部门

	Address *CommonAddress `json:"address,omitempty"` // 门店地址

	Manager *JobUserInfo `json:"manager,omitempty"` // 门店负责人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间，毫秒级时间戳

	Remark *I18n `json:"remark,omitempty"` // 备注
}

type JobStorefrontBuilder struct {
	id     string // 门店ID
	idFlag bool

	name     *I18n // 门店名称
	nameFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	department     *JobDepartmentSimple // 门店部门
	departmentFlag bool

	address     *CommonAddress // 门店地址
	addressFlag bool

	manager     *JobUserInfo // 门店负责人
	managerFlag bool

	createTime     string // 创建时间，毫秒级时间戳
	createTimeFlag bool

	remark     *I18n // 备注
	remarkFlag bool
}

func NewJobStorefrontBuilder() *JobStorefrontBuilder {
	builder := &JobStorefrontBuilder{}
	return builder
}

// 门店ID
//
// 示例值：6960663240925956547
func (builder *JobStorefrontBuilder) Id(id string) *JobStorefrontBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 门店名称
//
// 示例值：
func (builder *JobStorefrontBuilder) Name(name *I18n) *JobStorefrontBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *JobStorefrontBuilder) ActiveStatus(activeStatus int) *JobStorefrontBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 门店部门
//
// 示例值：
func (builder *JobStorefrontBuilder) Department(department *JobDepartmentSimple) *JobStorefrontBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 门店地址
//
// 示例值：
func (builder *JobStorefrontBuilder) Address(address *CommonAddress) *JobStorefrontBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 门店负责人
//
// 示例值：
func (builder *JobStorefrontBuilder) Manager(manager *JobUserInfo) *JobStorefrontBuilder {
	builder.manager = manager
	builder.managerFlag = true
	return builder
}

// 创建时间，毫秒级时间戳
//
// 示例值：1622484739955
func (builder *JobStorefrontBuilder) CreateTime(createTime string) *JobStorefrontBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 备注
//
// 示例值：
func (builder *JobStorefrontBuilder) Remark(remark *I18n) *JobStorefrontBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

func (builder *JobStorefrontBuilder) Build() *JobStorefront {
	req := &JobStorefront{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.managerFlag {
		req.Manager = builder.manager
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.remarkFlag {
		req.Remark = builder.remark
	}
	return req
}

type JobType struct {
	Id *string `json:"id,omitempty"` // 职位类别 ID

	ZhName *string `json:"zh_name,omitempty"` // 职位类别中文名称

	EnName *string `json:"en_name,omitempty"` // 职位类别英文名称
}

type JobTypeBuilder struct {
	id     string // 职位类别 ID
	idFlag bool

	zhName     string // 职位类别中文名称
	zhNameFlag bool

	enName     string // 职位类别英文名称
	enNameFlag bool
}

func NewJobTypeBuilder() *JobTypeBuilder {
	builder := &JobTypeBuilder{}
	return builder
}

// 职位类别 ID
//
// 示例值：6890840777044265230
func (builder *JobTypeBuilder) Id(id string) *JobTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位类别中文名称
//
// 示例值：金融
func (builder *JobTypeBuilder) ZhName(zhName string) *JobTypeBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 职位类别英文名称
//
// 示例值：Finance
func (builder *JobTypeBuilder) EnName(enName string) *JobTypeBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *JobTypeBuilder) Build() *JobType {
	req := &JobType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type JobTypeInfo struct {
	Id *string `json:"id,omitempty"` // 职位类别ID

	Name *I18n `json:"name,omitempty"` // 职位类别名称

	ParentId *string `json:"parent_id,omitempty"` // 父级职位类别ID
}

type JobTypeInfoBuilder struct {
	id     string // 职位类别ID
	idFlag bool

	name     *I18n // 职位类别名称
	nameFlag bool

	parentId     string // 父级职位类别ID
	parentIdFlag bool
}

func NewJobTypeInfoBuilder() *JobTypeInfoBuilder {
	builder := &JobTypeInfoBuilder{}
	return builder
}

// 职位类别ID
//
// 示例值：6930815272790114324
func (builder *JobTypeInfoBuilder) Id(id string) *JobTypeInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位类别名称
//
// 示例值：
func (builder *JobTypeInfoBuilder) Name(name *I18n) *JobTypeInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 父级职位类别ID
//
// 示例值：6930815272790114323
func (builder *JobTypeInfoBuilder) ParentId(parentId string) *JobTypeInfoBuilder {
	builder.parentId = parentId
	builder.parentIdFlag = true
	return builder
}

func (builder *JobTypeInfoBuilder) Build() *JobTypeInfo {
	req := &JobTypeInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.parentIdFlag {
		req.ParentId = &builder.parentId

	}
	return req
}

type JobUserInfo struct {
	Id *string `json:"id,omitempty"` // 人员 ID

	Name *I18n `json:"name,omitempty"` // 名称
}

type JobUserInfoBuilder struct {
	id     string // 人员 ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewJobUserInfoBuilder() *JobUserInfoBuilder {
	builder := &JobUserInfoBuilder{}
	return builder
}

// 人员 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *JobUserInfoBuilder) Id(id string) *JobUserInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *JobUserInfoBuilder) Name(name *I18n) *JobUserInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *JobUserInfoBuilder) Build() *JobUserInfo {
	req := &JobUserInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type JrCountDataInfo struct {
	OfferCount *int `json:"offer_count,omitempty"` // 为 Offer 沟通中的数量

	PreHireCount *int `json:"pre_hire_count,omitempty"` // 待入职中的数量

	CompleteCount *int `json:"complete_count,omitempty"` // 已完成的数量
}

type JrCountDataInfoBuilder struct {
	offerCount     int // 为 Offer 沟通中的数量
	offerCountFlag bool

	preHireCount     int // 待入职中的数量
	preHireCountFlag bool

	completeCount     int // 已完成的数量
	completeCountFlag bool
}

func NewJrCountDataInfoBuilder() *JrCountDataInfoBuilder {
	builder := &JrCountDataInfoBuilder{}
	return builder
}

// 为 Offer 沟通中的数量
//
// 示例值：1
func (builder *JrCountDataInfoBuilder) OfferCount(offerCount int) *JrCountDataInfoBuilder {
	builder.offerCount = offerCount
	builder.offerCountFlag = true
	return builder
}

// 待入职中的数量
//
// 示例值：2
func (builder *JrCountDataInfoBuilder) PreHireCount(preHireCount int) *JrCountDataInfoBuilder {
	builder.preHireCount = preHireCount
	builder.preHireCountFlag = true
	return builder
}

// 已完成的数量
//
// 示例值：3
func (builder *JrCountDataInfoBuilder) CompleteCount(completeCount int) *JrCountDataInfoBuilder {
	builder.completeCount = completeCount
	builder.completeCountFlag = true
	return builder
}

func (builder *JrCountDataInfoBuilder) Build() *JrCountDataInfo {
	req := &JrCountDataInfo{}
	if builder.offerCountFlag {
		req.OfferCount = &builder.offerCount

	}
	if builder.preHireCountFlag {
		req.PreHireCount = &builder.preHireCount

	}
	if builder.completeCountFlag {
		req.CompleteCount = &builder.completeCount

	}
	return req
}

type LanguageInfo struct {
	Language *int `json:"language,omitempty"` // 语言

	Proficiency *int `json:"proficiency,omitempty"` // 熟练程度
}

type LanguageInfoBuilder struct {
	language     int // 语言
	languageFlag bool

	proficiency     int // 熟练程度
	proficiencyFlag bool
}

func NewLanguageInfoBuilder() *LanguageInfoBuilder {
	builder := &LanguageInfoBuilder{}
	return builder
}

// 语言
//
// 示例值：
func (builder *LanguageInfoBuilder) Language(language int) *LanguageInfoBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 熟练程度
//
// 示例值：
func (builder *LanguageInfoBuilder) Proficiency(proficiency int) *LanguageInfoBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

func (builder *LanguageInfoBuilder) Build() *LanguageInfo {
	req := &LanguageInfo{}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	return req
}

type Level struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type LevelBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewLevelBuilder() *LevelBuilder {
	builder := &LevelBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *LevelBuilder) Id(id string) *LevelBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *LevelBuilder) Name(name string) *LevelBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *LevelBuilder) EnName(enName string) *LevelBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *LevelBuilder) Build() *Level {
	req := &Level{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type Location struct {
	Id *string `json:"id,omitempty"` // 地点 ID

	Name *I18n `json:"name,omitempty"` // 地点名称

	District *CodeNameObject `json:"district,omitempty"` // 区信息

	City *CodeNameObject `json:"city,omitempty"` // 市信息

	State *CodeNameObject `json:"state,omitempty"` // 省份/州信息

	Country *CodeNameObject `json:"country,omitempty"` // 国家信息

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态
}

type LocationBuilder struct {
	id     string // 地点 ID
	idFlag bool

	name     *I18n // 地点名称
	nameFlag bool

	district     *CodeNameObject // 区信息
	districtFlag bool

	city     *CodeNameObject // 市信息
	cityFlag bool

	state     *CodeNameObject // 省份/州信息
	stateFlag bool

	country     *CodeNameObject // 国家信息
	countryFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool
}

func NewLocationBuilder() *LocationBuilder {
	builder := &LocationBuilder{}
	return builder
}

// 地点 ID
//
// 示例值：1213213123123
func (builder *LocationBuilder) Id(id string) *LocationBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 地点名称
//
// 示例值：
func (builder *LocationBuilder) Name(name *I18n) *LocationBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 区信息
//
// 示例值：
func (builder *LocationBuilder) District(district *CodeNameObject) *LocationBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

// 市信息
//
// 示例值：
func (builder *LocationBuilder) City(city *CodeNameObject) *LocationBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 省份/州信息
//
// 示例值：
func (builder *LocationBuilder) State(state *CodeNameObject) *LocationBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 国家信息
//
// 示例值：
func (builder *LocationBuilder) Country(country *CodeNameObject) *LocationBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *LocationBuilder) ActiveStatus(activeStatus int) *LocationBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *LocationBuilder) Build() *Location {
	req := &Location{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.districtFlag {
		req.District = builder.district
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.countryFlag {
		req.Country = builder.country
	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type LocationBaseInfo struct {
	Code *string `json:"code,omitempty"` // location 地址码

	Name *string `json:"name,omitempty"` // location 中文名字

	EnName *string `json:"en_name,omitempty"` // location 英文名字

	LocationType *int `json:"location_type,omitempty"` // location 的类型

	I18nName *string `json:"i18n_name,omitempty"` // location 国际名字

	PyName *string `json:"py_name,omitempty"` // location 拼音名字
}

type LocationBaseInfoBuilder struct {
	code     string // location 地址码
	codeFlag bool

	name     string // location 中文名字
	nameFlag bool

	enName     string // location 英文名字
	enNameFlag bool

	locationType     int // location 的类型
	locationTypeFlag bool

	i18nName     string // location 国际名字
	i18nNameFlag bool

	pyName     string // location 拼音名字
	pyNameFlag bool
}

func NewLocationBaseInfoBuilder() *LocationBaseInfoBuilder {
	builder := &LocationBaseInfoBuilder{}
	return builder
}

// location 地址码
//
// 示例值：
func (builder *LocationBaseInfoBuilder) Code(code string) *LocationBaseInfoBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// location 中文名字
//
// 示例值：
func (builder *LocationBaseInfoBuilder) Name(name string) *LocationBaseInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// location 英文名字
//
// 示例值：
func (builder *LocationBaseInfoBuilder) EnName(enName string) *LocationBaseInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// location 的类型
//
// 示例值：
func (builder *LocationBaseInfoBuilder) LocationType(locationType int) *LocationBaseInfoBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

// location 国际名字
//
// 示例值：
func (builder *LocationBaseInfoBuilder) I18nName(i18nName string) *LocationBaseInfoBuilder {
	builder.i18nName = i18nName
	builder.i18nNameFlag = true
	return builder
}

// location 拼音名字
//
// 示例值：
func (builder *LocationBaseInfoBuilder) PyName(pyName string) *LocationBaseInfoBuilder {
	builder.pyName = pyName
	builder.pyNameFlag = true
	return builder
}

func (builder *LocationBaseInfoBuilder) Build() *LocationBaseInfo {
	req := &LocationBaseInfo{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType

	}
	if builder.i18nNameFlag {
		req.I18nName = &builder.i18nName

	}
	if builder.pyNameFlag {
		req.PyName = &builder.pyName

	}
	return req
}

type LocationCity struct {
	CityCode *string `json:"city_code,omitempty"` // 市地址Code码

	StateCode *string `json:"state_code,omitempty"` // 省份/州地址Code码

	CountryCode *string `json:"country_code,omitempty"` // 国家地址Code码

	CityNameInfo *LocationNameInfo `json:"city_name_info,omitempty"` // 市地址名称信息聚合
}

type LocationCityBuilder struct {
	cityCode     string // 市地址Code码
	cityCodeFlag bool

	stateCode     string // 省份/州地址Code码
	stateCodeFlag bool

	countryCode     string // 国家地址Code码
	countryCodeFlag bool

	cityNameInfo     *LocationNameInfo // 市地址名称信息聚合
	cityNameInfoFlag bool
}

func NewLocationCityBuilder() *LocationCityBuilder {
	builder := &LocationCityBuilder{}
	return builder
}

// 市地址Code码
//
// 示例值：CT_1
func (builder *LocationCityBuilder) CityCode(cityCode string) *LocationCityBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 省份/州地址Code码
//
// 示例值：ST_1
func (builder *LocationCityBuilder) StateCode(stateCode string) *LocationCityBuilder {
	builder.stateCode = stateCode
	builder.stateCodeFlag = true
	return builder
}

// 国家地址Code码
//
// 示例值：CN_1
func (builder *LocationCityBuilder) CountryCode(countryCode string) *LocationCityBuilder {
	builder.countryCode = countryCode
	builder.countryCodeFlag = true
	return builder
}

// 市地址名称信息聚合
//
// 示例值：
func (builder *LocationCityBuilder) CityNameInfo(cityNameInfo *LocationNameInfo) *LocationCityBuilder {
	builder.cityNameInfo = cityNameInfo
	builder.cityNameInfoFlag = true
	return builder
}

func (builder *LocationCityBuilder) Build() *LocationCity {
	req := &LocationCity{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.stateCodeFlag {
		req.StateCode = &builder.stateCode

	}
	if builder.countryCodeFlag {
		req.CountryCode = &builder.countryCode

	}
	if builder.cityNameInfoFlag {
		req.CityNameInfo = builder.cityNameInfo
	}
	return req
}

type LocationCountry struct {
	CountryCode *string `json:"country_code,omitempty"` // 国家地址Code码

	CountryNameInfo *LocationNameInfo `json:"country_name_info,omitempty"` // 国家地址名称信息聚合
}

type LocationCountryBuilder struct {
	countryCode     string // 国家地址Code码
	countryCodeFlag bool

	countryNameInfo     *LocationNameInfo // 国家地址名称信息聚合
	countryNameInfoFlag bool
}

func NewLocationCountryBuilder() *LocationCountryBuilder {
	builder := &LocationCountryBuilder{}
	return builder
}

// 国家地址Code码
//
// 示例值：CN_1
func (builder *LocationCountryBuilder) CountryCode(countryCode string) *LocationCountryBuilder {
	builder.countryCode = countryCode
	builder.countryCodeFlag = true
	return builder
}

// 国家地址名称信息聚合
//
// 示例值：
func (builder *LocationCountryBuilder) CountryNameInfo(countryNameInfo *LocationNameInfo) *LocationCountryBuilder {
	builder.countryNameInfo = countryNameInfo
	builder.countryNameInfoFlag = true
	return builder
}

func (builder *LocationCountryBuilder) Build() *LocationCountry {
	req := &LocationCountry{}
	if builder.countryCodeFlag {
		req.CountryCode = &builder.countryCode

	}
	if builder.countryNameInfoFlag {
		req.CountryNameInfo = builder.countryNameInfo
	}
	return req
}

type LocationDistrict struct {
	DistrictCode *string `json:"district_code,omitempty"` // 区/县Code码

	CityCode *string `json:"city_code,omitempty"` // 市地址Code码

	StateCode *string `json:"state_code,omitempty"` // 省份/州地址Code码

	CountryCode *string `json:"country_code,omitempty"` // 国家地址Code码

	DistrictNameInfo *LocationNameInfo `json:"district_name_info,omitempty"` // 区/县地址名称信息聚合
}

type LocationDistrictBuilder struct {
	districtCode     string // 区/县Code码
	districtCodeFlag bool

	cityCode     string // 市地址Code码
	cityCodeFlag bool

	stateCode     string // 省份/州地址Code码
	stateCodeFlag bool

	countryCode     string // 国家地址Code码
	countryCodeFlag bool

	districtNameInfo     *LocationNameInfo // 区/县地址名称信息聚合
	districtNameInfoFlag bool
}

func NewLocationDistrictBuilder() *LocationDistrictBuilder {
	builder := &LocationDistrictBuilder{}
	return builder
}

// 区/县Code码
//
// 示例值：DS_70
func (builder *LocationDistrictBuilder) DistrictCode(districtCode string) *LocationDistrictBuilder {
	builder.districtCode = districtCode
	builder.districtCodeFlag = true
	return builder
}

// 市地址Code码
//
// 示例值：CT_1
func (builder *LocationDistrictBuilder) CityCode(cityCode string) *LocationDistrictBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 省份/州地址Code码
//
// 示例值：ST_1
func (builder *LocationDistrictBuilder) StateCode(stateCode string) *LocationDistrictBuilder {
	builder.stateCode = stateCode
	builder.stateCodeFlag = true
	return builder
}

// 国家地址Code码
//
// 示例值：CN_1
func (builder *LocationDistrictBuilder) CountryCode(countryCode string) *LocationDistrictBuilder {
	builder.countryCode = countryCode
	builder.countryCodeFlag = true
	return builder
}

// 区/县地址名称信息聚合
//
// 示例值：
func (builder *LocationDistrictBuilder) DistrictNameInfo(districtNameInfo *LocationNameInfo) *LocationDistrictBuilder {
	builder.districtNameInfo = districtNameInfo
	builder.districtNameInfoFlag = true
	return builder
}

func (builder *LocationDistrictBuilder) Build() *LocationDistrict {
	req := &LocationDistrict{}
	if builder.districtCodeFlag {
		req.DistrictCode = &builder.districtCode

	}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.stateCodeFlag {
		req.StateCode = &builder.stateCode

	}
	if builder.countryCodeFlag {
		req.CountryCode = &builder.countryCode

	}
	if builder.districtNameInfoFlag {
		req.DistrictNameInfo = builder.districtNameInfo
	}
	return req
}

type LocationDto struct {
	Country *LocationCountry `json:"country,omitempty"` // 国家信息列表,仅当 location_type=1 时返回

	State *LocationState `json:"state,omitempty"` // 省份/州信息列表,仅当 location_type=2 时返回

	City *LocationCity `json:"city,omitempty"` // 市信息列表，仅当 location_type=3 时返回

	District *LocationDistrict `json:"district,omitempty"` // 区/县信息列表，仅当 location_type=4 时返回
}

type LocationDtoBuilder struct {
	country     *LocationCountry // 国家信息列表,仅当 location_type=1 时返回
	countryFlag bool

	state     *LocationState // 省份/州信息列表,仅当 location_type=2 时返回
	stateFlag bool

	city     *LocationCity // 市信息列表，仅当 location_type=3 时返回
	cityFlag bool

	district     *LocationDistrict // 区/县信息列表，仅当 location_type=4 时返回
	districtFlag bool
}

func NewLocationDtoBuilder() *LocationDtoBuilder {
	builder := &LocationDtoBuilder{}
	return builder
}

// 国家信息列表,仅当 location_type=1 时返回
//
// 示例值：
func (builder *LocationDtoBuilder) Country(country *LocationCountry) *LocationDtoBuilder {
	builder.country = country
	builder.countryFlag = true
	return builder
}

// 省份/州信息列表,仅当 location_type=2 时返回
//
// 示例值：
func (builder *LocationDtoBuilder) State(state *LocationState) *LocationDtoBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 市信息列表，仅当 location_type=3 时返回
//
// 示例值：
func (builder *LocationDtoBuilder) City(city *LocationCity) *LocationDtoBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

// 区/县信息列表，仅当 location_type=4 时返回
//
// 示例值：
func (builder *LocationDtoBuilder) District(district *LocationDistrict) *LocationDtoBuilder {
	builder.district = district
	builder.districtFlag = true
	return builder
}

func (builder *LocationDtoBuilder) Build() *LocationDto {
	req := &LocationDto{}
	if builder.countryFlag {
		req.Country = builder.country
	}
	if builder.stateFlag {
		req.State = builder.state
	}
	if builder.cityFlag {
		req.City = builder.city
	}
	if builder.districtFlag {
		req.District = builder.district
	}
	return req
}

type LocationNameInfo struct {
	ZhName *string `json:"zh_name,omitempty"` // 地址中文名

	EnName *string `json:"en_name,omitempty"` // 地址英文名

	PyName *string `json:"py_name,omitempty"` // 地址拼音名
}

type LocationNameInfoBuilder struct {
	zhName     string // 地址中文名
	zhNameFlag bool

	enName     string // 地址英文名
	enNameFlag bool

	pyName     string // 地址拼音名
	pyNameFlag bool
}

func NewLocationNameInfoBuilder() *LocationNameInfoBuilder {
	builder := &LocationNameInfoBuilder{}
	return builder
}

// 地址中文名
//
// 示例值：成都
func (builder *LocationNameInfoBuilder) ZhName(zhName string) *LocationNameInfoBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 地址英文名
//
// 示例值：ChengDu
func (builder *LocationNameInfoBuilder) EnName(enName string) *LocationNameInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 地址拼音名
//
// 示例值：chengdu
func (builder *LocationNameInfoBuilder) PyName(pyName string) *LocationNameInfoBuilder {
	builder.pyName = pyName
	builder.pyNameFlag = true
	return builder
}

func (builder *LocationNameInfoBuilder) Build() *LocationNameInfo {
	req := &LocationNameInfo{}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.pyNameFlag {
		req.PyName = &builder.pyName

	}
	return req
}

type LocationState struct {
	StateCode *string `json:"state_code,omitempty"` // 省份/州地址Code码

	CountryCode *string `json:"country_code,omitempty"` // 国家地址Code码

	StateNameInfo *LocationNameInfo `json:"state_name_info,omitempty"` // 省份/州地址名称信息聚合
}

type LocationStateBuilder struct {
	stateCode     string // 省份/州地址Code码
	stateCodeFlag bool

	countryCode     string // 国家地址Code码
	countryCodeFlag bool

	stateNameInfo     *LocationNameInfo // 省份/州地址名称信息聚合
	stateNameInfoFlag bool
}

func NewLocationStateBuilder() *LocationStateBuilder {
	builder := &LocationStateBuilder{}
	return builder
}

// 省份/州地址Code码
//
// 示例值：ST_1
func (builder *LocationStateBuilder) StateCode(stateCode string) *LocationStateBuilder {
	builder.stateCode = stateCode
	builder.stateCodeFlag = true
	return builder
}

// 国家地址Code码
//
// 示例值：CN_1
func (builder *LocationStateBuilder) CountryCode(countryCode string) *LocationStateBuilder {
	builder.countryCode = countryCode
	builder.countryCodeFlag = true
	return builder
}

// 省份/州地址名称信息聚合
//
// 示例值：
func (builder *LocationStateBuilder) StateNameInfo(stateNameInfo *LocationNameInfo) *LocationStateBuilder {
	builder.stateNameInfo = stateNameInfo
	builder.stateNameInfoFlag = true
	return builder
}

func (builder *LocationStateBuilder) Build() *LocationState {
	req := &LocationState{}
	if builder.stateCodeFlag {
		req.StateCode = &builder.stateCode

	}
	if builder.countryCodeFlag {
		req.CountryCode = &builder.countryCode

	}
	if builder.stateNameInfoFlag {
		req.StateNameInfo = builder.stateNameInfo
	}
	return req
}

type MasterLocationAddressInfo struct {
	LocationInfo *MasterLocationInfo `json:"location_info,omitempty"` // 办公地点

	AddressInfo *MasterLocationInfo `json:"address_info,omitempty"` // 办公地址
}

type MasterLocationAddressInfoBuilder struct {
	locationInfo     *MasterLocationInfo // 办公地点
	locationInfoFlag bool

	addressInfo     *MasterLocationInfo // 办公地址
	addressInfoFlag bool
}

func NewMasterLocationAddressInfoBuilder() *MasterLocationAddressInfoBuilder {
	builder := &MasterLocationAddressInfoBuilder{}
	return builder
}

// 办公地点
//
// 示例值：
func (builder *MasterLocationAddressInfoBuilder) LocationInfo(locationInfo *MasterLocationInfo) *MasterLocationAddressInfoBuilder {
	builder.locationInfo = locationInfo
	builder.locationInfoFlag = true
	return builder
}

// 办公地址
//
// 示例值：
func (builder *MasterLocationAddressInfoBuilder) AddressInfo(addressInfo *MasterLocationInfo) *MasterLocationAddressInfoBuilder {
	builder.addressInfo = addressInfo
	builder.addressInfoFlag = true
	return builder
}

func (builder *MasterLocationAddressInfoBuilder) Build() *MasterLocationAddressInfo {
	req := &MasterLocationAddressInfo{}
	if builder.locationInfoFlag {
		req.LocationInfo = builder.locationInfo
	}
	if builder.addressInfoFlag {
		req.AddressInfo = builder.addressInfo
	}
	return req
}

type MasterLocationInfo struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名称

	EnName *string `json:"en_name,omitempty"` // 英文名称
}

type MasterLocationInfoBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名称
	zhNameFlag bool

	enName     string // 英文名称
	enNameFlag bool
}

func NewMasterLocationInfoBuilder() *MasterLocationInfoBuilder {
	builder := &MasterLocationInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6930815272790114324
func (builder *MasterLocationInfoBuilder) Id(id string) *MasterLocationInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名称
//
// 示例值：北京
func (builder *MasterLocationInfoBuilder) ZhName(zhName string) *MasterLocationInfoBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名称
//
// 示例值：Beijing
func (builder *MasterLocationInfoBuilder) EnName(enName string) *MasterLocationInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *MasterLocationInfoBuilder) Build() *MasterLocationInfo {
	req := &MasterLocationInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type MentionEntity struct {
	Offset *int `json:"offset,omitempty"` // 被@人在 content 中的偏移量

	UserId *string `json:"user_id,omitempty"` // 被@人的 user id
}

type MentionEntityBuilder struct {
	offset     int // 被@人在 content 中的偏移量
	offsetFlag bool

	userId     string // 被@人的 user id
	userIdFlag bool
}

func NewMentionEntityBuilder() *MentionEntityBuilder {
	builder := &MentionEntityBuilder{}
	return builder
}

// 被@人在 content 中的偏移量
//
// 示例值：3
func (builder *MentionEntityBuilder) Offset(offset int) *MentionEntityBuilder {
	builder.offset = offset
	builder.offsetFlag = true
	return builder
}

// 被@人的 user id
//
// 示例值：on_94a1ee5551019f18cd73d9f111898cf2
func (builder *MentionEntityBuilder) UserId(userId string) *MentionEntityBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *MentionEntityBuilder) Build() *MentionEntity {
	req := &MentionEntity{}
	if builder.offsetFlag {
		req.Offset = &builder.offset

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	return req
}

type Minutes struct {
	Sentences []*Sentence `json:"sentences,omitempty"` // 速记语音文本列表
}

type MinutesBuilder struct {
	sentences     []*Sentence // 速记语音文本列表
	sentencesFlag bool
}

func NewMinutesBuilder() *MinutesBuilder {
	builder := &MinutesBuilder{}
	return builder
}

// 速记语音文本列表
//
// 示例值：
func (builder *MinutesBuilder) Sentences(sentences []*Sentence) *MinutesBuilder {
	builder.sentences = sentences
	builder.sentencesFlag = true
	return builder
}

func (builder *MinutesBuilder) Build() *Minutes {
	req := &Minutes{}
	if builder.sentencesFlag {
		req.Sentences = builder.sentences
	}
	return req
}

type Mobile struct {
	Code *string `json:"code,omitempty"` // 国家代码

	Number *string `json:"number,omitempty"` // 手机号码
}

type MobileBuilder struct {
	code     string // 国家代码
	codeFlag bool

	number     string // 手机号码
	numberFlag bool
}

func NewMobileBuilder() *MobileBuilder {
	builder := &MobileBuilder{}
	return builder
}

// 国家代码
//
// 示例值：86
func (builder *MobileBuilder) Code(code string) *MobileBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

// 手机号码
//
// 示例值：18900001111
func (builder *MobileBuilder) Number(number string) *MobileBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *MobileBuilder) Build() *Mobile {
	req := &Mobile{}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type ModuleAssessment struct {
	InterviewFeedbackFormModuleId *string `json:"interview_feedback_form_module_id,omitempty"` // 对应面试评价表中模块 ID

	ModuleName *I18n `json:"module_name,omitempty"` // 模块名称

	ModuleType *int `json:"module_type,omitempty"` // 模块类型

	ModuleWeight *float64 `json:"module_weight,omitempty"` // 模块权重

	ModuleScore *float64 `json:"module_score,omitempty"` // 模块打分

	DimensionAssessments []*DimensionAssessment `json:"dimension_assessments,omitempty"` // 模块评价
}

type ModuleAssessmentBuilder struct {
	interviewFeedbackFormModuleId     string // 对应面试评价表中模块 ID
	interviewFeedbackFormModuleIdFlag bool

	moduleName     *I18n // 模块名称
	moduleNameFlag bool

	moduleType     int // 模块类型
	moduleTypeFlag bool

	moduleWeight     float64 // 模块权重
	moduleWeightFlag bool

	moduleScore     float64 // 模块打分
	moduleScoreFlag bool

	dimensionAssessments     []*DimensionAssessment // 模块评价
	dimensionAssessmentsFlag bool
}

func NewModuleAssessmentBuilder() *ModuleAssessmentBuilder {
	builder := &ModuleAssessmentBuilder{}
	return builder
}

// 对应面试评价表中模块 ID
//
// 示例值：7171693733661327361
func (builder *ModuleAssessmentBuilder) InterviewFeedbackFormModuleId(interviewFeedbackFormModuleId string) *ModuleAssessmentBuilder {
	builder.interviewFeedbackFormModuleId = interviewFeedbackFormModuleId
	builder.interviewFeedbackFormModuleIdFlag = true
	return builder
}

// 模块名称
//
// 示例值：
func (builder *ModuleAssessmentBuilder) ModuleName(moduleName *I18n) *ModuleAssessmentBuilder {
	builder.moduleName = moduleName
	builder.moduleNameFlag = true
	return builder
}

// 模块类型
//
// 示例值：
func (builder *ModuleAssessmentBuilder) ModuleType(moduleType int) *ModuleAssessmentBuilder {
	builder.moduleType = moduleType
	builder.moduleTypeFlag = true
	return builder
}

// 模块权重
//
// 示例值：10
func (builder *ModuleAssessmentBuilder) ModuleWeight(moduleWeight float64) *ModuleAssessmentBuilder {
	builder.moduleWeight = moduleWeight
	builder.moduleWeightFlag = true
	return builder
}

// 模块打分
//
// 示例值：10
func (builder *ModuleAssessmentBuilder) ModuleScore(moduleScore float64) *ModuleAssessmentBuilder {
	builder.moduleScore = moduleScore
	builder.moduleScoreFlag = true
	return builder
}

// 模块评价
//
// 示例值：
func (builder *ModuleAssessmentBuilder) DimensionAssessments(dimensionAssessments []*DimensionAssessment) *ModuleAssessmentBuilder {
	builder.dimensionAssessments = dimensionAssessments
	builder.dimensionAssessmentsFlag = true
	return builder
}

func (builder *ModuleAssessmentBuilder) Build() *ModuleAssessment {
	req := &ModuleAssessment{}
	if builder.interviewFeedbackFormModuleIdFlag {
		req.InterviewFeedbackFormModuleId = &builder.interviewFeedbackFormModuleId

	}
	if builder.moduleNameFlag {
		req.ModuleName = builder.moduleName
	}
	if builder.moduleTypeFlag {
		req.ModuleType = &builder.moduleType

	}
	if builder.moduleWeightFlag {
		req.ModuleWeight = &builder.moduleWeight

	}
	if builder.moduleScoreFlag {
		req.ModuleScore = &builder.moduleScore

	}
	if builder.dimensionAssessmentsFlag {
		req.DimensionAssessments = builder.dimensionAssessments
	}
	return req
}

type Nationality struct {
	NationalityCode *string `json:"nationality_code,omitempty"` // 国家编码

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type NationalityBuilder struct {
	nationalityCode     string // 国家编码
	nationalityCodeFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewNationalityBuilder() *NationalityBuilder {
	builder := &NationalityBuilder{}
	return builder
}

// 国家编码
//
// 示例值：
func (builder *NationalityBuilder) NationalityCode(nationalityCode string) *NationalityBuilder {
	builder.nationalityCode = nationalityCode
	builder.nationalityCodeFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *NationalityBuilder) Name(name string) *NationalityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *NationalityBuilder) EnName(enName string) *NationalityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *NationalityBuilder) Build() *Nationality {
	req := &Nationality{}
	if builder.nationalityCodeFlag {
		req.NationalityCode = &builder.nationalityCode

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type Note struct {
	Id *string `json:"id,omitempty"` // 备注ID

	TalentId *string `json:"talent_id,omitempty"` // 人才ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递ID

	IsPrivate *bool `json:"is_private,omitempty"` // 是否私密

	CreateTime *int64 `json:"create_time,omitempty"` // 创建时间

	ModifyTime *int64 `json:"modify_time,omitempty"` // 更新时间

	CreatorId *string `json:"creator_id,omitempty"` // 创建人ID

	Content *string `json:"content,omitempty"` // 内容

	Privacy *int `json:"privacy,omitempty"` // 备注私密属性（默认为公开）

	NotifyMentionedUser *bool `json:"notify_mentioned_user,omitempty"` // 是否通知被@的用户

	MentionEntityList []*MentionEntity `json:"mention_entity_list,omitempty"` // 被@用户列表
}

type NoteBuilder struct {
	id     string // 备注ID
	idFlag bool

	talentId     string // 人才ID
	talentIdFlag bool

	applicationId     string // 投递ID
	applicationIdFlag bool

	isPrivate     bool // 是否私密
	isPrivateFlag bool

	createTime     int64 // 创建时间
	createTimeFlag bool

	modifyTime     int64 // 更新时间
	modifyTimeFlag bool

	creatorId     string // 创建人ID
	creatorIdFlag bool

	content     string // 内容
	contentFlag bool

	privacy     int // 备注私密属性（默认为公开）
	privacyFlag bool

	notifyMentionedUser     bool // 是否通知被@的用户
	notifyMentionedUserFlag bool

	mentionEntityList     []*MentionEntity // 被@用户列表
	mentionEntityListFlag bool
}

func NewNoteBuilder() *NoteBuilder {
	builder := &NoteBuilder{}
	return builder
}

// 备注ID
//
// 示例值：6949805467799537964
func (builder *NoteBuilder) Id(id string) *NoteBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 人才ID
//
// 示例值：6916472453069883661
func (builder *NoteBuilder) TalentId(talentId string) *NoteBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递ID
//
// 示例值：6891565253964859661
func (builder *NoteBuilder) ApplicationId(applicationId string) *NoteBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 是否私密
//
// 示例值：false
func (builder *NoteBuilder) IsPrivate(isPrivate bool) *NoteBuilder {
	builder.isPrivate = isPrivate
	builder.isPrivateFlag = true
	return builder
}

// 创建时间
//
// 示例值：1618209327096
func (builder *NoteBuilder) CreateTime(createTime int64) *NoteBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1618209327096
func (builder *NoteBuilder) ModifyTime(modifyTime int64) *NoteBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 创建人ID
//
// 示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *NoteBuilder) CreatorId(creatorId string) *NoteBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 内容
//
// 示例值：测试
func (builder *NoteBuilder) Content(content string) *NoteBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 备注私密属性（默认为公开）
//
// 示例值：1
func (builder *NoteBuilder) Privacy(privacy int) *NoteBuilder {
	builder.privacy = privacy
	builder.privacyFlag = true
	return builder
}

// 是否通知被@的用户
//
// 示例值：false
func (builder *NoteBuilder) NotifyMentionedUser(notifyMentionedUser bool) *NoteBuilder {
	builder.notifyMentionedUser = notifyMentionedUser
	builder.notifyMentionedUserFlag = true
	return builder
}

// 被@用户列表
//
// 示例值：
func (builder *NoteBuilder) MentionEntityList(mentionEntityList []*MentionEntity) *NoteBuilder {
	builder.mentionEntityList = mentionEntityList
	builder.mentionEntityListFlag = true
	return builder
}

func (builder *NoteBuilder) Build() *Note {
	req := &Note{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.isPrivateFlag {
		req.IsPrivate = &builder.isPrivate

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.privacyFlag {
		req.Privacy = &builder.privacy

	}
	if builder.notifyMentionedUserFlag {
		req.NotifyMentionedUser = &builder.notifyMentionedUser

	}
	if builder.mentionEntityListFlag {
		req.MentionEntityList = builder.mentionEntityList
	}
	return req
}

type ObjectAttribute struct {
	Title *I18n `json:"title,omitempty"` // 字段名称

	Description *I18n `json:"description,omitempty"` // 字段描述

	DataType *int `json:"data_type,omitempty"` // 字段类型

	Tags []int `json:"tags,omitempty"` // 字段标签

	IsFcfData *bool `json:"is_fcf_data,omitempty"` // 是否为居民数据

	IsDiData *bool `json:"is_di_data,omitempty"` // 是否为多元化数据
}

type ObjectAttributeBuilder struct {
	title     *I18n // 字段名称
	titleFlag bool

	description     *I18n // 字段描述
	descriptionFlag bool

	dataType     int // 字段类型
	dataTypeFlag bool

	tags     []int // 字段标签
	tagsFlag bool

	isFcfData     bool // 是否为居民数据
	isFcfDataFlag bool

	isDiData     bool // 是否为多元化数据
	isDiDataFlag bool
}

func NewObjectAttributeBuilder() *ObjectAttributeBuilder {
	builder := &ObjectAttributeBuilder{}
	return builder
}

// 字段名称
//
// 示例值：
func (builder *ObjectAttributeBuilder) Title(title *I18n) *ObjectAttributeBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 字段描述
//
// 示例值：
func (builder *ObjectAttributeBuilder) Description(description *I18n) *ObjectAttributeBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *ObjectAttributeBuilder) DataType(dataType int) *ObjectAttributeBuilder {
	builder.dataType = dataType
	builder.dataTypeFlag = true
	return builder
}

// 字段标签
//
// 示例值：1
func (builder *ObjectAttributeBuilder) Tags(tags []int) *ObjectAttributeBuilder {
	builder.tags = tags
	builder.tagsFlag = true
	return builder
}

// 是否为居民数据
//
// 示例值：true
func (builder *ObjectAttributeBuilder) IsFcfData(isFcfData bool) *ObjectAttributeBuilder {
	builder.isFcfData = isFcfData
	builder.isFcfDataFlag = true
	return builder
}

// 是否为多元化数据
//
// 示例值：true
func (builder *ObjectAttributeBuilder) IsDiData(isDiData bool) *ObjectAttributeBuilder {
	builder.isDiData = isDiData
	builder.isDiDataFlag = true
	return builder
}

func (builder *ObjectAttributeBuilder) Build() *ObjectAttribute {
	req := &ObjectAttribute{}
	if builder.titleFlag {
		req.Title = builder.title
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.dataTypeFlag {
		req.DataType = &builder.dataType

	}
	if builder.tagsFlag {
		req.Tags = builder.tags
	}
	if builder.isFcfDataFlag {
		req.IsFcfData = &builder.isFcfData

	}
	if builder.isDiDataFlag {
		req.IsDiData = &builder.isDiData

	}
	return req
}

type ObjectIdName struct {
	Id *string `json:"id,omitempty"` // 内推职位 ID

	Name *string `json:"name,omitempty"` // 内推职位名称
}

type ObjectIdNameBuilder struct {
	id     string // 内推职位 ID
	idFlag bool

	name     string // 内推职位名称
	nameFlag bool
}

func NewObjectIdNameBuilder() *ObjectIdNameBuilder {
	builder := &ObjectIdNameBuilder{}
	return builder
}

// 内推职位 ID
//
// 示例值：7410744543304468773
func (builder *ObjectIdNameBuilder) Id(id string) *ObjectIdNameBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 内推职位名称
//
// 示例值：上海后端研发
func (builder *ObjectIdNameBuilder) Name(name string) *ObjectIdNameBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *ObjectIdNameBuilder) Build() *ObjectIdName {
	req := &ObjectIdName{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type Offer struct {
	Id *string `json:"id,omitempty"` // Offer ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	BasicInfo *ApplicationOfferBasicInfo `json:"basic_info,omitempty"` // 基础信息

	SalaryPlan *ApplicationOfferSalaryPlan `json:"salary_plan,omitempty"` // 薪酬计划

	SchemaId *string `json:"schema_id,omitempty"` // 当前 Offer 使用的 Schema

	OfferStatus *int `json:"offer_status,omitempty"` // Offer 状态

	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	JobInfo *OfferJobInfo `json:"job_info,omitempty"` // 职位信息

	CustomizedModuleList []*ApplicationOfferCustomModule `json:"customized_module_list,omitempty"` // offer自定义模块列表

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID

	OfferSendRecordList []*OfferSendRecord `json:"offer_send_record_list,omitempty"` // offer 发送记录列表
}

type OfferBuilder struct {
	id     string // Offer ID
	idFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	basicInfo     *ApplicationOfferBasicInfo // 基础信息
	basicInfoFlag bool

	salaryPlan     *ApplicationOfferSalaryPlan // 薪酬计划
	salaryPlanFlag bool

	schemaId     string // 当前 Offer 使用的 Schema
	schemaIdFlag bool

	offerStatus     int // Offer 状态
	offerStatusFlag bool

	offerType     int // Offer 类型
	offerTypeFlag bool

	jobInfo     *OfferJobInfo // 职位信息
	jobInfoFlag bool

	customizedModuleList     []*ApplicationOfferCustomModule // offer自定义模块列表
	customizedModuleListFlag bool

	jobRequirementId     string // 招聘需求 ID
	jobRequirementIdFlag bool

	offerSendRecordList     []*OfferSendRecord // offer 发送记录列表
	offerSendRecordListFlag bool
}

func NewOfferBuilder() *OfferBuilder {
	builder := &OfferBuilder{}
	return builder
}

// Offer ID
//
// 示例值：1231231231231231
func (builder *OfferBuilder) Id(id string) *OfferBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID
//
// 示例值：1231231232312312
func (builder *OfferBuilder) ApplicationId(applicationId string) *OfferBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *OfferBuilder) BasicInfo(basicInfo *ApplicationOfferBasicInfo) *OfferBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 薪酬计划
//
// 示例值：
func (builder *OfferBuilder) SalaryPlan(salaryPlan *ApplicationOfferSalaryPlan) *OfferBuilder {
	builder.salaryPlan = salaryPlan
	builder.salaryPlanFlag = true
	return builder
}

// 当前 Offer 使用的 Schema
//
// 示例值：6963562624677398823
func (builder *OfferBuilder) SchemaId(schemaId string) *OfferBuilder {
	builder.schemaId = schemaId
	builder.schemaIdFlag = true
	return builder
}

// Offer 状态
//
// 示例值：1
func (builder *OfferBuilder) OfferStatus(offerStatus int) *OfferBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// Offer 类型
//
// 示例值：Offer 类型
func (builder *OfferBuilder) OfferType(offerType int) *OfferBuilder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// 职位信息
//
// 示例值：
func (builder *OfferBuilder) JobInfo(jobInfo *OfferJobInfo) *OfferBuilder {
	builder.jobInfo = jobInfo
	builder.jobInfoFlag = true
	return builder
}

// offer自定义模块列表
//
// 示例值：
func (builder *OfferBuilder) CustomizedModuleList(customizedModuleList []*ApplicationOfferCustomModule) *OfferBuilder {
	builder.customizedModuleList = customizedModuleList
	builder.customizedModuleListFlag = true
	return builder
}

// 招聘需求 ID
//
// 示例值：1231231232312312
func (builder *OfferBuilder) JobRequirementId(jobRequirementId string) *OfferBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// offer 发送记录列表
//
// 示例值：
func (builder *OfferBuilder) OfferSendRecordList(offerSendRecordList []*OfferSendRecord) *OfferBuilder {
	builder.offerSendRecordList = offerSendRecordList
	builder.offerSendRecordListFlag = true
	return builder
}

func (builder *OfferBuilder) Build() *Offer {
	req := &Offer{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.salaryPlanFlag {
		req.SalaryPlan = builder.salaryPlan
	}
	if builder.schemaIdFlag {
		req.SchemaId = &builder.schemaId

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.jobInfoFlag {
		req.JobInfo = builder.jobInfo
	}
	if builder.customizedModuleListFlag {
		req.CustomizedModuleList = builder.customizedModuleList
	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	if builder.offerSendRecordListFlag {
		req.OfferSendRecordList = builder.offerSendRecordList
	}
	return req
}

type OfferApplyForm struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	CreateTime *string `json:"create_time,omitempty"` // 创建时间
}

type OfferApplyFormBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	createTime     string // 创建时间
	createTimeFlag bool
}

func NewOfferApplyFormBuilder() *OfferApplyFormBuilder {
	builder := &OfferApplyFormBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *OfferApplyFormBuilder) Id(id string) *OfferApplyFormBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *OfferApplyFormBuilder) Name(name *I18n) *OfferApplyFormBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 创建时间
//
// 示例值：1628512038000
func (builder *OfferApplyFormBuilder) CreateTime(createTime string) *OfferApplyFormBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *OfferApplyFormBuilder) Build() *OfferApplyForm {
	req := &OfferApplyForm{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type OfferApplyFormConfigFormulaInfo struct {
	Value *string `json:"value,omitempty"` // 公式值

	Result *int `json:"result,omitempty"` // 公式结果类型枚举

	ExtraMap []*OfferApplyFormFormulaExtraMapInfo `json:"extra_map,omitempty"` // 公式额外描述
}

type OfferApplyFormConfigFormulaInfoBuilder struct {
	value     string // 公式值
	valueFlag bool

	result     int // 公式结果类型枚举
	resultFlag bool

	extraMap     []*OfferApplyFormFormulaExtraMapInfo // 公式额外描述
	extraMapFlag bool
}

func NewOfferApplyFormConfigFormulaInfoBuilder() *OfferApplyFormConfigFormulaInfoBuilder {
	builder := &OfferApplyFormConfigFormulaInfoBuilder{}
	return builder
}

// 公式值
//
// 示例值：[object_id_1] + [object_id_2] * 12
func (builder *OfferApplyFormConfigFormulaInfoBuilder) Value(value string) *OfferApplyFormConfigFormulaInfoBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 公式结果类型枚举
//
// 示例值：1
func (builder *OfferApplyFormConfigFormulaInfoBuilder) Result(result int) *OfferApplyFormConfigFormulaInfoBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 公式额外描述
//
// 示例值：
func (builder *OfferApplyFormConfigFormulaInfoBuilder) ExtraMap(extraMap []*OfferApplyFormFormulaExtraMapInfo) *OfferApplyFormConfigFormulaInfoBuilder {
	builder.extraMap = extraMap
	builder.extraMapFlag = true
	return builder
}

func (builder *OfferApplyFormConfigFormulaInfoBuilder) Build() *OfferApplyFormConfigFormulaInfo {
	req := &OfferApplyFormConfigFormulaInfo{}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	if builder.extraMapFlag {
		req.ExtraMap = builder.extraMap
	}
	return req
}

type OfferApplyFormConfigOptionInfo struct {
	Id *string `json:"id,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称

	Description *I18n `json:"description,omitempty"` // 选项描述
}

type OfferApplyFormConfigOptionInfoBuilder struct {
	id     string // 选项 ID
	idFlag bool

	name     *I18n // 选项名称
	nameFlag bool

	description     *I18n // 选项描述
	descriptionFlag bool
}

func NewOfferApplyFormConfigOptionInfoBuilder() *OfferApplyFormConfigOptionInfoBuilder {
	builder := &OfferApplyFormConfigOptionInfoBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：2378568265
func (builder *OfferApplyFormConfigOptionInfoBuilder) Id(id string) *OfferApplyFormConfigOptionInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *OfferApplyFormConfigOptionInfoBuilder) Name(name *I18n) *OfferApplyFormConfigOptionInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项描述
//
// 示例值：
func (builder *OfferApplyFormConfigOptionInfoBuilder) Description(description *I18n) *OfferApplyFormConfigOptionInfoBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *OfferApplyFormConfigOptionInfoBuilder) Build() *OfferApplyFormConfigOptionInfo {
	req := &OfferApplyFormConfigOptionInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	return req
}

type OfferApplyFormFormulaExtraMapInfo struct {
	Key *string `json:"key,omitempty"` // object ID

	Value *I18n `json:"value,omitempty"` // object 名称
}

type OfferApplyFormFormulaExtraMapInfoBuilder struct {
	key     string // object ID
	keyFlag bool

	value     *I18n // object 名称
	valueFlag bool
}

func NewOfferApplyFormFormulaExtraMapInfoBuilder() *OfferApplyFormFormulaExtraMapInfoBuilder {
	builder := &OfferApplyFormFormulaExtraMapInfoBuilder{}
	return builder
}

// object ID
//
// 示例值：object_id_1
func (builder *OfferApplyFormFormulaExtraMapInfoBuilder) Key(key string) *OfferApplyFormFormulaExtraMapInfoBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// object 名称
//
// 示例值：
func (builder *OfferApplyFormFormulaExtraMapInfoBuilder) Value(value *I18n) *OfferApplyFormFormulaExtraMapInfoBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *OfferApplyFormFormulaExtraMapInfoBuilder) Build() *OfferApplyFormFormulaExtraMapInfo {
	req := &OfferApplyFormFormulaExtraMapInfo{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type OfferApplyFormInfo struct {
	Id *string `json:"id,omitempty"` // offer申请表 ID

	Name *I18n `json:"name,omitempty"` // offer申请表名称

	Schema *OfferApplyFormSchema `json:"schema,omitempty"` // schema 信息，用于描述申请表单结构的元数据定义，即对申请表内容的描述
}

type OfferApplyFormInfoBuilder struct {
	id     string // offer申请表 ID
	idFlag bool

	name     *I18n // offer申请表名称
	nameFlag bool

	schema     *OfferApplyFormSchema // schema 信息，用于描述申请表单结构的元数据定义，即对申请表内容的描述
	schemaFlag bool
}

func NewOfferApplyFormInfoBuilder() *OfferApplyFormInfoBuilder {
	builder := &OfferApplyFormInfoBuilder{}
	return builder
}

// offer申请表 ID
//
// 示例值：23746823748
func (builder *OfferApplyFormInfoBuilder) Id(id string) *OfferApplyFormInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// offer申请表名称
//
// 示例值：
func (builder *OfferApplyFormInfoBuilder) Name(name *I18n) *OfferApplyFormInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// schema 信息，用于描述申请表单结构的元数据定义，即对申请表内容的描述
//
// 示例值：
func (builder *OfferApplyFormInfoBuilder) Schema(schema *OfferApplyFormSchema) *OfferApplyFormInfoBuilder {
	builder.schema = schema
	builder.schemaFlag = true
	return builder
}

func (builder *OfferApplyFormInfoBuilder) Build() *OfferApplyFormInfo {
	req := &OfferApplyFormInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.schemaFlag {
		req.Schema = builder.schema
	}
	return req
}

type OfferApplyFormModuleInfo struct {
	Id *string `json:"id,omitempty"` // 模块 ID

	Name *I18n `json:"name,omitempty"` // 模块名称

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否为自定义模块

	ActiveStatus *int `json:"active_status,omitempty"` // 模块状态是否启用

	Hint *I18n `json:"hint,omitempty"` // 模块填写提示

	ObjectList []*OfferApplyFormObjectInfo `json:"object_list,omitempty"` // 字段列表
}

type OfferApplyFormModuleInfoBuilder struct {
	id     string // 模块 ID
	idFlag bool

	name     *I18n // 模块名称
	nameFlag bool

	isCustomized     bool // 是否为自定义模块
	isCustomizedFlag bool

	activeStatus     int // 模块状态是否启用
	activeStatusFlag bool

	hint     *I18n // 模块填写提示
	hintFlag bool

	objectList     []*OfferApplyFormObjectInfo // 字段列表
	objectListFlag bool
}

func NewOfferApplyFormModuleInfoBuilder() *OfferApplyFormModuleInfoBuilder {
	builder := &OfferApplyFormModuleInfoBuilder{}
	return builder
}

// 模块 ID
//
// 示例值：23746823748
func (builder *OfferApplyFormModuleInfoBuilder) Id(id string) *OfferApplyFormModuleInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 模块名称
//
// 示例值：
func (builder *OfferApplyFormModuleInfoBuilder) Name(name *I18n) *OfferApplyFormModuleInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 是否为自定义模块
//
// 示例值：false
func (builder *OfferApplyFormModuleInfoBuilder) IsCustomized(isCustomized bool) *OfferApplyFormModuleInfoBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 模块状态是否启用
//
// 示例值：1
func (builder *OfferApplyFormModuleInfoBuilder) ActiveStatus(activeStatus int) *OfferApplyFormModuleInfoBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 模块填写提示
//
// 示例值：
func (builder *OfferApplyFormModuleInfoBuilder) Hint(hint *I18n) *OfferApplyFormModuleInfoBuilder {
	builder.hint = hint
	builder.hintFlag = true
	return builder
}

// 字段列表
//
// 示例值：
func (builder *OfferApplyFormModuleInfoBuilder) ObjectList(objectList []*OfferApplyFormObjectInfo) *OfferApplyFormModuleInfoBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *OfferApplyFormModuleInfoBuilder) Build() *OfferApplyFormModuleInfo {
	req := &OfferApplyFormModuleInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.hintFlag {
		req.Hint = builder.hint
	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type OfferApplyFormObjectConfigInfo struct {
	Options []*OfferApplyFormConfigOptionInfo `json:"options,omitempty"` // 选项信息

	Formula *OfferApplyFormConfigFormulaInfo `json:"formula,omitempty"` // 公式信息

	ObjectDisplayConfig *OfferApplyFormObjectDisplayConfigInfo `json:"object_display_config,omitempty"` // 级联配置信息
}

type OfferApplyFormObjectConfigInfoBuilder struct {
	options     []*OfferApplyFormConfigOptionInfo // 选项信息
	optionsFlag bool

	formula     *OfferApplyFormConfigFormulaInfo // 公式信息
	formulaFlag bool

	objectDisplayConfig     *OfferApplyFormObjectDisplayConfigInfo // 级联配置信息
	objectDisplayConfigFlag bool
}

func NewOfferApplyFormObjectConfigInfoBuilder() *OfferApplyFormObjectConfigInfoBuilder {
	builder := &OfferApplyFormObjectConfigInfoBuilder{}
	return builder
}

// 选项信息
//
// 示例值：
func (builder *OfferApplyFormObjectConfigInfoBuilder) Options(options []*OfferApplyFormConfigOptionInfo) *OfferApplyFormObjectConfigInfoBuilder {
	builder.options = options
	builder.optionsFlag = true
	return builder
}

// 公式信息
//
// 示例值：
func (builder *OfferApplyFormObjectConfigInfoBuilder) Formula(formula *OfferApplyFormConfigFormulaInfo) *OfferApplyFormObjectConfigInfoBuilder {
	builder.formula = formula
	builder.formulaFlag = true
	return builder
}

// 级联配置信息
//
// 示例值：
func (builder *OfferApplyFormObjectConfigInfoBuilder) ObjectDisplayConfig(objectDisplayConfig *OfferApplyFormObjectDisplayConfigInfo) *OfferApplyFormObjectConfigInfoBuilder {
	builder.objectDisplayConfig = objectDisplayConfig
	builder.objectDisplayConfigFlag = true
	return builder
}

func (builder *OfferApplyFormObjectConfigInfoBuilder) Build() *OfferApplyFormObjectConfigInfo {
	req := &OfferApplyFormObjectConfigInfo{}
	if builder.optionsFlag {
		req.Options = builder.options
	}
	if builder.formulaFlag {
		req.Formula = builder.formula
	}
	if builder.objectDisplayConfigFlag {
		req.ObjectDisplayConfig = builder.objectDisplayConfig
	}
	return req
}

type OfferApplyFormObjectDisplayConfigInfo struct {
	DisplayCondition *int `json:"display_condition,omitempty"` // 展示条件枚举

	PreObjectConfigList []*OfferApplyFormPreObjectConfigInfo `json:"pre_object_config_list,omitempty"` // 字段条件配置
}

type OfferApplyFormObjectDisplayConfigInfoBuilder struct {
	displayCondition     int // 展示条件枚举
	displayConditionFlag bool

	preObjectConfigList     []*OfferApplyFormPreObjectConfigInfo // 字段条件配置
	preObjectConfigListFlag bool
}

func NewOfferApplyFormObjectDisplayConfigInfoBuilder() *OfferApplyFormObjectDisplayConfigInfoBuilder {
	builder := &OfferApplyFormObjectDisplayConfigInfoBuilder{}
	return builder
}

// 展示条件枚举
//
// 示例值：1
func (builder *OfferApplyFormObjectDisplayConfigInfoBuilder) DisplayCondition(displayCondition int) *OfferApplyFormObjectDisplayConfigInfoBuilder {
	builder.displayCondition = displayCondition
	builder.displayConditionFlag = true
	return builder
}

// 字段条件配置
//
// 示例值：
func (builder *OfferApplyFormObjectDisplayConfigInfoBuilder) PreObjectConfigList(preObjectConfigList []*OfferApplyFormPreObjectConfigInfo) *OfferApplyFormObjectDisplayConfigInfoBuilder {
	builder.preObjectConfigList = preObjectConfigList
	builder.preObjectConfigListFlag = true
	return builder
}

func (builder *OfferApplyFormObjectDisplayConfigInfoBuilder) Build() *OfferApplyFormObjectDisplayConfigInfo {
	req := &OfferApplyFormObjectDisplayConfigInfo{}
	if builder.displayConditionFlag {
		req.DisplayCondition = &builder.displayCondition

	}
	if builder.preObjectConfigListFlag {
		req.PreObjectConfigList = builder.preObjectConfigList
	}
	return req
}

type OfferApplyFormObjectInfo struct {
	Id *string `json:"id,omitempty"` // 字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	Description *I18n `json:"description,omitempty"` // 字段描述

	ModuleId *string `json:"module_id,omitempty"` // 所属模块 ID

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否为自定义字段

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	ActiveStatus *int `json:"active_status,omitempty"` // 是否启用

	NeedApprove *bool `json:"need_approve,omitempty"` // 是否修改后需审批

	IsSensitive *bool `json:"is_sensitive,omitempty"` // 是否敏感

	ObjectType *int `json:"object_type,omitempty"` // 字段类型枚举

	ObjectTypeV2 *string `json:"object_type_v2,omitempty"` // 字段类型枚举

	Config *OfferApplyFormObjectConfigInfo `json:"config,omitempty"` // 配置信息
}

type OfferApplyFormObjectInfoBuilder struct {
	id     string // 字段 ID
	idFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	description     *I18n // 字段描述
	descriptionFlag bool

	moduleId     string // 所属模块 ID
	moduleIdFlag bool

	isCustomized     bool // 是否为自定义字段
	isCustomizedFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	activeStatus     int // 是否启用
	activeStatusFlag bool

	needApprove     bool // 是否修改后需审批
	needApproveFlag bool

	isSensitive     bool // 是否敏感
	isSensitiveFlag bool

	objectType     int // 字段类型枚举
	objectTypeFlag bool

	objectTypeV2     string // 字段类型枚举
	objectTypeV2Flag bool

	config     *OfferApplyFormObjectConfigInfo // 配置信息
	configFlag bool
}

func NewOfferApplyFormObjectInfoBuilder() *OfferApplyFormObjectInfoBuilder {
	builder := &OfferApplyFormObjectInfoBuilder{}
	return builder
}

// 字段 ID
//
// 示例值：23847293234
func (builder *OfferApplyFormObjectInfoBuilder) Id(id string) *OfferApplyFormObjectInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *OfferApplyFormObjectInfoBuilder) Name(name *I18n) *OfferApplyFormObjectInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段描述
//
// 示例值：
func (builder *OfferApplyFormObjectInfoBuilder) Description(description *I18n) *OfferApplyFormObjectInfoBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 所属模块 ID
//
// 示例值：23847293234
func (builder *OfferApplyFormObjectInfoBuilder) ModuleId(moduleId string) *OfferApplyFormObjectInfoBuilder {
	builder.moduleId = moduleId
	builder.moduleIdFlag = true
	return builder
}

// 是否为自定义字段
//
// 示例值：true
func (builder *OfferApplyFormObjectInfoBuilder) IsCustomized(isCustomized bool) *OfferApplyFormObjectInfoBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 是否必填
//
// 示例值：true
func (builder *OfferApplyFormObjectInfoBuilder) IsRequired(isRequired bool) *OfferApplyFormObjectInfoBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 是否启用
//
// 示例值：1
func (builder *OfferApplyFormObjectInfoBuilder) ActiveStatus(activeStatus int) *OfferApplyFormObjectInfoBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 是否修改后需审批
//
// 示例值：true
func (builder *OfferApplyFormObjectInfoBuilder) NeedApprove(needApprove bool) *OfferApplyFormObjectInfoBuilder {
	builder.needApprove = needApprove
	builder.needApproveFlag = true
	return builder
}

// 是否敏感
//
// 示例值：false
func (builder *OfferApplyFormObjectInfoBuilder) IsSensitive(isSensitive bool) *OfferApplyFormObjectInfoBuilder {
	builder.isSensitive = isSensitive
	builder.isSensitiveFlag = true
	return builder
}

// 字段类型枚举
//
// 示例值：1
func (builder *OfferApplyFormObjectInfoBuilder) ObjectType(objectType int) *OfferApplyFormObjectInfoBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 字段类型枚举
//
// 示例值：default
func (builder *OfferApplyFormObjectInfoBuilder) ObjectTypeV2(objectTypeV2 string) *OfferApplyFormObjectInfoBuilder {
	builder.objectTypeV2 = objectTypeV2
	builder.objectTypeV2Flag = true
	return builder
}

// 配置信息
//
// 示例值：
func (builder *OfferApplyFormObjectInfoBuilder) Config(config *OfferApplyFormObjectConfigInfo) *OfferApplyFormObjectInfoBuilder {
	builder.config = config
	builder.configFlag = true
	return builder
}

func (builder *OfferApplyFormObjectInfoBuilder) Build() *OfferApplyFormObjectInfo {
	req := &OfferApplyFormObjectInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.moduleIdFlag {
		req.ModuleId = &builder.moduleId

	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.needApproveFlag {
		req.NeedApprove = &builder.needApprove

	}
	if builder.isSensitiveFlag {
		req.IsSensitive = &builder.isSensitive

	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.objectTypeV2Flag {
		req.ObjectTypeV2 = &builder.objectTypeV2

	}
	if builder.configFlag {
		req.Config = builder.config
	}
	return req
}

type OfferApplyFormPreObjectConfigInfo struct {
	Id *string `json:"id,omitempty"` // 字段 ID

	Operator *int `json:"operator,omitempty"` // 运算符枚举

	Value []string `json:"value,omitempty"` // 字段值
}

type OfferApplyFormPreObjectConfigInfoBuilder struct {
	id     string // 字段 ID
	idFlag bool

	operator     int // 运算符枚举
	operatorFlag bool

	value     []string // 字段值
	valueFlag bool
}

func NewOfferApplyFormPreObjectConfigInfoBuilder() *OfferApplyFormPreObjectConfigInfoBuilder {
	builder := &OfferApplyFormPreObjectConfigInfoBuilder{}
	return builder
}

// 字段 ID
//
// 示例值：687529575
func (builder *OfferApplyFormPreObjectConfigInfoBuilder) Id(id string) *OfferApplyFormPreObjectConfigInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 运算符枚举
//
// 示例值：1
func (builder *OfferApplyFormPreObjectConfigInfoBuilder) Operator(operator int) *OfferApplyFormPreObjectConfigInfoBuilder {
	builder.operator = operator
	builder.operatorFlag = true
	return builder
}

// 字段值
//
// 示例值：
func (builder *OfferApplyFormPreObjectConfigInfoBuilder) Value(value []string) *OfferApplyFormPreObjectConfigInfoBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *OfferApplyFormPreObjectConfigInfoBuilder) Build() *OfferApplyFormPreObjectConfigInfo {
	req := &OfferApplyFormPreObjectConfigInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.operatorFlag {
		req.Operator = &builder.operator

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type OfferApplyFormSchema struct {
	Id *string `json:"id,omitempty"` // schema ID

	ModuleList []*OfferApplyFormModuleInfo `json:"module_list,omitempty"` // 模块列表
}

type OfferApplyFormSchemaBuilder struct {
	id     string // schema ID
	idFlag bool

	moduleList     []*OfferApplyFormModuleInfo // 模块列表
	moduleListFlag bool
}

func NewOfferApplyFormSchemaBuilder() *OfferApplyFormSchemaBuilder {
	builder := &OfferApplyFormSchemaBuilder{}
	return builder
}

// schema ID
//
// 示例值：7080465990618843430
func (builder *OfferApplyFormSchemaBuilder) Id(id string) *OfferApplyFormSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 模块列表
//
// 示例值：
func (builder *OfferApplyFormSchemaBuilder) ModuleList(moduleList []*OfferApplyFormModuleInfo) *OfferApplyFormSchemaBuilder {
	builder.moduleList = moduleList
	builder.moduleListFlag = true
	return builder
}

func (builder *OfferApplyFormSchemaBuilder) Build() *OfferApplyFormSchema {
	req := &OfferApplyFormSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.moduleListFlag {
		req.ModuleList = builder.moduleList
	}
	return req
}

type OfferApprovalTemplate struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	Remark *string `json:"remark,omitempty"` // 备注

	DepartmentList []*Department `json:"department_list,omitempty"` // 适用部门
}

type OfferApprovalTemplateBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	remark     string // 备注
	remarkFlag bool

	departmentList     []*Department // 适用部门
	departmentListFlag bool
}

func NewOfferApprovalTemplateBuilder() *OfferApprovalTemplateBuilder {
	builder := &OfferApprovalTemplateBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *OfferApprovalTemplateBuilder) Id(id string) *OfferApprovalTemplateBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *OfferApprovalTemplateBuilder) Name(name *I18n) *OfferApprovalTemplateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 创建时间
//
// 示例值：1628512038000
func (builder *OfferApprovalTemplateBuilder) CreateTime(createTime string) *OfferApprovalTemplateBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 备注
//
// 示例值：test
func (builder *OfferApprovalTemplateBuilder) Remark(remark string) *OfferApprovalTemplateBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 适用部门
//
// 示例值：
func (builder *OfferApprovalTemplateBuilder) DepartmentList(departmentList []*Department) *OfferApprovalTemplateBuilder {
	builder.departmentList = departmentList
	builder.departmentListFlag = true
	return builder
}

func (builder *OfferApprovalTemplateBuilder) Build() *OfferApprovalTemplate {
	req := &OfferApprovalTemplate{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.departmentListFlag {
		req.DepartmentList = builder.departmentList
	}
	return req
}

type OfferAttachmentInfo struct {
	Id *string `json:"id,omitempty"` // Offer 附件 ID

	Name *string `json:"name,omitempty"` // Offer 附件名称

	Size *int64 `json:"size,omitempty"` // Offer 附件大小

	CommonAttachmentId *string `json:"common_attachment_id,omitempty"` // 通用附件ID
}

type OfferAttachmentInfoBuilder struct {
	id     string // Offer 附件 ID
	idFlag bool

	name     string // Offer 附件名称
	nameFlag bool

	size     int64 // Offer 附件大小
	sizeFlag bool

	commonAttachmentId     string // 通用附件ID
	commonAttachmentIdFlag bool
}

func NewOfferAttachmentInfoBuilder() *OfferAttachmentInfoBuilder {
	builder := &OfferAttachmentInfoBuilder{}
	return builder
}

// Offer 附件 ID
//
// 示例值：7018398769038182700
func (builder *OfferAttachmentInfoBuilder) Id(id string) *OfferAttachmentInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// Offer 附件名称
//
// 示例值：获奖证书「全套」
func (builder *OfferAttachmentInfoBuilder) Name(name string) *OfferAttachmentInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// Offer 附件大小
//
// 示例值：4096
func (builder *OfferAttachmentInfoBuilder) Size(size int64) *OfferAttachmentInfoBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

// 通用附件ID
//
// 示例值：7118398769038182701
func (builder *OfferAttachmentInfoBuilder) CommonAttachmentId(commonAttachmentId string) *OfferAttachmentInfoBuilder {
	builder.commonAttachmentId = commonAttachmentId
	builder.commonAttachmentIdFlag = true
	return builder
}

func (builder *OfferAttachmentInfoBuilder) Build() *OfferAttachmentInfo {
	req := &OfferAttachmentInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	if builder.commonAttachmentIdFlag {
		req.CommonAttachmentId = &builder.commonAttachmentId

	}
	return req
}

type OfferBasicInfo struct {
	DepartmentId *string `json:"department_id,omitempty"` // 部门 ID

	LeaderUserId *string `json:"leader_user_id,omitempty"` // 直属上级 ID

	EmploymentJobId *string `json:"employment_job_id,omitempty"` // 职务 ID

	EmployeeTypeId *string `json:"employee_type_id,omitempty"` // 人员类型 ID

	JobFamilyId *string `json:"job_family_id,omitempty"` // 职位序列 ID

	JobLevelId *string `json:"job_level_id,omitempty"` // 职位级别 ID

	ProbationMonth *int `json:"probation_month,omitempty"` // 试用期

	ContractYear *int `json:"contract_year,omitempty"` // 合同期

	ContractPeriod *ContractPeriodInfo `json:"contract_period,omitempty"` // 合同期（年/月）

	ExpectedOnboardDate *string `json:"expected_onboard_date,omitempty"` // 预计入职日期

	OnboardAddressId *string `json:"onboard_address_id,omitempty"` // 入职地点 ID

	WorkAddressId *string `json:"work_address_id,omitempty"` // 办公地点 ID

	OwnerUserId *string `json:"owner_user_id,omitempty"` // Offer负责人 ID

	RecommendedWords *string `json:"recommended_words,omitempty"` // Offer 推荐语

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID

	JobProcessTypeId *int `json:"job_process_type_id,omitempty"` // 招聘流程类型 ID

	AttachmentIdList []string `json:"attachment_id_list,omitempty"` // 附件ID列表

	CommonAttachmentIdList []string `json:"common_attachment_id_list,omitempty"` // Offer 附件 ID 列表

	AttachmentDescription *string `json:"attachment_description,omitempty"` // 附件描述

	OperatorUserId *string `json:"operator_user_id,omitempty"` // Offer操作人 ID

	PositionId *string `json:"position_id,omitempty"` // 岗位 ID

	JobOffered *string `json:"job_offered,omitempty"` // 入职职位

	JobGradeId *string `json:"job_grade_id,omitempty"` // 职等 ID

	PathwayId *string `json:"pathway_id,omitempty"` // 通道 ID
}

type OfferBasicInfoBuilder struct {
	departmentId     string // 部门 ID
	departmentIdFlag bool

	leaderUserId     string // 直属上级 ID
	leaderUserIdFlag bool

	employmentJobId     string // 职务 ID
	employmentJobIdFlag bool

	employeeTypeId     string // 人员类型 ID
	employeeTypeIdFlag bool

	jobFamilyId     string // 职位序列 ID
	jobFamilyIdFlag bool

	jobLevelId     string // 职位级别 ID
	jobLevelIdFlag bool

	probationMonth     int // 试用期
	probationMonthFlag bool

	contractYear     int // 合同期
	contractYearFlag bool

	contractPeriod     *ContractPeriodInfo // 合同期（年/月）
	contractPeriodFlag bool

	expectedOnboardDate     string // 预计入职日期
	expectedOnboardDateFlag bool

	onboardAddressId     string // 入职地点 ID
	onboardAddressIdFlag bool

	workAddressId     string // 办公地点 ID
	workAddressIdFlag bool

	ownerUserId     string // Offer负责人 ID
	ownerUserIdFlag bool

	recommendedWords     string // Offer 推荐语
	recommendedWordsFlag bool

	jobRequirementId     string // 招聘需求 ID
	jobRequirementIdFlag bool

	jobProcessTypeId     int // 招聘流程类型 ID
	jobProcessTypeIdFlag bool

	attachmentIdList     []string // 附件ID列表
	attachmentIdListFlag bool

	commonAttachmentIdList     []string // Offer 附件 ID 列表
	commonAttachmentIdListFlag bool

	attachmentDescription     string // 附件描述
	attachmentDescriptionFlag bool

	operatorUserId     string // Offer操作人 ID
	operatorUserIdFlag bool

	positionId     string // 岗位 ID
	positionIdFlag bool

	jobOffered     string // 入职职位
	jobOfferedFlag bool

	jobGradeId     string // 职等 ID
	jobGradeIdFlag bool

	pathwayId     string // 通道 ID
	pathwayIdFlag bool
}

func NewOfferBasicInfoBuilder() *OfferBasicInfoBuilder {
	builder := &OfferBasicInfoBuilder{}
	return builder
}

// 部门 ID
//
// 示例值：od-6b394871807047c7023ebfc1ff37cd3a
func (builder *OfferBasicInfoBuilder) DepartmentId(departmentId string) *OfferBasicInfoBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 直属上级 ID
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *OfferBasicInfoBuilder) LeaderUserId(leaderUserId string) *OfferBasicInfoBuilder {
	builder.leaderUserId = leaderUserId
	builder.leaderUserIdFlag = true
	return builder
}

// 职务 ID
//
// 示例值：123
func (builder *OfferBasicInfoBuilder) EmploymentJobId(employmentJobId string) *OfferBasicInfoBuilder {
	builder.employmentJobId = employmentJobId
	builder.employmentJobIdFlag = true
	return builder
}

// 人员类型 ID
//
// 示例值：2
func (builder *OfferBasicInfoBuilder) EmployeeTypeId(employeeTypeId string) *OfferBasicInfoBuilder {
	builder.employeeTypeId = employeeTypeId
	builder.employeeTypeIdFlag = true
	return builder
}

// 职位序列 ID
//
// 示例值：6807407987381831949
func (builder *OfferBasicInfoBuilder) JobFamilyId(jobFamilyId string) *OfferBasicInfoBuilder {
	builder.jobFamilyId = jobFamilyId
	builder.jobFamilyIdFlag = true
	return builder
}

// 职位级别 ID
//
// 示例值：6807407987381881101
func (builder *OfferBasicInfoBuilder) JobLevelId(jobLevelId string) *OfferBasicInfoBuilder {
	builder.jobLevelId = jobLevelId
	builder.jobLevelIdFlag = true
	return builder
}

// 试用期
//
// 示例值：3
func (builder *OfferBasicInfoBuilder) ProbationMonth(probationMonth int) *OfferBasicInfoBuilder {
	builder.probationMonth = probationMonth
	builder.probationMonthFlag = true
	return builder
}

// 合同期
//
// 示例值：3
func (builder *OfferBasicInfoBuilder) ContractYear(contractYear int) *OfferBasicInfoBuilder {
	builder.contractYear = contractYear
	builder.contractYearFlag = true
	return builder
}

// 合同期（年/月）
//
// 示例值：
func (builder *OfferBasicInfoBuilder) ContractPeriod(contractPeriod *ContractPeriodInfo) *OfferBasicInfoBuilder {
	builder.contractPeriod = contractPeriod
	builder.contractPeriodFlag = true
	return builder
}

// 预计入职日期
//
// 示例值：{"date":"2022-04-07"}
func (builder *OfferBasicInfoBuilder) ExpectedOnboardDate(expectedOnboardDate string) *OfferBasicInfoBuilder {
	builder.expectedOnboardDate = expectedOnboardDate
	builder.expectedOnboardDateFlag = true
	return builder
}

// 入职地点 ID
//
// 示例值：6897079709306259719
func (builder *OfferBasicInfoBuilder) OnboardAddressId(onboardAddressId string) *OfferBasicInfoBuilder {
	builder.onboardAddressId = onboardAddressId
	builder.onboardAddressIdFlag = true
	return builder
}

// 办公地点 ID
//
// 示例值：6897079709306259719
func (builder *OfferBasicInfoBuilder) WorkAddressId(workAddressId string) *OfferBasicInfoBuilder {
	builder.workAddressId = workAddressId
	builder.workAddressIdFlag = true
	return builder
}

// Offer负责人 ID
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *OfferBasicInfoBuilder) OwnerUserId(ownerUserId string) *OfferBasicInfoBuilder {
	builder.ownerUserId = ownerUserId
	builder.ownerUserIdFlag = true
	return builder
}

// Offer 推荐语
//
// 示例值：十分优秀，推荐入职
func (builder *OfferBasicInfoBuilder) RecommendedWords(recommendedWords string) *OfferBasicInfoBuilder {
	builder.recommendedWords = recommendedWords
	builder.recommendedWordsFlag = true
	return builder
}

// 招聘需求 ID
//
// 示例值：2342352224
func (builder *OfferBasicInfoBuilder) JobRequirementId(jobRequirementId string) *OfferBasicInfoBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// 招聘流程类型 ID
//
// 示例值：2
func (builder *OfferBasicInfoBuilder) JobProcessTypeId(jobProcessTypeId int) *OfferBasicInfoBuilder {
	builder.jobProcessTypeId = jobProcessTypeId
	builder.jobProcessTypeIdFlag = true
	return builder
}

// 附件ID列表
//
// 示例值：["7081582717280831752"]
func (builder *OfferBasicInfoBuilder) AttachmentIdList(attachmentIdList []string) *OfferBasicInfoBuilder {
	builder.attachmentIdList = attachmentIdList
	builder.attachmentIdListFlag = true
	return builder
}

// Offer 附件 ID 列表
//
// 示例值：
func (builder *OfferBasicInfoBuilder) CommonAttachmentIdList(commonAttachmentIdList []string) *OfferBasicInfoBuilder {
	builder.commonAttachmentIdList = commonAttachmentIdList
	builder.commonAttachmentIdListFlag = true
	return builder
}

// 附件描述
//
// 示例值：张三的简历
func (builder *OfferBasicInfoBuilder) AttachmentDescription(attachmentDescription string) *OfferBasicInfoBuilder {
	builder.attachmentDescription = attachmentDescription
	builder.attachmentDescriptionFlag = true
	return builder
}

// Offer操作人 ID
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *OfferBasicInfoBuilder) OperatorUserId(operatorUserId string) *OfferBasicInfoBuilder {
	builder.operatorUserId = operatorUserId
	builder.operatorUserIdFlag = true
	return builder
}

// 岗位 ID
//
// 示例值：6897079709306259719
func (builder *OfferBasicInfoBuilder) PositionId(positionId string) *OfferBasicInfoBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

// 入职职位
//
// 示例值：测试职位
func (builder *OfferBasicInfoBuilder) JobOffered(jobOffered string) *OfferBasicInfoBuilder {
	builder.jobOffered = jobOffered
	builder.jobOfferedFlag = true
	return builder
}

// 职等 ID
//
// 示例值：6897079709306259720
func (builder *OfferBasicInfoBuilder) JobGradeId(jobGradeId string) *OfferBasicInfoBuilder {
	builder.jobGradeId = jobGradeId
	builder.jobGradeIdFlag = true
	return builder
}

// 通道 ID
//
// 示例值：6897079709306259719
func (builder *OfferBasicInfoBuilder) PathwayId(pathwayId string) *OfferBasicInfoBuilder {
	builder.pathwayId = pathwayId
	builder.pathwayIdFlag = true
	return builder
}

func (builder *OfferBasicInfoBuilder) Build() *OfferBasicInfo {
	req := &OfferBasicInfo{}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.leaderUserIdFlag {
		req.LeaderUserId = &builder.leaderUserId

	}
	if builder.employmentJobIdFlag {
		req.EmploymentJobId = &builder.employmentJobId

	}
	if builder.employeeTypeIdFlag {
		req.EmployeeTypeId = &builder.employeeTypeId

	}
	if builder.jobFamilyIdFlag {
		req.JobFamilyId = &builder.jobFamilyId

	}
	if builder.jobLevelIdFlag {
		req.JobLevelId = &builder.jobLevelId

	}
	if builder.probationMonthFlag {
		req.ProbationMonth = &builder.probationMonth

	}
	if builder.contractYearFlag {
		req.ContractYear = &builder.contractYear

	}
	if builder.contractPeriodFlag {
		req.ContractPeriod = builder.contractPeriod
	}
	if builder.expectedOnboardDateFlag {
		req.ExpectedOnboardDate = &builder.expectedOnboardDate

	}
	if builder.onboardAddressIdFlag {
		req.OnboardAddressId = &builder.onboardAddressId

	}
	if builder.workAddressIdFlag {
		req.WorkAddressId = &builder.workAddressId

	}
	if builder.ownerUserIdFlag {
		req.OwnerUserId = &builder.ownerUserId

	}
	if builder.recommendedWordsFlag {
		req.RecommendedWords = &builder.recommendedWords

	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	if builder.jobProcessTypeIdFlag {
		req.JobProcessTypeId = &builder.jobProcessTypeId

	}
	if builder.attachmentIdListFlag {
		req.AttachmentIdList = builder.attachmentIdList
	}
	if builder.commonAttachmentIdListFlag {
		req.CommonAttachmentIdList = builder.commonAttachmentIdList
	}
	if builder.attachmentDescriptionFlag {
		req.AttachmentDescription = &builder.attachmentDescription

	}
	if builder.operatorUserIdFlag {
		req.OperatorUserId = &builder.operatorUserId

	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId

	}
	if builder.jobOfferedFlag {
		req.JobOffered = &builder.jobOffered

	}
	if builder.jobGradeIdFlag {
		req.JobGradeId = &builder.jobGradeId

	}
	if builder.pathwayIdFlag {
		req.PathwayId = &builder.pathwayId

	}
	return req
}

type OfferBasicInfoV2 struct {
	Id *string `json:"id,omitempty"` // Offer ID

	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	OfferStatus *int `json:"offer_status,omitempty"` // Offer 状态

	Leader *BasicUserInfo `json:"leader,omitempty"` // 直属上级

	EmployeeType *IdNameObject `json:"employee_type,omitempty"` // 人员类型

	Department *BasicDepartmentInfo `json:"department,omitempty"` // 部门

	Sequence *IdNameObject `json:"sequence,omitempty"` // 序列

	Level *IdNameObject `json:"level,omitempty"` // 级别

	CompanyMainBody *IdNameObject `json:"company_main_body,omitempty"` // 公司主体

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID

	ProbationMonth *int `json:"probation_month,omitempty"` // 试用期（单位：月）

	ContractPeriod *ContractPeriodInfo `json:"contract_period,omitempty"` // 合同期（年/月）

	OnboardDate *string `json:"onboard_date,omitempty"` // 入职日期

	Owner *BasicUserInfo `json:"owner,omitempty"` // Offer 负责人

	OnboardAddress *BaseAddressV2 `json:"onboard_address,omitempty"` // 入职地址

	WorkAddress *BaseAddressV2 `json:"work_address,omitempty"` // 工作地址

	Remark *string `json:"remark,omitempty"` // Offer 备注

	AttachmentList []*OfferAttachmentInfo `json:"attachment_list,omitempty"` // 附件列表

	CustomizeInfoList []*ApplicationOfferCustomValue `json:"customize_info_list,omitempty"` // Offer 自定义字段数据

	CreateTime *string `json:"create_time,omitempty"` // Offer 创建时间戳（单位：毫秒）
}

type OfferBasicInfoV2Builder struct {
	id     string // Offer ID
	idFlag bool

	offerType     int // Offer 类型
	offerTypeFlag bool

	offerStatus     int // Offer 状态
	offerStatusFlag bool

	leader     *BasicUserInfo // 直属上级
	leaderFlag bool

	employeeType     *IdNameObject // 人员类型
	employeeTypeFlag bool

	department     *BasicDepartmentInfo // 部门
	departmentFlag bool

	sequence     *IdNameObject // 序列
	sequenceFlag bool

	level     *IdNameObject // 级别
	levelFlag bool

	companyMainBody     *IdNameObject // 公司主体
	companyMainBodyFlag bool

	jobRequirementId     string // 招聘需求 ID
	jobRequirementIdFlag bool

	probationMonth     int // 试用期（单位：月）
	probationMonthFlag bool

	contractPeriod     *ContractPeriodInfo // 合同期（年/月）
	contractPeriodFlag bool

	onboardDate     string // 入职日期
	onboardDateFlag bool

	owner     *BasicUserInfo // Offer 负责人
	ownerFlag bool

	onboardAddress     *BaseAddressV2 // 入职地址
	onboardAddressFlag bool

	workAddress     *BaseAddressV2 // 工作地址
	workAddressFlag bool

	remark     string // Offer 备注
	remarkFlag bool

	attachmentList     []*OfferAttachmentInfo // 附件列表
	attachmentListFlag bool

	customizeInfoList     []*ApplicationOfferCustomValue // Offer 自定义字段数据
	customizeInfoListFlag bool

	createTime     string // Offer 创建时间戳（单位：毫秒）
	createTimeFlag bool
}

func NewOfferBasicInfoV2Builder() *OfferBasicInfoV2Builder {
	builder := &OfferBasicInfoV2Builder{}
	return builder
}

// Offer ID
//
// 示例值：7056641315456469292
func (builder *OfferBasicInfoV2Builder) Id(id string) *OfferBasicInfoV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// Offer 类型
//
// 示例值：1
func (builder *OfferBasicInfoV2Builder) OfferType(offerType int) *OfferBasicInfoV2Builder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// Offer 状态
//
// 示例值：10
func (builder *OfferBasicInfoV2Builder) OfferStatus(offerStatus int) *OfferBasicInfoV2Builder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// 直属上级
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) Leader(leader *BasicUserInfo) *OfferBasicInfoV2Builder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 人员类型
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) EmployeeType(employeeType *IdNameObject) *OfferBasicInfoV2Builder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) Department(department *BasicDepartmentInfo) *OfferBasicInfoV2Builder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 序列
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) Sequence(sequence *IdNameObject) *OfferBasicInfoV2Builder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 级别
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) Level(level *IdNameObject) *OfferBasicInfoV2Builder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 公司主体
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) CompanyMainBody(companyMainBody *IdNameObject) *OfferBasicInfoV2Builder {
	builder.companyMainBody = companyMainBody
	builder.companyMainBodyFlag = true
	return builder
}

// 招聘需求 ID
//
// 示例值：7018398769038182700
func (builder *OfferBasicInfoV2Builder) JobRequirementId(jobRequirementId string) *OfferBasicInfoV2Builder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// 试用期（单位：月）
//
// 示例值：3
func (builder *OfferBasicInfoV2Builder) ProbationMonth(probationMonth int) *OfferBasicInfoV2Builder {
	builder.probationMonth = probationMonth
	builder.probationMonthFlag = true
	return builder
}

// 合同期（年/月）
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) ContractPeriod(contractPeriod *ContractPeriodInfo) *OfferBasicInfoV2Builder {
	builder.contractPeriod = contractPeriod
	builder.contractPeriodFlag = true
	return builder
}

// 入职日期
//
// 示例值：2023-01-01
func (builder *OfferBasicInfoV2Builder) OnboardDate(onboardDate string) *OfferBasicInfoV2Builder {
	builder.onboardDate = onboardDate
	builder.onboardDateFlag = true
	return builder
}

// Offer 负责人
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) Owner(owner *BasicUserInfo) *OfferBasicInfoV2Builder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

// 入职地址
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) OnboardAddress(onboardAddress *BaseAddressV2) *OfferBasicInfoV2Builder {
	builder.onboardAddress = onboardAddress
	builder.onboardAddressFlag = true
	return builder
}

// 工作地址
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) WorkAddress(workAddress *BaseAddressV2) *OfferBasicInfoV2Builder {
	builder.workAddress = workAddress
	builder.workAddressFlag = true
	return builder
}

// Offer 备注
//
// 示例值：这个 Offer 需要加急审批
func (builder *OfferBasicInfoV2Builder) Remark(remark string) *OfferBasicInfoV2Builder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 附件列表
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) AttachmentList(attachmentList []*OfferAttachmentInfo) *OfferBasicInfoV2Builder {
	builder.attachmentList = attachmentList
	builder.attachmentListFlag = true
	return builder
}

// Offer 自定义字段数据
//
// 示例值：
func (builder *OfferBasicInfoV2Builder) CustomizeInfoList(customizeInfoList []*ApplicationOfferCustomValue) *OfferBasicInfoV2Builder {
	builder.customizeInfoList = customizeInfoList
	builder.customizeInfoListFlag = true
	return builder
}

// Offer 创建时间戳（单位：毫秒）
//
// 示例值：1619719298000
func (builder *OfferBasicInfoV2Builder) CreateTime(createTime string) *OfferBasicInfoV2Builder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *OfferBasicInfoV2Builder) Build() *OfferBasicInfoV2 {
	req := &OfferBasicInfoV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.leaderFlag {
		req.Leader = builder.leader
	}
	if builder.employeeTypeFlag {
		req.EmployeeType = builder.employeeType
	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.sequenceFlag {
		req.Sequence = builder.sequence
	}
	if builder.levelFlag {
		req.Level = builder.level
	}
	if builder.companyMainBodyFlag {
		req.CompanyMainBody = builder.companyMainBody
	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId

	}
	if builder.probationMonthFlag {
		req.ProbationMonth = &builder.probationMonth

	}
	if builder.contractPeriodFlag {
		req.ContractPeriod = builder.contractPeriod
	}
	if builder.onboardDateFlag {
		req.OnboardDate = &builder.onboardDate

	}
	if builder.ownerFlag {
		req.Owner = builder.owner
	}
	if builder.onboardAddressFlag {
		req.OnboardAddress = builder.onboardAddress
	}
	if builder.workAddressFlag {
		req.WorkAddress = builder.workAddress
	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.attachmentListFlag {
		req.AttachmentList = builder.attachmentList
	}
	if builder.customizeInfoListFlag {
		req.CustomizeInfoList = builder.customizeInfoList
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type OfferCustomField struct {
	Id *string `json:"id,omitempty"` // 自定义字段 ID

	Name *I18n `json:"name,omitempty"` // 自定义字段名称

	Config *OfferCustomFieldConfig `json:"config,omitempty"` // 自定义字段配置信息，仅字段类型为「单选」、「多选」时需传配置选项信息
}

type OfferCustomFieldBuilder struct {
	id     string // 自定义字段 ID
	idFlag bool

	name     *I18n // 自定义字段名称
	nameFlag bool

	config     *OfferCustomFieldConfig // 自定义字段配置信息，仅字段类型为「单选」、「多选」时需传配置选项信息
	configFlag bool
}

func NewOfferCustomFieldBuilder() *OfferCustomFieldBuilder {
	builder := &OfferCustomFieldBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6887476510505748749
func (builder *OfferCustomFieldBuilder) Id(id string) *OfferCustomFieldBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 自定义字段名称
//
// 示例值：
func (builder *OfferCustomFieldBuilder) Name(name *I18n) *OfferCustomFieldBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 自定义字段配置信息，仅字段类型为「单选」、「多选」时需传配置选项信息
//
// 示例值：
func (builder *OfferCustomFieldBuilder) Config(config *OfferCustomFieldConfig) *OfferCustomFieldBuilder {
	builder.config = config
	builder.configFlag = true
	return builder
}

func (builder *OfferCustomFieldBuilder) Build() *OfferCustomField {
	req := &OfferCustomField{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.configFlag {
		req.Config = builder.config
	}
	return req
}

type OfferCustomFieldConfig struct {
	Options []*OfferCustomFieldConfigOption `json:"options,omitempty"` // 选项信息
}

type OfferCustomFieldConfigBuilder struct {
	options     []*OfferCustomFieldConfigOption // 选项信息
	optionsFlag bool
}

func NewOfferCustomFieldConfigBuilder() *OfferCustomFieldConfigBuilder {
	builder := &OfferCustomFieldConfigBuilder{}
	return builder
}

// 选项信息
//
// 示例值：
func (builder *OfferCustomFieldConfigBuilder) Options(options []*OfferCustomFieldConfigOption) *OfferCustomFieldConfigBuilder {
	builder.options = options
	builder.optionsFlag = true
	return builder
}

func (builder *OfferCustomFieldConfigBuilder) Build() *OfferCustomFieldConfig {
	req := &OfferCustomFieldConfig{}
	if builder.optionsFlag {
		req.Options = builder.options
	}
	return req
}

type OfferCustomFieldConfigOption struct {
	Name *I18n `json:"name,omitempty"` // 选项名称
}

type OfferCustomFieldConfigOptionBuilder struct {
	name     *I18n // 选项名称
	nameFlag bool
}

func NewOfferCustomFieldConfigOptionBuilder() *OfferCustomFieldConfigOptionBuilder {
	builder := &OfferCustomFieldConfigOptionBuilder{}
	return builder
}

// 选项名称
//
// 示例值：
func (builder *OfferCustomFieldConfigOptionBuilder) Name(name *I18n) *OfferCustomFieldConfigOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *OfferCustomFieldConfigOptionBuilder) Build() *OfferCustomFieldConfigOption {
	req := &OfferCustomFieldConfigOption{}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type OfferCustomizedInfo struct {
	Id *string `json:"id,omitempty"` // 自定义字段 ID

	Value *string `json:"value,omitempty"` // 自定义字段信息，以字符串形式传入，如：;1. 单选： "1";2. 多选："[\"1\", \"2\"]";3. 日期："{"date":"2022-01-01"}";4. 年份选择："{"date":"2022"}";5. 月份选择："{"date":"2022-01"}";6. 单行文本："xxx ";7. 多行文本："xxx ";8. 数字："123";9. 金额："123.1"
}

type OfferCustomizedInfoBuilder struct {
	id     string // 自定义字段 ID
	idFlag bool

	value     string // 自定义字段信息，以字符串形式传入，如：;1. 单选： "1";2. 多选："[\"1\", \"2\"]";3. 日期："{"date":"2022-01-01"}";4. 年份选择："{"date":"2022"}";5. 月份选择："{"date":"2022-01"}";6. 单行文本："xxx ";7. 多行文本："xxx ";8. 数字："123";9. 金额："123.1"
	valueFlag bool
}

func NewOfferCustomizedInfoBuilder() *OfferCustomizedInfoBuilder {
	builder := &OfferCustomizedInfoBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6972464088568269100
func (builder *OfferCustomizedInfoBuilder) Id(id string) *OfferCustomizedInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 自定义字段信息，以字符串形式传入，如：;1. 单选： "1";2. 多选："[\"1\", \"2\"]";3. 日期："{"date":"2022-01-01"}";4. 年份选择："{"date":"2022"}";5. 月份选择："{"date":"2022-01"}";6. 单行文本："xxx ";7. 多行文本："xxx ";8. 数字："123";9. 金额："123.1"
//
// 示例值：1
func (builder *OfferCustomizedInfoBuilder) Value(value string) *OfferCustomizedInfoBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *OfferCustomizedInfoBuilder) Build() *OfferCustomizedInfo {
	req := &OfferCustomizedInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type OfferEmailInfo struct {
	CcEmailList []string `json:"cc_email_list,omitempty"` // 抄送人邮件列表

	ReceiverEmailList []string `json:"receiver_email_list,omitempty"` // 接收人邮件列表

	Content *string `json:"content,omitempty"` // 邮件内容
}

type OfferEmailInfoBuilder struct {
	ccEmailList     []string // 抄送人邮件列表
	ccEmailListFlag bool

	receiverEmailList     []string // 接收人邮件列表
	receiverEmailListFlag bool

	content     string // 邮件内容
	contentFlag bool
}

func NewOfferEmailInfoBuilder() *OfferEmailInfoBuilder {
	builder := &OfferEmailInfoBuilder{}
	return builder
}

// 抄送人邮件列表
//
// 示例值：
func (builder *OfferEmailInfoBuilder) CcEmailList(ccEmailList []string) *OfferEmailInfoBuilder {
	builder.ccEmailList = ccEmailList
	builder.ccEmailListFlag = true
	return builder
}

// 接收人邮件列表
//
// 示例值：
func (builder *OfferEmailInfoBuilder) ReceiverEmailList(receiverEmailList []string) *OfferEmailInfoBuilder {
	builder.receiverEmailList = receiverEmailList
	builder.receiverEmailListFlag = true
	return builder
}

// 邮件内容
//
// 示例值：This is a test email.
func (builder *OfferEmailInfoBuilder) Content(content string) *OfferEmailInfoBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

func (builder *OfferEmailInfoBuilder) Build() *OfferEmailInfo {
	req := &OfferEmailInfo{}
	if builder.ccEmailListFlag {
		req.CcEmailList = builder.ccEmailList
	}
	if builder.receiverEmailListFlag {
		req.ReceiverEmailList = builder.receiverEmailList
	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	return req
}

type OfferFile struct {
	Id *string `json:"id,omitempty"` // 文件 id

	FileTemplateId *string `json:"file_template_id,omitempty"` // 文件模板 id

	FileTemplateName *string `json:"file_template_name,omitempty"` // 文件模板名称

	FileTemplateTypeId *string `json:"file_template_type_id,omitempty"` // 文件模板类型 id

	FileTemplateTypeName *string `json:"file_template_type_name,omitempty"` // 文件模板类型名称
}

type OfferFileBuilder struct {
	id     string // 文件 id
	idFlag bool

	fileTemplateId     string // 文件模板 id
	fileTemplateIdFlag bool

	fileTemplateName     string // 文件模板名称
	fileTemplateNameFlag bool

	fileTemplateTypeId     string // 文件模板类型 id
	fileTemplateTypeIdFlag bool

	fileTemplateTypeName     string // 文件模板类型名称
	fileTemplateTypeNameFlag bool
}

func NewOfferFileBuilder() *OfferFileBuilder {
	builder := &OfferFileBuilder{}
	return builder
}

// 文件 id
//
// 示例值：12345678901
func (builder *OfferFileBuilder) Id(id string) *OfferFileBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 文件模板 id
//
// 示例值：1718959426734
func (builder *OfferFileBuilder) FileTemplateId(fileTemplateId string) *OfferFileBuilder {
	builder.fileTemplateId = fileTemplateId
	builder.fileTemplateIdFlag = true
	return builder
}

// 文件模板名称
//
// 示例值：offer 文件
func (builder *OfferFileBuilder) FileTemplateName(fileTemplateName string) *OfferFileBuilder {
	builder.fileTemplateName = fileTemplateName
	builder.fileTemplateNameFlag = true
	return builder
}

// 文件模板类型 id
//
// 示例值：1718959426734
func (builder *OfferFileBuilder) FileTemplateTypeId(fileTemplateTypeId string) *OfferFileBuilder {
	builder.fileTemplateTypeId = fileTemplateTypeId
	builder.fileTemplateTypeIdFlag = true
	return builder
}

// 文件模板类型名称
//
// 示例值：offer 文件
func (builder *OfferFileBuilder) FileTemplateTypeName(fileTemplateTypeName string) *OfferFileBuilder {
	builder.fileTemplateTypeName = fileTemplateTypeName
	builder.fileTemplateTypeNameFlag = true
	return builder
}

func (builder *OfferFileBuilder) Build() *OfferFile {
	req := &OfferFile{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.fileTemplateIdFlag {
		req.FileTemplateId = &builder.fileTemplateId

	}
	if builder.fileTemplateNameFlag {
		req.FileTemplateName = &builder.fileTemplateName

	}
	if builder.fileTemplateTypeIdFlag {
		req.FileTemplateTypeId = &builder.fileTemplateTypeId

	}
	if builder.fileTemplateTypeNameFlag {
		req.FileTemplateTypeName = &builder.fileTemplateTypeName

	}
	return req
}

type OfferInfo struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	SchemaId *string `json:"schema_id,omitempty"` // Offer 申请表模板 ID，用于描述申请表单结构的元数据定义，即对申请表内容的描述。用户每一次更改 Offer 申请表模板信息，都会生成新的 schema_id，创建 Offer 时应传入最新的 schema_id，可从「获取Offer申请表模板信息」接口中获取

	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	BasicInfo *OfferBasicInfo `json:"basic_info,omitempty"` // Offer 基本信息

	SalaryInfo *OfferSalaryInfo `json:"salary_info,omitempty"` // Offer 薪资信息

	CustomizedInfoList []*OfferCustomizedInfo `json:"customized_info_list,omitempty"` // 自定义信息
}

type OfferInfoBuilder struct {
	offerId     string // Offer ID
	offerIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	schemaId     string // Offer 申请表模板 ID，用于描述申请表单结构的元数据定义，即对申请表内容的描述。用户每一次更改 Offer 申请表模板信息，都会生成新的 schema_id，创建 Offer 时应传入最新的 schema_id，可从「获取Offer申请表模板信息」接口中获取
	schemaIdFlag bool

	offerType     int // Offer 类型
	offerTypeFlag bool

	basicInfo     *OfferBasicInfo // Offer 基本信息
	basicInfoFlag bool

	salaryInfo     *OfferSalaryInfo // Offer 薪资信息
	salaryInfoFlag bool

	customizedInfoList     []*OfferCustomizedInfo // 自定义信息
	customizedInfoListFlag bool
}

func NewOfferInfoBuilder() *OfferInfoBuilder {
	builder := &OfferInfoBuilder{}
	return builder
}

// Offer ID
//
// 示例值：7016605170635213100
func (builder *OfferInfoBuilder) OfferId(offerId string) *OfferInfoBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7013552389293279532
func (builder *OfferInfoBuilder) ApplicationId(applicationId string) *OfferInfoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// Offer 申请表模板 ID，用于描述申请表单结构的元数据定义，即对申请表内容的描述。用户每一次更改 Offer 申请表模板信息，都会生成新的 schema_id，创建 Offer 时应传入最新的 schema_id，可从「获取Offer申请表模板信息」接口中获取
//
// 示例值：7013318077945596204
func (builder *OfferInfoBuilder) SchemaId(schemaId string) *OfferInfoBuilder {
	builder.schemaId = schemaId
	builder.schemaIdFlag = true
	return builder
}

// Offer 类型
//
// 示例值：1
func (builder *OfferInfoBuilder) OfferType(offerType int) *OfferInfoBuilder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// Offer 基本信息
//
// 示例值：
func (builder *OfferInfoBuilder) BasicInfo(basicInfo *OfferBasicInfo) *OfferInfoBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// Offer 薪资信息
//
// 示例值：
func (builder *OfferInfoBuilder) SalaryInfo(salaryInfo *OfferSalaryInfo) *OfferInfoBuilder {
	builder.salaryInfo = salaryInfo
	builder.salaryInfoFlag = true
	return builder
}

// 自定义信息
//
// 示例值：
func (builder *OfferInfoBuilder) CustomizedInfoList(customizedInfoList []*OfferCustomizedInfo) *OfferInfoBuilder {
	builder.customizedInfoList = customizedInfoList
	builder.customizedInfoListFlag = true
	return builder
}

func (builder *OfferInfoBuilder) Build() *OfferInfo {
	req := &OfferInfo{}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.schemaIdFlag {
		req.SchemaId = &builder.schemaId

	}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.salaryInfoFlag {
		req.SalaryInfo = builder.salaryInfo
	}
	if builder.customizedInfoListFlag {
		req.CustomizedInfoList = builder.customizedInfoList
	}
	return req
}

type OfferInfoV2 struct {
	OfferBasic *OfferBasicInfoV2 `json:"offer_basic,omitempty"` // Offer 基本信息

	OfferSalary *OfferSalaryInfoV2 `json:"offer_salary,omitempty"` // Offer 薪酬信息
}

type OfferInfoV2Builder struct {
	offerBasic     *OfferBasicInfoV2 // Offer 基本信息
	offerBasicFlag bool

	offerSalary     *OfferSalaryInfoV2 // Offer 薪酬信息
	offerSalaryFlag bool
}

func NewOfferInfoV2Builder() *OfferInfoV2Builder {
	builder := &OfferInfoV2Builder{}
	return builder
}

// Offer 基本信息
//
// 示例值：
func (builder *OfferInfoV2Builder) OfferBasic(offerBasic *OfferBasicInfoV2) *OfferInfoV2Builder {
	builder.offerBasic = offerBasic
	builder.offerBasicFlag = true
	return builder
}

// Offer 薪酬信息
//
// 示例值：
func (builder *OfferInfoV2Builder) OfferSalary(offerSalary *OfferSalaryInfoV2) *OfferInfoV2Builder {
	builder.offerSalary = offerSalary
	builder.offerSalaryFlag = true
	return builder
}

func (builder *OfferInfoV2Builder) Build() *OfferInfoV2 {
	req := &OfferInfoV2{}
	if builder.offerBasicFlag {
		req.OfferBasic = builder.offerBasic
	}
	if builder.offerSalaryFlag {
		req.OfferSalary = builder.offerSalary
	}
	return req
}

type OfferJobInfo struct {
	JobId *string `json:"job_id,omitempty"` // Offer 职位 ID

	JobName *string `json:"job_name,omitempty"` // Offer 职位名称
}

type OfferJobInfoBuilder struct {
	jobId     string // Offer 职位 ID
	jobIdFlag bool

	jobName     string // Offer 职位名称
	jobNameFlag bool
}

func NewOfferJobInfoBuilder() *OfferJobInfoBuilder {
	builder := &OfferJobInfoBuilder{}
	return builder
}

// Offer 职位 ID
//
// 示例值：7080891505426925854
func (builder *OfferJobInfoBuilder) JobId(jobId string) *OfferJobInfoBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// Offer 职位名称
//
// 示例值：xx
func (builder *OfferJobInfoBuilder) JobName(jobName string) *OfferJobInfoBuilder {
	builder.jobName = jobName
	builder.jobNameFlag = true
	return builder
}

func (builder *OfferJobInfoBuilder) Build() *OfferJobInfo {
	req := &OfferJobInfo{}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.jobNameFlag {
		req.JobName = &builder.jobName

	}
	return req
}

type OfferListInfo struct {
	Id *string `json:"id,omitempty"` // Offer ID

	JobInfo *OfferJobInfo `json:"job_info,omitempty"` // Offer 职位

	CreateTime *int64 `json:"create_time,omitempty"` // 创建时间

	OfferStatus *int `json:"offer_status,omitempty"` // Offer 状态

	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	EmployeeType *BaseBilingualWithId `json:"employee_type,omitempty"` // Offer 人员类型

	ApplicationId *string `json:"application_id,omitempty"` // Offer 投递 ID
}

type OfferListInfoBuilder struct {
	id     string // Offer ID
	idFlag bool

	jobInfo     *OfferJobInfo // Offer 职位
	jobInfoFlag bool

	createTime     int64 // 创建时间
	createTimeFlag bool

	offerStatus     int // Offer 状态
	offerStatusFlag bool

	offerType     int // Offer 类型
	offerTypeFlag bool

	employeeType     *BaseBilingualWithId // Offer 人员类型
	employeeTypeFlag bool

	applicationId     string // Offer 投递 ID
	applicationIdFlag bool
}

func NewOfferListInfoBuilder() *OfferListInfoBuilder {
	builder := &OfferListInfoBuilder{}
	return builder
}

// Offer ID
//
// 示例值：7096320678581242123
func (builder *OfferListInfoBuilder) Id(id string) *OfferListInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// Offer 职位
//
// 示例值：
func (builder *OfferListInfoBuilder) JobInfo(jobInfo *OfferJobInfo) *OfferListInfoBuilder {
	builder.jobInfo = jobInfo
	builder.jobInfoFlag = true
	return builder
}

// 创建时间
//
// 示例值：1628512038000
func (builder *OfferListInfoBuilder) CreateTime(createTime int64) *OfferListInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// Offer 状态
//
// 示例值：1
func (builder *OfferListInfoBuilder) OfferStatus(offerStatus int) *OfferListInfoBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// Offer 类型
//
// 示例值：Offer 类型
func (builder *OfferListInfoBuilder) OfferType(offerType int) *OfferListInfoBuilder {
	builder.offerType = offerType
	builder.offerTypeFlag = true
	return builder
}

// Offer 人员类型
//
// 示例值：
func (builder *OfferListInfoBuilder) EmployeeType(employeeType *BaseBilingualWithId) *OfferListInfoBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

// Offer 投递 ID
//
// 示例值：7096358713330272526
func (builder *OfferListInfoBuilder) ApplicationId(applicationId string) *OfferListInfoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

func (builder *OfferListInfoBuilder) Build() *OfferListInfo {
	req := &OfferListInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobInfoFlag {
		req.JobInfo = builder.jobInfo
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus

	}
	if builder.offerTypeFlag {
		req.OfferType = &builder.offerType

	}
	if builder.employeeTypeFlag {
		req.EmployeeType = builder.employeeType
	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	return req
}

type OfferSalaryInfo struct {
	Currency *string `json:"currency,omitempty"` // 币种

	BasicSalary *string `json:"basic_salary,omitempty"` // 基本工资，当启用 Offer 申请表中的「薪资信息」模块时，「基本工资」字段为必传项

	ProbationSalaryPercentage *string `json:"probation_salary_percentage,omitempty"` // 试用期百分比

	AwardSalaryMultiple *string `json:"award_salary_multiple,omitempty"` // 年终奖月数

	OptionShares *string `json:"option_shares,omitempty"` // 期权股数

	QuarterlyBonus *string `json:"quarterly_bonus,omitempty"` // 季度奖金额

	HalfYearBonus *string `json:"half_year_bonus,omitempty"` // 半年奖金额
}

type OfferSalaryInfoBuilder struct {
	currency     string // 币种
	currencyFlag bool

	basicSalary     string // 基本工资，当启用 Offer 申请表中的「薪资信息」模块时，「基本工资」字段为必传项
	basicSalaryFlag bool

	probationSalaryPercentage     string // 试用期百分比
	probationSalaryPercentageFlag bool

	awardSalaryMultiple     string // 年终奖月数
	awardSalaryMultipleFlag bool

	optionShares     string // 期权股数
	optionSharesFlag bool

	quarterlyBonus     string // 季度奖金额
	quarterlyBonusFlag bool

	halfYearBonus     string // 半年奖金额
	halfYearBonusFlag bool
}

func NewOfferSalaryInfoBuilder() *OfferSalaryInfoBuilder {
	builder := &OfferSalaryInfoBuilder{}
	return builder
}

// 币种
//
// 示例值：CNY
func (builder *OfferSalaryInfoBuilder) Currency(currency string) *OfferSalaryInfoBuilder {
	builder.currency = currency
	builder.currencyFlag = true
	return builder
}

// 基本工资，当启用 Offer 申请表中的「薪资信息」模块时，「基本工资」字段为必传项
//
// 示例值：1000000
func (builder *OfferSalaryInfoBuilder) BasicSalary(basicSalary string) *OfferSalaryInfoBuilder {
	builder.basicSalary = basicSalary
	builder.basicSalaryFlag = true
	return builder
}

// 试用期百分比
//
// 示例值：0.8
func (builder *OfferSalaryInfoBuilder) ProbationSalaryPercentage(probationSalaryPercentage string) *OfferSalaryInfoBuilder {
	builder.probationSalaryPercentage = probationSalaryPercentage
	builder.probationSalaryPercentageFlag = true
	return builder
}

// 年终奖月数
//
// 示例值：3
func (builder *OfferSalaryInfoBuilder) AwardSalaryMultiple(awardSalaryMultiple string) *OfferSalaryInfoBuilder {
	builder.awardSalaryMultiple = awardSalaryMultiple
	builder.awardSalaryMultipleFlag = true
	return builder
}

// 期权股数
//
// 示例值：30
func (builder *OfferSalaryInfoBuilder) OptionShares(optionShares string) *OfferSalaryInfoBuilder {
	builder.optionShares = optionShares
	builder.optionSharesFlag = true
	return builder
}

// 季度奖金额
//
// 示例值：3000
func (builder *OfferSalaryInfoBuilder) QuarterlyBonus(quarterlyBonus string) *OfferSalaryInfoBuilder {
	builder.quarterlyBonus = quarterlyBonus
	builder.quarterlyBonusFlag = true
	return builder
}

// 半年奖金额
//
// 示例值：10000
func (builder *OfferSalaryInfoBuilder) HalfYearBonus(halfYearBonus string) *OfferSalaryInfoBuilder {
	builder.halfYearBonus = halfYearBonus
	builder.halfYearBonusFlag = true
	return builder
}

func (builder *OfferSalaryInfoBuilder) Build() *OfferSalaryInfo {
	req := &OfferSalaryInfo{}
	if builder.currencyFlag {
		req.Currency = &builder.currency

	}
	if builder.basicSalaryFlag {
		req.BasicSalary = &builder.basicSalary

	}
	if builder.probationSalaryPercentageFlag {
		req.ProbationSalaryPercentage = &builder.probationSalaryPercentage

	}
	if builder.awardSalaryMultipleFlag {
		req.AwardSalaryMultiple = &builder.awardSalaryMultiple

	}
	if builder.optionSharesFlag {
		req.OptionShares = &builder.optionShares

	}
	if builder.quarterlyBonusFlag {
		req.QuarterlyBonus = &builder.quarterlyBonus

	}
	if builder.halfYearBonusFlag {
		req.HalfYearBonus = &builder.halfYearBonus

	}
	return req
}

type OfferSalaryInfoV2 struct {
	Id *string `json:"id,omitempty"` // 薪酬 ID

	SalaryStatus *int `json:"salary_status,omitempty"` // 薪酬状态

	ProbationSalaryPercentage *string `json:"probation_salary_percentage,omitempty"` // 试用期百分比

	AwardSalaryMultiple *string `json:"award_salary_multiple,omitempty"` // 年终奖月数

	OptionShares *string `json:"option_shares,omitempty"` // 期权股数

	QuarterlyBonus *string `json:"quarterly_bonus,omitempty"` // 季度奖金额

	HalfYearBonus *string `json:"half_year_bonus,omitempty"` // 半年奖金额

	TotalAnnualCash *string `json:"total_annual_cash,omitempty"` // 年度现金总额

	CustomizeInfoList []*ApplicationOfferCustomValue `json:"customize_info_list,omitempty"` // 薪酬自定义字段

	CreateTime *string `json:"create_time,omitempty"` // 薪酬创建时间戳（单位：毫秒）
}

type OfferSalaryInfoV2Builder struct {
	id     string // 薪酬 ID
	idFlag bool

	salaryStatus     int // 薪酬状态
	salaryStatusFlag bool

	probationSalaryPercentage     string // 试用期百分比
	probationSalaryPercentageFlag bool

	awardSalaryMultiple     string // 年终奖月数
	awardSalaryMultipleFlag bool

	optionShares     string // 期权股数
	optionSharesFlag bool

	quarterlyBonus     string // 季度奖金额
	quarterlyBonusFlag bool

	halfYearBonus     string // 半年奖金额
	halfYearBonusFlag bool

	totalAnnualCash     string // 年度现金总额
	totalAnnualCashFlag bool

	customizeInfoList     []*ApplicationOfferCustomValue // 薪酬自定义字段
	customizeInfoListFlag bool

	createTime     string // 薪酬创建时间戳（单位：毫秒）
	createTimeFlag bool
}

func NewOfferSalaryInfoV2Builder() *OfferSalaryInfoV2Builder {
	builder := &OfferSalaryInfoV2Builder{}
	return builder
}

// 薪酬 ID
//
// 示例值：6956641395189795116
func (builder *OfferSalaryInfoV2Builder) Id(id string) *OfferSalaryInfoV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 薪酬状态
//
// 示例值：1
func (builder *OfferSalaryInfoV2Builder) SalaryStatus(salaryStatus int) *OfferSalaryInfoV2Builder {
	builder.salaryStatus = salaryStatus
	builder.salaryStatusFlag = true
	return builder
}

// 试用期百分比
//
// 示例值：30%
func (builder *OfferSalaryInfoV2Builder) ProbationSalaryPercentage(probationSalaryPercentage string) *OfferSalaryInfoV2Builder {
	builder.probationSalaryPercentage = probationSalaryPercentage
	builder.probationSalaryPercentageFlag = true
	return builder
}

// 年终奖月数
//
// 示例值：3
func (builder *OfferSalaryInfoV2Builder) AwardSalaryMultiple(awardSalaryMultiple string) *OfferSalaryInfoV2Builder {
	builder.awardSalaryMultiple = awardSalaryMultiple
	builder.awardSalaryMultipleFlag = true
	return builder
}

// 期权股数
//
// 示例值：100
func (builder *OfferSalaryInfoV2Builder) OptionShares(optionShares string) *OfferSalaryInfoV2Builder {
	builder.optionShares = optionShares
	builder.optionSharesFlag = true
	return builder
}

// 季度奖金额
//
// 示例值：1000
func (builder *OfferSalaryInfoV2Builder) QuarterlyBonus(quarterlyBonus string) *OfferSalaryInfoV2Builder {
	builder.quarterlyBonus = quarterlyBonus
	builder.quarterlyBonusFlag = true
	return builder
}

// 半年奖金额
//
// 示例值：3000
func (builder *OfferSalaryInfoV2Builder) HalfYearBonus(halfYearBonus string) *OfferSalaryInfoV2Builder {
	builder.halfYearBonus = halfYearBonus
	builder.halfYearBonusFlag = true
	return builder
}

// 年度现金总额
//
// 示例值：200000
func (builder *OfferSalaryInfoV2Builder) TotalAnnualCash(totalAnnualCash string) *OfferSalaryInfoV2Builder {
	builder.totalAnnualCash = totalAnnualCash
	builder.totalAnnualCashFlag = true
	return builder
}

// 薪酬自定义字段
//
// 示例值：
func (builder *OfferSalaryInfoV2Builder) CustomizeInfoList(customizeInfoList []*ApplicationOfferCustomValue) *OfferSalaryInfoV2Builder {
	builder.customizeInfoList = customizeInfoList
	builder.customizeInfoListFlag = true
	return builder
}

// 薪酬创建时间戳（单位：毫秒）
//
// 示例值：1619720918463
func (builder *OfferSalaryInfoV2Builder) CreateTime(createTime string) *OfferSalaryInfoV2Builder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *OfferSalaryInfoV2Builder) Build() *OfferSalaryInfoV2 {
	req := &OfferSalaryInfoV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.salaryStatusFlag {
		req.SalaryStatus = &builder.salaryStatus

	}
	if builder.probationSalaryPercentageFlag {
		req.ProbationSalaryPercentage = &builder.probationSalaryPercentage

	}
	if builder.awardSalaryMultipleFlag {
		req.AwardSalaryMultiple = &builder.awardSalaryMultiple

	}
	if builder.optionSharesFlag {
		req.OptionShares = &builder.optionShares

	}
	if builder.quarterlyBonusFlag {
		req.QuarterlyBonus = &builder.quarterlyBonus

	}
	if builder.halfYearBonusFlag {
		req.HalfYearBonus = &builder.halfYearBonus

	}
	if builder.totalAnnualCashFlag {
		req.TotalAnnualCash = &builder.totalAnnualCash

	}
	if builder.customizeInfoListFlag {
		req.CustomizeInfoList = builder.customizeInfoList
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type OfferSchema struct {
	Id *string `json:"id,omitempty"` // offer申请表ID

	Scenario *int `json:"scenario,omitempty"` // offer申请表使用场景

	Version *int `json:"version,omitempty"` // 申请表版本

	ObjectList []*OfferSchemaDetail `json:"object_list,omitempty"` // 字段对象信息
}

type OfferSchemaBuilder struct {
	id     string // offer申请表ID
	idFlag bool

	scenario     int // offer申请表使用场景
	scenarioFlag bool

	version     int // 申请表版本
	versionFlag bool

	objectList     []*OfferSchemaDetail // 字段对象信息
	objectListFlag bool
}

func NewOfferSchemaBuilder() *OfferSchemaBuilder {
	builder := &OfferSchemaBuilder{}
	return builder
}

// offer申请表ID
//
// 示例值：1213213123123
func (builder *OfferSchemaBuilder) Id(id string) *OfferSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// offer申请表使用场景
//
// 示例值：1
func (builder *OfferSchemaBuilder) Scenario(scenario int) *OfferSchemaBuilder {
	builder.scenario = scenario
	builder.scenarioFlag = true
	return builder
}

// 申请表版本
//
// 示例值：121
func (builder *OfferSchemaBuilder) Version(version int) *OfferSchemaBuilder {
	builder.version = version
	builder.versionFlag = true
	return builder
}

// 字段对象信息
//
// 示例值：
func (builder *OfferSchemaBuilder) ObjectList(objectList []*OfferSchemaDetail) *OfferSchemaBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *OfferSchemaBuilder) Build() *OfferSchema {
	req := &OfferSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.scenarioFlag {
		req.Scenario = &builder.scenario

	}
	if builder.versionFlag {
		req.Version = &builder.version

	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type OfferSchemaChild struct {
	Id *string `json:"id,omitempty"` // offer申请表ID

	Scenario *int `json:"scenario,omitempty"` // offer申请表使用场景

	Version *int `json:"version,omitempty"` // 申请表版本

	ObjectList []*OfferSchemaDetail `json:"object_list,omitempty"` // 字段对象信息
}

type OfferSchemaChildBuilder struct {
	id     string // offer申请表ID
	idFlag bool

	scenario     int // offer申请表使用场景
	scenarioFlag bool

	version     int // 申请表版本
	versionFlag bool

	objectList     []*OfferSchemaDetail // 字段对象信息
	objectListFlag bool
}

func NewOfferSchemaChildBuilder() *OfferSchemaChildBuilder {
	builder := &OfferSchemaChildBuilder{}
	return builder
}

// offer申请表ID
//
// 示例值：1213213123123
func (builder *OfferSchemaChildBuilder) Id(id string) *OfferSchemaChildBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// offer申请表使用场景
//
// 示例值：1
func (builder *OfferSchemaChildBuilder) Scenario(scenario int) *OfferSchemaChildBuilder {
	builder.scenario = scenario
	builder.scenarioFlag = true
	return builder
}

// 申请表版本
//
// 示例值：121
func (builder *OfferSchemaChildBuilder) Version(version int) *OfferSchemaChildBuilder {
	builder.version = version
	builder.versionFlag = true
	return builder
}

// 字段对象信息
//
// 示例值：
func (builder *OfferSchemaChildBuilder) ObjectList(objectList []*OfferSchemaDetail) *OfferSchemaChildBuilder {
	builder.objectList = objectList
	builder.objectListFlag = true
	return builder
}

func (builder *OfferSchemaChildBuilder) Build() *OfferSchemaChild {
	req := &OfferSchemaChild{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.scenarioFlag {
		req.Scenario = &builder.scenario

	}
	if builder.versionFlag {
		req.Version = &builder.version

	}
	if builder.objectListFlag {
		req.ObjectList = builder.objectList
	}
	return req
}

type OfferSchemaDetail struct {
	Id *string `json:"id,omitempty"` // 字段ID

	Name *OfferSchemaName `json:"name,omitempty"` // 字段名称

	Type *string `json:"type,omitempty"` // 字段类型, text=单行文本, long_text=多行文本, select=单选, multi_select=多选, date_select=日期, number=数字

	IsCustomized *bool `json:"is_customized,omitempty"` // 字段是否为自定义

	OptionList []*OfferSchemaDetailOption `json:"option_list,omitempty"` // 单选/多选可选择字段的选项值
}

type OfferSchemaDetailBuilder struct {
	id     string // 字段ID
	idFlag bool

	name     *OfferSchemaName // 字段名称
	nameFlag bool

	type_    string // 字段类型, text=单行文本, long_text=多行文本, select=单选, multi_select=多选, date_select=日期, number=数字
	typeFlag bool

	isCustomized     bool // 字段是否为自定义
	isCustomizedFlag bool

	optionList     []*OfferSchemaDetailOption // 单选/多选可选择字段的选项值
	optionListFlag bool
}

func NewOfferSchemaDetailBuilder() *OfferSchemaDetailBuilder {
	builder := &OfferSchemaDetailBuilder{}
	return builder
}

// 字段ID
//
// 示例值：1213213123123
func (builder *OfferSchemaDetailBuilder) Id(id string) *OfferSchemaDetailBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *OfferSchemaDetailBuilder) Name(name *OfferSchemaName) *OfferSchemaDetailBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段类型, text=单行文本, long_text=多行文本, select=单选, multi_select=多选, date_select=日期, number=数字
//
// 示例值：number
func (builder *OfferSchemaDetailBuilder) Type(type_ string) *OfferSchemaDetailBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 字段是否为自定义
//
// 示例值：true
func (builder *OfferSchemaDetailBuilder) IsCustomized(isCustomized bool) *OfferSchemaDetailBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 单选/多选可选择字段的选项值
//
// 示例值：
func (builder *OfferSchemaDetailBuilder) OptionList(optionList []*OfferSchemaDetailOption) *OfferSchemaDetailBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

func (builder *OfferSchemaDetailBuilder) Build() *OfferSchemaDetail {
	req := &OfferSchemaDetail{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	return req
}

type OfferSchemaDetailOption struct {
	Name *OfferSchemaName `json:"name,omitempty"` // 名字

	Index *int `json:"index,omitempty"` // 选项序号

	ActiveStatus *int `json:"active_status,omitempty"` // 选项当前是否启用
}

type OfferSchemaDetailOptionBuilder struct {
	name     *OfferSchemaName // 名字
	nameFlag bool

	index     int // 选项序号
	indexFlag bool

	activeStatus     int // 选项当前是否启用
	activeStatusFlag bool
}

func NewOfferSchemaDetailOptionBuilder() *OfferSchemaDetailOptionBuilder {
	builder := &OfferSchemaDetailOptionBuilder{}
	return builder
}

// 名字
//
// 示例值：
func (builder *OfferSchemaDetailOptionBuilder) Name(name *OfferSchemaName) *OfferSchemaDetailOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项序号
//
// 示例值：121
func (builder *OfferSchemaDetailOptionBuilder) Index(index int) *OfferSchemaDetailOptionBuilder {
	builder.index = index
	builder.indexFlag = true
	return builder
}

// 选项当前是否启用
//
// 示例值：1
func (builder *OfferSchemaDetailOptionBuilder) ActiveStatus(activeStatus int) *OfferSchemaDetailOptionBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *OfferSchemaDetailOptionBuilder) Build() *OfferSchemaDetailOption {
	req := &OfferSchemaDetailOption{}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.indexFlag {
		req.Index = &builder.index

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type OfferSchemaListInfo struct {
	SchemaList []*OfferSchemaChild `json:"schema_list,omitempty"` // offer申请表列表
}

type OfferSchemaListInfoBuilder struct {
	schemaList     []*OfferSchemaChild // offer申请表列表
	schemaListFlag bool
}

func NewOfferSchemaListInfoBuilder() *OfferSchemaListInfoBuilder {
	builder := &OfferSchemaListInfoBuilder{}
	return builder
}

// offer申请表列表
//
// 示例值：
func (builder *OfferSchemaListInfoBuilder) SchemaList(schemaList []*OfferSchemaChild) *OfferSchemaListInfoBuilder {
	builder.schemaList = schemaList
	builder.schemaListFlag = true
	return builder
}

func (builder *OfferSchemaListInfoBuilder) Build() *OfferSchemaListInfo {
	req := &OfferSchemaListInfo{}
	if builder.schemaListFlag {
		req.SchemaList = builder.schemaList
	}
	return req
}

type OfferSchemaName struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文名

	EnUs *string `json:"en_us,omitempty"` // 英文名
}

type OfferSchemaNameBuilder struct {
	zhCn     string // 中文名
	zhCnFlag bool

	enUs     string // 英文名
	enUsFlag bool
}

func NewOfferSchemaNameBuilder() *OfferSchemaNameBuilder {
	builder := &OfferSchemaNameBuilder{}
	return builder
}

// 中文名
//
// 示例值：名字
func (builder *OfferSchemaNameBuilder) ZhCn(zhCn string) *OfferSchemaNameBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文名
//
// 示例值：name
func (builder *OfferSchemaNameBuilder) EnUs(enUs string) *OfferSchemaNameBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

func (builder *OfferSchemaNameBuilder) Build() *OfferSchemaName {
	req := &OfferSchemaName{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	return req
}

type OfferSelectionObject struct {
	SchemaVersion *int `json:"schema_version,omitempty"` // 自定义字段所在的审批表版本

	OptionList []*OfferSchemaDetailOption `json:"option_list,omitempty"` // 选项
}

type OfferSelectionObjectBuilder struct {
	schemaVersion     int // 自定义字段所在的审批表版本
	schemaVersionFlag bool

	optionList     []*OfferSchemaDetailOption // 选项
	optionListFlag bool
}

func NewOfferSelectionObjectBuilder() *OfferSelectionObjectBuilder {
	builder := &OfferSelectionObjectBuilder{}
	return builder
}

// 自定义字段所在的审批表版本
//
// 示例值：
func (builder *OfferSelectionObjectBuilder) SchemaVersion(schemaVersion int) *OfferSelectionObjectBuilder {
	builder.schemaVersion = schemaVersion
	builder.schemaVersionFlag = true
	return builder
}

// 选项
//
// 示例值：
func (builder *OfferSelectionObjectBuilder) OptionList(optionList []*OfferSchemaDetailOption) *OfferSelectionObjectBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

func (builder *OfferSelectionObjectBuilder) Build() *OfferSelectionObject {
	req := &OfferSelectionObject{}
	if builder.schemaVersionFlag {
		req.SchemaVersion = &builder.schemaVersion

	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	return req
}

type OfferSendRecord struct {
	OfferSendRecordId *string `json:"offer_send_record_id,omitempty"` // offer 发送记录 id

	OperatorUserId *string `json:"operator_user_id,omitempty"` // 操作人 user id

	SendTime *string `json:"send_time,omitempty"` // offer 发送时间

	OfferLetterStatus *int `json:"offer_letter_status,omitempty"` // offer 状态

	EmailInfo *OfferEmailInfo `json:"email_info,omitempty"` // offer 邮件信息

	AcceptanceList []*Acceptance `json:"acceptance_list,omitempty"` // 跟进记录

	OfferFileList []*OfferFile `json:"offer_file_list,omitempty"` // offer 文件列表

	OfferSignatureInfo *OfferSignatureInfo `json:"offer_signature_info,omitempty"` // offer 签署信息
}

type OfferSendRecordBuilder struct {
	offerSendRecordId     string // offer 发送记录 id
	offerSendRecordIdFlag bool

	operatorUserId     string // 操作人 user id
	operatorUserIdFlag bool

	sendTime     string // offer 发送时间
	sendTimeFlag bool

	offerLetterStatus     int // offer 状态
	offerLetterStatusFlag bool

	emailInfo     *OfferEmailInfo // offer 邮件信息
	emailInfoFlag bool

	acceptanceList     []*Acceptance // 跟进记录
	acceptanceListFlag bool

	offerFileList     []*OfferFile // offer 文件列表
	offerFileListFlag bool

	offerSignatureInfo     *OfferSignatureInfo // offer 签署信息
	offerSignatureInfoFlag bool
}

func NewOfferSendRecordBuilder() *OfferSendRecordBuilder {
	builder := &OfferSendRecordBuilder{}
	return builder
}

// offer 发送记录 id
//
// 示例值：1718959426734
func (builder *OfferSendRecordBuilder) OfferSendRecordId(offerSendRecordId string) *OfferSendRecordBuilder {
	builder.offerSendRecordId = offerSendRecordId
	builder.offerSendRecordIdFlag = true
	return builder
}

// 操作人 user id
//
// 示例值：ou_ce613028fe74745421f5dc320bb9c709
func (builder *OfferSendRecordBuilder) OperatorUserId(operatorUserId string) *OfferSendRecordBuilder {
	builder.operatorUserId = operatorUserId
	builder.operatorUserIdFlag = true
	return builder
}

// offer 发送时间
//
// 示例值：1718959426734
func (builder *OfferSendRecordBuilder) SendTime(sendTime string) *OfferSendRecordBuilder {
	builder.sendTime = sendTime
	builder.sendTimeFlag = true
	return builder
}

// offer 状态
//
// 示例值：1
func (builder *OfferSendRecordBuilder) OfferLetterStatus(offerLetterStatus int) *OfferSendRecordBuilder {
	builder.offerLetterStatus = offerLetterStatus
	builder.offerLetterStatusFlag = true
	return builder
}

// offer 邮件信息
//
// 示例值：
func (builder *OfferSendRecordBuilder) EmailInfo(emailInfo *OfferEmailInfo) *OfferSendRecordBuilder {
	builder.emailInfo = emailInfo
	builder.emailInfoFlag = true
	return builder
}

// 跟进记录
//
// 示例值：
func (builder *OfferSendRecordBuilder) AcceptanceList(acceptanceList []*Acceptance) *OfferSendRecordBuilder {
	builder.acceptanceList = acceptanceList
	builder.acceptanceListFlag = true
	return builder
}

// offer 文件列表
//
// 示例值：
func (builder *OfferSendRecordBuilder) OfferFileList(offerFileList []*OfferFile) *OfferSendRecordBuilder {
	builder.offerFileList = offerFileList
	builder.offerFileListFlag = true
	return builder
}

// offer 签署信息
//
// 示例值：
func (builder *OfferSendRecordBuilder) OfferSignatureInfo(offerSignatureInfo *OfferSignatureInfo) *OfferSendRecordBuilder {
	builder.offerSignatureInfo = offerSignatureInfo
	builder.offerSignatureInfoFlag = true
	return builder
}

func (builder *OfferSendRecordBuilder) Build() *OfferSendRecord {
	req := &OfferSendRecord{}
	if builder.offerSendRecordIdFlag {
		req.OfferSendRecordId = &builder.offerSendRecordId

	}
	if builder.operatorUserIdFlag {
		req.OperatorUserId = &builder.operatorUserId

	}
	if builder.sendTimeFlag {
		req.SendTime = &builder.sendTime

	}
	if builder.offerLetterStatusFlag {
		req.OfferLetterStatus = &builder.offerLetterStatus

	}
	if builder.emailInfoFlag {
		req.EmailInfo = builder.emailInfo
	}
	if builder.acceptanceListFlag {
		req.AcceptanceList = builder.acceptanceList
	}
	if builder.offerFileListFlag {
		req.OfferFileList = builder.offerFileList
	}
	if builder.offerSignatureInfoFlag {
		req.OfferSignatureInfo = builder.offerSignatureInfo
	}
	return req
}

type OfferSignatureInfo struct {
	Id *string `json:"id,omitempty"` // 电子签信息 id

	SignatureStatus *int `json:"signature_status,omitempty"` // 电子签签署状态

	AttachmentList []*SignatureAttachment `json:"attachment_list,omitempty"` // 电子签附件列表
}

type OfferSignatureInfoBuilder struct {
	id     string // 电子签信息 id
	idFlag bool

	signatureStatus     int // 电子签签署状态
	signatureStatusFlag bool

	attachmentList     []*SignatureAttachment // 电子签附件列表
	attachmentListFlag bool
}

func NewOfferSignatureInfoBuilder() *OfferSignatureInfoBuilder {
	builder := &OfferSignatureInfoBuilder{}
	return builder
}

// 电子签信息 id
//
// 示例值：1718959426734
func (builder *OfferSignatureInfoBuilder) Id(id string) *OfferSignatureInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 电子签签署状态
//
// 示例值：1
func (builder *OfferSignatureInfoBuilder) SignatureStatus(signatureStatus int) *OfferSignatureInfoBuilder {
	builder.signatureStatus = signatureStatus
	builder.signatureStatusFlag = true
	return builder
}

// 电子签附件列表
//
// 示例值：xxx
func (builder *OfferSignatureInfoBuilder) AttachmentList(attachmentList []*SignatureAttachment) *OfferSignatureInfoBuilder {
	builder.attachmentList = attachmentList
	builder.attachmentListFlag = true
	return builder
}

func (builder *OfferSignatureInfoBuilder) Build() *OfferSignatureInfo {
	req := &OfferSignatureInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.signatureStatusFlag {
		req.SignatureStatus = &builder.signatureStatus

	}
	if builder.attachmentListFlag {
		req.AttachmentList = builder.attachmentList
	}
	return req
}

type PermissionCollection struct {
	FeaturePermissions []*IdNameObject `json:"feature_permissions,omitempty"` // 功能权限

	ManagementPermissions []*IdNameObject `json:"management_permissions,omitempty"` // 管理权限

	DataPermissions []*DataPermission `json:"data_permissions,omitempty"` // 数据权限

	BusinessManagementScopes []*BusinessManagementScope `json:"business_management_scopes,omitempty"` // 业务管理范围
}

type PermissionCollectionBuilder struct {
	featurePermissions     []*IdNameObject // 功能权限
	featurePermissionsFlag bool

	managementPermissions     []*IdNameObject // 管理权限
	managementPermissionsFlag bool

	dataPermissions     []*DataPermission // 数据权限
	dataPermissionsFlag bool

	businessManagementScopes     []*BusinessManagementScope // 业务管理范围
	businessManagementScopesFlag bool
}

func NewPermissionCollectionBuilder() *PermissionCollectionBuilder {
	builder := &PermissionCollectionBuilder{}
	return builder
}

// 功能权限
//
// 示例值：
func (builder *PermissionCollectionBuilder) FeaturePermissions(featurePermissions []*IdNameObject) *PermissionCollectionBuilder {
	builder.featurePermissions = featurePermissions
	builder.featurePermissionsFlag = true
	return builder
}

// 管理权限
//
// 示例值：
func (builder *PermissionCollectionBuilder) ManagementPermissions(managementPermissions []*IdNameObject) *PermissionCollectionBuilder {
	builder.managementPermissions = managementPermissions
	builder.managementPermissionsFlag = true
	return builder
}

// 数据权限
//
// 示例值：
func (builder *PermissionCollectionBuilder) DataPermissions(dataPermissions []*DataPermission) *PermissionCollectionBuilder {
	builder.dataPermissions = dataPermissions
	builder.dataPermissionsFlag = true
	return builder
}

// 业务管理范围
//
// 示例值：
func (builder *PermissionCollectionBuilder) BusinessManagementScopes(businessManagementScopes []*BusinessManagementScope) *PermissionCollectionBuilder {
	builder.businessManagementScopes = businessManagementScopes
	builder.businessManagementScopesFlag = true
	return builder
}

func (builder *PermissionCollectionBuilder) Build() *PermissionCollection {
	req := &PermissionCollection{}
	if builder.featurePermissionsFlag {
		req.FeaturePermissions = builder.featurePermissions
	}
	if builder.managementPermissionsFlag {
		req.ManagementPermissions = builder.managementPermissions
	}
	if builder.dataPermissionsFlag {
		req.DataPermissions = builder.dataPermissions
	}
	if builder.businessManagementScopesFlag {
		req.BusinessManagementScopes = builder.businessManagementScopes
	}
	return req
}

type PermissionGroupInfo struct {
	PermissionIds []string `json:"permission_ids,omitempty"` // 权限点ID列表

	ScopeRule *PermissionScopeRule `json:"scope_rule,omitempty"` // 管理范围
}

type PermissionGroupInfoBuilder struct {
	permissionIds     []string // 权限点ID列表
	permissionIdsFlag bool

	scopeRule     *PermissionScopeRule // 管理范围
	scopeRuleFlag bool
}

func NewPermissionGroupInfoBuilder() *PermissionGroupInfoBuilder {
	builder := &PermissionGroupInfoBuilder{}
	return builder
}

// 权限点ID列表
//
// 示例值：
func (builder *PermissionGroupInfoBuilder) PermissionIds(permissionIds []string) *PermissionGroupInfoBuilder {
	builder.permissionIds = permissionIds
	builder.permissionIdsFlag = true
	return builder
}

// 管理范围
//
// 示例值：
func (builder *PermissionGroupInfoBuilder) ScopeRule(scopeRule *PermissionScopeRule) *PermissionGroupInfoBuilder {
	builder.scopeRule = scopeRule
	builder.scopeRuleFlag = true
	return builder
}

func (builder *PermissionGroupInfoBuilder) Build() *PermissionGroupInfo {
	req := &PermissionGroupInfo{}
	if builder.permissionIdsFlag {
		req.PermissionIds = builder.permissionIds
	}
	if builder.scopeRuleFlag {
		req.ScopeRule = builder.scopeRule
	}
	return req
}

type PermissionScopeRule struct {
	RuleType *int `json:"rule_type,omitempty"` // 管理范围
}

type PermissionScopeRuleBuilder struct {
	ruleType     int // 管理范围
	ruleTypeFlag bool
}

func NewPermissionScopeRuleBuilder() *PermissionScopeRuleBuilder {
	builder := &PermissionScopeRuleBuilder{}
	return builder
}

// 管理范围
//
// 示例值：
func (builder *PermissionScopeRuleBuilder) RuleType(ruleType int) *PermissionScopeRuleBuilder {
	builder.ruleType = ruleType
	builder.ruleTypeFlag = true
	return builder
}

func (builder *PermissionScopeRuleBuilder) Build() *PermissionScopeRule {
	req := &PermissionScopeRule{}
	if builder.ruleTypeFlag {
		req.RuleType = &builder.ruleType

	}
	return req
}

type Point struct {
	Amount *int64 `json:"amount,omitempty"` // 数额
}

type PointBuilder struct {
	amount     int64 // 数额
	amountFlag bool
}

func NewPointBuilder() *PointBuilder {
	builder := &PointBuilder{}
	return builder
}

// 数额
//
// 示例值：100
func (builder *PointBuilder) Amount(amount int64) *PointBuilder {
	builder.amount = amount
	builder.amountFlag = true
	return builder
}

func (builder *PointBuilder) Build() *Point {
	req := &Point{}
	if builder.amountFlag {
		req.Amount = &builder.amount

	}
	return req
}

type PortalJobPost struct {
	Id *string `json:"id,omitempty"` // 职位广告 ID

	Title *string `json:"title,omitempty"` // 标题

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	JobCode *string `json:"job_code,omitempty"` // 职位编码

	JobExpireTime *string `json:"job_expire_time,omitempty"` // 职位过期时间，「null」代表「长期有效」

	JobActiveStatus *int `json:"job_active_status,omitempty"` // 职位状态

	JobProcessType *int `json:"job_process_type,omitempty"` // 职位流程类型

	JobRecruitmentType *IdNameObject `json:"job_recruitment_type,omitempty"` // 职位雇佣类型

	JobDepartment *IdNameObject `json:"job_department,omitempty"` // 职位部门

	JobType *IdNameObject `json:"job_type,omitempty"` // 职位类型

	MinJobLevel *IdNameObject `json:"min_job_level,omitempty"` // 最低职级

	MaxJobLevel *IdNameObject `json:"max_job_level,omitempty"` // 最高职级

	Address *CommonAddress `json:"address,omitempty"` // 职位地址

	MinSalary *string `json:"min_salary,omitempty"` // 月薪范围-最低薪资

	MaxSalary *string `json:"max_salary,omitempty"` // 月薪范围-最高薪资

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	Experience *int `json:"experience,omitempty"` // 经验

	Headcount *int `json:"headcount,omitempty"` // 数量

	HighLightList []*IdNameObject `json:"high_light_list,omitempty"` // 职位亮点

	Description *string `json:"description,omitempty"` // 职位描述

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	Creator *IdNameObject `json:"creator,omitempty"` // 创建人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间

	CustomizedDataList []*WebsiteJobPostCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段

	JobFunction *IdNameObject `json:"job_function,omitempty"` // 职能分类

	Subject *IdNameObject `json:"subject,omitempty"` // 职位项目

	AddressList []*CommonAddress `json:"address_list,omitempty"` // 职位广告地址列表
}

type PortalJobPostBuilder struct {
	id     string // 职位广告 ID
	idFlag bool

	title     string // 标题
	titleFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	jobCode     string // 职位编码
	jobCodeFlag bool

	jobExpireTime     string // 职位过期时间，「null」代表「长期有效」
	jobExpireTimeFlag bool

	jobActiveStatus     int // 职位状态
	jobActiveStatusFlag bool

	jobProcessType     int // 职位流程类型
	jobProcessTypeFlag bool

	jobRecruitmentType     *IdNameObject // 职位雇佣类型
	jobRecruitmentTypeFlag bool

	jobDepartment     *IdNameObject // 职位部门
	jobDepartmentFlag bool

	jobType     *IdNameObject // 职位类型
	jobTypeFlag bool

	minJobLevel     *IdNameObject // 最低职级
	minJobLevelFlag bool

	maxJobLevel     *IdNameObject // 最高职级
	maxJobLevelFlag bool

	address     *CommonAddress // 职位地址
	addressFlag bool

	minSalary     string // 月薪范围-最低薪资
	minSalaryFlag bool

	maxSalary     string // 月薪范围-最高薪资
	maxSalaryFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	experience     int // 经验
	experienceFlag bool

	headcount     int // 数量
	headcountFlag bool

	highLightList     []*IdNameObject // 职位亮点
	highLightListFlag bool

	description     string // 职位描述
	descriptionFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	creator     *IdNameObject // 创建人
	creatorFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	modifyTime     string // 修改时间
	modifyTimeFlag bool

	customizedDataList     []*WebsiteJobPostCustomizedData // 自定义字段
	customizedDataListFlag bool

	jobFunction     *IdNameObject // 职能分类
	jobFunctionFlag bool

	subject     *IdNameObject // 职位项目
	subjectFlag bool

	addressList     []*CommonAddress // 职位广告地址列表
	addressListFlag bool
}

func NewPortalJobPostBuilder() *PortalJobPostBuilder {
	builder := &PortalJobPostBuilder{}
	return builder
}

// 职位广告 ID
//
// 示例值：1213213123123
func (builder *PortalJobPostBuilder) Id(id string) *PortalJobPostBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标题
//
// 示例值：测试
func (builder *PortalJobPostBuilder) Title(title string) *PortalJobPostBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位 ID
//
// 示例值：xxx
func (builder *PortalJobPostBuilder) JobId(jobId string) *PortalJobPostBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 职位编码
//
// 示例值：007
func (builder *PortalJobPostBuilder) JobCode(jobCode string) *PortalJobPostBuilder {
	builder.jobCode = jobCode
	builder.jobCodeFlag = true
	return builder
}

// 职位过期时间，「null」代表「长期有效」
//
// 示例值：1111
func (builder *PortalJobPostBuilder) JobExpireTime(jobExpireTime string) *PortalJobPostBuilder {
	builder.jobExpireTime = jobExpireTime
	builder.jobExpireTimeFlag = true
	return builder
}

// 职位状态
//
// 示例值：1
func (builder *PortalJobPostBuilder) JobActiveStatus(jobActiveStatus int) *PortalJobPostBuilder {
	builder.jobActiveStatus = jobActiveStatus
	builder.jobActiveStatusFlag = true
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *PortalJobPostBuilder) JobProcessType(jobProcessType int) *PortalJobPostBuilder {
	builder.jobProcessType = jobProcessType
	builder.jobProcessTypeFlag = true
	return builder
}

// 职位雇佣类型
//
// 示例值：
func (builder *PortalJobPostBuilder) JobRecruitmentType(jobRecruitmentType *IdNameObject) *PortalJobPostBuilder {
	builder.jobRecruitmentType = jobRecruitmentType
	builder.jobRecruitmentTypeFlag = true
	return builder
}

// 职位部门
//
// 示例值：
func (builder *PortalJobPostBuilder) JobDepartment(jobDepartment *IdNameObject) *PortalJobPostBuilder {
	builder.jobDepartment = jobDepartment
	builder.jobDepartmentFlag = true
	return builder
}

// 职位类型
//
// 示例值：
func (builder *PortalJobPostBuilder) JobType(jobType *IdNameObject) *PortalJobPostBuilder {
	builder.jobType = jobType
	builder.jobTypeFlag = true
	return builder
}

// 最低职级
//
// 示例值：
func (builder *PortalJobPostBuilder) MinJobLevel(minJobLevel *IdNameObject) *PortalJobPostBuilder {
	builder.minJobLevel = minJobLevel
	builder.minJobLevelFlag = true
	return builder
}

// 最高职级
//
// 示例值：
func (builder *PortalJobPostBuilder) MaxJobLevel(maxJobLevel *IdNameObject) *PortalJobPostBuilder {
	builder.maxJobLevel = maxJobLevel
	builder.maxJobLevelFlag = true
	return builder
}

// 职位地址
//
// 示例值：
func (builder *PortalJobPostBuilder) Address(address *CommonAddress) *PortalJobPostBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 月薪范围-最低薪资
//
// 示例值：5000
func (builder *PortalJobPostBuilder) MinSalary(minSalary string) *PortalJobPostBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 月薪范围-最高薪资
//
// 示例值：10000
func (builder *PortalJobPostBuilder) MaxSalary(maxSalary string) *PortalJobPostBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *PortalJobPostBuilder) RequiredDegree(requiredDegree int) *PortalJobPostBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 经验
//
// 示例值：1
func (builder *PortalJobPostBuilder) Experience(experience int) *PortalJobPostBuilder {
	builder.experience = experience
	builder.experienceFlag = true
	return builder
}

// 数量
//
// 示例值：12
func (builder *PortalJobPostBuilder) Headcount(headcount int) *PortalJobPostBuilder {
	builder.headcount = headcount
	builder.headcountFlag = true
	return builder
}

// 职位亮点
//
// 示例值：
func (builder *PortalJobPostBuilder) HighLightList(highLightList []*IdNameObject) *PortalJobPostBuilder {
	builder.highLightList = highLightList
	builder.highLightListFlag = true
	return builder
}

// 职位描述
//
// 示例值：负责软件开发
func (builder *PortalJobPostBuilder) Description(description string) *PortalJobPostBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位要求
//
// 示例值：大专
func (builder *PortalJobPostBuilder) Requirement(requirement string) *PortalJobPostBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 创建人
//
// 示例值：
func (builder *PortalJobPostBuilder) Creator(creator *IdNameObject) *PortalJobPostBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// 创建时间
//
// 示例值：1111
func (builder *PortalJobPostBuilder) CreateTime(createTime string) *PortalJobPostBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 修改时间
//
// 示例值：222
func (builder *PortalJobPostBuilder) ModifyTime(modifyTime string) *PortalJobPostBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *PortalJobPostBuilder) CustomizedDataList(customizedDataList []*WebsiteJobPostCustomizedData) *PortalJobPostBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 职能分类
//
// 示例值：
func (builder *PortalJobPostBuilder) JobFunction(jobFunction *IdNameObject) *PortalJobPostBuilder {
	builder.jobFunction = jobFunction
	builder.jobFunctionFlag = true
	return builder
}

// 职位项目
//
// 示例值：
func (builder *PortalJobPostBuilder) Subject(subject *IdNameObject) *PortalJobPostBuilder {
	builder.subject = subject
	builder.subjectFlag = true
	return builder
}

// 职位广告地址列表
//
// 示例值：
func (builder *PortalJobPostBuilder) AddressList(addressList []*CommonAddress) *PortalJobPostBuilder {
	builder.addressList = addressList
	builder.addressListFlag = true
	return builder
}

func (builder *PortalJobPostBuilder) Build() *PortalJobPost {
	req := &PortalJobPost{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.jobCodeFlag {
		req.JobCode = &builder.jobCode

	}
	if builder.jobExpireTimeFlag {
		req.JobExpireTime = &builder.jobExpireTime

	}
	if builder.jobActiveStatusFlag {
		req.JobActiveStatus = &builder.jobActiveStatus

	}
	if builder.jobProcessTypeFlag {
		req.JobProcessType = &builder.jobProcessType

	}
	if builder.jobRecruitmentTypeFlag {
		req.JobRecruitmentType = builder.jobRecruitmentType
	}
	if builder.jobDepartmentFlag {
		req.JobDepartment = builder.jobDepartment
	}
	if builder.jobTypeFlag {
		req.JobType = builder.jobType
	}
	if builder.minJobLevelFlag {
		req.MinJobLevel = builder.minJobLevel
	}
	if builder.maxJobLevelFlag {
		req.MaxJobLevel = builder.maxJobLevel
	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.experienceFlag {
		req.Experience = &builder.experience

	}
	if builder.headcountFlag {
		req.Headcount = &builder.headcount

	}
	if builder.highLightListFlag {
		req.HighLightList = builder.highLightList
	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.jobFunctionFlag {
		req.JobFunction = builder.jobFunction
	}
	if builder.subjectFlag {
		req.Subject = builder.subject
	}
	if builder.addressListFlag {
		req.AddressList = builder.addressList
	}
	return req
}

type ProjectInfo struct {
	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	Link *string `json:"link,omitempty"` // 项目链接

	Name *string `json:"name,omitempty"` // 项目名称

	Role *string `json:"role,omitempty"` // 项目角色

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间
}

type ProjectInfoBuilder struct {
	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	link     string // 项目链接
	linkFlag bool

	name     string // 项目名称
	nameFlag bool

	role     string // 项目角色
	roleFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool
}

func NewProjectInfoBuilder() *ProjectInfoBuilder {
	builder := &ProjectInfoBuilder{}
	return builder
}

// 描述
//
// 示例值：6949805467799537964
func (builder *ProjectInfoBuilder) Desc(desc string) *ProjectInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间
//
// 示例值：1735664461000
func (builder *ProjectInfoBuilder) EndTime(endTime int64) *ProjectInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 项目链接
//
// 示例值：www.feishu.bytedance.com
func (builder *ProjectInfoBuilder) Link(link string) *ProjectInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 项目名称
//
// 示例值：项目名称
func (builder *ProjectInfoBuilder) Name(name string) *ProjectInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 项目角色
//
// 示例值：项目角色
func (builder *ProjectInfoBuilder) Role(role string) *ProjectInfoBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 开始时间
//
// 示例值：1735664461000
func (builder *ProjectInfoBuilder) StartTime(startTime int64) *ProjectInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

func (builder *ProjectInfoBuilder) Build() *ProjectInfo {
	req := &ProjectInfo{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	return req
}

type ProviderIdNameObject struct {
	ProviderId *string `json:"provider_id,omitempty"` // 供应商ID

	ProviderName *I18n `json:"provider_name,omitempty"` // 供应商名称信息
}

type ProviderIdNameObjectBuilder struct {
	providerId     string // 供应商ID
	providerIdFlag bool

	providerName     *I18n // 供应商名称信息
	providerNameFlag bool
}

func NewProviderIdNameObjectBuilder() *ProviderIdNameObjectBuilder {
	builder := &ProviderIdNameObjectBuilder{}
	return builder
}

// 供应商ID
//
// 示例值：6930815272790114324
func (builder *ProviderIdNameObjectBuilder) ProviderId(providerId string) *ProviderIdNameObjectBuilder {
	builder.providerId = providerId
	builder.providerIdFlag = true
	return builder
}

// 供应商名称信息
//
// 示例值：
func (builder *ProviderIdNameObjectBuilder) ProviderName(providerName *I18n) *ProviderIdNameObjectBuilder {
	builder.providerName = providerName
	builder.providerNameFlag = true
	return builder
}

func (builder *ProviderIdNameObjectBuilder) Build() *ProviderIdNameObject {
	req := &ProviderIdNameObject{}
	if builder.providerIdFlag {
		req.ProviderId = &builder.providerId

	}
	if builder.providerNameFlag {
		req.ProviderName = builder.providerName
	}
	return req
}

type PushStage struct {
}

type PushStageBuilder struct {
}

func NewPushStageBuilder() *PushStageBuilder {
	builder := &PushStageBuilder{}
	return builder
}

func (builder *PushStageBuilder) Build() *PushStage {
	req := &PushStage{}
	return req
}

type Question struct {
	QuestionId *string `json:"question_id,omitempty"` // 题目 ID

	QuestionName *string `json:"question_name,omitempty"` // 题目中文名称

	QuestionEnName *string `json:"question_en_name,omitempty"` // 题目英文名称

	QuestionDesc *string `json:"question_desc,omitempty"` // 题目中文描述

	QuestionEnDesc *string `json:"question_en_desc,omitempty"` // 题目英文描述

	QuestionType *int `json:"question_type,omitempty"` // 题目类型

	IsRequired *bool `json:"is_required,omitempty"` // 是否必填

	SelectOptionResultList []*SelectOptionResult `json:"select_option_result_list,omitempty"` // 选项题回答列表（单选题及多选题）

	FiveStartScoringResult *FiveStartScoringResult `json:"five_start_scoring_result,omitempty"` // 评分题回答

	DescriptionResult *string `json:"description_result,omitempty"` // 描述题回答
}

type QuestionBuilder struct {
	questionId     string // 题目 ID
	questionIdFlag bool

	questionName     string // 题目中文名称
	questionNameFlag bool

	questionEnName     string // 题目英文名称
	questionEnNameFlag bool

	questionDesc     string // 题目中文描述
	questionDescFlag bool

	questionEnDesc     string // 题目英文描述
	questionEnDescFlag bool

	questionType     int // 题目类型
	questionTypeFlag bool

	isRequired     bool // 是否必填
	isRequiredFlag bool

	selectOptionResultList     []*SelectOptionResult // 选项题回答列表（单选题及多选题）
	selectOptionResultListFlag bool

	fiveStartScoringResult     *FiveStartScoringResult // 评分题回答
	fiveStartScoringResultFlag bool

	descriptionResult     string // 描述题回答
	descriptionResultFlag bool
}

func NewQuestionBuilder() *QuestionBuilder {
	builder := &QuestionBuilder{}
	return builder
}

// 题目 ID
//
// 示例值：6950930570311829804
func (builder *QuestionBuilder) QuestionId(questionId string) *QuestionBuilder {
	builder.questionId = questionId
	builder.questionIdFlag = true
	return builder
}

// 题目中文名称
//
// 示例值：你的总体评价如何？
func (builder *QuestionBuilder) QuestionName(questionName string) *QuestionBuilder {
	builder.questionName = questionName
	builder.questionNameFlag = true
	return builder
}

// 题目英文名称
//
// 示例值：How would you describe your overall experience?
func (builder *QuestionBuilder) QuestionEnName(questionEnName string) *QuestionBuilder {
	builder.questionEnName = questionEnName
	builder.questionEnNameFlag = true
	return builder
}

// 题目中文描述
//
// 示例值：测试描述内容
func (builder *QuestionBuilder) QuestionDesc(questionDesc string) *QuestionBuilder {
	builder.questionDesc = questionDesc
	builder.questionDescFlag = true
	return builder
}

// 题目英文描述
//
// 示例值：Test Text
func (builder *QuestionBuilder) QuestionEnDesc(questionEnDesc string) *QuestionBuilder {
	builder.questionEnDesc = questionEnDesc
	builder.questionEnDescFlag = true
	return builder
}

// 题目类型
//
// 示例值：4
func (builder *QuestionBuilder) QuestionType(questionType int) *QuestionBuilder {
	builder.questionType = questionType
	builder.questionTypeFlag = true
	return builder
}

// 是否必填
//
// 示例值：true
func (builder *QuestionBuilder) IsRequired(isRequired bool) *QuestionBuilder {
	builder.isRequired = isRequired
	builder.isRequiredFlag = true
	return builder
}

// 选项题回答列表（单选题及多选题）
//
// 示例值：
func (builder *QuestionBuilder) SelectOptionResultList(selectOptionResultList []*SelectOptionResult) *QuestionBuilder {
	builder.selectOptionResultList = selectOptionResultList
	builder.selectOptionResultListFlag = true
	return builder
}

// 评分题回答
//
// 示例值：
func (builder *QuestionBuilder) FiveStartScoringResult(fiveStartScoringResult *FiveStartScoringResult) *QuestionBuilder {
	builder.fiveStartScoringResult = fiveStartScoringResult
	builder.fiveStartScoringResultFlag = true
	return builder
}

// 描述题回答
//
// 示例值：测试描述内容
func (builder *QuestionBuilder) DescriptionResult(descriptionResult string) *QuestionBuilder {
	builder.descriptionResult = descriptionResult
	builder.descriptionResultFlag = true
	return builder
}

func (builder *QuestionBuilder) Build() *Question {
	req := &Question{}
	if builder.questionIdFlag {
		req.QuestionId = &builder.questionId

	}
	if builder.questionNameFlag {
		req.QuestionName = &builder.questionName

	}
	if builder.questionEnNameFlag {
		req.QuestionEnName = &builder.questionEnName

	}
	if builder.questionDescFlag {
		req.QuestionDesc = &builder.questionDesc

	}
	if builder.questionEnDescFlag {
		req.QuestionEnDesc = &builder.questionEnDesc

	}
	if builder.questionTypeFlag {
		req.QuestionType = &builder.questionType

	}
	if builder.isRequiredFlag {
		req.IsRequired = &builder.isRequired

	}
	if builder.selectOptionResultListFlag {
		req.SelectOptionResultList = builder.selectOptionResultList
	}
	if builder.fiveStartScoringResultFlag {
		req.FiveStartScoringResult = builder.fiveStartScoringResult
	}
	if builder.descriptionResultFlag {
		req.DescriptionResult = &builder.descriptionResult

	}
	return req
}

type QuestionAssessment struct {
	QuestionType *int `json:"question_type,omitempty"` // 所关联面试题的类型

	Title *I18n `json:"title,omitempty"` // 关联面试题的名称

	Description *I18n `json:"description,omitempty"` // 关联面试题的描述

	Content *string `json:"content,omitempty"` // 面试者作答内容

	Abilities []*Ability `json:"abilities,omitempty"` // 能力项列表
}

type QuestionAssessmentBuilder struct {
	questionType     int // 所关联面试题的类型
	questionTypeFlag bool

	title     *I18n // 关联面试题的名称
	titleFlag bool

	description     *I18n // 关联面试题的描述
	descriptionFlag bool

	content     string // 面试者作答内容
	contentFlag bool

	abilities     []*Ability // 能力项列表
	abilitiesFlag bool
}

func NewQuestionAssessmentBuilder() *QuestionAssessmentBuilder {
	builder := &QuestionAssessmentBuilder{}
	return builder
}

// 所关联面试题的类型
//
// 示例值：1
func (builder *QuestionAssessmentBuilder) QuestionType(questionType int) *QuestionAssessmentBuilder {
	builder.questionType = questionType
	builder.questionTypeFlag = true
	return builder
}

// 关联面试题的名称
//
// 示例值：
func (builder *QuestionAssessmentBuilder) Title(title *I18n) *QuestionAssessmentBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 关联面试题的描述
//
// 示例值：
func (builder *QuestionAssessmentBuilder) Description(description *I18n) *QuestionAssessmentBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 面试者作答内容
//
// 示例值：test
func (builder *QuestionAssessmentBuilder) Content(content string) *QuestionAssessmentBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 能力项列表
//
// 示例值：
func (builder *QuestionAssessmentBuilder) Abilities(abilities []*Ability) *QuestionAssessmentBuilder {
	builder.abilities = abilities
	builder.abilitiesFlag = true
	return builder
}

func (builder *QuestionAssessmentBuilder) Build() *QuestionAssessment {
	req := &QuestionAssessment{}
	if builder.questionTypeFlag {
		req.QuestionType = &builder.questionType

	}
	if builder.titleFlag {
		req.Title = builder.title
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.abilitiesFlag {
		req.Abilities = builder.abilities
	}
	return req
}

type Questionnaire struct {
	QuestionnaireId *string `json:"questionnaire_id,omitempty"` // 问卷 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID；当「面试满意度问卷发送时间」选项选择「面试流程结束后」，将返回 投递 ID

	InterviewId *string `json:"interview_id,omitempty"` // 面试 ID；当「面试满意度问卷发送时间」选项选择「第一次面试后」、「每次面试后」将返回 面试 ID

	Version *int `json:"version,omitempty"` // 问卷版本

	Questions []*Question `json:"questions,omitempty"` // 题目列表

	HasAnswers *bool `json:"has_answers,omitempty"` // 是否完成作答

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间
}

type QuestionnaireBuilder struct {
	questionnaireId     string // 问卷 ID
	questionnaireIdFlag bool

	applicationId     string // 投递 ID；当「面试满意度问卷发送时间」选项选择「面试流程结束后」，将返回 投递 ID
	applicationIdFlag bool

	interviewId     string // 面试 ID；当「面试满意度问卷发送时间」选项选择「第一次面试后」、「每次面试后」将返回 面试 ID
	interviewIdFlag bool

	version     int // 问卷版本
	versionFlag bool

	questions     []*Question // 题目列表
	questionsFlag bool

	hasAnswers     bool // 是否完成作答
	hasAnswersFlag bool

	updateTime     string // 更新时间
	updateTimeFlag bool
}

func NewQuestionnaireBuilder() *QuestionnaireBuilder {
	builder := &QuestionnaireBuilder{}
	return builder
}

// 问卷 ID
//
// 示例值：7037986982531778860
func (builder *QuestionnaireBuilder) QuestionnaireId(questionnaireId string) *QuestionnaireBuilder {
	builder.questionnaireId = questionnaireId
	builder.questionnaireIdFlag = true
	return builder
}

// 投递 ID；当「面试满意度问卷发送时间」选项选择「面试流程结束后」，将返回 投递 ID
//
// 示例值：6985833807195212076
func (builder *QuestionnaireBuilder) ApplicationId(applicationId string) *QuestionnaireBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 面试 ID；当「面试满意度问卷发送时间」选项选择「第一次面试后」、「每次面试后」将返回 面试 ID
//
// 示例值：7038435261598763308
func (builder *QuestionnaireBuilder) InterviewId(interviewId string) *QuestionnaireBuilder {
	builder.interviewId = interviewId
	builder.interviewIdFlag = true
	return builder
}

// 问卷版本
//
// 示例值：59
func (builder *QuestionnaireBuilder) Version(version int) *QuestionnaireBuilder {
	builder.version = version
	builder.versionFlag = true
	return builder
}

// 题目列表
//
// 示例值：
func (builder *QuestionnaireBuilder) Questions(questions []*Question) *QuestionnaireBuilder {
	builder.questions = questions
	builder.questionsFlag = true
	return builder
}

// 是否完成作答
//
// 示例值：true
func (builder *QuestionnaireBuilder) HasAnswers(hasAnswers bool) *QuestionnaireBuilder {
	builder.hasAnswers = hasAnswers
	builder.hasAnswersFlag = true
	return builder
}

// 更新时间
//
// 示例值：1644412504000
func (builder *QuestionnaireBuilder) UpdateTime(updateTime string) *QuestionnaireBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

func (builder *QuestionnaireBuilder) Build() *Questionnaire {
	req := &Questionnaire{}
	if builder.questionnaireIdFlag {
		req.QuestionnaireId = &builder.questionnaireId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.interviewIdFlag {
		req.InterviewId = &builder.interviewId

	}
	if builder.versionFlag {
		req.Version = &builder.version

	}
	if builder.questionsFlag {
		req.Questions = builder.questions
	}
	if builder.hasAnswersFlag {
		req.HasAnswers = &builder.hasAnswers

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	return req
}

type RangeFilter struct {
	From *string `json:"from,omitempty"` // 起始值

	To *string `json:"to,omitempty"` // 终止值
}

type RangeFilterBuilder struct {
	from     string // 起始值
	fromFlag bool

	to     string // 终止值
	toFlag bool
}

func NewRangeFilterBuilder() *RangeFilterBuilder {
	builder := &RangeFilterBuilder{}
	return builder
}

// 起始值
//
// 示例值：20
func (builder *RangeFilterBuilder) From(from string) *RangeFilterBuilder {
	builder.from = from
	builder.fromFlag = true
	return builder
}

// 终止值
//
// 示例值：30
func (builder *RangeFilterBuilder) To(to string) *RangeFilterBuilder {
	builder.to = to
	builder.toFlag = true
	return builder
}

func (builder *RangeFilterBuilder) Build() *RangeFilter {
	req := &RangeFilter{}
	if builder.fromFlag {
		req.From = &builder.from

	}
	if builder.toFlag {
		req.To = &builder.to

	}
	return req
}

type RecommendedJobLevel struct {
	LowerLimitJobLevelName *I18n `json:"lower_limit_job_level_name,omitempty"` // 最低职级建议

	HigherLimitJobLevelName *I18n `json:"higher_limit_job_level_name,omitempty"` // 最低职级建议
}

type RecommendedJobLevelBuilder struct {
	lowerLimitJobLevelName     *I18n // 最低职级建议
	lowerLimitJobLevelNameFlag bool

	higherLimitJobLevelName     *I18n // 最低职级建议
	higherLimitJobLevelNameFlag bool
}

func NewRecommendedJobLevelBuilder() *RecommendedJobLevelBuilder {
	builder := &RecommendedJobLevelBuilder{}
	return builder
}

// 最低职级建议
//
// 示例值：
func (builder *RecommendedJobLevelBuilder) LowerLimitJobLevelName(lowerLimitJobLevelName *I18n) *RecommendedJobLevelBuilder {
	builder.lowerLimitJobLevelName = lowerLimitJobLevelName
	builder.lowerLimitJobLevelNameFlag = true
	return builder
}

// 最低职级建议
//
// 示例值：
func (builder *RecommendedJobLevelBuilder) HigherLimitJobLevelName(higherLimitJobLevelName *I18n) *RecommendedJobLevelBuilder {
	builder.higherLimitJobLevelName = higherLimitJobLevelName
	builder.higherLimitJobLevelNameFlag = true
	return builder
}

func (builder *RecommendedJobLevelBuilder) Build() *RecommendedJobLevel {
	req := &RecommendedJobLevel{}
	if builder.lowerLimitJobLevelNameFlag {
		req.LowerLimitJobLevelName = builder.lowerLimitJobLevelName
	}
	if builder.higherLimitJobLevelNameFlag {
		req.HigherLimitJobLevelName = builder.higherLimitJobLevelName
	}
	return req
}

type RecordScore struct {
	Score *float64 `json:"score,omitempty"` // 分数，即面试评价得分，精确到小数点后两位

	TotalScore *float64 `json:"total_score,omitempty"` // 满分，即面试评价的总分
}

type RecordScoreBuilder struct {
	score     float64 // 分数，即面试评价得分，精确到小数点后两位
	scoreFlag bool

	totalScore     float64 // 满分，即面试评价的总分
	totalScoreFlag bool
}

func NewRecordScoreBuilder() *RecordScoreBuilder {
	builder := &RecordScoreBuilder{}
	return builder
}

// 分数，即面试评价得分，精确到小数点后两位
//
// 示例值：100
func (builder *RecordScoreBuilder) Score(score float64) *RecordScoreBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 满分，即面试评价的总分
//
// 示例值：100
func (builder *RecordScoreBuilder) TotalScore(totalScore float64) *RecordScoreBuilder {
	builder.totalScore = totalScore
	builder.totalScoreFlag = true
	return builder
}

func (builder *RecordScoreBuilder) Build() *RecordScore {
	req := &RecordScore{}
	if builder.scoreFlag {
		req.Score = &builder.score

	}
	if builder.totalScoreFlag {
		req.TotalScore = &builder.totalScore

	}
	return req
}

type RecruitmentType struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type RecruitmentTypeBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewRecruitmentTypeBuilder() *RecruitmentTypeBuilder {
	builder := &RecruitmentTypeBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *RecruitmentTypeBuilder) Id(id string) *RecruitmentTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *RecruitmentTypeBuilder) Name(name string) *RecruitmentTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *RecruitmentTypeBuilder) EnName(enName string) *RecruitmentTypeBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *RecruitmentTypeBuilder) Build() *RecruitmentType {
	req := &RecruitmentType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type Referral struct {
	Id *string `json:"id,omitempty"` // 内推的 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	CreateTime *int64 `json:"create_time,omitempty"` // 创建时间（ms）

	ReferralUserId *string `json:"referral_user_id,omitempty"` // 内推人的 ID

	ReferralUser *IdNameObject `json:"referral_user,omitempty"` // 内推人信息
}

type ReferralBuilder struct {
	id     string // 内推的 ID
	idFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	createTime     int64 // 创建时间（ms）
	createTimeFlag bool

	referralUserId     string // 内推人的 ID
	referralUserIdFlag bool

	referralUser     *IdNameObject // 内推人信息
	referralUserFlag bool
}

func NewReferralBuilder() *ReferralBuilder {
	builder := &ReferralBuilder{}
	return builder
}

// 内推的 ID
//
// 示例值：6643786345878
func (builder *ReferralBuilder) Id(id string) *ReferralBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID
//
// 示例值：643452344576878
func (builder *ReferralBuilder) ApplicationId(applicationId string) *ReferralBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 创建时间（ms）
//
// 示例值：1618899376474
func (builder *ReferralBuilder) CreateTime(createTime int64) *ReferralBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 内推人的 ID
//
// 示例值：ou_xxxx
func (builder *ReferralBuilder) ReferralUserId(referralUserId string) *ReferralBuilder {
	builder.referralUserId = referralUserId
	builder.referralUserIdFlag = true
	return builder
}

// 内推人信息
//
// 示例值：
func (builder *ReferralBuilder) ReferralUser(referralUser *IdNameObject) *ReferralBuilder {
	builder.referralUser = referralUser
	builder.referralUserFlag = true
	return builder
}

func (builder *ReferralBuilder) Build() *Referral {
	req := &Referral{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.referralUserIdFlag {
		req.ReferralUserId = &builder.referralUserId

	}
	if builder.referralUserFlag {
		req.ReferralUser = builder.referralUser
	}
	return req
}

type ReferralBasicInfo struct {
	Id *string `json:"id,omitempty"` // 内推 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ReferralType *int `json:"referral_type,omitempty"` // 内推类型

	UserInfo *BasicUserInfo `json:"user_info,omitempty"` // 内推人信息

	CreateTime *string `json:"create_time,omitempty"` // 内推创建时间戳（单位：毫秒）

	ReferralMethod *int `json:"referral_method,omitempty"` // 内推方法
}

type ReferralBasicInfoBuilder struct {
	id     string // 内推 ID
	idFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	referralType     int // 内推类型
	referralTypeFlag bool

	userInfo     *BasicUserInfo // 内推人信息
	userInfoFlag bool

	createTime     string // 内推创建时间戳（单位：毫秒）
	createTimeFlag bool

	referralMethod     int // 内推方法
	referralMethodFlag bool
}

func NewReferralBasicInfoBuilder() *ReferralBasicInfoBuilder {
	builder := &ReferralBasicInfoBuilder{}
	return builder
}

// 内推 ID
//
// 示例值：6956498101012220204
func (builder *ReferralBasicInfoBuilder) Id(id string) *ReferralBasicInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7051498101012220201
func (builder *ReferralBasicInfoBuilder) ApplicationId(applicationId string) *ReferralBasicInfoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 内推类型
//
// 示例值：1
func (builder *ReferralBasicInfoBuilder) ReferralType(referralType int) *ReferralBasicInfoBuilder {
	builder.referralType = referralType
	builder.referralTypeFlag = true
	return builder
}

// 内推人信息
//
// 示例值：
func (builder *ReferralBasicInfoBuilder) UserInfo(userInfo *BasicUserInfo) *ReferralBasicInfoBuilder {
	builder.userInfo = userInfo
	builder.userInfoFlag = true
	return builder
}

// 内推创建时间戳（单位：毫秒）
//
// 示例值：1619720918791
func (builder *ReferralBasicInfoBuilder) CreateTime(createTime string) *ReferralBasicInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 内推方法
//
// 示例值：1
func (builder *ReferralBasicInfoBuilder) ReferralMethod(referralMethod int) *ReferralBasicInfoBuilder {
	builder.referralMethod = referralMethod
	builder.referralMethodFlag = true
	return builder
}

func (builder *ReferralBasicInfoBuilder) Build() *ReferralBasicInfo {
	req := &ReferralBasicInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.referralTypeFlag {
		req.ReferralType = &builder.referralType

	}
	if builder.userInfoFlag {
		req.UserInfo = builder.userInfo
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.referralMethodFlag {
		req.ReferralMethod = &builder.referralMethod

	}
	return req
}

type ReferralInfo struct {
	Id *string `json:"id,omitempty"` // 内推的 ID

	ApplicationIds []string `json:"application_ids,omitempty"` // 投递 ID 列表,包含：原始内推的投递 ID、转移到其他职位后的投递 ID、不包含被HR复捞(加入职位）的投递 ID，第一个投递就是原始投递ID

	CreateTime *string `json:"create_time,omitempty"` // 创建时间（ms）

	ReferralUser *IdNameObject `json:"referral_user,omitempty"` // 内推人信息
}

type ReferralInfoBuilder struct {
	id     string // 内推的 ID
	idFlag bool

	applicationIds     []string // 投递 ID 列表,包含：原始内推的投递 ID、转移到其他职位后的投递 ID、不包含被HR复捞(加入职位）的投递 ID，第一个投递就是原始投递ID
	applicationIdsFlag bool

	createTime     string // 创建时间（ms）
	createTimeFlag bool

	referralUser     *IdNameObject // 内推人信息
	referralUserFlag bool
}

func NewReferralInfoBuilder() *ReferralInfoBuilder {
	builder := &ReferralInfoBuilder{}
	return builder
}

// 内推的 ID
//
// 示例值：6930815272790114322
func (builder *ReferralInfoBuilder) Id(id string) *ReferralInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递 ID 列表,包含：原始内推的投递 ID、转移到其他职位后的投递 ID、不包含被HR复捞(加入职位）的投递 ID，第一个投递就是原始投递ID
//
// 示例值：
func (builder *ReferralInfoBuilder) ApplicationIds(applicationIds []string) *ReferralInfoBuilder {
	builder.applicationIds = applicationIds
	builder.applicationIdsFlag = true
	return builder
}

// 创建时间（ms）
//
// 示例值：1618899376474
func (builder *ReferralInfoBuilder) CreateTime(createTime string) *ReferralInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 内推人信息
//
// 示例值：
func (builder *ReferralInfoBuilder) ReferralUser(referralUser *IdNameObject) *ReferralInfoBuilder {
	builder.referralUser = referralUser
	builder.referralUserFlag = true
	return builder
}

func (builder *ReferralInfoBuilder) Build() *ReferralInfo {
	req := &ReferralInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdsFlag {
		req.ApplicationIds = builder.applicationIds
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.referralUserFlag {
		req.ReferralUser = builder.referralUser
	}
	return req
}

type ReferralInfoV2 struct {
	BasicInfo *ReferralBasicInfo `json:"basic_info,omitempty"` // 内推基本信息

	RecommendInfo *ReferralRecommendInfo `json:"recommend_info,omitempty"` // 内推关联推荐信息
}

type ReferralInfoV2Builder struct {
	basicInfo     *ReferralBasicInfo // 内推基本信息
	basicInfoFlag bool

	recommendInfo     *ReferralRecommendInfo // 内推关联推荐信息
	recommendInfoFlag bool
}

func NewReferralInfoV2Builder() *ReferralInfoV2Builder {
	builder := &ReferralInfoV2Builder{}
	return builder
}

// 内推基本信息
//
// 示例值：
func (builder *ReferralInfoV2Builder) BasicInfo(basicInfo *ReferralBasicInfo) *ReferralInfoV2Builder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 内推关联推荐信息
//
// 示例值：
func (builder *ReferralInfoV2Builder) RecommendInfo(recommendInfo *ReferralRecommendInfo) *ReferralInfoV2Builder {
	builder.recommendInfo = recommendInfo
	builder.recommendInfoFlag = true
	return builder
}

func (builder *ReferralInfoV2Builder) Build() *ReferralInfoV2 {
	req := &ReferralInfoV2{}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.recommendInfoFlag {
		req.RecommendInfo = builder.recommendInfo
	}
	return req
}

type ReferralRecommendInfo struct {
	Relationship *int `json:"relationship,omitempty"` // 与内推人关系

	Familiarity *int `json:"familiarity,omitempty"` // 熟悉程度

	Comment *string `json:"comment,omitempty"` // 推荐语

	SpecificRelationship *SpecificRelationship `json:"specific_relationship,omitempty"` // 特殊关系

	WorkAbilityFamiliarity *int `json:"work_ability_familiarity,omitempty"` // 工作能力熟悉程度

	MatchDegree *int `json:"match_degree,omitempty"` // 匹配度
}

type ReferralRecommendInfoBuilder struct {
	relationship     int // 与内推人关系
	relationshipFlag bool

	familiarity     int // 熟悉程度
	familiarityFlag bool

	comment     string // 推荐语
	commentFlag bool

	specificRelationship     *SpecificRelationship // 特殊关系
	specificRelationshipFlag bool

	workAbilityFamiliarity     int // 工作能力熟悉程度
	workAbilityFamiliarityFlag bool

	matchDegree     int // 匹配度
	matchDegreeFlag bool
}

func NewReferralRecommendInfoBuilder() *ReferralRecommendInfoBuilder {
	builder := &ReferralRecommendInfoBuilder{}
	return builder
}

// 与内推人关系
//
// 示例值：1
func (builder *ReferralRecommendInfoBuilder) Relationship(relationship int) *ReferralRecommendInfoBuilder {
	builder.relationship = relationship
	builder.relationshipFlag = true
	return builder
}

// 熟悉程度
//
// 示例值：0
func (builder *ReferralRecommendInfoBuilder) Familiarity(familiarity int) *ReferralRecommendInfoBuilder {
	builder.familiarity = familiarity
	builder.familiarityFlag = true
	return builder
}

// 推荐语
//
// 示例值：该同学十分优秀，经验丰富。
func (builder *ReferralRecommendInfoBuilder) Comment(comment string) *ReferralRecommendInfoBuilder {
	builder.comment = comment
	builder.commentFlag = true
	return builder
}

// 特殊关系
//
// 示例值：
func (builder *ReferralRecommendInfoBuilder) SpecificRelationship(specificRelationship *SpecificRelationship) *ReferralRecommendInfoBuilder {
	builder.specificRelationship = specificRelationship
	builder.specificRelationshipFlag = true
	return builder
}

// 工作能力熟悉程度
//
// 示例值：1
func (builder *ReferralRecommendInfoBuilder) WorkAbilityFamiliarity(workAbilityFamiliarity int) *ReferralRecommendInfoBuilder {
	builder.workAbilityFamiliarity = workAbilityFamiliarity
	builder.workAbilityFamiliarityFlag = true
	return builder
}

// 匹配度
//
// 示例值：1
func (builder *ReferralRecommendInfoBuilder) MatchDegree(matchDegree int) *ReferralRecommendInfoBuilder {
	builder.matchDegree = matchDegree
	builder.matchDegreeFlag = true
	return builder
}

func (builder *ReferralRecommendInfoBuilder) Build() *ReferralRecommendInfo {
	req := &ReferralRecommendInfo{}
	if builder.relationshipFlag {
		req.Relationship = &builder.relationship

	}
	if builder.familiarityFlag {
		req.Familiarity = &builder.familiarity

	}
	if builder.commentFlag {
		req.Comment = &builder.comment

	}
	if builder.specificRelationshipFlag {
		req.SpecificRelationship = builder.specificRelationship
	}
	if builder.workAbilityFamiliarityFlag {
		req.WorkAbilityFamiliarity = &builder.workAbilityFamiliarity

	}
	if builder.matchDegreeFlag {
		req.MatchDegree = &builder.matchDegree

	}
	return req
}

type RegistrationBasicInfo struct {
	Id *string `json:"id,omitempty"` // ID

	RegistrationTime *int64 `json:"registration_time,omitempty"` // 创建时间

	DownloadUrl *string `json:"download_url,omitempty"` // 下载链接

	Scenario *int `json:"scenario,omitempty"` // 登记表场景
}

type RegistrationBasicInfoBuilder struct {
	id     string // ID
	idFlag bool

	registrationTime     int64 // 创建时间
	registrationTimeFlag bool

	downloadUrl     string // 下载链接
	downloadUrlFlag bool

	scenario     int // 登记表场景
	scenarioFlag bool
}

func NewRegistrationBasicInfoBuilder() *RegistrationBasicInfoBuilder {
	builder := &RegistrationBasicInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6833685612520950030
func (builder *RegistrationBasicInfoBuilder) Id(id string) *RegistrationBasicInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 创建时间
//
// 示例值：1618494330932
func (builder *RegistrationBasicInfoBuilder) RegistrationTime(registrationTime int64) *RegistrationBasicInfoBuilder {
	builder.registrationTime = registrationTime
	builder.registrationTimeFlag = true
	return builder
}

// 下载链接
//
// 示例值：https://hire.feishu.cn/hire/file/blob/...token.../
func (builder *RegistrationBasicInfoBuilder) DownloadUrl(downloadUrl string) *RegistrationBasicInfoBuilder {
	builder.downloadUrl = downloadUrl
	builder.downloadUrlFlag = true
	return builder
}

// 登记表场景
//
// 示例值：5
func (builder *RegistrationBasicInfoBuilder) Scenario(scenario int) *RegistrationBasicInfoBuilder {
	builder.scenario = scenario
	builder.scenarioFlag = true
	return builder
}

func (builder *RegistrationBasicInfoBuilder) Build() *RegistrationBasicInfo {
	req := &RegistrationBasicInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.registrationTimeFlag {
		req.RegistrationTime = &builder.registrationTime

	}
	if builder.downloadUrlFlag {
		req.DownloadUrl = &builder.downloadUrl

	}
	if builder.scenarioFlag {
		req.Scenario = &builder.scenario

	}
	return req
}

type RegistrationInfo struct {
	SchemaId *string `json:"schema_id,omitempty"` // 面试登记表ID

	Name *string `json:"name,omitempty"` // 面试登记表名称
}

type RegistrationInfoBuilder struct {
	schemaId     string // 面试登记表ID
	schemaIdFlag bool

	name     string // 面试登记表名称
	nameFlag bool
}

func NewRegistrationInfoBuilder() *RegistrationInfoBuilder {
	builder := &RegistrationInfoBuilder{}
	return builder
}

// 面试登记表ID
//
// 示例值：6930815272790114324
func (builder *RegistrationInfoBuilder) SchemaId(schemaId string) *RegistrationInfoBuilder {
	builder.schemaId = schemaId
	builder.schemaIdFlag = true
	return builder
}

// 面试登记表名称
//
// 示例值：默认登记表
func (builder *RegistrationInfoBuilder) Name(name string) *RegistrationInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *RegistrationInfoBuilder) Build() *RegistrationInfo {
	req := &RegistrationInfo{}
	if builder.schemaIdFlag {
		req.SchemaId = &builder.schemaId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type RegistrationSchema struct {
	Id *string `json:"id,omitempty"` // 信息登记表模板 ID

	Name *string `json:"name,omitempty"` // 信息登记表模板名称

	Scenarios []int `json:"scenarios,omitempty"` // 登记表适用场景

	Objects []*CommonSchema `json:"objects,omitempty"` // 模块列表
}

type RegistrationSchemaBuilder struct {
	id     string // 信息登记表模板 ID
	idFlag bool

	name     string // 信息登记表模板名称
	nameFlag bool

	scenarios     []int // 登记表适用场景
	scenariosFlag bool

	objects     []*CommonSchema // 模块列表
	objectsFlag bool
}

func NewRegistrationSchemaBuilder() *RegistrationSchemaBuilder {
	builder := &RegistrationSchemaBuilder{}
	return builder
}

// 信息登记表模板 ID
//
// 示例值：7044739584859326764
func (builder *RegistrationSchemaBuilder) Id(id string) *RegistrationSchemaBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 信息登记表模板名称
//
// 示例值：默认信息登记表
func (builder *RegistrationSchemaBuilder) Name(name string) *RegistrationSchemaBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 登记表适用场景
//
// 示例值：
func (builder *RegistrationSchemaBuilder) Scenarios(scenarios []int) *RegistrationSchemaBuilder {
	builder.scenarios = scenarios
	builder.scenariosFlag = true
	return builder
}

// 模块列表
//
// 示例值：
func (builder *RegistrationSchemaBuilder) Objects(objects []*CommonSchema) *RegistrationSchemaBuilder {
	builder.objects = objects
	builder.objectsFlag = true
	return builder
}

func (builder *RegistrationSchemaBuilder) Build() *RegistrationSchema {
	req := &RegistrationSchema{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.scenariosFlag {
		req.Scenarios = builder.scenarios
	}
	if builder.objectsFlag {
		req.Objects = builder.objects
	}
	return req
}

type RegistrationSchemaInfo struct {
	SchemaId *string `json:"schema_id,omitempty"` // 信息登记表ID

	Name *string `json:"name,omitempty"` // 信息登记表名称
}

type RegistrationSchemaInfoBuilder struct {
	schemaId     string // 信息登记表ID
	schemaIdFlag bool

	name     string // 信息登记表名称
	nameFlag bool
}

func NewRegistrationSchemaInfoBuilder() *RegistrationSchemaInfoBuilder {
	builder := &RegistrationSchemaInfoBuilder{}
	return builder
}

// 信息登记表ID
//
// 示例值：6930815272790114324
func (builder *RegistrationSchemaInfoBuilder) SchemaId(schemaId string) *RegistrationSchemaInfoBuilder {
	builder.schemaId = schemaId
	builder.schemaIdFlag = true
	return builder
}

// 信息登记表名称
//
// 示例值：默认登记表
func (builder *RegistrationSchemaInfoBuilder) Name(name string) *RegistrationSchemaInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *RegistrationSchemaInfoBuilder) Build() *RegistrationSchemaInfo {
	req := &RegistrationSchemaInfo{}
	if builder.schemaIdFlag {
		req.SchemaId = &builder.schemaId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type RelatedDimensionConfig struct {
	Type *int `json:"type,omitempty"` // 关联配置类型

	RelatedDimensionSettings []*RelatedDimensionSetting `json:"related_dimension_settings,omitempty"` // 关联的维度设置列表
}

type RelatedDimensionConfigBuilder struct {
	type_    int // 关联配置类型
	typeFlag bool

	relatedDimensionSettings     []*RelatedDimensionSetting // 关联的维度设置列表
	relatedDimensionSettingsFlag bool
}

func NewRelatedDimensionConfigBuilder() *RelatedDimensionConfigBuilder {
	builder := &RelatedDimensionConfigBuilder{}
	return builder
}

// 关联配置类型
//
// 示例值：
func (builder *RelatedDimensionConfigBuilder) Type(type_ int) *RelatedDimensionConfigBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 关联的维度设置列表
//
// 示例值：
func (builder *RelatedDimensionConfigBuilder) RelatedDimensionSettings(relatedDimensionSettings []*RelatedDimensionSetting) *RelatedDimensionConfigBuilder {
	builder.relatedDimensionSettings = relatedDimensionSettings
	builder.relatedDimensionSettingsFlag = true
	return builder
}

func (builder *RelatedDimensionConfigBuilder) Build() *RelatedDimensionConfig {
	req := &RelatedDimensionConfig{}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.relatedDimensionSettingsFlag {
		req.RelatedDimensionSettings = builder.relatedDimensionSettings
	}
	return req
}

type RelatedDimensionSetting struct {
	DimensionId *string `json:"dimension_id,omitempty"` // 关联维度ID

	RelatedOperatorType *int `json:"related_operator_type,omitempty"` // 关联计算类型

	DimensionOptionIds []string `json:"dimension_option_ids,omitempty"` // 关联维度选项ID列表
}

type RelatedDimensionSettingBuilder struct {
	dimensionId     string // 关联维度ID
	dimensionIdFlag bool

	relatedOperatorType     int // 关联计算类型
	relatedOperatorTypeFlag bool

	dimensionOptionIds     []string // 关联维度选项ID列表
	dimensionOptionIdsFlag bool
}

func NewRelatedDimensionSettingBuilder() *RelatedDimensionSettingBuilder {
	builder := &RelatedDimensionSettingBuilder{}
	return builder
}

// 关联维度ID
//
// 示例值：6930815272790114324
func (builder *RelatedDimensionSettingBuilder) DimensionId(dimensionId string) *RelatedDimensionSettingBuilder {
	builder.dimensionId = dimensionId
	builder.dimensionIdFlag = true
	return builder
}

// 关联计算类型
//
// 示例值：
func (builder *RelatedDimensionSettingBuilder) RelatedOperatorType(relatedOperatorType int) *RelatedDimensionSettingBuilder {
	builder.relatedOperatorType = relatedOperatorType
	builder.relatedOperatorTypeFlag = true
	return builder
}

// 关联维度选项ID列表
//
// 示例值：
func (builder *RelatedDimensionSettingBuilder) DimensionOptionIds(dimensionOptionIds []string) *RelatedDimensionSettingBuilder {
	builder.dimensionOptionIds = dimensionOptionIds
	builder.dimensionOptionIdsFlag = true
	return builder
}

func (builder *RelatedDimensionSettingBuilder) Build() *RelatedDimensionSetting {
	req := &RelatedDimensionSetting{}
	if builder.dimensionIdFlag {
		req.DimensionId = &builder.dimensionId

	}
	if builder.relatedOperatorTypeFlag {
		req.RelatedOperatorType = &builder.relatedOperatorType

	}
	if builder.dimensionOptionIdsFlag {
		req.DimensionOptionIds = builder.dimensionOptionIds
	}
	return req
}

type ReportCustomData struct {
	Name *I18n `json:"name,omitempty"` // 名称

	Value *I18n `json:"value,omitempty"` // 值

	Description *I18n `json:"description,omitempty"` // 描述
}

type ReportCustomDataBuilder struct {
	name     *I18n // 名称
	nameFlag bool

	value     *I18n // 值
	valueFlag bool

	description     *I18n // 描述
	descriptionFlag bool
}

func NewReportCustomDataBuilder() *ReportCustomDataBuilder {
	builder := &ReportCustomDataBuilder{}
	return builder
}

// 名称
//
// 示例值：
func (builder *ReportCustomDataBuilder) Name(name *I18n) *ReportCustomDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 值
//
// 示例值：
func (builder *ReportCustomDataBuilder) Value(value *I18n) *ReportCustomDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *ReportCustomDataBuilder) Description(description *I18n) *ReportCustomDataBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *ReportCustomDataBuilder) Build() *ReportCustomData {
	req := &ReportCustomData{}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	return req
}

type ResumeSource struct {
	Id *string `json:"id,omitempty"` // 来源 ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名

	EnName *string `json:"en_name,omitempty"` // 英文名

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	ResumeSourceType *string `json:"resume_source_type,omitempty"` // 来源类型
}

type ResumeSourceBuilder struct {
	id     string // 来源 ID
	idFlag bool

	zhName     string // 中文名
	zhNameFlag bool

	enName     string // 英文名
	enNameFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	resumeSourceType     string // 来源类型
	resumeSourceTypeFlag bool
}

func NewResumeSourceBuilder() *ResumeSourceBuilder {
	builder := &ResumeSourceBuilder{}
	return builder
}

// 来源 ID
//
// 示例值：1111
func (builder *ResumeSourceBuilder) Id(id string) *ResumeSourceBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名
//
// 示例值：内推
func (builder *ResumeSourceBuilder) ZhName(zhName string) *ResumeSourceBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名
//
// 示例值：referral
func (builder *ResumeSourceBuilder) EnName(enName string) *ResumeSourceBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *ResumeSourceBuilder) ActiveStatus(activeStatus int) *ResumeSourceBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 来源类型
//
// 示例值：10001
func (builder *ResumeSourceBuilder) ResumeSourceType(resumeSourceType string) *ResumeSourceBuilder {
	builder.resumeSourceType = resumeSourceType
	builder.resumeSourceTypeFlag = true
	return builder
}

func (builder *ResumeSourceBuilder) Build() *ResumeSource {
	req := &ResumeSource{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.resumeSourceTypeFlag {
		req.ResumeSourceType = &builder.resumeSourceType

	}
	return req
}

type Reward struct {
	Id *string `json:"id,omitempty"` // 内推奖励 ID

	Referrer *RewardUser `json:"referrer,omitempty"` // 内推人

	Candidate *RewardCandidate `json:"candidate,omitempty"` // 候选人

	ReferralJob *ObjectIdName `json:"referral_job,omitempty"` // 内推职位

	Reason *I18n `json:"reason,omitempty"` //

	Bonus *BonusAmount `json:"bonus,omitempty"` // 奖励额度

	CreateTime *string `json:"create_time,omitempty"` // 奖励产生时间，毫秒时间戳

	Rule *ObjectIdName `json:"rule,omitempty"` // 奖励规则

	RewardType *int `json:"reward_type,omitempty"` // 奖励类型

	JobManager *RewardUser `json:"job_manager,omitempty"` // 职位负责人

	OfferManager *RewardUser `json:"offer_manager,omitempty"` // Offer 负责人

	OnboradTime *string `json:"onborad_time,omitempty"` // 入职时间，毫秒时间戳

	ConversionTime *string `json:"conversion_time,omitempty"` // 转正时间，毫秒时间戳

	ConfirmUser *RewardUser `json:"confirm_user,omitempty"` // 确认人

	ConfirmTime *string `json:"confirm_time,omitempty"` // 确认时间，毫秒时间戳

	PayUser *RewardUser `json:"pay_user,omitempty"` // 发放人

	PayTime *string `json:"pay_time,omitempty"` // 发放时间，毫秒时间戳

	Stage *int `json:"stage,omitempty"` // 奖励阶段

	IsImport *bool `json:"is_import,omitempty"` // 是否导入
}

type RewardBuilder struct {
	id     string // 内推奖励 ID
	idFlag bool

	referrer     *RewardUser // 内推人
	referrerFlag bool

	candidate     *RewardCandidate // 候选人
	candidateFlag bool

	referralJob     *ObjectIdName // 内推职位
	referralJobFlag bool

	reason     *I18n //
	reasonFlag bool

	bonus     *BonusAmount // 奖励额度
	bonusFlag bool

	createTime     string // 奖励产生时间，毫秒时间戳
	createTimeFlag bool

	rule     *ObjectIdName // 奖励规则
	ruleFlag bool

	rewardType     int // 奖励类型
	rewardTypeFlag bool

	jobManager     *RewardUser // 职位负责人
	jobManagerFlag bool

	offerManager     *RewardUser // Offer 负责人
	offerManagerFlag bool

	onboradTime     string // 入职时间，毫秒时间戳
	onboradTimeFlag bool

	conversionTime     string // 转正时间，毫秒时间戳
	conversionTimeFlag bool

	confirmUser     *RewardUser // 确认人
	confirmUserFlag bool

	confirmTime     string // 确认时间，毫秒时间戳
	confirmTimeFlag bool

	payUser     *RewardUser // 发放人
	payUserFlag bool

	payTime     string // 发放时间，毫秒时间戳
	payTimeFlag bool

	stage     int // 奖励阶段
	stageFlag bool

	isImport     bool // 是否导入
	isImportFlag bool
}

func NewRewardBuilder() *RewardBuilder {
	builder := &RewardBuilder{}
	return builder
}

// 内推奖励 ID
//
// 示例值：7410744543304468773
func (builder *RewardBuilder) Id(id string) *RewardBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 内推人
//
// 示例值：
func (builder *RewardBuilder) Referrer(referrer *RewardUser) *RewardBuilder {
	builder.referrer = referrer
	builder.referrerFlag = true
	return builder
}

// 候选人
//
// 示例值：
func (builder *RewardBuilder) Candidate(candidate *RewardCandidate) *RewardBuilder {
	builder.candidate = candidate
	builder.candidateFlag = true
	return builder
}

// 内推职位
//
// 示例值：
func (builder *RewardBuilder) ReferralJob(referralJob *ObjectIdName) *RewardBuilder {
	builder.referralJob = referralJob
	builder.referralJobFlag = true
	return builder
}

//
//
// 示例值：
func (builder *RewardBuilder) Reason(reason *I18n) *RewardBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

// 奖励额度
//
// 示例值：
func (builder *RewardBuilder) Bonus(bonus *BonusAmount) *RewardBuilder {
	builder.bonus = bonus
	builder.bonusFlag = true
	return builder
}

// 奖励产生时间，毫秒时间戳
//
// 示例值：1704720275000
func (builder *RewardBuilder) CreateTime(createTime string) *RewardBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 奖励规则
//
// 示例值：
func (builder *RewardBuilder) Rule(rule *ObjectIdName) *RewardBuilder {
	builder.rule = rule
	builder.ruleFlag = true
	return builder
}

// 奖励类型
//
// 示例值：1
func (builder *RewardBuilder) RewardType(rewardType int) *RewardBuilder {
	builder.rewardType = rewardType
	builder.rewardTypeFlag = true
	return builder
}

// 职位负责人
//
// 示例值：
func (builder *RewardBuilder) JobManager(jobManager *RewardUser) *RewardBuilder {
	builder.jobManager = jobManager
	builder.jobManagerFlag = true
	return builder
}

// Offer 负责人
//
// 示例值：
func (builder *RewardBuilder) OfferManager(offerManager *RewardUser) *RewardBuilder {
	builder.offerManager = offerManager
	builder.offerManagerFlag = true
	return builder
}

// 入职时间，毫秒时间戳
//
// 示例值：
func (builder *RewardBuilder) OnboradTime(onboradTime string) *RewardBuilder {
	builder.onboradTime = onboradTime
	builder.onboradTimeFlag = true
	return builder
}

// 转正时间，毫秒时间戳
//
// 示例值：
func (builder *RewardBuilder) ConversionTime(conversionTime string) *RewardBuilder {
	builder.conversionTime = conversionTime
	builder.conversionTimeFlag = true
	return builder
}

// 确认人
//
// 示例值：
func (builder *RewardBuilder) ConfirmUser(confirmUser *RewardUser) *RewardBuilder {
	builder.confirmUser = confirmUser
	builder.confirmUserFlag = true
	return builder
}

// 确认时间，毫秒时间戳
//
// 示例值：
func (builder *RewardBuilder) ConfirmTime(confirmTime string) *RewardBuilder {
	builder.confirmTime = confirmTime
	builder.confirmTimeFlag = true
	return builder
}

// 发放人
//
// 示例值：
func (builder *RewardBuilder) PayUser(payUser *RewardUser) *RewardBuilder {
	builder.payUser = payUser
	builder.payUserFlag = true
	return builder
}

// 发放时间，毫秒时间戳
//
// 示例值：
func (builder *RewardBuilder) PayTime(payTime string) *RewardBuilder {
	builder.payTime = payTime
	builder.payTimeFlag = true
	return builder
}

// 奖励阶段
//
// 示例值：1
func (builder *RewardBuilder) Stage(stage int) *RewardBuilder {
	builder.stage = stage
	builder.stageFlag = true
	return builder
}

// 是否导入
//
// 示例值：true
func (builder *RewardBuilder) IsImport(isImport bool) *RewardBuilder {
	builder.isImport = isImport
	builder.isImportFlag = true
	return builder
}

func (builder *RewardBuilder) Build() *Reward {
	req := &Reward{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.referrerFlag {
		req.Referrer = builder.referrer
	}
	if builder.candidateFlag {
		req.Candidate = builder.candidate
	}
	if builder.referralJobFlag {
		req.ReferralJob = builder.referralJob
	}
	if builder.reasonFlag {
		req.Reason = builder.reason
	}
	if builder.bonusFlag {
		req.Bonus = builder.bonus
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.ruleFlag {
		req.Rule = builder.rule
	}
	if builder.rewardTypeFlag {
		req.RewardType = &builder.rewardType

	}
	if builder.jobManagerFlag {
		req.JobManager = builder.jobManager
	}
	if builder.offerManagerFlag {
		req.OfferManager = builder.offerManager
	}
	if builder.onboradTimeFlag {
		req.OnboradTime = &builder.onboradTime

	}
	if builder.conversionTimeFlag {
		req.ConversionTime = &builder.conversionTime

	}
	if builder.confirmUserFlag {
		req.ConfirmUser = builder.confirmUser
	}
	if builder.confirmTimeFlag {
		req.ConfirmTime = &builder.confirmTime

	}
	if builder.payUserFlag {
		req.PayUser = builder.payUser
	}
	if builder.payTimeFlag {
		req.PayTime = &builder.payTime

	}
	if builder.stageFlag {
		req.Stage = &builder.stage

	}
	if builder.isImportFlag {
		req.IsImport = &builder.isImport

	}
	return req
}

type RewardCandidate struct {
	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	Name *string `json:"name,omitempty"` // 候选人名称
}

type RewardCandidateBuilder struct {
	applicationId     string // 投递 ID
	applicationIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	name     string // 候选人名称
	nameFlag bool
}

func NewRewardCandidateBuilder() *RewardCandidateBuilder {
	builder := &RewardCandidateBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：7169521778904221965
func (builder *RewardCandidateBuilder) ApplicationId(applicationId string) *RewardCandidateBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：7169521778904221965
func (builder *RewardCandidateBuilder) TalentId(talentId string) *RewardCandidateBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 候选人名称
//
// 示例值：张三
func (builder *RewardCandidateBuilder) Name(name string) *RewardCandidateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *RewardCandidateBuilder) Build() *RewardCandidate {
	req := &RewardCandidate{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type RewardUser struct {
	Id *string `json:"id,omitempty"` // 人员 ID

	Name *I18n `json:"name,omitempty"` // 名称

	Department *BasicDepartmentInfo `json:"department,omitempty"` // 部门

	RecruitmentType *int `json:"recruitment_type,omitempty"` // 内推人人员类型
}

type RewardUserBuilder struct {
	id     string // 人员 ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	department     *BasicDepartmentInfo // 部门
	departmentFlag bool

	recruitmentType     int // 内推人人员类型
	recruitmentTypeFlag bool
}

func NewRewardUserBuilder() *RewardUserBuilder {
	builder := &RewardUserBuilder{}
	return builder
}

// 人员 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *RewardUserBuilder) Id(id string) *RewardUserBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *RewardUserBuilder) Name(name *I18n) *RewardUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 部门
//
// 示例值：
func (builder *RewardUserBuilder) Department(department *BasicDepartmentInfo) *RewardUserBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 内推人人员类型
//
// 示例值：
func (builder *RewardUserBuilder) RecruitmentType(recruitmentType int) *RewardUserBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

func (builder *RewardUserBuilder) Build() *RewardUser {
	req := &RewardUser{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.departmentFlag {
		req.Department = builder.department
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = &builder.recruitmentType

	}
	return req
}

type Role struct {
	Id *string `json:"id,omitempty"` // 角色 ID

	Name *I18n `json:"name,omitempty"` // 角色名称

	Description *I18n `json:"description,omitempty"` // 角色描述

	ScopeOfApplication *int `json:"scope_of_application,omitempty"` // 适用范围

	ModifyTime *string `json:"modify_time,omitempty"` // 更新时间

	RoleStatus *int `json:"role_status,omitempty"` // 停启用状态

	RoleType *int `json:"role_type,omitempty"` // 角色类型
}

type RoleBuilder struct {
	id     string // 角色 ID
	idFlag bool

	name     *I18n // 角色名称
	nameFlag bool

	description     *I18n // 角色描述
	descriptionFlag bool

	scopeOfApplication     int // 适用范围
	scopeOfApplicationFlag bool

	modifyTime     string // 更新时间
	modifyTimeFlag bool

	roleStatus     int // 停启用状态
	roleStatusFlag bool

	roleType     int // 角色类型
	roleTypeFlag bool
}

func NewRoleBuilder() *RoleBuilder {
	builder := &RoleBuilder{}
	return builder
}

// 角色 ID
//
// 示例值：101
func (builder *RoleBuilder) Id(id string) *RoleBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 角色名称
//
// 示例值：
func (builder *RoleBuilder) Name(name *I18n) *RoleBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 角色描述
//
// 示例值：
func (builder *RoleBuilder) Description(description *I18n) *RoleBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 适用范围
//
// 示例值：1
func (builder *RoleBuilder) ScopeOfApplication(scopeOfApplication int) *RoleBuilder {
	builder.scopeOfApplication = scopeOfApplication
	builder.scopeOfApplicationFlag = true
	return builder
}

// 更新时间
//
// 示例值：1716535727510
func (builder *RoleBuilder) ModifyTime(modifyTime string) *RoleBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 停启用状态
//
// 示例值：
func (builder *RoleBuilder) RoleStatus(roleStatus int) *RoleBuilder {
	builder.roleStatus = roleStatus
	builder.roleStatusFlag = true
	return builder
}

// 角色类型
//
// 示例值：
func (builder *RoleBuilder) RoleType(roleType int) *RoleBuilder {
	builder.roleType = roleType
	builder.roleTypeFlag = true
	return builder
}

func (builder *RoleBuilder) Build() *Role {
	req := &Role{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.scopeOfApplicationFlag {
		req.ScopeOfApplication = &builder.scopeOfApplication

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.roleStatusFlag {
		req.RoleStatus = &builder.roleStatus

	}
	if builder.roleTypeFlag {
		req.RoleType = &builder.roleType

	}
	return req
}

type RoleDetail struct {
	Id *string `json:"id,omitempty"` // 角色ID

	Name *I18n `json:"name,omitempty"` // 角色名称

	Description *I18n `json:"description,omitempty"` // 角色描述

	ModifyTime *string `json:"modify_time,omitempty"` // 更新时间

	RoleStatus *int `json:"role_status,omitempty"` // 停启用状态

	RoleType *int `json:"role_type,omitempty"` // 角色类型

	ScopeOfApplication *int `json:"scope_of_application,omitempty"` // 适用范围

	HasBusinessManagementScope *bool `json:"has_business_management_scope,omitempty"` // 是否在角色上配置业务管理范围

	SocailPermissionCollection *PermissionCollection `json:"socail_permission_collection,omitempty"` // 社招权限配置

	CampusPermissionCollection *PermissionCollection `json:"campus_permission_collection,omitempty"` // 校招权限配置
}

type RoleDetailBuilder struct {
	id     string // 角色ID
	idFlag bool

	name     *I18n // 角色名称
	nameFlag bool

	description     *I18n // 角色描述
	descriptionFlag bool

	modifyTime     string // 更新时间
	modifyTimeFlag bool

	roleStatus     int // 停启用状态
	roleStatusFlag bool

	roleType     int // 角色类型
	roleTypeFlag bool

	scopeOfApplication     int // 适用范围
	scopeOfApplicationFlag bool

	hasBusinessManagementScope     bool // 是否在角色上配置业务管理范围
	hasBusinessManagementScopeFlag bool

	socailPermissionCollection     *PermissionCollection // 社招权限配置
	socailPermissionCollectionFlag bool

	campusPermissionCollection     *PermissionCollection // 校招权限配置
	campusPermissionCollectionFlag bool
}

func NewRoleDetailBuilder() *RoleDetailBuilder {
	builder := &RoleDetailBuilder{}
	return builder
}

// 角色ID
//
// 示例值：6930815272790114324
func (builder *RoleDetailBuilder) Id(id string) *RoleDetailBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 角色名称
//
// 示例值：
func (builder *RoleDetailBuilder) Name(name *I18n) *RoleDetailBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 角色描述
//
// 示例值：
func (builder *RoleDetailBuilder) Description(description *I18n) *RoleDetailBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 更新时间
//
// 示例值：1716535727510
func (builder *RoleDetailBuilder) ModifyTime(modifyTime string) *RoleDetailBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 停启用状态
//
// 示例值：
func (builder *RoleDetailBuilder) RoleStatus(roleStatus int) *RoleDetailBuilder {
	builder.roleStatus = roleStatus
	builder.roleStatusFlag = true
	return builder
}

// 角色类型
//
// 示例值：
func (builder *RoleDetailBuilder) RoleType(roleType int) *RoleDetailBuilder {
	builder.roleType = roleType
	builder.roleTypeFlag = true
	return builder
}

// 适用范围
//
// 示例值：
func (builder *RoleDetailBuilder) ScopeOfApplication(scopeOfApplication int) *RoleDetailBuilder {
	builder.scopeOfApplication = scopeOfApplication
	builder.scopeOfApplicationFlag = true
	return builder
}

// 是否在角色上配置业务管理范围
//
// 示例值：true
func (builder *RoleDetailBuilder) HasBusinessManagementScope(hasBusinessManagementScope bool) *RoleDetailBuilder {
	builder.hasBusinessManagementScope = hasBusinessManagementScope
	builder.hasBusinessManagementScopeFlag = true
	return builder
}

// 社招权限配置
//
// 示例值：
func (builder *RoleDetailBuilder) SocailPermissionCollection(socailPermissionCollection *PermissionCollection) *RoleDetailBuilder {
	builder.socailPermissionCollection = socailPermissionCollection
	builder.socailPermissionCollectionFlag = true
	return builder
}

// 校招权限配置
//
// 示例值：
func (builder *RoleDetailBuilder) CampusPermissionCollection(campusPermissionCollection *PermissionCollection) *RoleDetailBuilder {
	builder.campusPermissionCollection = campusPermissionCollection
	builder.campusPermissionCollectionFlag = true
	return builder
}

func (builder *RoleDetailBuilder) Build() *RoleDetail {
	req := &RoleDetail{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.roleStatusFlag {
		req.RoleStatus = &builder.roleStatus

	}
	if builder.roleTypeFlag {
		req.RoleType = &builder.roleType

	}
	if builder.scopeOfApplicationFlag {
		req.ScopeOfApplication = &builder.scopeOfApplication

	}
	if builder.hasBusinessManagementScopeFlag {
		req.HasBusinessManagementScope = &builder.hasBusinessManagementScope

	}
	if builder.socailPermissionCollectionFlag {
		req.SocailPermissionCollection = builder.socailPermissionCollection
	}
	if builder.campusPermissionCollectionFlag {
		req.CampusPermissionCollection = builder.campusPermissionCollection
	}
	return req
}

type Salary struct {
	OperateTime *string `json:"operate_time,omitempty"` // 操作时间

	SalaryStatus *int `json:"salary_status,omitempty"` // 薪酬审批状态

	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	SalayId *string `json:"salay_id,omitempty"` // 薪酬 ID

	OperatorId *string `json:"operator_id,omitempty"` // 操作人 ID
}

type SalaryBuilder struct {
	operateTime     string // 操作时间
	operateTimeFlag bool

	salaryStatus     int // 薪酬审批状态
	salaryStatusFlag bool

	offerId     string // Offer ID
	offerIdFlag bool

	salayId     string // 薪酬 ID
	salayIdFlag bool

	operatorId     string // 操作人 ID
	operatorIdFlag bool
}

func NewSalaryBuilder() *SalaryBuilder {
	builder := &SalaryBuilder{}
	return builder
}

// 操作时间
//
// 示例值：1638260625671
func (builder *SalaryBuilder) OperateTime(operateTime string) *SalaryBuilder {
	builder.operateTime = operateTime
	builder.operateTimeFlag = true
	return builder
}

// 薪酬审批状态
//
// 示例值：2
func (builder *SalaryBuilder) SalaryStatus(salaryStatus int) *SalaryBuilder {
	builder.salaryStatus = salaryStatus
	builder.salaryStatusFlag = true
	return builder
}

// Offer ID
//
// 示例值：7981638260625671
func (builder *SalaryBuilder) OfferId(offerId string) *SalaryBuilder {
	builder.offerId = offerId
	builder.offerIdFlag = true
	return builder
}

// 薪酬 ID
//
// 示例值：salay_id
func (builder *SalaryBuilder) SalayId(salayId string) *SalaryBuilder {
	builder.salayId = salayId
	builder.salayIdFlag = true
	return builder
}

// 操作人 ID
//
// 示例值：ou_xxxxxx
func (builder *SalaryBuilder) OperatorId(operatorId string) *SalaryBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

func (builder *SalaryBuilder) Build() *Salary {
	req := &Salary{}
	if builder.operateTimeFlag {
		req.OperateTime = &builder.operateTime

	}
	if builder.salaryStatusFlag {
		req.SalaryStatus = &builder.salaryStatus

	}
	if builder.offerIdFlag {
		req.OfferId = &builder.offerId

	}
	if builder.salayIdFlag {
		req.SalayId = &builder.salayId

	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId

	}
	return req
}

type ScoreCalculationConfig struct {
	Enabled *bool `json:"enabled,omitempty"` // 是否启用

	CalculationMode *int `json:"calculation_mode,omitempty"` //
}

type ScoreCalculationConfigBuilder struct {
	enabled     bool // 是否启用
	enabledFlag bool

	calculationMode     int //
	calculationModeFlag bool
}

func NewScoreCalculationConfigBuilder() *ScoreCalculationConfigBuilder {
	builder := &ScoreCalculationConfigBuilder{}
	return builder
}

// 是否启用
//
// 示例值：true
func (builder *ScoreCalculationConfigBuilder) Enabled(enabled bool) *ScoreCalculationConfigBuilder {
	builder.enabled = enabled
	builder.enabledFlag = true
	return builder
}

//
//
// 示例值：1
func (builder *ScoreCalculationConfigBuilder) CalculationMode(calculationMode int) *ScoreCalculationConfigBuilder {
	builder.calculationMode = calculationMode
	builder.calculationModeFlag = true
	return builder
}

func (builder *ScoreCalculationConfigBuilder) Build() *ScoreCalculationConfig {
	req := &ScoreCalculationConfig{}
	if builder.enabledFlag {
		req.Enabled = &builder.enabled

	}
	if builder.calculationModeFlag {
		req.CalculationMode = &builder.calculationMode

	}
	return req
}

type ScoreDimensionConfig struct {
	ScoreDimensionType *int `json:"score_dimension_type,omitempty"` // 分数维度类型

	LowerLimitScore *int `json:"lower_limit_score,omitempty"` // 分数下限

	UpperLimitScore *int `json:"upper_limit_score,omitempty"` // 分数上限
}

type ScoreDimensionConfigBuilder struct {
	scoreDimensionType     int // 分数维度类型
	scoreDimensionTypeFlag bool

	lowerLimitScore     int // 分数下限
	lowerLimitScoreFlag bool

	upperLimitScore     int // 分数上限
	upperLimitScoreFlag bool
}

func NewScoreDimensionConfigBuilder() *ScoreDimensionConfigBuilder {
	builder := &ScoreDimensionConfigBuilder{}
	return builder
}

// 分数维度类型
//
// 示例值：1
func (builder *ScoreDimensionConfigBuilder) ScoreDimensionType(scoreDimensionType int) *ScoreDimensionConfigBuilder {
	builder.scoreDimensionType = scoreDimensionType
	builder.scoreDimensionTypeFlag = true
	return builder
}

// 分数下限
//
// 示例值：1
func (builder *ScoreDimensionConfigBuilder) LowerLimitScore(lowerLimitScore int) *ScoreDimensionConfigBuilder {
	builder.lowerLimitScore = lowerLimitScore
	builder.lowerLimitScoreFlag = true
	return builder
}

// 分数上限
//
// 示例值：100
func (builder *ScoreDimensionConfigBuilder) UpperLimitScore(upperLimitScore int) *ScoreDimensionConfigBuilder {
	builder.upperLimitScore = upperLimitScore
	builder.upperLimitScoreFlag = true
	return builder
}

func (builder *ScoreDimensionConfigBuilder) Build() *ScoreDimensionConfig {
	req := &ScoreDimensionConfig{}
	if builder.scoreDimensionTypeFlag {
		req.ScoreDimensionType = &builder.scoreDimensionType

	}
	if builder.lowerLimitScoreFlag {
		req.LowerLimitScore = &builder.lowerLimitScore

	}
	if builder.upperLimitScoreFlag {
		req.UpperLimitScore = &builder.upperLimitScore

	}
	return req
}

type SelectOptionResult struct {
	OptionId *string `json:"option_id,omitempty"` // 选项 ID

	OptionName *string `json:"option_name,omitempty"` // 选项中文名称

	OptionEnName *string `json:"option_en_name,omitempty"` // 选项英文名称

	OptionDesc *string `json:"option_desc,omitempty"` // 选项中文描述

	OptionEnDesc *string `json:"option_en_desc,omitempty"` // 选项英文描述

	IsSelected *bool `json:"is_selected,omitempty"` // 是否选择
}

type SelectOptionResultBuilder struct {
	optionId     string // 选项 ID
	optionIdFlag bool

	optionName     string // 选项中文名称
	optionNameFlag bool

	optionEnName     string // 选项英文名称
	optionEnNameFlag bool

	optionDesc     string // 选项中文描述
	optionDescFlag bool

	optionEnDesc     string // 选项英文描述
	optionEnDescFlag bool

	isSelected     bool // 是否选择
	isSelectedFlag bool
}

func NewSelectOptionResultBuilder() *SelectOptionResultBuilder {
	builder := &SelectOptionResultBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：6950930570311993644
func (builder *SelectOptionResultBuilder) OptionId(optionId string) *SelectOptionResultBuilder {
	builder.optionId = optionId
	builder.optionIdFlag = true
	return builder
}

// 选项中文名称
//
// 示例值：选项一
func (builder *SelectOptionResultBuilder) OptionName(optionName string) *SelectOptionResultBuilder {
	builder.optionName = optionName
	builder.optionNameFlag = true
	return builder
}

// 选项英文名称
//
// 示例值：Option 1
func (builder *SelectOptionResultBuilder) OptionEnName(optionEnName string) *SelectOptionResultBuilder {
	builder.optionEnName = optionEnName
	builder.optionEnNameFlag = true
	return builder
}

// 选项中文描述
//
// 示例值：测试选项描述
func (builder *SelectOptionResultBuilder) OptionDesc(optionDesc string) *SelectOptionResultBuilder {
	builder.optionDesc = optionDesc
	builder.optionDescFlag = true
	return builder
}

// 选项英文描述
//
// 示例值：Test Option Desc
func (builder *SelectOptionResultBuilder) OptionEnDesc(optionEnDesc string) *SelectOptionResultBuilder {
	builder.optionEnDesc = optionEnDesc
	builder.optionEnDescFlag = true
	return builder
}

// 是否选择
//
// 示例值：true
func (builder *SelectOptionResultBuilder) IsSelected(isSelected bool) *SelectOptionResultBuilder {
	builder.isSelected = isSelected
	builder.isSelectedFlag = true
	return builder
}

func (builder *SelectOptionResultBuilder) Build() *SelectOptionResult {
	req := &SelectOptionResult{}
	if builder.optionIdFlag {
		req.OptionId = &builder.optionId

	}
	if builder.optionNameFlag {
		req.OptionName = &builder.optionName

	}
	if builder.optionEnNameFlag {
		req.OptionEnName = &builder.optionEnName

	}
	if builder.optionDescFlag {
		req.OptionDesc = &builder.optionDesc

	}
	if builder.optionEnDescFlag {
		req.OptionEnDesc = &builder.optionEnDesc

	}
	if builder.isSelectedFlag {
		req.IsSelected = &builder.isSelected

	}
	return req
}

type Sentence struct {
	Content *string `json:"content,omitempty"` // 速记句子文本

	SpeakTime *string `json:"speak_time,omitempty"` // 句子开始讲话时的毫秒级时间戳

	UserType *int `json:"user_type,omitempty"` // 该句子的说话人用户类型

	SpeakerName *I18n `json:"speaker_name,omitempty"` // 该句子的说话人名称
}

type SentenceBuilder struct {
	content     string // 速记句子文本
	contentFlag bool

	speakTime     string // 句子开始讲话时的毫秒级时间戳
	speakTimeFlag bool

	userType     int // 该句子的说话人用户类型
	userTypeFlag bool

	speakerName     *I18n // 该句子的说话人名称
	speakerNameFlag bool
}

func NewSentenceBuilder() *SentenceBuilder {
	builder := &SentenceBuilder{}
	return builder
}

// 速记句子文本
//
// 示例值：你好，可以做一下自我介绍么？
func (builder *SentenceBuilder) Content(content string) *SentenceBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 句子开始讲话时的毫秒级时间戳
//
// 示例值：1720967514994
func (builder *SentenceBuilder) SpeakTime(speakTime string) *SentenceBuilder {
	builder.speakTime = speakTime
	builder.speakTimeFlag = true
	return builder
}

// 该句子的说话人用户类型
//
// 示例值：1
func (builder *SentenceBuilder) UserType(userType int) *SentenceBuilder {
	builder.userType = userType
	builder.userTypeFlag = true
	return builder
}

// 该句子的说话人名称
//
// 示例值：
func (builder *SentenceBuilder) SpeakerName(speakerName *I18n) *SentenceBuilder {
	builder.speakerName = speakerName
	builder.speakerNameFlag = true
	return builder
}

func (builder *SentenceBuilder) Build() *Sentence {
	req := &Sentence{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.speakTimeFlag {
		req.SpeakTime = &builder.speakTime

	}
	if builder.userTypeFlag {
		req.UserType = &builder.userType

	}
	if builder.speakerNameFlag {
		req.SpeakerName = builder.speakerName
	}
	return req
}

type Sequence struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 名字

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type SequenceBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewSequenceBuilder() *SequenceBuilder {
	builder := &SequenceBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *SequenceBuilder) Id(id string) *SequenceBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：
func (builder *SequenceBuilder) Name(name string) *SequenceBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 英文名
//
// 示例值：
func (builder *SequenceBuilder) EnName(enName string) *SequenceBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *SequenceBuilder) Build() *Sequence {
	req := &Sequence{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type SignatureAttachment struct {
	Id *string `json:"id,omitempty"` // 文件 id

	FileName *string `json:"file_name,omitempty"` // 文件名称

	FileTemplateId *string `json:"file_template_id,omitempty"` // 文件模板 id

	FileTemplateName *string `json:"file_template_name,omitempty"` // 文件模板名称

	FileTemplateTypeId *string `json:"file_template_type_id,omitempty"` // 文件模板类型 id

	FileTemplateTypeName *string `json:"file_template_type_name,omitempty"` // 文件模板类型名称
}

type SignatureAttachmentBuilder struct {
	id     string // 文件 id
	idFlag bool

	fileName     string // 文件名称
	fileNameFlag bool

	fileTemplateId     string // 文件模板 id
	fileTemplateIdFlag bool

	fileTemplateName     string // 文件模板名称
	fileTemplateNameFlag bool

	fileTemplateTypeId     string // 文件模板类型 id
	fileTemplateTypeIdFlag bool

	fileTemplateTypeName     string // 文件模板类型名称
	fileTemplateTypeNameFlag bool
}

func NewSignatureAttachmentBuilder() *SignatureAttachmentBuilder {
	builder := &SignatureAttachmentBuilder{}
	return builder
}

// 文件 id
//
// 示例值：12345678901
func (builder *SignatureAttachmentBuilder) Id(id string) *SignatureAttachmentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 文件名称
//
// 示例值：offer 文件
func (builder *SignatureAttachmentBuilder) FileName(fileName string) *SignatureAttachmentBuilder {
	builder.fileName = fileName
	builder.fileNameFlag = true
	return builder
}

// 文件模板 id
//
// 示例值：1718959426734
func (builder *SignatureAttachmentBuilder) FileTemplateId(fileTemplateId string) *SignatureAttachmentBuilder {
	builder.fileTemplateId = fileTemplateId
	builder.fileTemplateIdFlag = true
	return builder
}

// 文件模板名称
//
// 示例值：offer 文件
func (builder *SignatureAttachmentBuilder) FileTemplateName(fileTemplateName string) *SignatureAttachmentBuilder {
	builder.fileTemplateName = fileTemplateName
	builder.fileTemplateNameFlag = true
	return builder
}

// 文件模板类型 id
//
// 示例值：1718959426734
func (builder *SignatureAttachmentBuilder) FileTemplateTypeId(fileTemplateTypeId string) *SignatureAttachmentBuilder {
	builder.fileTemplateTypeId = fileTemplateTypeId
	builder.fileTemplateTypeIdFlag = true
	return builder
}

// 文件模板类型名称
//
// 示例值：offer 文件
func (builder *SignatureAttachmentBuilder) FileTemplateTypeName(fileTemplateTypeName string) *SignatureAttachmentBuilder {
	builder.fileTemplateTypeName = fileTemplateTypeName
	builder.fileTemplateTypeNameFlag = true
	return builder
}

func (builder *SignatureAttachmentBuilder) Build() *SignatureAttachment {
	req := &SignatureAttachment{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.fileNameFlag {
		req.FileName = &builder.fileName

	}
	if builder.fileTemplateIdFlag {
		req.FileTemplateId = &builder.fileTemplateId

	}
	if builder.fileTemplateNameFlag {
		req.FileTemplateName = &builder.fileTemplateName

	}
	if builder.fileTemplateTypeIdFlag {
		req.FileTemplateTypeId = &builder.fileTemplateTypeId

	}
	if builder.fileTemplateTypeNameFlag {
		req.FileTemplateTypeName = &builder.fileTemplateTypeName

	}
	return req
}

type Site struct {
	Id *string `json:"id,omitempty"` // 官网id

	Name *SiteName `json:"name,omitempty"` // 官网名称
}

type SiteBuilder struct {
	id     string // 官网id
	idFlag bool

	name     *SiteName // 官网名称
	nameFlag bool
}

func NewSiteBuilder() *SiteBuilder {
	builder := &SiteBuilder{}
	return builder
}

// 官网id
//
// 示例值：
func (builder *SiteBuilder) Id(id string) *SiteBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 官网名称
//
// 示例值：
func (builder *SiteBuilder) Name(name *SiteName) *SiteBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *SiteBuilder) Build() *Site {
	req := &Site{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type SiteApplication struct {
	ExternalId *string `json:"external_id,omitempty"` // 外部id，用于转换内部id

	JobPostId *string `json:"job_post_id,omitempty"` // 职位id

	Resume *SiteApplicationResume `json:"resume,omitempty"` // 简历信息

	Status *string `json:"status,omitempty"` // 投递状态
}

type SiteApplicationBuilder struct {
	externalId     string // 外部id，用于转换内部id
	externalIdFlag bool

	jobPostId     string // 职位id
	jobPostIdFlag bool

	resume     *SiteApplicationResume // 简历信息
	resumeFlag bool

	status     string // 投递状态
	statusFlag bool
}

func NewSiteApplicationBuilder() *SiteApplicationBuilder {
	builder := &SiteApplicationBuilder{}
	return builder
}

// 外部id，用于转换内部id
//
// 示例值：
func (builder *SiteApplicationBuilder) ExternalId(externalId string) *SiteApplicationBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 职位id
//
// 示例值：
func (builder *SiteApplicationBuilder) JobPostId(jobPostId string) *SiteApplicationBuilder {
	builder.jobPostId = jobPostId
	builder.jobPostIdFlag = true
	return builder
}

// 简历信息
//
// 示例值：
func (builder *SiteApplicationBuilder) Resume(resume *SiteApplicationResume) *SiteApplicationBuilder {
	builder.resume = resume
	builder.resumeFlag = true
	return builder
}

// 投递状态
//
// 示例值：
func (builder *SiteApplicationBuilder) Status(status string) *SiteApplicationBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

func (builder *SiteApplicationBuilder) Build() *SiteApplication {
	req := &SiteApplication{}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.jobPostIdFlag {
		req.JobPostId = &builder.jobPostId

	}
	if builder.resumeFlag {
		req.Resume = builder.resume
	}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	return req
}

type SiteJobCity struct {
	CityCode *string `json:"city_code,omitempty"` // 地址code

	Name *SiteName `json:"name,omitempty"` // 地址名称
}

type SiteJobCityBuilder struct {
	cityCode     string // 地址code
	cityCodeFlag bool

	name     *SiteName // 地址名称
	nameFlag bool
}

func NewSiteJobCityBuilder() *SiteJobCityBuilder {
	builder := &SiteJobCityBuilder{}
	return builder
}

// 地址code
//
// 示例值：
func (builder *SiteJobCityBuilder) CityCode(cityCode string) *SiteJobCityBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 地址名称
//
// 示例值：
func (builder *SiteJobCityBuilder) Name(name *SiteName) *SiteJobCityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *SiteJobCityBuilder) Build() *SiteJobCity {
	req := &SiteJobCity{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type SiteJobPost struct {
	Id *string `json:"id,omitempty"` // 职位id

	Title *string `json:"title,omitempty"` // 职位名称

	Description *string `json:"description,omitempty"` // 职位描述

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	JobTypeInfo *SiteJobType `json:"job_type_info,omitempty"` // 职位职能

	CityInfo *SiteJobCity `json:"city_info,omitempty"` // 职位城市

	RecruitmentType *SiteJobRecruitmentType `json:"recruitment_type,omitempty"` // 雇佣类型

	PublishTime *int64 `json:"publish_time,omitempty"` // 职位发布时间
}

type SiteJobPostBuilder struct {
	id     string // 职位id
	idFlag bool

	title     string // 职位名称
	titleFlag bool

	description     string // 职位描述
	descriptionFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	jobTypeInfo     *SiteJobType // 职位职能
	jobTypeInfoFlag bool

	cityInfo     *SiteJobCity // 职位城市
	cityInfoFlag bool

	recruitmentType     *SiteJobRecruitmentType // 雇佣类型
	recruitmentTypeFlag bool

	publishTime     int64 // 职位发布时间
	publishTimeFlag bool
}

func NewSiteJobPostBuilder() *SiteJobPostBuilder {
	builder := &SiteJobPostBuilder{}
	return builder
}

// 职位id
//
// 示例值：6949805467799537964
func (builder *SiteJobPostBuilder) Id(id string) *SiteJobPostBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位名称
//
// 示例值：6949805467799537964
func (builder *SiteJobPostBuilder) Title(title string) *SiteJobPostBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位描述
//
// 示例值：6949805467799537964
func (builder *SiteJobPostBuilder) Description(description string) *SiteJobPostBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位要求
//
// 示例值：6949805467799537964
func (builder *SiteJobPostBuilder) Requirement(requirement string) *SiteJobPostBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 职位职能
//
// 示例值：
func (builder *SiteJobPostBuilder) JobTypeInfo(jobTypeInfo *SiteJobType) *SiteJobPostBuilder {
	builder.jobTypeInfo = jobTypeInfo
	builder.jobTypeInfoFlag = true
	return builder
}

// 职位城市
//
// 示例值：
func (builder *SiteJobPostBuilder) CityInfo(cityInfo *SiteJobCity) *SiteJobPostBuilder {
	builder.cityInfo = cityInfo
	builder.cityInfoFlag = true
	return builder
}

// 雇佣类型
//
// 示例值：
func (builder *SiteJobPostBuilder) RecruitmentType(recruitmentType *SiteJobRecruitmentType) *SiteJobPostBuilder {
	builder.recruitmentType = recruitmentType
	builder.recruitmentTypeFlag = true
	return builder
}

// 职位发布时间
//
// 示例值：1735664461000
func (builder *SiteJobPostBuilder) PublishTime(publishTime int64) *SiteJobPostBuilder {
	builder.publishTime = publishTime
	builder.publishTimeFlag = true
	return builder
}

func (builder *SiteJobPostBuilder) Build() *SiteJobPost {
	req := &SiteJobPost{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.jobTypeInfoFlag {
		req.JobTypeInfo = builder.jobTypeInfo
	}
	if builder.cityInfoFlag {
		req.CityInfo = builder.cityInfo
	}
	if builder.recruitmentTypeFlag {
		req.RecruitmentType = builder.recruitmentType
	}
	if builder.publishTimeFlag {
		req.PublishTime = &builder.publishTime

	}
	return req
}

type SiteJobType struct {
	Id *string `json:"id,omitempty"` // 职能id

	Name *SiteName `json:"name,omitempty"` // 职位职能名称
}

type SiteJobTypeBuilder struct {
	id     string // 职能id
	idFlag bool

	name     *SiteName // 职位职能名称
	nameFlag bool
}

func NewSiteJobTypeBuilder() *SiteJobTypeBuilder {
	builder := &SiteJobTypeBuilder{}
	return builder
}

// 职能id
//
// 示例值：
func (builder *SiteJobTypeBuilder) Id(id string) *SiteJobTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位职能名称
//
// 示例值：
func (builder *SiteJobTypeBuilder) Name(name *SiteName) *SiteJobTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *SiteJobTypeBuilder) Build() *SiteJobType {
	req := &SiteJobType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type SiteApplicationResume struct {
	Name *string `json:"name,omitempty"` // 姓名

	MobileNumber *string `json:"mobile_number,omitempty"` // 手机号

	MoblieCode *string `json:"moblie_code,omitempty"` // 手机区号

	Email *string `json:"email,omitempty"` // 邮箱

	SiteAttachmentId *string `json:"site_attachment_id,omitempty"` // 简历附件id

	SelfEvaluation *string `json:"self_evaluation,omitempty"` // 自我评价

	Age *string `json:"age,omitempty"` // 年龄

	WorkingYear *string `json:"working_year,omitempty"` // 工作年限

	EducationList []*SiteResumeEducation `json:"education_list,omitempty"` // 教育经历列表

	CareerList []*SiteResumeCareer `json:"career_list,omitempty"` // 工作经历列表

	ProjectList []*SiteResumeProject `json:"project_list,omitempty"` // 项目经历列表

	InternshipList []*SiteResumeInternship `json:"internship_list,omitempty"` // 实习经历列表

	WorkList []*SiteResumeWork `json:"work_list,omitempty"` // 作品集列表

	AwardList []*SiteResumeAward `json:"award_list,omitempty"` // 获奖经历列表

	LanguageSkillList []*SiteResumeLanguageSkill `json:"language_skill_list,omitempty"` // 语言技能列表

	SnsList []*SiteResumeSns `json:"sns_list,omitempty"` // 社交账号列表

	Identification *SiteResumeIdentification `json:"identification,omitempty"` // 身份信息

	CompetitionList []*SiteResumeCompetition `json:"competition_list,omitempty"` // 竞赛经历列表

	CertificateList []*SiteResumeCertificate `json:"certificate_list,omitempty"` // 证书列表
}

type SiteApplicationResumeBuilder struct {
	name     string // 姓名
	nameFlag bool

	mobileNumber     string // 手机号
	mobileNumberFlag bool

	moblieCode     string // 手机区号
	moblieCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	siteAttachmentId     string // 简历附件id
	siteAttachmentIdFlag bool

	selfEvaluation     string // 自我评价
	selfEvaluationFlag bool

	age     string // 年龄
	ageFlag bool

	workingYear     string // 工作年限
	workingYearFlag bool

	educationList     []*SiteResumeEducation // 教育经历列表
	educationListFlag bool

	careerList     []*SiteResumeCareer // 工作经历列表
	careerListFlag bool

	projectList     []*SiteResumeProject // 项目经历列表
	projectListFlag bool

	internshipList     []*SiteResumeInternship // 实习经历列表
	internshipListFlag bool

	workList     []*SiteResumeWork // 作品集列表
	workListFlag bool

	awardList     []*SiteResumeAward // 获奖经历列表
	awardListFlag bool

	languageSkillList     []*SiteResumeLanguageSkill // 语言技能列表
	languageSkillListFlag bool

	snsList     []*SiteResumeSns // 社交账号列表
	snsListFlag bool

	identification     *SiteResumeIdentification // 身份信息
	identificationFlag bool

	competitionList     []*SiteResumeCompetition // 竞赛经历列表
	competitionListFlag bool

	certificateList     []*SiteResumeCertificate // 证书列表
	certificateListFlag bool
}

func NewSiteApplicationResumeBuilder() *SiteApplicationResumeBuilder {
	builder := &SiteApplicationResumeBuilder{}
	return builder
}

// 姓名
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) Name(name string) *SiteApplicationResumeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机号
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) MobileNumber(mobileNumber string) *SiteApplicationResumeBuilder {
	builder.mobileNumber = mobileNumber
	builder.mobileNumberFlag = true
	return builder
}

// 手机区号
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) MoblieCode(moblieCode string) *SiteApplicationResumeBuilder {
	builder.moblieCode = moblieCode
	builder.moblieCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) Email(email string) *SiteApplicationResumeBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 简历附件id
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) SiteAttachmentId(siteAttachmentId string) *SiteApplicationResumeBuilder {
	builder.siteAttachmentId = siteAttachmentId
	builder.siteAttachmentIdFlag = true
	return builder
}

// 自我评价
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) SelfEvaluation(selfEvaluation string) *SiteApplicationResumeBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 年龄
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) Age(age string) *SiteApplicationResumeBuilder {
	builder.age = age
	builder.ageFlag = true
	return builder
}

// 工作年限
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) WorkingYear(workingYear string) *SiteApplicationResumeBuilder {
	builder.workingYear = workingYear
	builder.workingYearFlag = true
	return builder
}

// 教育经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) EducationList(educationList []*SiteResumeEducation) *SiteApplicationResumeBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) CareerList(careerList []*SiteResumeCareer) *SiteApplicationResumeBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) ProjectList(projectList []*SiteResumeProject) *SiteApplicationResumeBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 实习经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) InternshipList(internshipList []*SiteResumeInternship) *SiteApplicationResumeBuilder {
	builder.internshipList = internshipList
	builder.internshipListFlag = true
	return builder
}

// 作品集列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) WorkList(workList []*SiteResumeWork) *SiteApplicationResumeBuilder {
	builder.workList = workList
	builder.workListFlag = true
	return builder
}

// 获奖经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) AwardList(awardList []*SiteResumeAward) *SiteApplicationResumeBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言技能列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) LanguageSkillList(languageSkillList []*SiteResumeLanguageSkill) *SiteApplicationResumeBuilder {
	builder.languageSkillList = languageSkillList
	builder.languageSkillListFlag = true
	return builder
}

// 社交账号列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) SnsList(snsList []*SiteResumeSns) *SiteApplicationResumeBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 身份信息
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) Identification(identification *SiteResumeIdentification) *SiteApplicationResumeBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

// 竞赛经历列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) CompetitionList(competitionList []*SiteResumeCompetition) *SiteApplicationResumeBuilder {
	builder.competitionList = competitionList
	builder.competitionListFlag = true
	return builder
}

// 证书列表
//
// 示例值：
func (builder *SiteApplicationResumeBuilder) CertificateList(certificateList []*SiteResumeCertificate) *SiteApplicationResumeBuilder {
	builder.certificateList = certificateList
	builder.certificateListFlag = true
	return builder
}

func (builder *SiteApplicationResumeBuilder) Build() *SiteApplicationResume {
	req := &SiteApplicationResume{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileNumberFlag {
		req.MobileNumber = &builder.mobileNumber

	}
	if builder.moblieCodeFlag {
		req.MoblieCode = &builder.moblieCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.siteAttachmentIdFlag {
		req.SiteAttachmentId = &builder.siteAttachmentId

	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = &builder.selfEvaluation

	}
	if builder.ageFlag {
		req.Age = &builder.age

	}
	if builder.workingYearFlag {
		req.WorkingYear = &builder.workingYear

	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.internshipListFlag {
		req.InternshipList = builder.internshipList
	}
	if builder.workListFlag {
		req.WorkList = builder.workList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageSkillListFlag {
		req.LanguageSkillList = builder.languageSkillList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	if builder.competitionListFlag {
		req.CompetitionList = builder.competitionList
	}
	if builder.certificateListFlag {
		req.CertificateList = builder.certificateList
	}
	return req
}

type SiteJobPostSearchInfo struct {
	JobPostInfo []*SiteJobPost `json:"job_post_info,omitempty"` // 职位列表

	Count *int `json:"count,omitempty"` // 职位总数
}

type SiteJobPostSearchInfoBuilder struct {
	jobPostInfo     []*SiteJobPost // 职位列表
	jobPostInfoFlag bool

	count     int // 职位总数
	countFlag bool
}

func NewSiteJobPostSearchInfoBuilder() *SiteJobPostSearchInfoBuilder {
	builder := &SiteJobPostSearchInfoBuilder{}
	return builder
}

// 职位列表
//
// 示例值：
func (builder *SiteJobPostSearchInfoBuilder) JobPostInfo(jobPostInfo []*SiteJobPost) *SiteJobPostSearchInfoBuilder {
	builder.jobPostInfo = jobPostInfo
	builder.jobPostInfoFlag = true
	return builder
}

// 职位总数
//
// 示例值：
func (builder *SiteJobPostSearchInfoBuilder) Count(count int) *SiteJobPostSearchInfoBuilder {
	builder.count = count
	builder.countFlag = true
	return builder
}

func (builder *SiteJobPostSearchInfoBuilder) Build() *SiteJobPostSearchInfo {
	req := &SiteJobPostSearchInfo{}
	if builder.jobPostInfoFlag {
		req.JobPostInfo = builder.jobPostInfo
	}
	if builder.countFlag {
		req.Count = &builder.count

	}
	return req
}

type SiteJobPostSearchRequest struct {
	Keyword *string `json:"keyword,omitempty"` // 搜索关键字

	Offset *int `json:"offset,omitempty"` // 分页用的偏移量，默认0

	Limit *int `json:"limit,omitempty"` // 分页用的分页条数，最大100

	JobTypeIdList []string `json:"job_type_id_list,omitempty"` // 职能列表返回的id

	CityCodeList []string `json:"city_code_list,omitempty"` // 地址列表返回的code

	SiteId *string `json:"site_id,omitempty"` // 官网id，不传则查询默认官网
}

type SiteJobPostSearchRequestBuilder struct {
	keyword     string // 搜索关键字
	keywordFlag bool

	offset     int // 分页用的偏移量，默认0
	offsetFlag bool

	limit     int // 分页用的分页条数，最大100
	limitFlag bool

	jobTypeIdList     []string // 职能列表返回的id
	jobTypeIdListFlag bool

	cityCodeList     []string // 地址列表返回的code
	cityCodeListFlag bool

	siteId     string // 官网id，不传则查询默认官网
	siteIdFlag bool
}

func NewSiteJobPostSearchRequestBuilder() *SiteJobPostSearchRequestBuilder {
	builder := &SiteJobPostSearchRequestBuilder{}
	return builder
}

// 搜索关键字
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) Keyword(keyword string) *SiteJobPostSearchRequestBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 分页用的偏移量，默认0
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) Offset(offset int) *SiteJobPostSearchRequestBuilder {
	builder.offset = offset
	builder.offsetFlag = true
	return builder
}

// 分页用的分页条数，最大100
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) Limit(limit int) *SiteJobPostSearchRequestBuilder {
	builder.limit = limit
	builder.limitFlag = true
	return builder
}

// 职能列表返回的id
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) JobTypeIdList(jobTypeIdList []string) *SiteJobPostSearchRequestBuilder {
	builder.jobTypeIdList = jobTypeIdList
	builder.jobTypeIdListFlag = true
	return builder
}

// 地址列表返回的code
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) CityCodeList(cityCodeList []string) *SiteJobPostSearchRequestBuilder {
	builder.cityCodeList = cityCodeList
	builder.cityCodeListFlag = true
	return builder
}

// 官网id，不传则查询默认官网
//
// 示例值：
func (builder *SiteJobPostSearchRequestBuilder) SiteId(siteId string) *SiteJobPostSearchRequestBuilder {
	builder.siteId = siteId
	builder.siteIdFlag = true
	return builder
}

func (builder *SiteJobPostSearchRequestBuilder) Build() *SiteJobPostSearchRequest {
	req := &SiteJobPostSearchRequest{}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword

	}
	if builder.offsetFlag {
		req.Offset = &builder.offset

	}
	if builder.limitFlag {
		req.Limit = &builder.limit

	}
	if builder.jobTypeIdListFlag {
		req.JobTypeIdList = builder.jobTypeIdList
	}
	if builder.cityCodeListFlag {
		req.CityCodeList = builder.cityCodeList
	}
	if builder.siteIdFlag {
		req.SiteId = &builder.siteId

	}
	return req
}

type SiteJobRecruitmentType struct {
	Id *string `json:"id,omitempty"` // 雇佣类型id

	Name *SiteName `json:"name,omitempty"` // 雇佣类型名称
}

type SiteJobRecruitmentTypeBuilder struct {
	id     string // 雇佣类型id
	idFlag bool

	name     *SiteName // 雇佣类型名称
	nameFlag bool
}

func NewSiteJobRecruitmentTypeBuilder() *SiteJobRecruitmentTypeBuilder {
	builder := &SiteJobRecruitmentTypeBuilder{}
	return builder
}

// 雇佣类型id
//
// 示例值：
func (builder *SiteJobRecruitmentTypeBuilder) Id(id string) *SiteJobRecruitmentTypeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 雇佣类型名称
//
// 示例值：
func (builder *SiteJobRecruitmentTypeBuilder) Name(name *SiteName) *SiteJobRecruitmentTypeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *SiteJobRecruitmentTypeBuilder) Build() *SiteJobRecruitmentType {
	req := &SiteJobRecruitmentType{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type SiteName struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文名称

	EnUs *string `json:"en_us,omitempty"` // 英文名称
}

type SiteNameBuilder struct {
	zhCn     string // 中文名称
	zhCnFlag bool

	enUs     string // 英文名称
	enUsFlag bool
}

func NewSiteNameBuilder() *SiteNameBuilder {
	builder := &SiteNameBuilder{}
	return builder
}

// 中文名称
//
// 示例值：
func (builder *SiteNameBuilder) ZhCn(zhCn string) *SiteNameBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文名称
//
// 示例值：
func (builder *SiteNameBuilder) EnUs(enUs string) *SiteNameBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

func (builder *SiteNameBuilder) Build() *SiteName {
	req := &SiteName{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	return req
}

type SiteResumeAward struct {
	Title *string `json:"title,omitempty"` // 标题

	AwardTime *string `json:"award_time,omitempty"` // 获奖时间

	Description *string `json:"description,omitempty"` // 描述
}

type SiteResumeAwardBuilder struct {
	title     string // 标题
	titleFlag bool

	awardTime     string // 获奖时间
	awardTimeFlag bool

	description     string // 描述
	descriptionFlag bool
}

func NewSiteResumeAwardBuilder() *SiteResumeAwardBuilder {
	builder := &SiteResumeAwardBuilder{}
	return builder
}

// 标题
//
// 示例值：
func (builder *SiteResumeAwardBuilder) Title(title string) *SiteResumeAwardBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 获奖时间
//
// 示例值：
func (builder *SiteResumeAwardBuilder) AwardTime(awardTime string) *SiteResumeAwardBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeAwardBuilder) Description(description string) *SiteResumeAwardBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *SiteResumeAwardBuilder) Build() *SiteResumeAward {
	req := &SiteResumeAward{}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type SiteResumeCareer struct {
	Company *string `json:"company,omitempty"` // 公司名

	Title *string `json:"title,omitempty"` // 职位名

	CareerType *string `json:"career_type,omitempty"` // 工作类型

	Description *string `json:"description,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type SiteResumeCareerBuilder struct {
	company     string // 公司名
	companyFlag bool

	title     string // 职位名
	titleFlag bool

	careerType     string // 工作类型
	careerTypeFlag bool

	description     string // 描述
	descriptionFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewSiteResumeCareerBuilder() *SiteResumeCareerBuilder {
	builder := &SiteResumeCareerBuilder{}
	return builder
}

// 公司名
//
// 示例值：
func (builder *SiteResumeCareerBuilder) Company(company string) *SiteResumeCareerBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 职位名
//
// 示例值：
func (builder *SiteResumeCareerBuilder) Title(title string) *SiteResumeCareerBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 工作类型
//
// 示例值：
func (builder *SiteResumeCareerBuilder) CareerType(careerType string) *SiteResumeCareerBuilder {
	builder.careerType = careerType
	builder.careerTypeFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeCareerBuilder) Description(description string) *SiteResumeCareerBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 开始时间
//
// 示例值：
func (builder *SiteResumeCareerBuilder) StartTime(startTime string) *SiteResumeCareerBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：
func (builder *SiteResumeCareerBuilder) EndTime(endTime string) *SiteResumeCareerBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SiteResumeCareerBuilder) Build() *SiteResumeCareer {
	req := &SiteResumeCareer{}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.careerTypeFlag {
		req.CareerType = &builder.careerType

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type SiteResumeCertificate struct {
	Name *string `json:"name,omitempty"` // 名称

	Description *string `json:"description,omitempty"` // 描述
}

type SiteResumeCertificateBuilder struct {
	name     string // 名称
	nameFlag bool

	description     string // 描述
	descriptionFlag bool
}

func NewSiteResumeCertificateBuilder() *SiteResumeCertificateBuilder {
	builder := &SiteResumeCertificateBuilder{}
	return builder
}

// 名称
//
// 示例值：
func (builder *SiteResumeCertificateBuilder) Name(name string) *SiteResumeCertificateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeCertificateBuilder) Description(description string) *SiteResumeCertificateBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *SiteResumeCertificateBuilder) Build() *SiteResumeCertificate {
	req := &SiteResumeCertificate{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type SiteResumeCompetition struct {
	Name *string `json:"name,omitempty"` // 名称

	Description *string `json:"description,omitempty"` // 描述
}

type SiteResumeCompetitionBuilder struct {
	name     string // 名称
	nameFlag bool

	description     string // 描述
	descriptionFlag bool
}

func NewSiteResumeCompetitionBuilder() *SiteResumeCompetitionBuilder {
	builder := &SiteResumeCompetitionBuilder{}
	return builder
}

// 名称
//
// 示例值：
func (builder *SiteResumeCompetitionBuilder) Name(name string) *SiteResumeCompetitionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeCompetitionBuilder) Description(description string) *SiteResumeCompetitionBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

func (builder *SiteResumeCompetitionBuilder) Build() *SiteResumeCompetition {
	req := &SiteResumeCompetition{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	return req
}

type SiteResumeEducation struct {
	Degree *string `json:"degree,omitempty"` // 学位

	School *string `json:"school,omitempty"` // 学校

	Major *string `json:"major,omitempty"` // 专业

	StartTime *string `json:"start_time,omitempty"` // 入学时间

	EndTime *string `json:"end_time,omitempty"` // 毕业时间

	EducationType *string `json:"education_type,omitempty"` // 学位类型

	AcademicRanking *string `json:"academic_ranking,omitempty"` // 排名
}

type SiteResumeEducationBuilder struct {
	degree     string // 学位
	degreeFlag bool

	school     string // 学校
	schoolFlag bool

	major     string // 专业
	majorFlag bool

	startTime     string // 入学时间
	startTimeFlag bool

	endTime     string // 毕业时间
	endTimeFlag bool

	educationType     string // 学位类型
	educationTypeFlag bool

	academicRanking     string // 排名
	academicRankingFlag bool
}

func NewSiteResumeEducationBuilder() *SiteResumeEducationBuilder {
	builder := &SiteResumeEducationBuilder{}
	return builder
}

// 学位
//
// 示例值：
func (builder *SiteResumeEducationBuilder) Degree(degree string) *SiteResumeEducationBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 学校
//
// 示例值：
func (builder *SiteResumeEducationBuilder) School(school string) *SiteResumeEducationBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 专业
//
// 示例值：
func (builder *SiteResumeEducationBuilder) Major(major string) *SiteResumeEducationBuilder {
	builder.major = major
	builder.majorFlag = true
	return builder
}

// 入学时间
//
// 示例值：
func (builder *SiteResumeEducationBuilder) StartTime(startTime string) *SiteResumeEducationBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 毕业时间
//
// 示例值：
func (builder *SiteResumeEducationBuilder) EndTime(endTime string) *SiteResumeEducationBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 学位类型
//
// 示例值：
func (builder *SiteResumeEducationBuilder) EducationType(educationType string) *SiteResumeEducationBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 排名
//
// 示例值：
func (builder *SiteResumeEducationBuilder) AcademicRanking(academicRanking string) *SiteResumeEducationBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

func (builder *SiteResumeEducationBuilder) Build() *SiteResumeEducation {
	req := &SiteResumeEducation{}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.majorFlag {
		req.Major = &builder.major

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	return req
}

type SiteResumeIdentification struct {
	IdentificationType *string `json:"identification_type,omitempty"` // 身份类型

	Code *string `json:"code,omitempty"` // 身份号码
}

type SiteResumeIdentificationBuilder struct {
	identificationType     string // 身份类型
	identificationTypeFlag bool

	code     string // 身份号码
	codeFlag bool
}

func NewSiteResumeIdentificationBuilder() *SiteResumeIdentificationBuilder {
	builder := &SiteResumeIdentificationBuilder{}
	return builder
}

// 身份类型
//
// 示例值：
func (builder *SiteResumeIdentificationBuilder) IdentificationType(identificationType string) *SiteResumeIdentificationBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 身份号码
//
// 示例值：
func (builder *SiteResumeIdentificationBuilder) Code(code string) *SiteResumeIdentificationBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

func (builder *SiteResumeIdentificationBuilder) Build() *SiteResumeIdentification {
	req := &SiteResumeIdentification{}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	return req
}

type SiteResumeInternship struct {
	Company *string `json:"company,omitempty"` // 公司名

	Position *string `json:"position,omitempty"` // 职位名

	Description *string `json:"description,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type SiteResumeInternshipBuilder struct {
	company     string // 公司名
	companyFlag bool

	position     string // 职位名
	positionFlag bool

	description     string // 描述
	descriptionFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewSiteResumeInternshipBuilder() *SiteResumeInternshipBuilder {
	builder := &SiteResumeInternshipBuilder{}
	return builder
}

// 公司名
//
// 示例值：
func (builder *SiteResumeInternshipBuilder) Company(company string) *SiteResumeInternshipBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 职位名
//
// 示例值：
func (builder *SiteResumeInternshipBuilder) Position(position string) *SiteResumeInternshipBuilder {
	builder.position = position
	builder.positionFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeInternshipBuilder) Description(description string) *SiteResumeInternshipBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 开始时间
//
// 示例值：
func (builder *SiteResumeInternshipBuilder) StartTime(startTime string) *SiteResumeInternshipBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：
func (builder *SiteResumeInternshipBuilder) EndTime(endTime string) *SiteResumeInternshipBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SiteResumeInternshipBuilder) Build() *SiteResumeInternship {
	req := &SiteResumeInternship{}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.positionFlag {
		req.Position = &builder.position

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type SiteResumeLanguageSkill struct {
	Language *string `json:"language,omitempty"` // 语言名称

	Proficiency *string `json:"proficiency,omitempty"` // 语言等级
}

type SiteResumeLanguageSkillBuilder struct {
	language     string // 语言名称
	languageFlag bool

	proficiency     string // 语言等级
	proficiencyFlag bool
}

func NewSiteResumeLanguageSkillBuilder() *SiteResumeLanguageSkillBuilder {
	builder := &SiteResumeLanguageSkillBuilder{}
	return builder
}

// 语言名称
//
// 示例值：
func (builder *SiteResumeLanguageSkillBuilder) Language(language string) *SiteResumeLanguageSkillBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 语言等级
//
// 示例值：
func (builder *SiteResumeLanguageSkillBuilder) Proficiency(proficiency string) *SiteResumeLanguageSkillBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

func (builder *SiteResumeLanguageSkillBuilder) Build() *SiteResumeLanguageSkill {
	req := &SiteResumeLanguageSkill{}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	return req
}

type SiteResumeProject struct {
	Name *string `json:"name,omitempty"` // 项目名

	Role *string `json:"role,omitempty"` // 担任角色

	Description *string `json:"description,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type SiteResumeProjectBuilder struct {
	name     string // 项目名
	nameFlag bool

	role     string // 担任角色
	roleFlag bool

	description     string // 描述
	descriptionFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewSiteResumeProjectBuilder() *SiteResumeProjectBuilder {
	builder := &SiteResumeProjectBuilder{}
	return builder
}

// 项目名
//
// 示例值：
func (builder *SiteResumeProjectBuilder) Name(name string) *SiteResumeProjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 担任角色
//
// 示例值：
func (builder *SiteResumeProjectBuilder) Role(role string) *SiteResumeProjectBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeProjectBuilder) Description(description string) *SiteResumeProjectBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 开始时间
//
// 示例值：
func (builder *SiteResumeProjectBuilder) StartTime(startTime string) *SiteResumeProjectBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：
func (builder *SiteResumeProjectBuilder) EndTime(endTime string) *SiteResumeProjectBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SiteResumeProjectBuilder) Build() *SiteResumeProject {
	req := &SiteResumeProject{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type SiteResumeSns struct {
	SnsType *string `json:"sns_type,omitempty"` // 社交网站类型

	Link *string `json:"link,omitempty"` // 链接
}

type SiteResumeSnsBuilder struct {
	snsType     string // 社交网站类型
	snsTypeFlag bool

	link     string // 链接
	linkFlag bool
}

func NewSiteResumeSnsBuilder() *SiteResumeSnsBuilder {
	builder := &SiteResumeSnsBuilder{}
	return builder
}

// 社交网站类型
//
// 示例值：
func (builder *SiteResumeSnsBuilder) SnsType(snsType string) *SiteResumeSnsBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

// 链接
//
// 示例值：
func (builder *SiteResumeSnsBuilder) Link(link string) *SiteResumeSnsBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

func (builder *SiteResumeSnsBuilder) Build() *SiteResumeSns {
	req := &SiteResumeSns{}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	return req
}

type SiteResumeWork struct {
	Link *string `json:"link,omitempty"` // 作品链接

	Description *string `json:"description,omitempty"` // 描述

	SiteAttachmentId *string `json:"site_attachment_id,omitempty"` // 作品附件id
}

type SiteResumeWorkBuilder struct {
	link     string // 作品链接
	linkFlag bool

	description     string // 描述
	descriptionFlag bool

	siteAttachmentId     string // 作品附件id
	siteAttachmentIdFlag bool
}

func NewSiteResumeWorkBuilder() *SiteResumeWorkBuilder {
	builder := &SiteResumeWorkBuilder{}
	return builder
}

// 作品链接
//
// 示例值：
func (builder *SiteResumeWorkBuilder) Link(link string) *SiteResumeWorkBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：
func (builder *SiteResumeWorkBuilder) Description(description string) *SiteResumeWorkBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 作品附件id
//
// 示例值：
func (builder *SiteResumeWorkBuilder) SiteAttachmentId(siteAttachmentId string) *SiteResumeWorkBuilder {
	builder.siteAttachmentId = siteAttachmentId
	builder.siteAttachmentIdFlag = true
	return builder
}

func (builder *SiteResumeWorkBuilder) Build() *SiteResumeWork {
	req := &SiteResumeWork{}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.siteAttachmentIdFlag {
		req.SiteAttachmentId = &builder.siteAttachmentId

	}
	return req
}

type SnsInfo struct {
	Link *string `json:"link,omitempty"` // SNS链接

	SnsType *int `json:"sns_type,omitempty"` // SNS类型
}

type SnsInfoBuilder struct {
	link     string // SNS链接
	linkFlag bool

	snsType     int // SNS类型
	snsTypeFlag bool
}

func NewSnsInfoBuilder() *SnsInfoBuilder {
	builder := &SnsInfoBuilder{}
	return builder
}

// SNS链接
//
// 示例值：
func (builder *SnsInfoBuilder) Link(link string) *SnsInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// SNS类型
//
// 示例值：
func (builder *SnsInfoBuilder) SnsType(snsType int) *SnsInfoBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

func (builder *SnsInfoBuilder) Build() *SnsInfo {
	req := &SnsInfo{}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	return req
}

type SpecificRelationship struct {
	RelationWithCandidate *int `json:"relation_with_candidate,omitempty"` // 与候选人的关系

	Extra *string `json:"extra,omitempty"` // 附加信息
}

type SpecificRelationshipBuilder struct {
	relationWithCandidate     int // 与候选人的关系
	relationWithCandidateFlag bool

	extra     string // 附加信息
	extraFlag bool
}

func NewSpecificRelationshipBuilder() *SpecificRelationshipBuilder {
	builder := &SpecificRelationshipBuilder{}
	return builder
}

// 与候选人的关系
//
// 示例值：1
func (builder *SpecificRelationshipBuilder) RelationWithCandidate(relationWithCandidate int) *SpecificRelationshipBuilder {
	builder.relationWithCandidate = relationWithCandidate
	builder.relationWithCandidateFlag = true
	return builder
}

// 附加信息
//
// 示例值：在前公司合作非常愉快～
func (builder *SpecificRelationshipBuilder) Extra(extra string) *SpecificRelationshipBuilder {
	builder.extra = extra
	builder.extraFlag = true
	return builder
}

func (builder *SpecificRelationshipBuilder) Build() *SpecificRelationship {
	req := &SpecificRelationship{}
	if builder.relationWithCandidateFlag {
		req.RelationWithCandidate = &builder.relationWithCandidate

	}
	if builder.extraFlag {
		req.Extra = &builder.extra

	}
	return req
}

type Store struct {
	Id *string `json:"id,omitempty"` // 门店ID

	Name *string `json:"name,omitempty"` // 门店名称

	NameEn *string `json:"name_en,omitempty"` // 门店名称（英文）

	DepartmentId *string `json:"department_id,omitempty"` // 部门ID

	ActiveStatus *int `json:"active_status,omitempty"` // 启用状态

	AddressId *string `json:"address_id,omitempty"` // 地理位置

	ManagerId *string `json:"manager_id,omitempty"` // 门店负责人ID

	Remark *string `json:"remark,omitempty"` // 备注

	RemarkEn *string `json:"remark_en,omitempty"` // 备注（英文）
}

type StoreBuilder struct {
	id     string // 门店ID
	idFlag bool

	name     string // 门店名称
	nameFlag bool

	nameEn     string // 门店名称（英文）
	nameEnFlag bool

	departmentId     string // 部门ID
	departmentIdFlag bool

	activeStatus     int // 启用状态
	activeStatusFlag bool

	addressId     string // 地理位置
	addressIdFlag bool

	managerId     string // 门店负责人ID
	managerIdFlag bool

	remark     string // 备注
	remarkFlag bool

	remarkEn     string // 备注（英文）
	remarkEnFlag bool
}

func NewStoreBuilder() *StoreBuilder {
	builder := &StoreBuilder{}
	return builder
}

// 门店ID
//
// 示例值：7244461012524337452
func (builder *StoreBuilder) Id(id string) *StoreBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 门店名称
//
// 示例值：门店名称
func (builder *StoreBuilder) Name(name string) *StoreBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 门店名称（英文）
//
// 示例值：Store Name
func (builder *StoreBuilder) NameEn(nameEn string) *StoreBuilder {
	builder.nameEn = nameEn
	builder.nameEnFlag = true
	return builder
}

// 部门ID
//
// 示例值：od-b2fafdce6fc5800b574ba5b0e2798b36
func (builder *StoreBuilder) DepartmentId(departmentId string) *StoreBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 启用状态
//
// 示例值：1
func (builder *StoreBuilder) ActiveStatus(activeStatus int) *StoreBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 地理位置
//
// 示例值：6936011864347134239
func (builder *StoreBuilder) AddressId(addressId string) *StoreBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 门店负责人ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *StoreBuilder) ManagerId(managerId string) *StoreBuilder {
	builder.managerId = managerId
	builder.managerIdFlag = true
	return builder
}

// 备注
//
// 示例值：备注
func (builder *StoreBuilder) Remark(remark string) *StoreBuilder {
	builder.remark = remark
	builder.remarkFlag = true
	return builder
}

// 备注（英文）
//
// 示例值：Remark
func (builder *StoreBuilder) RemarkEn(remarkEn string) *StoreBuilder {
	builder.remarkEn = remarkEn
	builder.remarkEnFlag = true
	return builder
}

func (builder *StoreBuilder) Build() *Store {
	req := &Store{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.nameEnFlag {
		req.NameEn = &builder.nameEn

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId

	}
	if builder.managerIdFlag {
		req.ManagerId = &builder.managerId

	}
	if builder.remarkFlag {
		req.Remark = &builder.remark

	}
	if builder.remarkEnFlag {
		req.RemarkEn = &builder.remarkEn

	}
	return req
}

type Subject struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	ActiveStatus *int `json:"active_status,omitempty"` // 状态

	ApplicationLimit *int `json:"application_limit,omitempty"` // 投递职位数上限

	Creator *IdNameObject `json:"creator,omitempty"` // 创建人
}

type SubjectBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	activeStatus     int // 状态
	activeStatusFlag bool

	applicationLimit     int // 投递职位数上限
	applicationLimitFlag bool

	creator     *IdNameObject // 创建人
	creatorFlag bool
}

func NewSubjectBuilder() *SubjectBuilder {
	builder := &SubjectBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *SubjectBuilder) Id(id string) *SubjectBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *SubjectBuilder) Name(name *I18n) *SubjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 创建时间
//
// 示例值：1628512038000
func (builder *SubjectBuilder) CreateTime(createTime string) *SubjectBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 状态
//
// 示例值：1
func (builder *SubjectBuilder) ActiveStatus(activeStatus int) *SubjectBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 投递职位数上限
//
// 示例值：1
func (builder *SubjectBuilder) ApplicationLimit(applicationLimit int) *SubjectBuilder {
	builder.applicationLimit = applicationLimit
	builder.applicationLimitFlag = true
	return builder
}

// 创建人
//
// 示例值：
func (builder *SubjectBuilder) Creator(creator *IdNameObject) *SubjectBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

func (builder *SubjectBuilder) Build() *Subject {
	req := &Subject{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.applicationLimitFlag {
		req.ApplicationLimit = &builder.applicationLimit

	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	return req
}

type Talent struct {
	Id *string `json:"id,omitempty"` // 人才ID

	IsInAgencyPeriod *bool `json:"is_in_agency_period,omitempty"` // 是否在猎头保护期

	IsOnboarded *bool `json:"is_onboarded,omitempty"` // 是否已入职

	BasicInfo *TalentBasicInfo `json:"basic_info,omitempty"` // 基础信息

	EducationList []*TalentEducationInfo `json:"education_list,omitempty"` // 教育经历

	CareerList []*TalentCareerInfo `json:"career_list,omitempty"` // 工作经历

	ProjectList []*TalentProjectInfo `json:"project_list,omitempty"` // 项目经历

	WorksList []*TalentWorksInfo `json:"works_list,omitempty"` // 作品

	AwardList []*TalentAwardInfo `json:"award_list,omitempty"` // 获奖

	LanguageList []*TalentLanguageInfo `json:"language_list,omitempty"` // 语言能力

	SnsList []*TalentSnsInfo `json:"sns_list,omitempty"` // 社交账号

	ResumeSourceList []*TalentResumeSource `json:"resume_source_list,omitempty"` // 简历来源

	InterviewRegistrationList []*TalentInterviewRegistrationSimple `json:"interview_registration_list,omitempty"` // 面试登记表

	RegistrationList []*RegistrationBasicInfo `json:"registration_list,omitempty"` // 登记表列表

	ResumeAttachmentIdList []string `json:"resume_attachment_id_list,omitempty"` // 简历附件id列表（按照简历创建时间降序）

	CustomizedDataList []*TalentCustomizedData `json:"customized_data_list,omitempty"` // 自定义模块

	TopDegree *int `json:"top_degree,omitempty"` // 最高学历

	FirstDegree *int `json:"first_degree,omitempty"` // 第一学历
}

type TalentBuilder struct {
	id     string // 人才ID
	idFlag bool

	isInAgencyPeriod     bool // 是否在猎头保护期
	isInAgencyPeriodFlag bool

	isOnboarded     bool // 是否已入职
	isOnboardedFlag bool

	basicInfo     *TalentBasicInfo // 基础信息
	basicInfoFlag bool

	educationList     []*TalentEducationInfo // 教育经历
	educationListFlag bool

	careerList     []*TalentCareerInfo // 工作经历
	careerListFlag bool

	projectList     []*TalentProjectInfo // 项目经历
	projectListFlag bool

	worksList     []*TalentWorksInfo // 作品
	worksListFlag bool

	awardList     []*TalentAwardInfo // 获奖
	awardListFlag bool

	languageList     []*TalentLanguageInfo // 语言能力
	languageListFlag bool

	snsList     []*TalentSnsInfo // 社交账号
	snsListFlag bool

	resumeSourceList     []*TalentResumeSource // 简历来源
	resumeSourceListFlag bool

	interviewRegistrationList     []*TalentInterviewRegistrationSimple // 面试登记表
	interviewRegistrationListFlag bool

	registrationList     []*RegistrationBasicInfo // 登记表列表
	registrationListFlag bool

	resumeAttachmentIdList     []string // 简历附件id列表（按照简历创建时间降序）
	resumeAttachmentIdListFlag bool

	customizedDataList     []*TalentCustomizedData // 自定义模块
	customizedDataListFlag bool

	topDegree     int // 最高学历
	topDegreeFlag bool

	firstDegree     int // 第一学历
	firstDegreeFlag bool
}

func NewTalentBuilder() *TalentBuilder {
	builder := &TalentBuilder{}
	return builder
}

// 人才ID
//
// 示例值：6891560630172518670
func (builder *TalentBuilder) Id(id string) *TalentBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 是否在猎头保护期
//
// 示例值：true
func (builder *TalentBuilder) IsInAgencyPeriod(isInAgencyPeriod bool) *TalentBuilder {
	builder.isInAgencyPeriod = isInAgencyPeriod
	builder.isInAgencyPeriodFlag = true
	return builder
}

// 是否已入职
//
// 示例值：true
func (builder *TalentBuilder) IsOnboarded(isOnboarded bool) *TalentBuilder {
	builder.isOnboarded = isOnboarded
	builder.isOnboardedFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *TalentBuilder) BasicInfo(basicInfo *TalentBasicInfo) *TalentBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
// 示例值：
func (builder *TalentBuilder) EducationList(educationList []*TalentEducationInfo) *TalentBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
// 示例值：
func (builder *TalentBuilder) CareerList(careerList []*TalentCareerInfo) *TalentBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
// 示例值：
func (builder *TalentBuilder) ProjectList(projectList []*TalentProjectInfo) *TalentBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品
//
// 示例值：
func (builder *TalentBuilder) WorksList(worksList []*TalentWorksInfo) *TalentBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖
//
// 示例值：
func (builder *TalentBuilder) AwardList(awardList []*TalentAwardInfo) *TalentBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言能力
//
// 示例值：
func (builder *TalentBuilder) LanguageList(languageList []*TalentLanguageInfo) *TalentBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// 社交账号
//
// 示例值：
func (builder *TalentBuilder) SnsList(snsList []*TalentSnsInfo) *TalentBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 简历来源
//
// 示例值：
func (builder *TalentBuilder) ResumeSourceList(resumeSourceList []*TalentResumeSource) *TalentBuilder {
	builder.resumeSourceList = resumeSourceList
	builder.resumeSourceListFlag = true
	return builder
}

// 面试登记表
//
// 示例值：
func (builder *TalentBuilder) InterviewRegistrationList(interviewRegistrationList []*TalentInterviewRegistrationSimple) *TalentBuilder {
	builder.interviewRegistrationList = interviewRegistrationList
	builder.interviewRegistrationListFlag = true
	return builder
}

// 登记表列表
//
// 示例值：
func (builder *TalentBuilder) RegistrationList(registrationList []*RegistrationBasicInfo) *TalentBuilder {
	builder.registrationList = registrationList
	builder.registrationListFlag = true
	return builder
}

// 简历附件id列表（按照简历创建时间降序）
//
// 示例值：
func (builder *TalentBuilder) ResumeAttachmentIdList(resumeAttachmentIdList []string) *TalentBuilder {
	builder.resumeAttachmentIdList = resumeAttachmentIdList
	builder.resumeAttachmentIdListFlag = true
	return builder
}

// 自定义模块
//
// 示例值：
func (builder *TalentBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedData) *TalentBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 最高学历
//
// 示例值：1
func (builder *TalentBuilder) TopDegree(topDegree int) *TalentBuilder {
	builder.topDegree = topDegree
	builder.topDegreeFlag = true
	return builder
}

// 第一学历
//
// 示例值：3
func (builder *TalentBuilder) FirstDegree(firstDegree int) *TalentBuilder {
	builder.firstDegree = firstDegree
	builder.firstDegreeFlag = true
	return builder
}

func (builder *TalentBuilder) Build() *Talent {
	req := &Talent{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.isInAgencyPeriodFlag {
		req.IsInAgencyPeriod = &builder.isInAgencyPeriod

	}
	if builder.isOnboardedFlag {
		req.IsOnboarded = &builder.isOnboarded

	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.resumeSourceListFlag {
		req.ResumeSourceList = builder.resumeSourceList
	}
	if builder.interviewRegistrationListFlag {
		req.InterviewRegistrationList = builder.interviewRegistrationList
	}
	if builder.registrationListFlag {
		req.RegistrationList = builder.registrationList
	}
	if builder.resumeAttachmentIdListFlag {
		req.ResumeAttachmentIdList = builder.resumeAttachmentIdList
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.topDegreeFlag {
		req.TopDegree = &builder.topDegree

	}
	if builder.firstDegreeFlag {
		req.FirstDegree = &builder.firstDegree

	}
	return req
}

type TalentInterviewRegistration struct {
}

type TalentInterviewRegistrationBuilder struct {
}

func NewTalentInterviewRegistrationBuilder() *TalentInterviewRegistrationBuilder {
	builder := &TalentInterviewRegistrationBuilder{}
	return builder
}

func (builder *TalentInterviewRegistrationBuilder) Build() *TalentInterviewRegistration {
	req := &TalentInterviewRegistration{}
	return req
}

type TalentAwardInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Title *string `json:"title,omitempty"` // 获奖名称

	AwardTime *string `json:"award_time,omitempty"` // 获奖时间

	Desc *string `json:"desc,omitempty"` // 描述

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentAwardInfoBuilder struct {
	id     string // ID
	idFlag bool

	title     string // 获奖名称
	titleFlag bool

	awardTime     string // 获奖时间
	awardTimeFlag bool

	desc     string // 描述
	descFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentAwardInfoBuilder() *TalentAwardInfoBuilder {
	builder := &TalentAwardInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentAwardInfoBuilder) Id(id string) *TalentAwardInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 获奖名称
//
// 示例值：最佳新人奖
func (builder *TalentAwardInfoBuilder) Title(title string) *TalentAwardInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 获奖时间
//
// 示例值：1991
func (builder *TalentAwardInfoBuilder) AwardTime(awardTime string) *TalentAwardInfoBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

// 描述
//
// 示例值：最优秀的新人奖
func (builder *TalentAwardInfoBuilder) Desc(desc string) *TalentAwardInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentAwardInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentAwardInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentAwardInfoBuilder) Build() *TalentAwardInfo {
	req := &TalentAwardInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentBasicInfo struct {
	Name *string `json:"name,omitempty"` // 名字

	Mobile *string `json:"mobile,omitempty"` // 手机

	MobileCode *string `json:"mobile_code,omitempty"` // 手机国家区号

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码

	Email *string `json:"email,omitempty"` // 邮箱

	ExperienceYears *int `json:"experience_years,omitempty"` // 工作年限

	Age *int `json:"age,omitempty"` // 年龄

	Nationality *TalentNationality `json:"nationality,omitempty"` // 国籍

	Gender *int `json:"gender,omitempty"` // 性别

	CurrentCity *TalentCityInfo `json:"current_city,omitempty"` // 所在地点

	HometownCity *TalentCityInfo `json:"hometown_city,omitempty"` // 家乡

	PreferredCityList []*TalentCityInfo `json:"preferred_city_list,omitempty"` // 意向地点

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号

	Identification *TalentIdentificationInfo `json:"identification,omitempty"` // 证件信息

	Birthday *int64 `json:"birthday,omitempty"` // 生日

	CreatorId *string `json:"creator_id,omitempty"` // 创建人

	MaritalStatus *int `json:"marital_status,omitempty"` // 婚姻状况

	CurrentHomeAddress *string `json:"current_home_address,omitempty"` // 家庭住址

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间

	HukouLocationCode *string `json:"hukou_location_code,omitempty"` // 户口所在地
}

type TalentBasicInfoBuilder struct {
	name     string // 名字
	nameFlag bool

	mobile     string // 手机
	mobileFlag bool

	mobileCode     string // 手机国家区号
	mobileCodeFlag bool

	mobileCountryCode     string // 手机国家代码
	mobileCountryCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	experienceYears     int // 工作年限
	experienceYearsFlag bool

	age     int // 年龄
	ageFlag bool

	nationality     *TalentNationality // 国籍
	nationalityFlag bool

	gender     int // 性别
	genderFlag bool

	currentCity     *TalentCityInfo // 所在地点
	currentCityFlag bool

	hometownCity     *TalentCityInfo // 家乡
	hometownCityFlag bool

	preferredCityList     []*TalentCityInfo // 意向地点
	preferredCityListFlag bool

	identificationType     int // 证件类型
	identificationTypeFlag bool

	identificationNumber     string // 证件号
	identificationNumberFlag bool

	identification     *TalentIdentificationInfo // 证件信息
	identificationFlag bool

	birthday     int64 // 生日
	birthdayFlag bool

	creatorId     string // 创建人
	creatorIdFlag bool

	maritalStatus     int // 婚姻状况
	maritalStatusFlag bool

	currentHomeAddress     string // 家庭住址
	currentHomeAddressFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool

	modifyTime     string // 修改时间
	modifyTimeFlag bool

	hukouLocationCode     string // 户口所在地
	hukouLocationCodeFlag bool
}

func NewTalentBasicInfoBuilder() *TalentBasicInfoBuilder {
	builder := &TalentBasicInfoBuilder{}
	return builder
}

// 名字
//
// 示例值：测试
func (builder *TalentBasicInfoBuilder) Name(name string) *TalentBasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机
//
// 示例值：182900291190
func (builder *TalentBasicInfoBuilder) Mobile(mobile string) *TalentBasicInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 手机国家区号
//
// 示例值：86
func (builder *TalentBasicInfoBuilder) MobileCode(mobileCode string) *TalentBasicInfoBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：CN_1
func (builder *TalentBasicInfoBuilder) MobileCountryCode(mobileCountryCode string) *TalentBasicInfoBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：16xx1@126.com
func (builder *TalentBasicInfoBuilder) Email(email string) *TalentBasicInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 工作年限
//
// 示例值：5
func (builder *TalentBasicInfoBuilder) ExperienceYears(experienceYears int) *TalentBasicInfoBuilder {
	builder.experienceYears = experienceYears
	builder.experienceYearsFlag = true
	return builder
}

// 年龄
//
// 示例值：22
func (builder *TalentBasicInfoBuilder) Age(age int) *TalentBasicInfoBuilder {
	builder.age = age
	builder.ageFlag = true
	return builder
}

// 国籍
//
// 示例值：
func (builder *TalentBasicInfoBuilder) Nationality(nationality *TalentNationality) *TalentBasicInfoBuilder {
	builder.nationality = nationality
	builder.nationalityFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *TalentBasicInfoBuilder) Gender(gender int) *TalentBasicInfoBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 所在地点
//
// 示例值：
func (builder *TalentBasicInfoBuilder) CurrentCity(currentCity *TalentCityInfo) *TalentBasicInfoBuilder {
	builder.currentCity = currentCity
	builder.currentCityFlag = true
	return builder
}

// 家乡
//
// 示例值：
func (builder *TalentBasicInfoBuilder) HometownCity(hometownCity *TalentCityInfo) *TalentBasicInfoBuilder {
	builder.hometownCity = hometownCity
	builder.hometownCityFlag = true
	return builder
}

// 意向地点
//
// 示例值：
func (builder *TalentBasicInfoBuilder) PreferredCityList(preferredCityList []*TalentCityInfo) *TalentBasicInfoBuilder {
	builder.preferredCityList = preferredCityList
	builder.preferredCityListFlag = true
	return builder
}

// 证件类型
//
// 示例值：1
func (builder *TalentBasicInfoBuilder) IdentificationType(identificationType int) *TalentBasicInfoBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：511699199x1x111234
func (builder *TalentBasicInfoBuilder) IdentificationNumber(identificationNumber string) *TalentBasicInfoBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 证件信息
//
// 示例值：
func (builder *TalentBasicInfoBuilder) Identification(identification *TalentIdentificationInfo) *TalentBasicInfoBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

// 生日
//
// 示例值：293016767159
func (builder *TalentBasicInfoBuilder) Birthday(birthday int64) *TalentBasicInfoBuilder {
	builder.birthday = birthday
	builder.birthdayFlag = true
	return builder
}

// 创建人
//
// 示例值：ou-xxx
func (builder *TalentBasicInfoBuilder) CreatorId(creatorId string) *TalentBasicInfoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 婚姻状况
//
// 示例值：1
func (builder *TalentBasicInfoBuilder) MaritalStatus(maritalStatus int) *TalentBasicInfoBuilder {
	builder.maritalStatus = maritalStatus
	builder.maritalStatusFlag = true
	return builder
}

// 家庭住址
//
// 示例值：南京路1号
func (builder *TalentBasicInfoBuilder) CurrentHomeAddress(currentHomeAddress string) *TalentBasicInfoBuilder {
	builder.currentHomeAddress = currentHomeAddress
	builder.currentHomeAddressFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentBasicInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentBasicInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 修改时间
//
// 示例值：1634801678103
func (builder *TalentBasicInfoBuilder) ModifyTime(modifyTime string) *TalentBasicInfoBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 户口所在地
//
// 示例值：CN_1
func (builder *TalentBasicInfoBuilder) HukouLocationCode(hukouLocationCode string) *TalentBasicInfoBuilder {
	builder.hukouLocationCode = hukouLocationCode
	builder.hukouLocationCodeFlag = true
	return builder
}

func (builder *TalentBasicInfoBuilder) Build() *TalentBasicInfo {
	req := &TalentBasicInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.experienceYearsFlag {
		req.ExperienceYears = &builder.experienceYears

	}
	if builder.ageFlag {
		req.Age = &builder.age

	}
	if builder.nationalityFlag {
		req.Nationality = builder.nationality
	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.currentCityFlag {
		req.CurrentCity = builder.currentCity
	}
	if builder.hometownCityFlag {
		req.HometownCity = builder.hometownCity
	}
	if builder.preferredCityListFlag {
		req.PreferredCityList = builder.preferredCityList
	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	if builder.birthdayFlag {
		req.Birthday = &builder.birthday

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.maritalStatusFlag {
		req.MaritalStatus = &builder.maritalStatus

	}
	if builder.currentHomeAddressFlag {
		req.CurrentHomeAddress = &builder.currentHomeAddress

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.hukouLocationCodeFlag {
		req.HukouLocationCode = &builder.hukouLocationCode

	}
	return req
}

type TalentBasicInfoV2 struct {
	Id *string `json:"id,omitempty"` // 人才 ID

	Name *string `json:"name,omitempty"` // 人才名字

	MobileCode *string `json:"mobile_code,omitempty"` // 人才手机国家区号

	MobileNumber *string `json:"mobile_number,omitempty"` // 人才手机号

	Email *string `json:"email,omitempty"` // 人才邮箱
}

type TalentBasicInfoV2Builder struct {
	id     string // 人才 ID
	idFlag bool

	name     string // 人才名字
	nameFlag bool

	mobileCode     string // 人才手机国家区号
	mobileCodeFlag bool

	mobileNumber     string // 人才手机号
	mobileNumberFlag bool

	email     string // 人才邮箱
	emailFlag bool
}

func NewTalentBasicInfoV2Builder() *TalentBasicInfoV2Builder {
	builder := &TalentBasicInfoV2Builder{}
	return builder
}

// 人才 ID
//
// 示例值：6956499586395523359
func (builder *TalentBasicInfoV2Builder) Id(id string) *TalentBasicInfoV2Builder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 人才名字
//
// 示例值：小明
func (builder *TalentBasicInfoV2Builder) Name(name string) *TalentBasicInfoV2Builder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 人才手机国家区号
//
// 示例值：+86
func (builder *TalentBasicInfoV2Builder) MobileCode(mobileCode string) *TalentBasicInfoV2Builder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 人才手机号
//
// 示例值：13563350751
func (builder *TalentBasicInfoV2Builder) MobileNumber(mobileNumber string) *TalentBasicInfoV2Builder {
	builder.mobileNumber = mobileNumber
	builder.mobileNumberFlag = true
	return builder
}

// 人才邮箱
//
// 示例值：xxx@bytedance.com
func (builder *TalentBasicInfoV2Builder) Email(email string) *TalentBasicInfoV2Builder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *TalentBasicInfoV2Builder) Build() *TalentBasicInfoV2 {
	req := &TalentBasicInfoV2{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.mobileNumberFlag {
		req.MobileNumber = &builder.mobileNumber

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	return req
}

type TalentBatchInfo struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	MobileCode *string `json:"mobile_code,omitempty"` // 手机国家区号

	MobileNumber *string `json:"mobile_number,omitempty"` // 手机号

	Email *string `json:"email,omitempty"` // 邮箱

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型，可参考招聘枚举常量 IdentificationType 枚举定义

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号

	IsOnboarded *bool `json:"is_onboarded,omitempty"` // 是否已入职
}

type TalentBatchInfoBuilder struct {
	talentId     string // 人才 ID
	talentIdFlag bool

	mobileCode     string // 手机国家区号
	mobileCodeFlag bool

	mobileNumber     string // 手机号
	mobileNumberFlag bool

	email     string // 邮箱
	emailFlag bool

	identificationType     int // 证件类型，可参考招聘枚举常量 IdentificationType 枚举定义
	identificationTypeFlag bool

	identificationNumber     string // 证件号
	identificationNumberFlag bool

	isOnboarded     bool // 是否已入职
	isOnboardedFlag bool
}

func NewTalentBatchInfoBuilder() *TalentBatchInfoBuilder {
	builder := &TalentBatchInfoBuilder{}
	return builder
}

// 人才 ID
//
// 示例值：6891560630172518670
func (builder *TalentBatchInfoBuilder) TalentId(talentId string) *TalentBatchInfoBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 手机国家区号
//
// 示例值：86
func (builder *TalentBatchInfoBuilder) MobileCode(mobileCode string) *TalentBatchInfoBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 手机号
//
// 示例值：182900291190
func (builder *TalentBatchInfoBuilder) MobileNumber(mobileNumber string) *TalentBatchInfoBuilder {
	builder.mobileNumber = mobileNumber
	builder.mobileNumberFlag = true
	return builder
}

// 邮箱
//
// 示例值：foo@bytedance.com
func (builder *TalentBatchInfoBuilder) Email(email string) *TalentBatchInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 证件类型，可参考招聘枚举常量 IdentificationType 枚举定义
//
// 示例值：1
func (builder *TalentBatchInfoBuilder) IdentificationType(identificationType int) *TalentBatchInfoBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：130xxxxxxxxx
func (builder *TalentBatchInfoBuilder) IdentificationNumber(identificationNumber string) *TalentBatchInfoBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 是否已入职
//
// 示例值：true
func (builder *TalentBatchInfoBuilder) IsOnboarded(isOnboarded bool) *TalentBatchInfoBuilder {
	builder.isOnboarded = isOnboarded
	builder.isOnboardedFlag = true
	return builder
}

func (builder *TalentBatchInfoBuilder) Build() *TalentBatchInfo {
	req := &TalentBatchInfo{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.mobileNumberFlag {
		req.MobileNumber = &builder.mobileNumber

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.isOnboardedFlag {
		req.IsOnboarded = &builder.isOnboarded

	}
	return req
}

type TalentCareerInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Company *string `json:"company,omitempty"` // 公司名称

	Title *string `json:"title,omitempty"` // 职位名称

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	CareerType *int `json:"career_type,omitempty"` // 经历类型

	TagList []int `json:"tag_list,omitempty"` // 工作经历标签

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentCareerInfoBuilder struct {
	id     string // ID
	idFlag bool

	company     string // 公司名称
	companyFlag bool

	title     string // 职位名称
	titleFlag bool

	desc     string // 描述
	descFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	careerType     int // 经历类型
	careerTypeFlag bool

	tagList     []int // 工作经历标签
	tagListFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentCareerInfoBuilder() *TalentCareerInfoBuilder {
	builder := &TalentCareerInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCareerInfoBuilder) Id(id string) *TalentCareerInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 公司名称
//
// 示例值：测试公司
func (builder *TalentCareerInfoBuilder) Company(company string) *TalentCareerInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 职位名称
//
// 示例值：高级工程师
func (builder *TalentCareerInfoBuilder) Title(title string) *TalentCareerInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 描述
//
// 示例值：测试
func (builder *TalentCareerInfoBuilder) Desc(desc string) *TalentCareerInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：1990-01
func (builder *TalentCareerInfoBuilder) StartTime(startTime string) *TalentCareerInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1994-01
func (builder *TalentCareerInfoBuilder) EndTime(endTime string) *TalentCareerInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 经历类型
//
// 示例值：1
func (builder *TalentCareerInfoBuilder) CareerType(careerType int) *TalentCareerInfoBuilder {
	builder.careerType = careerType
	builder.careerTypeFlag = true
	return builder
}

// 工作经历标签
//
// 示例值：
func (builder *TalentCareerInfoBuilder) TagList(tagList []int) *TalentCareerInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCareerInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentCareerInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentCareerInfoBuilder) Build() *TalentCareerInfo {
	req := &TalentCareerInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.careerTypeFlag {
		req.CareerType = &builder.careerType

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentCertificateInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 证件名称

	Desc *string `json:"desc,omitempty"` // 证件描述

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentCertificateInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 证件名称
	nameFlag bool

	desc     string // 证件描述
	descFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentCertificateInfoBuilder() *TalentCertificateInfoBuilder {
	builder := &TalentCertificateInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCertificateInfoBuilder) Id(id string) *TalentCertificateInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 证件名称
//
// 示例值：身份证
func (builder *TalentCertificateInfoBuilder) Name(name string) *TalentCertificateInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 证件描述
//
// 示例值：
func (builder *TalentCertificateInfoBuilder) Desc(desc string) *TalentCertificateInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCertificateInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentCertificateInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentCertificateInfoBuilder) Build() *TalentCertificateInfo {
	req := &TalentCertificateInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentCityInfo struct {
	CityCode *string `json:"city_code,omitempty"` // 城市码

	ZhName *string `json:"zh_name,omitempty"` // 中文名

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type TalentCityInfoBuilder struct {
	cityCode     string // 城市码
	cityCodeFlag bool

	zhName     string // 中文名
	zhNameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewTalentCityInfoBuilder() *TalentCityInfoBuilder {
	builder := &TalentCityInfoBuilder{}
	return builder
}

// 城市码
//
// 示例值：CN_183
func (builder *TalentCityInfoBuilder) CityCode(cityCode string) *TalentCityInfoBuilder {
	builder.cityCode = cityCode
	builder.cityCodeFlag = true
	return builder
}

// 中文名
//
// 示例值：测试
func (builder *TalentCityInfoBuilder) ZhName(zhName string) *TalentCityInfoBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名
//
// 示例值：test
func (builder *TalentCityInfoBuilder) EnName(enName string) *TalentCityInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *TalentCityInfoBuilder) Build() *TalentCityInfo {
	req := &TalentCityInfo{}
	if builder.cityCodeFlag {
		req.CityCode = &builder.cityCode

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type TalentCombinedAwardInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Title *string `json:"title,omitempty"` // 获奖名称

	AwardTime *string `json:"award_time,omitempty"` // 获奖时间

	Desc *string `json:"desc,omitempty"` // 描述

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedAwardInfoBuilder struct {
	id     string // ID
	idFlag bool

	title     string // 获奖名称
	titleFlag bool

	awardTime     string // 获奖时间
	awardTimeFlag bool

	desc     string // 描述
	descFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedAwardInfoBuilder() *TalentCombinedAwardInfoBuilder {
	builder := &TalentCombinedAwardInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedAwardInfoBuilder) Id(id string) *TalentCombinedAwardInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 获奖名称
//
// 示例值：最佳新人奖
func (builder *TalentCombinedAwardInfoBuilder) Title(title string) *TalentCombinedAwardInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 获奖时间
//
// 示例值：293016767159
func (builder *TalentCombinedAwardInfoBuilder) AwardTime(awardTime string) *TalentCombinedAwardInfoBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

// 描述
//
// 示例值：最优秀的新人奖
func (builder *TalentCombinedAwardInfoBuilder) Desc(desc string) *TalentCombinedAwardInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedAwardInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedAwardInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedAwardInfoBuilder) Build() *TalentCombinedAwardInfo {
	req := &TalentCombinedAwardInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedBasicInfo struct {
	Name *string `json:"name,omitempty"` // 名字

	Mobile *string `json:"mobile,omitempty"` // 手机号

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码

	Email *string `json:"email,omitempty"` // 邮箱

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号

	Identification *TalentIdentificationInfo `json:"identification,omitempty"` // 证件信息

	StartWorkTime *string `json:"start_work_time,omitempty"` // 开始工作时间

	Birthday *string `json:"birthday,omitempty"` // 出生日期

	Gender *int `json:"gender,omitempty"` // 性别

	NationalityId *string `json:"nationality_id,omitempty"` // 国籍编码

	CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在地点编码

	HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡编码

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段列表
}

type TalentCombinedBasicInfoBuilder struct {
	name     string // 名字
	nameFlag bool

	mobile     string // 手机号
	mobileFlag bool

	mobileCountryCode     string // 手机国家代码
	mobileCountryCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	identificationType     int // 证件类型
	identificationTypeFlag bool

	identificationNumber     string // 证件号
	identificationNumberFlag bool

	identification     *TalentIdentificationInfo // 证件信息
	identificationFlag bool

	startWorkTime     string // 开始工作时间
	startWorkTimeFlag bool

	birthday     string // 出生日期
	birthdayFlag bool

	gender     int // 性别
	genderFlag bool

	nationalityId     string // 国籍编码
	nationalityIdFlag bool

	currentCityCode     string // 所在地点编码
	currentCityCodeFlag bool

	hometownCityCode     string // 家乡编码
	hometownCityCodeFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段列表
	customizedDataFlag bool
}

func NewTalentCombinedBasicInfoBuilder() *TalentCombinedBasicInfoBuilder {
	builder := &TalentCombinedBasicInfoBuilder{}
	return builder
}

// 名字
//
// 示例值：测试
func (builder *TalentCombinedBasicInfoBuilder) Name(name string) *TalentCombinedBasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机号
//
// 示例值：182900291190
func (builder *TalentCombinedBasicInfoBuilder) Mobile(mobile string) *TalentCombinedBasicInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：CN_1
func (builder *TalentCombinedBasicInfoBuilder) MobileCountryCode(mobileCountryCode string) *TalentCombinedBasicInfoBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：16xx1@126.com
func (builder *TalentCombinedBasicInfoBuilder) Email(email string) *TalentCombinedBasicInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 证件类型
//
// 示例值：1
func (builder *TalentCombinedBasicInfoBuilder) IdentificationType(identificationType int) *TalentCombinedBasicInfoBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：511699199x1x111234
func (builder *TalentCombinedBasicInfoBuilder) IdentificationNumber(identificationNumber string) *TalentCombinedBasicInfoBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 证件信息
//
// 示例值：
func (builder *TalentCombinedBasicInfoBuilder) Identification(identification *TalentIdentificationInfo) *TalentCombinedBasicInfoBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

// 开始工作时间
//
// 示例值：293016767159
func (builder *TalentCombinedBasicInfoBuilder) StartWorkTime(startWorkTime string) *TalentCombinedBasicInfoBuilder {
	builder.startWorkTime = startWorkTime
	builder.startWorkTimeFlag = true
	return builder
}

// 出生日期
//
// 示例值：293016767159
func (builder *TalentCombinedBasicInfoBuilder) Birthday(birthday string) *TalentCombinedBasicInfoBuilder {
	builder.birthday = birthday
	builder.birthdayFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *TalentCombinedBasicInfoBuilder) Gender(gender int) *TalentCombinedBasicInfoBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 国籍编码
//
// 示例值：CN_112
func (builder *TalentCombinedBasicInfoBuilder) NationalityId(nationalityId string) *TalentCombinedBasicInfoBuilder {
	builder.nationalityId = nationalityId
	builder.nationalityIdFlag = true
	return builder
}

// 所在地点编码
//
// 示例值：CT_159
func (builder *TalentCombinedBasicInfoBuilder) CurrentCityCode(currentCityCode string) *TalentCombinedBasicInfoBuilder {
	builder.currentCityCode = currentCityCode
	builder.currentCityCodeFlag = true
	return builder
}

// 家乡编码
//
// 示例值：CT_159
func (builder *TalentCombinedBasicInfoBuilder) HometownCityCode(hometownCityCode string) *TalentCombinedBasicInfoBuilder {
	builder.hometownCityCode = hometownCityCode
	builder.hometownCityCodeFlag = true
	return builder
}

// 自定义字段列表
//
// 示例值：
func (builder *TalentCombinedBasicInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedBasicInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedBasicInfoBuilder) Build() *TalentCombinedBasicInfo {
	req := &TalentCombinedBasicInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	if builder.startWorkTimeFlag {
		req.StartWorkTime = &builder.startWorkTime

	}
	if builder.birthdayFlag {
		req.Birthday = &builder.birthday

	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.nationalityIdFlag {
		req.NationalityId = &builder.nationalityId

	}
	if builder.currentCityCodeFlag {
		req.CurrentCityCode = &builder.currentCityCode

	}
	if builder.hometownCityCodeFlag {
		req.HometownCityCode = &builder.hometownCityCode

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedCareerInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Company *string `json:"company,omitempty"` // 公司名称

	Title *string `json:"title,omitempty"` // 职位名称

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	CareerType *int `json:"career_type,omitempty"` // 经历类型

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedCareerInfoBuilder struct {
	id     string // ID
	idFlag bool

	company     string // 公司名称
	companyFlag bool

	title     string // 职位名称
	titleFlag bool

	desc     string // 描述
	descFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	careerType     int // 经历类型
	careerTypeFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedCareerInfoBuilder() *TalentCombinedCareerInfoBuilder {
	builder := &TalentCombinedCareerInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedCareerInfoBuilder) Id(id string) *TalentCombinedCareerInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 公司名称
//
// 示例值：测试公司
func (builder *TalentCombinedCareerInfoBuilder) Company(company string) *TalentCombinedCareerInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 职位名称
//
// 示例值：高级工程师
func (builder *TalentCombinedCareerInfoBuilder) Title(title string) *TalentCombinedCareerInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 描述
//
// 示例值：测试
func (builder *TalentCombinedCareerInfoBuilder) Desc(desc string) *TalentCombinedCareerInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：293016767159
func (builder *TalentCombinedCareerInfoBuilder) StartTime(startTime string) *TalentCombinedCareerInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：293016767159
func (builder *TalentCombinedCareerInfoBuilder) EndTime(endTime string) *TalentCombinedCareerInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 经历类型
//
// 示例值：1
func (builder *TalentCombinedCareerInfoBuilder) CareerType(careerType int) *TalentCombinedCareerInfoBuilder {
	builder.careerType = careerType
	builder.careerTypeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedCareerInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedCareerInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedCareerInfoBuilder) Build() *TalentCombinedCareerInfo {
	req := &TalentCombinedCareerInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.careerTypeFlag {
		req.CareerType = &builder.careerType

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedEducationInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Degree *int `json:"degree,omitempty"` // 学历

	School *string `json:"school,omitempty"` // 学校

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	EducationType *int `json:"education_type,omitempty"` // 学历类型

	AcademicRanking *int `json:"academic_ranking,omitempty"` // 成绩排名

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedEducationInfoBuilder struct {
	id     string // ID
	idFlag bool

	degree     int // 学历
	degreeFlag bool

	school     string // 学校
	schoolFlag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	educationType     int // 学历类型
	educationTypeFlag bool

	academicRanking     int // 成绩排名
	academicRankingFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedEducationInfoBuilder() *TalentCombinedEducationInfoBuilder {
	builder := &TalentCombinedEducationInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedEducationInfoBuilder) Id(id string) *TalentCombinedEducationInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 学历
//
// 示例值：1
func (builder *TalentCombinedEducationInfoBuilder) Degree(degree int) *TalentCombinedEducationInfoBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 学校
//
// 示例值：湘港大学
func (builder *TalentCombinedEducationInfoBuilder) School(school string) *TalentCombinedEducationInfoBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 专业
//
// 示例值：考古
func (builder *TalentCombinedEducationInfoBuilder) FieldOfStudy(fieldOfStudy string) *TalentCombinedEducationInfoBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 开始时间
//
// 示例值：293016767159
func (builder *TalentCombinedEducationInfoBuilder) StartTime(startTime string) *TalentCombinedEducationInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：293016767159
func (builder *TalentCombinedEducationInfoBuilder) EndTime(endTime string) *TalentCombinedEducationInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *TalentCombinedEducationInfoBuilder) EducationType(educationType int) *TalentCombinedEducationInfoBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 成绩排名
//
// 示例值：5
func (builder *TalentCombinedEducationInfoBuilder) AcademicRanking(academicRanking int) *TalentCombinedEducationInfoBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedEducationInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedEducationInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedEducationInfoBuilder) Build() *TalentCombinedEducationInfo {
	req := &TalentCombinedEducationInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedLanguageInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Language *int `json:"language,omitempty"` // 语言

	Proficiency *int `json:"proficiency,omitempty"` // 精通程度

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedLanguageInfoBuilder struct {
	id     string // ID
	idFlag bool

	language     int // 语言
	languageFlag bool

	proficiency     int // 精通程度
	proficiencyFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedLanguageInfoBuilder() *TalentCombinedLanguageInfoBuilder {
	builder := &TalentCombinedLanguageInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedLanguageInfoBuilder) Id(id string) *TalentCombinedLanguageInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 语言
//
// 示例值：1
func (builder *TalentCombinedLanguageInfoBuilder) Language(language int) *TalentCombinedLanguageInfoBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 精通程度
//
// 示例值：1
func (builder *TalentCombinedLanguageInfoBuilder) Proficiency(proficiency int) *TalentCombinedLanguageInfoBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedLanguageInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedLanguageInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedLanguageInfoBuilder) Build() *TalentCombinedLanguageInfo {
	req := &TalentCombinedLanguageInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedProjectInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 项目名称

	Role *string `json:"role,omitempty"` // 项目角色

	Link *string `json:"link,omitempty"` // 项目链接

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedProjectInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 项目名称
	nameFlag bool

	role     string // 项目角色
	roleFlag bool

	link     string // 项目链接
	linkFlag bool

	desc     string // 描述
	descFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedProjectInfoBuilder() *TalentCombinedProjectInfoBuilder {
	builder := &TalentCombinedProjectInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedProjectInfoBuilder) Id(id string) *TalentCombinedProjectInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 项目名称
//
// 示例值：测试
func (builder *TalentCombinedProjectInfoBuilder) Name(name string) *TalentCombinedProjectInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 项目角色
//
// 示例值：test
func (builder *TalentCombinedProjectInfoBuilder) Role(role string) *TalentCombinedProjectInfoBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 项目链接
//
// 示例值：https://www.a.com
func (builder *TalentCombinedProjectInfoBuilder) Link(link string) *TalentCombinedProjectInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：xxx
func (builder *TalentCombinedProjectInfoBuilder) Desc(desc string) *TalentCombinedProjectInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：293016767159
func (builder *TalentCombinedProjectInfoBuilder) StartTime(startTime string) *TalentCombinedProjectInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：293016767159
func (builder *TalentCombinedProjectInfoBuilder) EndTime(endTime string) *TalentCombinedProjectInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedProjectInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedProjectInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedProjectInfoBuilder) Build() *TalentCombinedProjectInfo {
	req := &TalentCombinedProjectInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedSnsInfo struct {
	Id *string `json:"id,omitempty"` // ID

	SnsType *int `json:"sns_type,omitempty"` // SNS名称

	Link *string `json:"link,omitempty"` // URL/ID

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedSnsInfoBuilder struct {
	id     string // ID
	idFlag bool

	snsType     int // SNS名称
	snsTypeFlag bool

	link     string // URL/ID
	linkFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedSnsInfoBuilder() *TalentCombinedSnsInfoBuilder {
	builder := &TalentCombinedSnsInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedSnsInfoBuilder) Id(id string) *TalentCombinedSnsInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// SNS名称
//
// 示例值：1
func (builder *TalentCombinedSnsInfoBuilder) SnsType(snsType int) *TalentCombinedSnsInfoBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

// URL/ID
//
// 示例值：https://www.a.com
func (builder *TalentCombinedSnsInfoBuilder) Link(link string) *TalentCombinedSnsInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedSnsInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedSnsInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedSnsInfoBuilder) Build() *TalentCombinedSnsInfo {
	req := &TalentCombinedSnsInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCombinedWorkInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Link *string `json:"link,omitempty"` // 作品链接

	Desc *string `json:"desc,omitempty"` // 描述

	AttachmentId *string `json:"attachment_id,omitempty"` // 附件 ID

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentCombinedWorkInfoBuilder struct {
	id     string // ID
	idFlag bool

	link     string // 作品链接
	linkFlag bool

	desc     string // 描述
	descFlag bool

	attachmentId     string // 附件 ID
	attachmentIdFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentCombinedWorkInfoBuilder() *TalentCombinedWorkInfoBuilder {
	builder := &TalentCombinedWorkInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCombinedWorkInfoBuilder) Id(id string) *TalentCombinedWorkInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 作品链接
//
// 示例值：https://www.a.com
func (builder *TalentCombinedWorkInfoBuilder) Link(link string) *TalentCombinedWorkInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：个人设计作品
func (builder *TalentCombinedWorkInfoBuilder) Desc(desc string) *TalentCombinedWorkInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 附件 ID
//
// 示例值：12345678
func (builder *TalentCombinedWorkInfoBuilder) AttachmentId(attachmentId string) *TalentCombinedWorkInfoBuilder {
	builder.attachmentId = attachmentId
	builder.attachmentIdFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCombinedWorkInfoBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentCombinedWorkInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentCombinedWorkInfoBuilder) Build() *TalentCombinedWorkInfo {
	req := &TalentCombinedWorkInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.attachmentIdFlag {
		req.AttachmentId = &builder.attachmentId

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentCompetitionInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 竞赛名称

	Desc *string `json:"desc,omitempty"` // 竞赛描述

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentCompetitionInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 竞赛名称
	nameFlag bool

	desc     string // 竞赛描述
	descFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentCompetitionInfoBuilder() *TalentCompetitionInfoBuilder {
	builder := &TalentCompetitionInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentCompetitionInfoBuilder) Id(id string) *TalentCompetitionInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 竞赛名称
//
// 示例值：计算机技能竞赛
func (builder *TalentCompetitionInfoBuilder) Name(name string) *TalentCompetitionInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 竞赛描述
//
// 示例值：C++竞赛
func (builder *TalentCompetitionInfoBuilder) Desc(desc string) *TalentCompetitionInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentCompetitionInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentCompetitionInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentCompetitionInfoBuilder) Build() *TalentCompetitionInfo {
	req := &TalentCompetitionInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentCustomizedAttachment struct {
	FileId *string `json:"file_id,omitempty"` // 附件 ID

	Name *string `json:"name,omitempty"` // 附件名称

	ContentType *string `json:"content_type,omitempty"` // 附件类型

	FileSize *int64 `json:"file_size,omitempty"` // 附件大小
}

type TalentCustomizedAttachmentBuilder struct {
	fileId     string // 附件 ID
	fileIdFlag bool

	name     string // 附件名称
	nameFlag bool

	contentType     string // 附件类型
	contentTypeFlag bool

	fileSize     int64 // 附件大小
	fileSizeFlag bool
}

func NewTalentCustomizedAttachmentBuilder() *TalentCustomizedAttachmentBuilder {
	builder := &TalentCustomizedAttachmentBuilder{}
	return builder
}

// 附件 ID
//
// 示例值：7140517838785481004
func (builder *TalentCustomizedAttachmentBuilder) FileId(fileId string) *TalentCustomizedAttachmentBuilder {
	builder.fileId = fileId
	builder.fileIdFlag = true
	return builder
}

// 附件名称
//
// 示例值：1.13测试1的面试记录.pdf
func (builder *TalentCustomizedAttachmentBuilder) Name(name string) *TalentCustomizedAttachmentBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 附件类型
//
// 示例值：application/pdf
func (builder *TalentCustomizedAttachmentBuilder) ContentType(contentType string) *TalentCustomizedAttachmentBuilder {
	builder.contentType = contentType
	builder.contentTypeFlag = true
	return builder
}

// 附件大小
//
// 示例值：16615
func (builder *TalentCustomizedAttachmentBuilder) FileSize(fileSize int64) *TalentCustomizedAttachmentBuilder {
	builder.fileSize = fileSize
	builder.fileSizeFlag = true
	return builder
}

func (builder *TalentCustomizedAttachmentBuilder) Build() *TalentCustomizedAttachment {
	req := &TalentCustomizedAttachment{}
	if builder.fileIdFlag {
		req.FileId = &builder.fileId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.contentTypeFlag {
		req.ContentType = &builder.contentType

	}
	if builder.fileSizeFlag {
		req.FileSize = &builder.fileSize

	}
	return req
}

type TalentCustomizedData struct {
	ObjectId *string `json:"object_id,omitempty"` // 模块 ID

	Name *I18n `json:"name,omitempty"` // 模块名称

	ObjectType *int `json:"object_type,omitempty"` // 类型

	Children []*TalentCustomizedDataChild `json:"children,omitempty"` // 模块下的字段
}

type TalentCustomizedDataBuilder struct {
	objectId     string // 模块 ID
	objectIdFlag bool

	name     *I18n // 模块名称
	nameFlag bool

	objectType     int // 类型
	objectTypeFlag bool

	children     []*TalentCustomizedDataChild // 模块下的字段
	childrenFlag bool
}

func NewTalentCustomizedDataBuilder() *TalentCustomizedDataBuilder {
	builder := &TalentCustomizedDataBuilder{}
	return builder
}

// 模块 ID
//
// 示例值：xxxx
func (builder *TalentCustomizedDataBuilder) ObjectId(objectId string) *TalentCustomizedDataBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 模块名称
//
// 示例值：
func (builder *TalentCustomizedDataBuilder) Name(name *I18n) *TalentCustomizedDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 类型
//
// 示例值：1
func (builder *TalentCustomizedDataBuilder) ObjectType(objectType int) *TalentCustomizedDataBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 模块下的字段
//
// 示例值：
func (builder *TalentCustomizedDataBuilder) Children(children []*TalentCustomizedDataChild) *TalentCustomizedDataBuilder {
	builder.children = children
	builder.childrenFlag = true
	return builder
}

func (builder *TalentCustomizedDataBuilder) Build() *TalentCustomizedData {
	req := &TalentCustomizedData{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.childrenFlag {
		req.Children = builder.children
	}
	return req
}

type TalentCustomizedDataChild struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	ObjectType *int `json:"object_type,omitempty"` // 字段类型

	Value *TalentCustomizedValue `json:"value,omitempty"` // 自定义字段值
}

type TalentCustomizedDataChildBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	objectType     int // 字段类型
	objectTypeFlag bool

	value     *TalentCustomizedValue // 自定义字段值
	valueFlag bool
}

func NewTalentCustomizedDataChildBuilder() *TalentCustomizedDataChildBuilder {
	builder := &TalentCustomizedDataChildBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：xxxx
func (builder *TalentCustomizedDataChildBuilder) ObjectId(objectId string) *TalentCustomizedDataChildBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *TalentCustomizedDataChildBuilder) Name(name *I18n) *TalentCustomizedDataChildBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *TalentCustomizedDataChildBuilder) ObjectType(objectType int) *TalentCustomizedDataChildBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：
func (builder *TalentCustomizedDataChildBuilder) Value(value *TalentCustomizedValue) *TalentCustomizedDataChildBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *TalentCustomizedDataChildBuilder) Build() *TalentCustomizedDataChild {
	req := &TalentCustomizedDataChild{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type TalentCustomizedDataObjectValue struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Value *string `json:"value,omitempty"` // 自定义字段 value

	Children []*TalentCustomizedDataObjectValueChild `json:"children,omitempty"` // 子字段列表
}

type TalentCustomizedDataObjectValueBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	value     string // 自定义字段 value
	valueFlag bool

	children     []*TalentCustomizedDataObjectValueChild // 子字段列表
	childrenFlag bool
}

func NewTalentCustomizedDataObjectValueBuilder() *TalentCustomizedDataObjectValueBuilder {
	builder := &TalentCustomizedDataObjectValueBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6934193211960330504
func (builder *TalentCustomizedDataObjectValueBuilder) ObjectId(objectId string) *TalentCustomizedDataObjectValueBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 自定义字段 value
//
// 示例值：自定字段值
func (builder *TalentCustomizedDataObjectValueBuilder) Value(value string) *TalentCustomizedDataObjectValueBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 子字段列表
//
// 示例值：
func (builder *TalentCustomizedDataObjectValueBuilder) Children(children []*TalentCustomizedDataObjectValueChild) *TalentCustomizedDataObjectValueBuilder {
	builder.children = children
	builder.childrenFlag = true
	return builder
}

func (builder *TalentCustomizedDataObjectValueBuilder) Build() *TalentCustomizedDataObjectValue {
	req := &TalentCustomizedDataObjectValue{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.childrenFlag {
		req.Children = builder.children
	}
	return req
}

type TalentCustomizedDataObjectValueChild struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Value *string `json:"value,omitempty"` // 自定义字段值
}

type TalentCustomizedDataObjectValueChildBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	value     string // 自定义字段值
	valueFlag bool
}

func NewTalentCustomizedDataObjectValueChildBuilder() *TalentCustomizedDataObjectValueChildBuilder {
	builder := &TalentCustomizedDataObjectValueChildBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6934193211960330504
func (builder *TalentCustomizedDataObjectValueChildBuilder) ObjectId(objectId string) *TalentCustomizedDataObjectValueChildBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：张三
func (builder *TalentCustomizedDataObjectValueChildBuilder) Value(value string) *TalentCustomizedDataObjectValueChildBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *TalentCustomizedDataObjectValueChildBuilder) Build() *TalentCustomizedDataObjectValueChild {
	req := &TalentCustomizedDataObjectValueChild{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type TalentCustomizedOption struct {
	Key *string `json:"key,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称
}

type TalentCustomizedOptionBuilder struct {
	key     string // 选项 ID
	keyFlag bool

	name     *I18n // 选项名称
	nameFlag bool
}

func NewTalentCustomizedOptionBuilder() *TalentCustomizedOptionBuilder {
	builder := &TalentCustomizedOptionBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：AA
func (builder *TalentCustomizedOptionBuilder) Key(key string) *TalentCustomizedOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *TalentCustomizedOptionBuilder) Name(name *I18n) *TalentCustomizedOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *TalentCustomizedOptionBuilder) Build() *TalentCustomizedOption {
	req := &TalentCustomizedOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type TalentCustomizedTimeRange struct {
	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间，当值为至今时，返回「-」
}

type TalentCustomizedTimeRangeBuilder struct {
	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间，当值为至今时，返回「-」
	endTimeFlag bool
}

func NewTalentCustomizedTimeRangeBuilder() *TalentCustomizedTimeRangeBuilder {
	builder := &TalentCustomizedTimeRangeBuilder{}
	return builder
}

// 开始时间
//
// 示例值：1625456721
func (builder *TalentCustomizedTimeRangeBuilder) StartTime(startTime string) *TalentCustomizedTimeRangeBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间，当值为至今时，返回「-」
//
// 示例值：1625656721
func (builder *TalentCustomizedTimeRangeBuilder) EndTime(endTime string) *TalentCustomizedTimeRangeBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *TalentCustomizedTimeRangeBuilder) Build() *TalentCustomizedTimeRange {
	req := &TalentCustomizedTimeRange{}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type TalentCustomizedValue struct {
	Content *string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值

	Option *TalentCustomizedOption `json:"option,omitempty"` // 当字段类型为单选时，从此字段取值

	OptionList []*TalentCustomizedOption `json:"option_list,omitempty"` // 当字段类型为多选时，从此字段取值

	TimeRange *TalentCustomizedTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时，从此字段取值

	Time *string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是秒级时间戳

	Number *string `json:"number,omitempty"` // 当字段类型为数字时，从此字段取值

	CustomizedAttachment []*TalentCustomizedAttachment `json:"customized_attachment,omitempty"` // 当字段类型为附件时，从此字段取值
}

type TalentCustomizedValueBuilder struct {
	content     string // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
	contentFlag bool

	option     *TalentCustomizedOption // 当字段类型为单选时，从此字段取值
	optionFlag bool

	optionList     []*TalentCustomizedOption // 当字段类型为多选时，从此字段取值
	optionListFlag bool

	timeRange     *TalentCustomizedTimeRange // 当字段类型为时间段时，从此字段取值
	timeRangeFlag bool

	time     string // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是秒级时间戳
	timeFlag bool

	number     string // 当字段类型为数字时，从此字段取值
	numberFlag bool

	customizedAttachment     []*TalentCustomizedAttachment // 当字段类型为附件时，从此字段取值
	customizedAttachmentFlag bool
}

func NewTalentCustomizedValueBuilder() *TalentCustomizedValueBuilder {
	builder := &TalentCustomizedValueBuilder{}
	return builder
}

// 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
//
// 示例值：text
func (builder *TalentCustomizedValueBuilder) Content(content string) *TalentCustomizedValueBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 当字段类型为单选时，从此字段取值
//
// 示例值：
func (builder *TalentCustomizedValueBuilder) Option(option *TalentCustomizedOption) *TalentCustomizedValueBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 当字段类型为多选时，从此字段取值
//
// 示例值：
func (builder *TalentCustomizedValueBuilder) OptionList(optionList []*TalentCustomizedOption) *TalentCustomizedValueBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

// 当字段类型为时间段时，从此字段取值
//
// 示例值：
func (builder *TalentCustomizedValueBuilder) TimeRange(timeRange *TalentCustomizedTimeRange) *TalentCustomizedValueBuilder {
	builder.timeRange = timeRange
	builder.timeRangeFlag = true
	return builder
}

// 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是秒级时间戳
//
// 示例值：1625456721
func (builder *TalentCustomizedValueBuilder) Time(time string) *TalentCustomizedValueBuilder {
	builder.time = time
	builder.timeFlag = true
	return builder
}

// 当字段类型为数字时，从此字段取值
//
// 示例值：111
func (builder *TalentCustomizedValueBuilder) Number(number string) *TalentCustomizedValueBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

// 当字段类型为附件时，从此字段取值
//
// 示例值：
func (builder *TalentCustomizedValueBuilder) CustomizedAttachment(customizedAttachment []*TalentCustomizedAttachment) *TalentCustomizedValueBuilder {
	builder.customizedAttachment = customizedAttachment
	builder.customizedAttachmentFlag = true
	return builder
}

func (builder *TalentCustomizedValueBuilder) Build() *TalentCustomizedValue {
	req := &TalentCustomizedValue{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.optionFlag {
		req.Option = builder.option
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	if builder.timeRangeFlag {
		req.TimeRange = builder.timeRange
	}
	if builder.timeFlag {
		req.Time = &builder.time

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	if builder.customizedAttachmentFlag {
		req.CustomizedAttachment = builder.customizedAttachment
	}
	return req
}

type TalentDetailTalentNationality struct {
	NationalityCode *string `json:"nationality_code,omitempty"` // 国家编码

	Name *I18n `json:"name,omitempty"` // 名称
}

type TalentDetailTalentNationalityBuilder struct {
	nationalityCode     string // 国家编码
	nationalityCodeFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewTalentDetailTalentNationalityBuilder() *TalentDetailTalentNationalityBuilder {
	builder := &TalentDetailTalentNationalityBuilder{}
	return builder
}

// 国家编码
//
// 示例值：CN_183
func (builder *TalentDetailTalentNationalityBuilder) NationalityCode(nationalityCode string) *TalentDetailTalentNationalityBuilder {
	builder.nationalityCode = nationalityCode
	builder.nationalityCodeFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *TalentDetailTalentNationalityBuilder) Name(name *I18n) *TalentDetailTalentNationalityBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *TalentDetailTalentNationalityBuilder) Build() *TalentDetailTalentNationality {
	req := &TalentDetailTalentNationality{}
	if builder.nationalityCodeFlag {
		req.NationalityCode = &builder.nationalityCode

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type TalentEducationInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Degree *int `json:"degree,omitempty"` // 学位

	School *string `json:"school,omitempty"` // 学校

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	EndTimeV2 *string `json:"end_time_v2,omitempty"` // 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选

	EducationType *int `json:"education_type,omitempty"` // 学历类型

	AcademicRanking *int `json:"academic_ranking,omitempty"` // 成绩排名

	TagList []int `json:"tag_list,omitempty"` // 教育经历标签

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentEducationInfoBuilder struct {
	id     string // ID
	idFlag bool

	degree     int // 学位
	degreeFlag bool

	school     string // 学校
	schoolFlag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	endTimeV2     string // 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选
	endTimeV2Flag bool

	educationType     int // 学历类型
	educationTypeFlag bool

	academicRanking     int // 成绩排名
	academicRankingFlag bool

	tagList     []int // 教育经历标签
	tagListFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentEducationInfoBuilder() *TalentEducationInfoBuilder {
	builder := &TalentEducationInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentEducationInfoBuilder) Id(id string) *TalentEducationInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 学位
//
// 示例值：1
func (builder *TalentEducationInfoBuilder) Degree(degree int) *TalentEducationInfoBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

// 学校
//
// 示例值：湘港大学
func (builder *TalentEducationInfoBuilder) School(school string) *TalentEducationInfoBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 专业
//
// 示例值：考古
func (builder *TalentEducationInfoBuilder) FieldOfStudy(fieldOfStudy string) *TalentEducationInfoBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 开始时间
//
// 示例值：1990-01
func (builder *TalentEducationInfoBuilder) StartTime(startTime string) *TalentEducationInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1994-01
func (builder *TalentEducationInfoBuilder) EndTime(endTime string) *TalentEducationInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选
//
// 示例值：1687180087000
func (builder *TalentEducationInfoBuilder) EndTimeV2(endTimeV2 string) *TalentEducationInfoBuilder {
	builder.endTimeV2 = endTimeV2
	builder.endTimeV2Flag = true
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *TalentEducationInfoBuilder) EducationType(educationType int) *TalentEducationInfoBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 成绩排名
//
// 示例值：5
func (builder *TalentEducationInfoBuilder) AcademicRanking(academicRanking int) *TalentEducationInfoBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

// 教育经历标签
//
// 示例值：
func (builder *TalentEducationInfoBuilder) TagList(tagList []int) *TalentEducationInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentEducationInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentEducationInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentEducationInfoBuilder) Build() *TalentEducationInfo {
	req := &TalentEducationInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.endTimeV2Flag {
		req.EndTimeV2 = &builder.endTimeV2

	}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentExternalInfo struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	ExternalCreateTime *string `json:"external_create_time,omitempty"` // 人才在外部系统的创建时间
}

type TalentExternalInfoBuilder struct {
	talentId     string // 人才 ID
	talentIdFlag bool

	externalCreateTime     string // 人才在外部系统的创建时间
	externalCreateTimeFlag bool
}

func NewTalentExternalInfoBuilder() *TalentExternalInfoBuilder {
	builder := &TalentExternalInfoBuilder{}
	return builder
}

// 人才 ID
//
// 示例值：7043758982146345223
func (builder *TalentExternalInfoBuilder) TalentId(talentId string) *TalentExternalInfoBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 人才在外部系统的创建时间
//
// 示例值：1608467675393
func (builder *TalentExternalInfoBuilder) ExternalCreateTime(externalCreateTime string) *TalentExternalInfoBuilder {
	builder.externalCreateTime = externalCreateTime
	builder.externalCreateTimeFlag = true
	return builder
}

func (builder *TalentExternalInfoBuilder) Build() *TalentExternalInfo {
	req := &TalentExternalInfo{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.externalCreateTimeFlag {
		req.ExternalCreateTime = &builder.externalCreateTime

	}
	return req
}

type TalentFolder struct {
	ExternalId *string `json:"external_id,omitempty"` // 外部ID

	Name *string `json:"name,omitempty"` // 名字

	ParentId *string `json:"parent_id,omitempty"` // 父ID

	CreatorId *string `json:"creator_id,omitempty"` // 创建人 ID

	FolderId *string `json:"folder_id,omitempty"` // 文件夹ID

	OwnerId *string `json:"owner_id,omitempty"` // 所有者ID
}

type TalentFolderBuilder struct {
	externalId     string // 外部ID
	externalIdFlag bool

	name     string // 名字
	nameFlag bool

	parentId     string // 父ID
	parentIdFlag bool

	creatorId     string // 创建人 ID
	creatorIdFlag bool

	folderId     string // 文件夹ID
	folderIdFlag bool

	ownerId     string // 所有者ID
	ownerIdFlag bool
}

func NewTalentFolderBuilder() *TalentFolderBuilder {
	builder := &TalentFolderBuilder{}
	return builder
}

// 外部ID
//
// 示例值：
func (builder *TalentFolderBuilder) ExternalId(externalId string) *TalentFolderBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 名字
//
// 示例值：人才文件夹A1
func (builder *TalentFolderBuilder) Name(name string) *TalentFolderBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 父ID
//
// 示例值：
func (builder *TalentFolderBuilder) ParentId(parentId string) *TalentFolderBuilder {
	builder.parentId = parentId
	builder.parentIdFlag = true
	return builder
}

// 创建人 ID
//
// 示例值：
func (builder *TalentFolderBuilder) CreatorId(creatorId string) *TalentFolderBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 文件夹ID
//
// 示例值：7041806543797995820
func (builder *TalentFolderBuilder) FolderId(folderId string) *TalentFolderBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

// 所有者ID
//
// 示例值：ou_85bb308c57f597471cd2bb5b4f580245
func (builder *TalentFolderBuilder) OwnerId(ownerId string) *TalentFolderBuilder {
	builder.ownerId = ownerId
	builder.ownerIdFlag = true
	return builder
}

func (builder *TalentFolderBuilder) Build() *TalentFolder {
	req := &TalentFolder{}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.parentIdFlag {
		req.ParentId = &builder.parentId

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId

	}
	if builder.ownerIdFlag {
		req.OwnerId = &builder.ownerId

	}
	return req
}

type TalentFolderForList struct {
	FolderId *string `json:"folder_id,omitempty"` // 文件夹ID

	FolderName *string `json:"folder_name,omitempty"` // 名字

	OwnerId *string `json:"owner_id,omitempty"` // 所有者ID
}

type TalentFolderForListBuilder struct {
	folderId     string // 文件夹ID
	folderIdFlag bool

	folderName     string // 名字
	folderNameFlag bool

	ownerId     string // 所有者ID
	ownerIdFlag bool
}

func NewTalentFolderForListBuilder() *TalentFolderForListBuilder {
	builder := &TalentFolderForListBuilder{}
	return builder
}

// 文件夹ID
//
// 示例值：7041806543797995820
func (builder *TalentFolderForListBuilder) FolderId(folderId string) *TalentFolderForListBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

// 名字
//
// 示例值：人才文件夹A1
func (builder *TalentFolderForListBuilder) FolderName(folderName string) *TalentFolderForListBuilder {
	builder.folderName = folderName
	builder.folderNameFlag = true
	return builder
}

// 所有者ID
//
// 示例值：ou_85bb308c57f597471cd2bb5b4f580245
func (builder *TalentFolderForListBuilder) OwnerId(ownerId string) *TalentFolderForListBuilder {
	builder.ownerId = ownerId
	builder.ownerIdFlag = true
	return builder
}

func (builder *TalentFolderForListBuilder) Build() *TalentFolderForList {
	req := &TalentFolderForList{}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId

	}
	if builder.folderNameFlag {
		req.FolderName = &builder.folderName

	}
	if builder.ownerIdFlag {
		req.OwnerId = &builder.ownerId

	}
	return req
}

type TalentIdentificationInfo struct {
	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号
}

type TalentIdentificationInfoBuilder struct {
	identificationType     int // 证件类型
	identificationTypeFlag bool

	identificationNumber     string // 证件号
	identificationNumberFlag bool
}

func NewTalentIdentificationInfoBuilder() *TalentIdentificationInfoBuilder {
	builder := &TalentIdentificationInfoBuilder{}
	return builder
}

// 证件类型
//
// 示例值：1
func (builder *TalentIdentificationInfoBuilder) IdentificationType(identificationType int) *TalentIdentificationInfoBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：511699199x1x111234
func (builder *TalentIdentificationInfoBuilder) IdentificationNumber(identificationNumber string) *TalentIdentificationInfoBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

func (builder *TalentIdentificationInfoBuilder) Build() *TalentIdentificationInfo {
	req := &TalentIdentificationInfo{}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	return req
}

type TalentInternshipInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Company *string `json:"company,omitempty"` // 公司

	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	Title *string `json:"title,omitempty"` // 职称

	TagList []int `json:"tag_list,omitempty"` // 标记, 只会出现学校部分
}

type TalentInternshipInfoBuilder struct {
	id     string // ID
	idFlag bool

	company     string // 公司
	companyFlag bool

	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间
	endTimeFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	title     string // 职称
	titleFlag bool

	tagList     []int // 标记, 只会出现学校部分
	tagListFlag bool
}

func NewTalentInternshipInfoBuilder() *TalentInternshipInfoBuilder {
	builder := &TalentInternshipInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6986199832494934316
func (builder *TalentInternshipInfoBuilder) Id(id string) *TalentInternshipInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 公司
//
// 示例值：小米
func (builder *TalentInternshipInfoBuilder) Company(company string) *TalentInternshipInfoBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 描述
//
// 示例值：研发部实习
func (builder *TalentInternshipInfoBuilder) Desc(desc string) *TalentInternshipInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间
//
// 示例值：1618500278638
func (builder *TalentInternshipInfoBuilder) EndTime(endTime int64) *TalentInternshipInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 开始时间
//
// 示例值：1618500278639
func (builder *TalentInternshipInfoBuilder) StartTime(startTime int64) *TalentInternshipInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 职称
//
// 示例值：高级工程师
func (builder *TalentInternshipInfoBuilder) Title(title string) *TalentInternshipInfoBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 标记, 只会出现学校部分
//
// 示例值：[1, 2, 3]
func (builder *TalentInternshipInfoBuilder) TagList(tagList []int) *TalentInternshipInfoBuilder {
	builder.tagList = tagList
	builder.tagListFlag = true
	return builder
}

func (builder *TalentInternshipInfoBuilder) Build() *TalentInternshipInfo {
	req := &TalentInternshipInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.tagListFlag {
		req.TagList = builder.tagList
	}
	return req
}

type TalentInterview struct {
	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	InterviewList []*InterviewExtend `json:"interview_list,omitempty"` // 面试列表
}

type TalentInterviewBuilder struct {
	applicationId     string // 投递 ID
	applicationIdFlag bool

	interviewList     []*InterviewExtend // 面试列表
	interviewListFlag bool
}

func NewTalentInterviewBuilder() *TalentInterviewBuilder {
	builder := &TalentInterviewBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：6949805467799537964
func (builder *TalentInterviewBuilder) ApplicationId(applicationId string) *TalentInterviewBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 面试列表
//
// 示例值：
func (builder *TalentInterviewBuilder) InterviewList(interviewList []*InterviewExtend) *TalentInterviewBuilder {
	builder.interviewList = interviewList
	builder.interviewListFlag = true
	return builder
}

func (builder *TalentInterviewBuilder) Build() *TalentInterview {
	req := &TalentInterview{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.interviewListFlag {
		req.InterviewList = builder.interviewList
	}
	return req
}

type TalentInterviewRegistrationSimple struct {
	Id *string `json:"id,omitempty"` // ID

	RegistrationTime *int64 `json:"registration_time,omitempty"` // 创建时间

	DownloadUrl *string `json:"download_url,omitempty"` // 下载链接
}

type TalentInterviewRegistrationSimpleBuilder struct {
	id     string // ID
	idFlag bool

	registrationTime     int64 // 创建时间
	registrationTimeFlag bool

	downloadUrl     string // 下载链接
	downloadUrlFlag bool
}

func NewTalentInterviewRegistrationSimpleBuilder() *TalentInterviewRegistrationSimpleBuilder {
	builder := &TalentInterviewRegistrationSimpleBuilder{}
	return builder
}

// ID
//
// 示例值：6833685612520950030
func (builder *TalentInterviewRegistrationSimpleBuilder) Id(id string) *TalentInterviewRegistrationSimpleBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 创建时间
//
// 示例值：1618494330932
func (builder *TalentInterviewRegistrationSimpleBuilder) RegistrationTime(registrationTime int64) *TalentInterviewRegistrationSimpleBuilder {
	builder.registrationTime = registrationTime
	builder.registrationTimeFlag = true
	return builder
}

// 下载链接
//
// 示例值：https://hire.feishu.cn/hire/file/blob/...token.../
func (builder *TalentInterviewRegistrationSimpleBuilder) DownloadUrl(downloadUrl string) *TalentInterviewRegistrationSimpleBuilder {
	builder.downloadUrl = downloadUrl
	builder.downloadUrlFlag = true
	return builder
}

func (builder *TalentInterviewRegistrationSimpleBuilder) Build() *TalentInterviewRegistrationSimple {
	req := &TalentInterviewRegistrationSimple{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.registrationTimeFlag {
		req.RegistrationTime = &builder.registrationTime

	}
	if builder.downloadUrlFlag {
		req.DownloadUrl = &builder.downloadUrl

	}
	return req
}

type TalentLanguageInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Language *int `json:"language,omitempty"` // 语言

	Proficiency *int `json:"proficiency,omitempty"` // 精通程度

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentLanguageInfoBuilder struct {
	id     string // ID
	idFlag bool

	language     int // 语言
	languageFlag bool

	proficiency     int // 精通程度
	proficiencyFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentLanguageInfoBuilder() *TalentLanguageInfoBuilder {
	builder := &TalentLanguageInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentLanguageInfoBuilder) Id(id string) *TalentLanguageInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 语言
//
// 示例值：1
func (builder *TalentLanguageInfoBuilder) Language(language int) *TalentLanguageInfoBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 精通程度
//
// 示例值：1
func (builder *TalentLanguageInfoBuilder) Proficiency(proficiency int) *TalentLanguageInfoBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentLanguageInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentLanguageInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentLanguageInfoBuilder) Build() *TalentLanguageInfo {
	req := &TalentLanguageInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentNationality struct {
	NationalityCode *string `json:"nationality_code,omitempty"` // 国家编码

	ZhName *string `json:"zh_name,omitempty"` // 中文名

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type TalentNationalityBuilder struct {
	nationalityCode     string // 国家编码
	nationalityCodeFlag bool

	zhName     string // 中文名
	zhNameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewTalentNationalityBuilder() *TalentNationalityBuilder {
	builder := &TalentNationalityBuilder{}
	return builder
}

// 国家编码
//
// 示例值：CN_183
func (builder *TalentNationalityBuilder) NationalityCode(nationalityCode string) *TalentNationalityBuilder {
	builder.nationalityCode = nationalityCode
	builder.nationalityCodeFlag = true
	return builder
}

// 中文名
//
// 示例值：测试
func (builder *TalentNationalityBuilder) ZhName(zhName string) *TalentNationalityBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名
//
// 示例值：test
func (builder *TalentNationalityBuilder) EnName(enName string) *TalentNationalityBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *TalentNationalityBuilder) Build() *TalentNationality {
	req := &TalentNationality{}
	if builder.nationalityCodeFlag {
		req.NationalityCode = &builder.nationalityCode

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type TalentOperationLog struct {
	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	TalentId *string `json:"talent_id,omitempty"` // 候选人 ID

	Operator *IdNameObject `json:"operator,omitempty"` // 操作人

	OperationType *int `json:"operation_type,omitempty"` // 操作类型

	OperationTime *string `json:"operation_time,omitempty"` // 操作时间

	OperatorType *int `json:"operator_type,omitempty"` // 操作人类型
}

type TalentOperationLogBuilder struct {
	applicationId     string // 投递 ID
	applicationIdFlag bool

	talentId     string // 候选人 ID
	talentIdFlag bool

	operator     *IdNameObject // 操作人
	operatorFlag bool

	operationType     int // 操作类型
	operationTypeFlag bool

	operationTime     string // 操作时间
	operationTimeFlag bool

	operatorType     int // 操作人类型
	operatorTypeFlag bool
}

func NewTalentOperationLogBuilder() *TalentOperationLogBuilder {
	builder := &TalentOperationLogBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：6949805467799537964
func (builder *TalentOperationLogBuilder) ApplicationId(applicationId string) *TalentOperationLogBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 候选人 ID
//
// 示例值：6843547872837273223
func (builder *TalentOperationLogBuilder) TalentId(talentId string) *TalentOperationLogBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 操作人
//
// 示例值：
func (builder *TalentOperationLogBuilder) Operator(operator *IdNameObject) *TalentOperationLogBuilder {
	builder.operator = operator
	builder.operatorFlag = true
	return builder
}

// 操作类型
//
// 示例值："3001"
func (builder *TalentOperationLogBuilder) OperationType(operationType int) *TalentOperationLogBuilder {
	builder.operationType = operationType
	builder.operationTypeFlag = true
	return builder
}

// 操作时间
//
// 示例值：1618500278663
func (builder *TalentOperationLogBuilder) OperationTime(operationTime string) *TalentOperationLogBuilder {
	builder.operationTime = operationTime
	builder.operationTimeFlag = true
	return builder
}

// 操作人类型
//
// 示例值：1
func (builder *TalentOperationLogBuilder) OperatorType(operatorType int) *TalentOperationLogBuilder {
	builder.operatorType = operatorType
	builder.operatorTypeFlag = true
	return builder
}

func (builder *TalentOperationLogBuilder) Build() *TalentOperationLog {
	req := &TalentOperationLog{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.operatorFlag {
		req.Operator = builder.operator
	}
	if builder.operationTypeFlag {
		req.OperationType = &builder.operationType

	}
	if builder.operationTimeFlag {
		req.OperationTime = &builder.operationTime

	}
	if builder.operatorTypeFlag {
		req.OperatorType = &builder.operatorType

	}
	return req
}

type TalentPool struct {
	Id *string `json:"id,omitempty"` // 人才库ID

	I18nName *I18n `json:"i18n_name,omitempty"` // 人才库名称

	I18nDescription *I18n `json:"i18n_description,omitempty"` // 人才库描述

	ParentId *string `json:"parent_id,omitempty"` // 父级人才库ID

	IsPrivate *int `json:"is_private,omitempty"` // 是否「仅部分用户可见」

	CreateTime *string `json:"create_time,omitempty"` // 创建时间，毫秒时间戳

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间，毫秒时间戳
}

type TalentPoolBuilder struct {
	id     string // 人才库ID
	idFlag bool

	i18nName     *I18n // 人才库名称
	i18nNameFlag bool

	i18nDescription     *I18n // 人才库描述
	i18nDescriptionFlag bool

	parentId     string // 父级人才库ID
	parentIdFlag bool

	isPrivate     int // 是否「仅部分用户可见」
	isPrivateFlag bool

	createTime     string // 创建时间，毫秒时间戳
	createTimeFlag bool

	modifyTime     string // 修改时间，毫秒时间戳
	modifyTimeFlag bool
}

func NewTalentPoolBuilder() *TalentPoolBuilder {
	builder := &TalentPoolBuilder{}
	return builder
}

// 人才库ID
//
// 示例值：6930815272790114324
func (builder *TalentPoolBuilder) Id(id string) *TalentPoolBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 人才库名称
//
// 示例值：
func (builder *TalentPoolBuilder) I18nName(i18nName *I18n) *TalentPoolBuilder {
	builder.i18nName = i18nName
	builder.i18nNameFlag = true
	return builder
}

// 人才库描述
//
// 示例值：
func (builder *TalentPoolBuilder) I18nDescription(i18nDescription *I18n) *TalentPoolBuilder {
	builder.i18nDescription = i18nDescription
	builder.i18nDescriptionFlag = true
	return builder
}

// 父级人才库ID
//
// 示例值：6930815272790114324
func (builder *TalentPoolBuilder) ParentId(parentId string) *TalentPoolBuilder {
	builder.parentId = parentId
	builder.parentIdFlag = true
	return builder
}

// 是否「仅部分用户可见」
//
// 示例值：1
func (builder *TalentPoolBuilder) IsPrivate(isPrivate int) *TalentPoolBuilder {
	builder.isPrivate = isPrivate
	builder.isPrivateFlag = true
	return builder
}

// 创建时间，毫秒时间戳
//
// 示例值：1679300424000
func (builder *TalentPoolBuilder) CreateTime(createTime string) *TalentPoolBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 修改时间，毫秒时间戳
//
// 示例值：1679300424000
func (builder *TalentPoolBuilder) ModifyTime(modifyTime string) *TalentPoolBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

func (builder *TalentPoolBuilder) Build() *TalentPool {
	req := &TalentPool{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.i18nNameFlag {
		req.I18nName = builder.i18nName
	}
	if builder.i18nDescriptionFlag {
		req.I18nDescription = builder.i18nDescription
	}
	if builder.parentIdFlag {
		req.ParentId = &builder.parentId

	}
	if builder.isPrivateFlag {
		req.IsPrivate = &builder.isPrivate

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	return req
}

type TalentPoolTalentBasic struct {
	Id *string `json:"id,omitempty"` // 人才 ID

	Name *string `json:"name,omitempty"` // 名字

	Mobile *string `json:"mobile,omitempty"` // 手机

	MobileCode *string `json:"mobile_code,omitempty"` // 手机国家区号

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 手机国家代码

	Email *string `json:"email,omitempty"` // 邮箱

	ExperienceYears *int `json:"experience_years,omitempty"` // 工作年限

	Age *int `json:"age,omitempty"` // 年龄

	Nationality *TalentDetailTalentNationality `json:"nationality,omitempty"` // 国籍

	Gender *int `json:"gender,omitempty"` // 性别

	CurrentCity *CommonCityInfo `json:"current_city,omitempty"` // 所在地点

	HometownCity *CommonCityInfo `json:"hometown_city,omitempty"` // 家乡

	PreferredCityList []*CommonCityInfo `json:"preferred_city_list,omitempty"` // 意向地点

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 证件号

	Birthday *int64 `json:"birthday,omitempty"` // 生日

	CreatorId *string `json:"creator_id,omitempty"` // 创建人ID

	MaritalStatus *int `json:"marital_status,omitempty"` // 婚姻状况

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间

	CreateTime *string `json:"create_time,omitempty"` // 创建时间
}

type TalentPoolTalentBasicBuilder struct {
	id     string // 人才 ID
	idFlag bool

	name     string // 名字
	nameFlag bool

	mobile     string // 手机
	mobileFlag bool

	mobileCode     string // 手机国家区号
	mobileCodeFlag bool

	mobileCountryCode     string // 手机国家代码
	mobileCountryCodeFlag bool

	email     string // 邮箱
	emailFlag bool

	experienceYears     int // 工作年限
	experienceYearsFlag bool

	age     int // 年龄
	ageFlag bool

	nationality     *TalentDetailTalentNationality // 国籍
	nationalityFlag bool

	gender     int // 性别
	genderFlag bool

	currentCity     *CommonCityInfo // 所在地点
	currentCityFlag bool

	hometownCity     *CommonCityInfo // 家乡
	hometownCityFlag bool

	preferredCityList     []*CommonCityInfo // 意向地点
	preferredCityListFlag bool

	identificationType     int // 证件类型
	identificationTypeFlag bool

	identificationNumber     string // 证件号
	identificationNumberFlag bool

	birthday     int64 // 生日
	birthdayFlag bool

	creatorId     string // 创建人ID
	creatorIdFlag bool

	maritalStatus     int // 婚姻状况
	maritalStatusFlag bool

	updateTime     string // 更新时间
	updateTimeFlag bool

	createTime     string // 创建时间
	createTimeFlag bool
}

func NewTalentPoolTalentBasicBuilder() *TalentPoolTalentBasicBuilder {
	builder := &TalentPoolTalentBasicBuilder{}
	return builder
}

// 人才 ID
//
// 示例值：1716494502129
func (builder *TalentPoolTalentBasicBuilder) Id(id string) *TalentPoolTalentBasicBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名字
//
// 示例值：测试
func (builder *TalentPoolTalentBasicBuilder) Name(name string) *TalentPoolTalentBasicBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机
//
// 示例值：18290029119
func (builder *TalentPoolTalentBasicBuilder) Mobile(mobile string) *TalentPoolTalentBasicBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 手机国家区号
//
// 示例值：86
func (builder *TalentPoolTalentBasicBuilder) MobileCode(mobileCode string) *TalentPoolTalentBasicBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 手机国家代码
//
// 示例值：CN_1
func (builder *TalentPoolTalentBasicBuilder) MobileCountryCode(mobileCountryCode string) *TalentPoolTalentBasicBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 邮箱
//
// 示例值：16xx1@126.com
func (builder *TalentPoolTalentBasicBuilder) Email(email string) *TalentPoolTalentBasicBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 工作年限
//
// 示例值：5
func (builder *TalentPoolTalentBasicBuilder) ExperienceYears(experienceYears int) *TalentPoolTalentBasicBuilder {
	builder.experienceYears = experienceYears
	builder.experienceYearsFlag = true
	return builder
}

// 年龄
//
// 示例值：22
func (builder *TalentPoolTalentBasicBuilder) Age(age int) *TalentPoolTalentBasicBuilder {
	builder.age = age
	builder.ageFlag = true
	return builder
}

// 国籍
//
// 示例值：
func (builder *TalentPoolTalentBasicBuilder) Nationality(nationality *TalentDetailTalentNationality) *TalentPoolTalentBasicBuilder {
	builder.nationality = nationality
	builder.nationalityFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *TalentPoolTalentBasicBuilder) Gender(gender int) *TalentPoolTalentBasicBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 所在地点
//
// 示例值：
func (builder *TalentPoolTalentBasicBuilder) CurrentCity(currentCity *CommonCityInfo) *TalentPoolTalentBasicBuilder {
	builder.currentCity = currentCity
	builder.currentCityFlag = true
	return builder
}

// 家乡
//
// 示例值：
func (builder *TalentPoolTalentBasicBuilder) HometownCity(hometownCity *CommonCityInfo) *TalentPoolTalentBasicBuilder {
	builder.hometownCity = hometownCity
	builder.hometownCityFlag = true
	return builder
}

// 意向地点
//
// 示例值：
func (builder *TalentPoolTalentBasicBuilder) PreferredCityList(preferredCityList []*CommonCityInfo) *TalentPoolTalentBasicBuilder {
	builder.preferredCityList = preferredCityList
	builder.preferredCityListFlag = true
	return builder
}

// 证件类型
//
// 示例值：1
func (builder *TalentPoolTalentBasicBuilder) IdentificationType(identificationType int) *TalentPoolTalentBasicBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：511699199x1x111234
func (builder *TalentPoolTalentBasicBuilder) IdentificationNumber(identificationNumber string) *TalentPoolTalentBasicBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 生日
//
// 示例值：293016767159
func (builder *TalentPoolTalentBasicBuilder) Birthday(birthday int64) *TalentPoolTalentBasicBuilder {
	builder.birthday = birthday
	builder.birthdayFlag = true
	return builder
}

// 创建人ID
//
// 示例值：ou-xxx
func (builder *TalentPoolTalentBasicBuilder) CreatorId(creatorId string) *TalentPoolTalentBasicBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 婚姻状况
//
// 示例值：1
func (builder *TalentPoolTalentBasicBuilder) MaritalStatus(maritalStatus int) *TalentPoolTalentBasicBuilder {
	builder.maritalStatus = maritalStatus
	builder.maritalStatusFlag = true
	return builder
}

// 更新时间
//
// 示例值：1634801678103
func (builder *TalentPoolTalentBasicBuilder) UpdateTime(updateTime string) *TalentPoolTalentBasicBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 创建时间
//
// 示例值：1634801678103
func (builder *TalentPoolTalentBasicBuilder) CreateTime(createTime string) *TalentPoolTalentBasicBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

func (builder *TalentPoolTalentBasicBuilder) Build() *TalentPoolTalentBasic {
	req := &TalentPoolTalentBasic{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.experienceYearsFlag {
		req.ExperienceYears = &builder.experienceYears

	}
	if builder.ageFlag {
		req.Age = &builder.age

	}
	if builder.nationalityFlag {
		req.Nationality = builder.nationality
	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.currentCityFlag {
		req.CurrentCity = builder.currentCity
	}
	if builder.hometownCityFlag {
		req.HometownCity = builder.hometownCity
	}
	if builder.preferredCityListFlag {
		req.PreferredCityList = builder.preferredCityList
	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.birthdayFlag {
		req.Birthday = &builder.birthday

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.maritalStatusFlag {
		req.MaritalStatus = &builder.maritalStatus

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type TalentProjectInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Name *string `json:"name,omitempty"` // 项目名称

	Role *string `json:"role,omitempty"` // 项目角色

	Link *string `json:"link,omitempty"` // 项目链接

	Desc *string `json:"desc,omitempty"` // 描述

	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentProjectInfoBuilder struct {
	id     string // ID
	idFlag bool

	name     string // 项目名称
	nameFlag bool

	role     string // 项目角色
	roleFlag bool

	link     string // 项目链接
	linkFlag bool

	desc     string // 描述
	descFlag bool

	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentProjectInfoBuilder() *TalentProjectInfoBuilder {
	builder := &TalentProjectInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentProjectInfoBuilder) Id(id string) *TalentProjectInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 项目名称
//
// 示例值：测试
func (builder *TalentProjectInfoBuilder) Name(name string) *TalentProjectInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 项目角色
//
// 示例值：test
func (builder *TalentProjectInfoBuilder) Role(role string) *TalentProjectInfoBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 项目链接
//
// 示例值：www.test.com
func (builder *TalentProjectInfoBuilder) Link(link string) *TalentProjectInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：test
func (builder *TalentProjectInfoBuilder) Desc(desc string) *TalentProjectInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 开始时间
//
// 示例值：1990-01
func (builder *TalentProjectInfoBuilder) StartTime(startTime string) *TalentProjectInfoBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1991-01
func (builder *TalentProjectInfoBuilder) EndTime(endTime string) *TalentProjectInfoBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentProjectInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentProjectInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentProjectInfoBuilder) Build() *TalentProjectInfo {
	req := &TalentProjectInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentResumeSource struct {
	Id *string `json:"id,omitempty"` // ID

	ZhName *string `json:"zh_name,omitempty"` // 中文名

	EnName *string `json:"en_name,omitempty"` // 英文名
}

type TalentResumeSourceBuilder struct {
	id     string // ID
	idFlag bool

	zhName     string // 中文名
	zhNameFlag bool

	enName     string // 英文名
	enNameFlag bool
}

func NewTalentResumeSourceBuilder() *TalentResumeSourceBuilder {
	builder := &TalentResumeSourceBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentResumeSourceBuilder) Id(id string) *TalentResumeSourceBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 中文名
//
// 示例值：猎头
func (builder *TalentResumeSourceBuilder) ZhName(zhName string) *TalentResumeSourceBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 英文名
//
// 示例值：Hunter
func (builder *TalentResumeSourceBuilder) EnName(enName string) *TalentResumeSourceBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *TalentResumeSourceBuilder) Build() *TalentResumeSource {
	req := &TalentResumeSource{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type TalentSchema struct {
}

type TalentSchemaBuilder struct {
}

func NewTalentSchemaBuilder() *TalentSchemaBuilder {
	builder := &TalentSchemaBuilder{}
	return builder
}

func (builder *TalentSchemaBuilder) Build() *TalentSchema {
	req := &TalentSchema{}
	return req
}

type TalentSchemaChildObject struct {
	Id *string `json:"id,omitempty"` // ID

	ActiveStatus *int `json:"active_status,omitempty"` // 活跃状态

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否自定义

	Name *I18n `json:"name,omitempty"` // 名称

	OptionList []*TalentSchemaOption `json:"option_list,omitempty"` // 选项
}

type TalentSchemaChildObjectBuilder struct {
	id     string // ID
	idFlag bool

	activeStatus     int // 活跃状态
	activeStatusFlag bool

	isCustomized     bool // 是否自定义
	isCustomizedFlag bool

	name     *I18n // 名称
	nameFlag bool

	optionList     []*TalentSchemaOption // 选项
	optionListFlag bool
}

func NewTalentSchemaChildObjectBuilder() *TalentSchemaChildObjectBuilder {
	builder := &TalentSchemaChildObjectBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *TalentSchemaChildObjectBuilder) Id(id string) *TalentSchemaChildObjectBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 活跃状态
//
// 示例值：
func (builder *TalentSchemaChildObjectBuilder) ActiveStatus(activeStatus int) *TalentSchemaChildObjectBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 是否自定义
//
// 示例值：
func (builder *TalentSchemaChildObjectBuilder) IsCustomized(isCustomized bool) *TalentSchemaChildObjectBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *TalentSchemaChildObjectBuilder) Name(name *I18n) *TalentSchemaChildObjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项
//
// 示例值：
func (builder *TalentSchemaChildObjectBuilder) OptionList(optionList []*TalentSchemaOption) *TalentSchemaChildObjectBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

func (builder *TalentSchemaChildObjectBuilder) Build() *TalentSchemaChildObject {
	req := &TalentSchemaChildObject{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	return req
}

type TalentSchemaObject struct {
	Id *string `json:"id,omitempty"` // ID

	ActiveStatus *int `json:"active_status,omitempty"` // 活跃状态

	IsCustomized *bool `json:"is_customized,omitempty"` // 是否自定义

	Name *I18n `json:"name,omitempty"` // 名称

	OptionList []*TalentSchemaOption `json:"option_list,omitempty"` // 选项

	Children []*TalentSchemaChildObject `json:"children,omitempty"` // 子节点
}

type TalentSchemaObjectBuilder struct {
	id     string // ID
	idFlag bool

	activeStatus     int // 活跃状态
	activeStatusFlag bool

	isCustomized     bool // 是否自定义
	isCustomizedFlag bool

	name     *I18n // 名称
	nameFlag bool

	optionList     []*TalentSchemaOption // 选项
	optionListFlag bool

	children     []*TalentSchemaChildObject // 子节点
	childrenFlag bool
}

func NewTalentSchemaObjectBuilder() *TalentSchemaObjectBuilder {
	builder := &TalentSchemaObjectBuilder{}
	return builder
}

// ID
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) Id(id string) *TalentSchemaObjectBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 活跃状态
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) ActiveStatus(activeStatus int) *TalentSchemaObjectBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 是否自定义
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) IsCustomized(isCustomized bool) *TalentSchemaObjectBuilder {
	builder.isCustomized = isCustomized
	builder.isCustomizedFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) Name(name *I18n) *TalentSchemaObjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 选项
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) OptionList(optionList []*TalentSchemaOption) *TalentSchemaObjectBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

// 子节点
//
// 示例值：
func (builder *TalentSchemaObjectBuilder) Children(children []*TalentSchemaChildObject) *TalentSchemaObjectBuilder {
	builder.children = children
	builder.childrenFlag = true
	return builder
}

func (builder *TalentSchemaObjectBuilder) Build() *TalentSchemaObject {
	req := &TalentSchemaObject{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.isCustomizedFlag {
		req.IsCustomized = &builder.isCustomized

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	if builder.childrenFlag {
		req.Children = builder.children
	}
	return req
}

type TalentSchemaOption struct {
	ActiveStatus *int `json:"active_status,omitempty"` // 活跃状态

	Value *string `json:"value,omitempty"` // 值

	Name *I18n `json:"name,omitempty"` // 名称
}

type TalentSchemaOptionBuilder struct {
	activeStatus     int // 活跃状态
	activeStatusFlag bool

	value     string // 值
	valueFlag bool

	name     *I18n // 名称
	nameFlag bool
}

func NewTalentSchemaOptionBuilder() *TalentSchemaOptionBuilder {
	builder := &TalentSchemaOptionBuilder{}
	return builder
}

// 活跃状态
//
// 示例值：
func (builder *TalentSchemaOptionBuilder) ActiveStatus(activeStatus int) *TalentSchemaOptionBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

// 值
//
// 示例值：
func (builder *TalentSchemaOptionBuilder) Value(value string) *TalentSchemaOptionBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *TalentSchemaOptionBuilder) Name(name *I18n) *TalentSchemaOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *TalentSchemaOptionBuilder) Build() *TalentSchemaOption {
	req := &TalentSchemaOption{}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type TalentSelfEvaluation struct {
	Id *string `json:"id,omitempty"` // ID

	Content *string `json:"content,omitempty"` // 内容

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义字段
}

type TalentSelfEvaluationBuilder struct {
	id     string // ID
	idFlag bool

	content     string // 内容
	contentFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义字段
	customizedDataFlag bool
}

func NewTalentSelfEvaluationBuilder() *TalentSelfEvaluationBuilder {
	builder := &TalentSelfEvaluationBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentSelfEvaluationBuilder) Id(id string) *TalentSelfEvaluationBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 内容
//
// 示例值：自我评价：平常心
func (builder *TalentSelfEvaluationBuilder) Content(content string) *TalentSelfEvaluationBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentSelfEvaluationBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *TalentSelfEvaluationBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *TalentSelfEvaluationBuilder) Build() *TalentSelfEvaluation {
	req := &TalentSelfEvaluation{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type TalentSnsInfo struct {
	Id *string `json:"id,omitempty"` // ID

	SnsType *int `json:"sns_type,omitempty"` // SNS名称

	Link *string `json:"link,omitempty"` // URL/ID

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentSnsInfoBuilder struct {
	id     string // ID
	idFlag bool

	snsType     int // SNS名称
	snsTypeFlag bool

	link     string // URL/ID
	linkFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentSnsInfoBuilder() *TalentSnsInfoBuilder {
	builder := &TalentSnsInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentSnsInfoBuilder) Id(id string) *TalentSnsInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// SNS名称
//
// 示例值：1
func (builder *TalentSnsInfoBuilder) SnsType(snsType int) *TalentSnsInfoBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

// URL/ID
//
// 示例值：www.test.com
func (builder *TalentSnsInfoBuilder) Link(link string) *TalentSnsInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentSnsInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentSnsInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentSnsInfoBuilder) Build() *TalentSnsInfo {
	req := &TalentSnsInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TalentTag struct {
	Id *string `json:"id,omitempty"` // 标签 ID

	Name *I18n `json:"name,omitempty"` // 标签名称

	Description *I18n `json:"description,omitempty"` // 描述名称

	Type *int `json:"type,omitempty"` // 标签类型

	ActiveStatus *int `json:"active_status,omitempty"` // 启停用状态
}

type TalentTagBuilder struct {
	id     string // 标签 ID
	idFlag bool

	name     *I18n // 标签名称
	nameFlag bool

	description     *I18n // 描述名称
	descriptionFlag bool

	type_    int // 标签类型
	typeFlag bool

	activeStatus     int // 启停用状态
	activeStatusFlag bool
}

func NewTalentTagBuilder() *TalentTagBuilder {
	builder := &TalentTagBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：
func (builder *TalentTagBuilder) Id(id string) *TalentTagBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标签名称
//
// 示例值：
func (builder *TalentTagBuilder) Name(name *I18n) *TalentTagBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 描述名称
//
// 示例值：
func (builder *TalentTagBuilder) Description(description *I18n) *TalentTagBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 标签类型
//
// 示例值：1
func (builder *TalentTagBuilder) Type(type_ int) *TalentTagBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 启停用状态
//
// 示例值：1
func (builder *TalentTagBuilder) ActiveStatus(activeStatus int) *TalentTagBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *TalentTagBuilder) Build() *TalentTag {
	req := &TalentTag{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.descriptionFlag {
		req.Description = builder.description
	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type TalentWorksInfo struct {
	Id *string `json:"id,omitempty"` // ID

	Link *string `json:"link,omitempty"` // 作品链接

	Desc *string `json:"desc,omitempty"` // 描述

	Name *string `json:"name,omitempty"` // 作品附件名称，若需获取作品附件预览信息可调用「获取附件预览信息」接口

	CustomizedDataList []*TalentCustomizedDataChild `json:"customized_data_list,omitempty"` // 自定义字段
}

type TalentWorksInfoBuilder struct {
	id     string // ID
	idFlag bool

	link     string // 作品链接
	linkFlag bool

	desc     string // 描述
	descFlag bool

	name     string // 作品附件名称，若需获取作品附件预览信息可调用「获取附件预览信息」接口
	nameFlag bool

	customizedDataList     []*TalentCustomizedDataChild // 自定义字段
	customizedDataListFlag bool
}

func NewTalentWorksInfoBuilder() *TalentWorksInfoBuilder {
	builder := &TalentWorksInfoBuilder{}
	return builder
}

// ID
//
// 示例值：6891560630172518670
func (builder *TalentWorksInfoBuilder) Id(id string) *TalentWorksInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 作品链接
//
// 示例值：www.test.com
func (builder *TalentWorksInfoBuilder) Link(link string) *TalentWorksInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 描述
//
// 示例值：test
func (builder *TalentWorksInfoBuilder) Desc(desc string) *TalentWorksInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 作品附件名称，若需获取作品附件预览信息可调用「获取附件预览信息」接口
//
// 示例值：XX项目
func (builder *TalentWorksInfoBuilder) Name(name string) *TalentWorksInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *TalentWorksInfoBuilder) CustomizedDataList(customizedDataList []*TalentCustomizedDataChild) *TalentWorksInfoBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

func (builder *TalentWorksInfoBuilder) Build() *TalentWorksInfo {
	req := &TalentWorksInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	return req
}

type TargetMajorInfo struct {
	Id *string `json:"id,omitempty"` // 目标专业ID

	ZhName *string `json:"zh_name,omitempty"` // 目标专业中文名称

	EnName *string `json:"en_name,omitempty"` // 目标专业英文名称
}

type TargetMajorInfoBuilder struct {
	id     string // 目标专业ID
	idFlag bool

	zhName     string // 目标专业中文名称
	zhNameFlag bool

	enName     string // 目标专业英文名称
	enNameFlag bool
}

func NewTargetMajorInfoBuilder() *TargetMajorInfoBuilder {
	builder := &TargetMajorInfoBuilder{}
	return builder
}

// 目标专业ID
//
// 示例值：6930815272790114324
func (builder *TargetMajorInfoBuilder) Id(id string) *TargetMajorInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 目标专业中文名称
//
// 示例值：考古
func (builder *TargetMajorInfoBuilder) ZhName(zhName string) *TargetMajorInfoBuilder {
	builder.zhName = zhName
	builder.zhNameFlag = true
	return builder
}

// 目标专业英文名称
//
// 示例值：archeology
func (builder *TargetMajorInfoBuilder) EnName(enName string) *TargetMajorInfoBuilder {
	builder.enName = enName
	builder.enNameFlag = true
	return builder
}

func (builder *TargetMajorInfoBuilder) Build() *TargetMajorInfo {
	req := &TargetMajorInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.zhNameFlag {
		req.ZhName = &builder.zhName

	}
	if builder.enNameFlag {
		req.EnName = &builder.enName

	}
	return req
}

type TerminationReason struct {
	Id *string `json:"id,omitempty"` // 终止原因 ID

	Name *I18n `json:"name,omitempty"` // 终止原因名称

	ReferralName *I18n `json:"referral_name,omitempty"` // 内推渠道展示文案

	TerminationType *int `json:"termination_type,omitempty"` // 终止原因类型

	IsUsedAsEvaluation *bool `json:"is_used_as_evaluation,omitempty"` // 是否用于评估

	ActiveStatus *int `json:"active_status,omitempty"` // 状态
}

type TerminationReasonBuilder struct {
	id     string // 终止原因 ID
	idFlag bool

	name     *I18n // 终止原因名称
	nameFlag bool

	referralName     *I18n // 内推渠道展示文案
	referralNameFlag bool

	terminationType     int // 终止原因类型
	terminationTypeFlag bool

	isUsedAsEvaluation     bool // 是否用于评估
	isUsedAsEvaluationFlag bool

	activeStatus     int // 状态
	activeStatusFlag bool
}

func NewTerminationReasonBuilder() *TerminationReasonBuilder {
	builder := &TerminationReasonBuilder{}
	return builder
}

// 终止原因 ID
//
// 示例值：10002
func (builder *TerminationReasonBuilder) Id(id string) *TerminationReasonBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 终止原因名称
//
// 示例值：
func (builder *TerminationReasonBuilder) Name(name *I18n) *TerminationReasonBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 内推渠道展示文案
//
// 示例值：
func (builder *TerminationReasonBuilder) ReferralName(referralName *I18n) *TerminationReasonBuilder {
	builder.referralName = referralName
	builder.referralNameFlag = true
	return builder
}

// 终止原因类型
//
// 示例值：22
func (builder *TerminationReasonBuilder) TerminationType(terminationType int) *TerminationReasonBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 是否用于评估
//
// 示例值：false
func (builder *TerminationReasonBuilder) IsUsedAsEvaluation(isUsedAsEvaluation bool) *TerminationReasonBuilder {
	builder.isUsedAsEvaluation = isUsedAsEvaluation
	builder.isUsedAsEvaluationFlag = true
	return builder
}

// 状态
//
// 示例值：1
func (builder *TerminationReasonBuilder) ActiveStatus(activeStatus int) *TerminationReasonBuilder {
	builder.activeStatus = activeStatus
	builder.activeStatusFlag = true
	return builder
}

func (builder *TerminationReasonBuilder) Build() *TerminationReason {
	req := &TerminationReason{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.referralNameFlag {
		req.ReferralName = builder.referralName
	}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType

	}
	if builder.isUsedAsEvaluationFlag {
		req.IsUsedAsEvaluation = &builder.isUsedAsEvaluation

	}
	if builder.activeStatusFlag {
		req.ActiveStatus = &builder.activeStatus

	}
	return req
}

type TerminationReasonChildInfo struct {
	Id *string `json:"id,omitempty"` // 终止原因 ID

	Name *I18n `json:"name,omitempty"` // 终止原因名称
}

type TerminationReasonChildInfoBuilder struct {
	id     string // 终止原因 ID
	idFlag bool

	name     *I18n // 终止原因名称
	nameFlag bool
}

func NewTerminationReasonChildInfoBuilder() *TerminationReasonChildInfoBuilder {
	builder := &TerminationReasonChildInfoBuilder{}
	return builder
}

// 终止原因 ID
//
// 示例值：6891258038901016846
func (builder *TerminationReasonChildInfoBuilder) Id(id string) *TerminationReasonChildInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 终止原因名称
//
// 示例值：
func (builder *TerminationReasonChildInfoBuilder) Name(name *I18n) *TerminationReasonChildInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *TerminationReasonChildInfoBuilder) Build() *TerminationReasonChildInfo {
	req := &TerminationReasonChildInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type TerminationReasonInfo struct {
	Id *string `json:"id,omitempty"` // 终止原因 id

	Name *I18n `json:"name,omitempty"` // 终止原因名称

	Children []*TerminationReasonChildInfo `json:"children,omitempty"` // 子级终止原因
}

type TerminationReasonInfoBuilder struct {
	id     string // 终止原因 id
	idFlag bool

	name     *I18n // 终止原因名称
	nameFlag bool

	children     []*TerminationReasonChildInfo // 子级终止原因
	childrenFlag bool
}

func NewTerminationReasonInfoBuilder() *TerminationReasonInfoBuilder {
	builder := &TerminationReasonInfoBuilder{}
	return builder
}

// 终止原因 id
//
// 示例值：6891258038901016846
func (builder *TerminationReasonInfoBuilder) Id(id string) *TerminationReasonInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 终止原因名称
//
// 示例值：
func (builder *TerminationReasonInfoBuilder) Name(name *I18n) *TerminationReasonInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 子级终止原因
//
// 示例值：
func (builder *TerminationReasonInfoBuilder) Children(children []*TerminationReasonChildInfo) *TerminationReasonInfoBuilder {
	builder.children = children
	builder.childrenFlag = true
	return builder
}

func (builder *TerminationReasonInfoBuilder) Build() *TerminationReasonInfo {
	req := &TerminationReasonInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.childrenFlag {
		req.Children = builder.children
	}
	return req
}

type Test struct {
	TestId *string `json:"test_id,omitempty"` // 笔试 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	TestPaperId *string `json:"test_paper_id,omitempty"` // 试卷 ID

	TestPaperName *string `json:"test_paper_name,omitempty"` // 试卷名称

	TestPaperSourceId *string `json:"test_paper_source_id,omitempty"` // 试卷来源 ID

	TestPaperSourceName *I18n `json:"test_paper_source_name,omitempty"` // 试卷来源名称

	ReplyStatus *int `json:"reply_status,omitempty"` // 笔试答复状态

	TestStatus *int `json:"test_status,omitempty"` // 笔试状态

	TestSchedule *TestSchedule `json:"test_schedule,omitempty"` // 笔试时间

	TestCompleteTime *string `json:"test_complete_time,omitempty"` // 笔试作答完成时间

	ReportUrlList []string `json:"report_url_list,omitempty"` // 笔试报告链接列表

	ResultDetailList []*TestResultDetail `json:"result_detail_list,omitempty"` // 笔试详细成绩

	ResultUploadTime *string `json:"result_upload_time,omitempty"` // 笔试结果上传时间（手动录入的笔试成绩具有）

	Score *string `json:"score,omitempty"` // 阅卷得分

	ScoreSubmitTime *string `json:"score_submit_time,omitempty"` // 阅卷结果提交时间（若重复提交，则为最新提交时间）

	Reviewer *string `json:"reviewer,omitempty"` // 阅卷人，值类型由 user_id_type 查询参数决定

	ReviewCreatedAt *string `json:"review_created_at,omitempty"` // 阅卷安排时间

	CreatedAt *string `json:"created_at,omitempty"` // 笔试创建时间
}

type TestBuilder struct {
	testId     string // 笔试 ID
	testIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	testPaperId     string // 试卷 ID
	testPaperIdFlag bool

	testPaperName     string // 试卷名称
	testPaperNameFlag bool

	testPaperSourceId     string // 试卷来源 ID
	testPaperSourceIdFlag bool

	testPaperSourceName     *I18n // 试卷来源名称
	testPaperSourceNameFlag bool

	replyStatus     int // 笔试答复状态
	replyStatusFlag bool

	testStatus     int // 笔试状态
	testStatusFlag bool

	testSchedule     *TestSchedule // 笔试时间
	testScheduleFlag bool

	testCompleteTime     string // 笔试作答完成时间
	testCompleteTimeFlag bool

	reportUrlList     []string // 笔试报告链接列表
	reportUrlListFlag bool

	resultDetailList     []*TestResultDetail // 笔试详细成绩
	resultDetailListFlag bool

	resultUploadTime     string // 笔试结果上传时间（手动录入的笔试成绩具有）
	resultUploadTimeFlag bool

	score     string // 阅卷得分
	scoreFlag bool

	scoreSubmitTime     string // 阅卷结果提交时间（若重复提交，则为最新提交时间）
	scoreSubmitTimeFlag bool

	reviewer     string // 阅卷人，值类型由 user_id_type 查询参数决定
	reviewerFlag bool

	reviewCreatedAt     string // 阅卷安排时间
	reviewCreatedAtFlag bool

	createdAt     string // 笔试创建时间
	createdAtFlag bool
}

func NewTestBuilder() *TestBuilder {
	builder := &TestBuilder{}
	return builder
}

// 笔试 ID
//
// 示例值：6963784391454918956
func (builder *TestBuilder) TestId(testId string) *TestBuilder {
	builder.testId = testId
	builder.testIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：6920544531948800269
func (builder *TestBuilder) ApplicationId(applicationId string) *TestBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：6830437484509675522
func (builder *TestBuilder) TalentId(talentId string) *TestBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6920544531948800269
func (builder *TestBuilder) JobId(jobId string) *TestBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 试卷 ID
//
// 示例值：6963549885526346028
func (builder *TestBuilder) TestPaperId(testPaperId string) *TestBuilder {
	builder.testPaperId = testPaperId
	builder.testPaperIdFlag = true
	return builder
}

// 试卷名称
//
// 示例值：数据结构测验
func (builder *TestBuilder) TestPaperName(testPaperName string) *TestBuilder {
	builder.testPaperName = testPaperName
	builder.testPaperNameFlag = true
	return builder
}

// 试卷来源 ID
//
// 示例值：5
func (builder *TestBuilder) TestPaperSourceId(testPaperSourceId string) *TestBuilder {
	builder.testPaperSourceId = testPaperSourceId
	builder.testPaperSourceIdFlag = true
	return builder
}

// 试卷来源名称
//
// 示例值：
func (builder *TestBuilder) TestPaperSourceName(testPaperSourceName *I18n) *TestBuilder {
	builder.testPaperSourceName = testPaperSourceName
	builder.testPaperSourceNameFlag = true
	return builder
}

// 笔试答复状态
//
// 示例值：1
func (builder *TestBuilder) ReplyStatus(replyStatus int) *TestBuilder {
	builder.replyStatus = replyStatus
	builder.replyStatusFlag = true
	return builder
}

// 笔试状态
//
// 示例值：1
func (builder *TestBuilder) TestStatus(testStatus int) *TestBuilder {
	builder.testStatus = testStatus
	builder.testStatusFlag = true
	return builder
}

// 笔试时间
//
// 示例值：
func (builder *TestBuilder) TestSchedule(testSchedule *TestSchedule) *TestBuilder {
	builder.testSchedule = testSchedule
	builder.testScheduleFlag = true
	return builder
}

// 笔试作答完成时间
//
// 示例值：1608725989000
func (builder *TestBuilder) TestCompleteTime(testCompleteTime string) *TestBuilder {
	builder.testCompleteTime = testCompleteTime
	builder.testCompleteTimeFlag = true
	return builder
}

// 笔试报告链接列表
//
// 示例值：
func (builder *TestBuilder) ReportUrlList(reportUrlList []string) *TestBuilder {
	builder.reportUrlList = reportUrlList
	builder.reportUrlListFlag = true
	return builder
}

// 笔试详细成绩
//
// 示例值：
func (builder *TestBuilder) ResultDetailList(resultDetailList []*TestResultDetail) *TestBuilder {
	builder.resultDetailList = resultDetailList
	builder.resultDetailListFlag = true
	return builder
}

// 笔试结果上传时间（手动录入的笔试成绩具有）
//
// 示例值：1608725989000
func (builder *TestBuilder) ResultUploadTime(resultUploadTime string) *TestBuilder {
	builder.resultUploadTime = resultUploadTime
	builder.resultUploadTimeFlag = true
	return builder
}

// 阅卷得分
//
// 示例值：60
func (builder *TestBuilder) Score(score string) *TestBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 阅卷结果提交时间（若重复提交，则为最新提交时间）
//
// 示例值：1608725989000
func (builder *TestBuilder) ScoreSubmitTime(scoreSubmitTime string) *TestBuilder {
	builder.scoreSubmitTime = scoreSubmitTime
	builder.scoreSubmitTimeFlag = true
	return builder
}

// 阅卷人，值类型由 user_id_type 查询参数决定
//
// 示例值：ou_266ed047ed37f24554e5a0afdbb15556
func (builder *TestBuilder) Reviewer(reviewer string) *TestBuilder {
	builder.reviewer = reviewer
	builder.reviewerFlag = true
	return builder
}

// 阅卷安排时间
//
// 示例值：1608725989000
func (builder *TestBuilder) ReviewCreatedAt(reviewCreatedAt string) *TestBuilder {
	builder.reviewCreatedAt = reviewCreatedAt
	builder.reviewCreatedAtFlag = true
	return builder
}

// 笔试创建时间
//
// 示例值：1608725989000
func (builder *TestBuilder) CreatedAt(createdAt string) *TestBuilder {
	builder.createdAt = createdAt
	builder.createdAtFlag = true
	return builder
}

func (builder *TestBuilder) Build() *Test {
	req := &Test{}
	if builder.testIdFlag {
		req.TestId = &builder.testId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.testPaperIdFlag {
		req.TestPaperId = &builder.testPaperId

	}
	if builder.testPaperNameFlag {
		req.TestPaperName = &builder.testPaperName

	}
	if builder.testPaperSourceIdFlag {
		req.TestPaperSourceId = &builder.testPaperSourceId

	}
	if builder.testPaperSourceNameFlag {
		req.TestPaperSourceName = builder.testPaperSourceName
	}
	if builder.replyStatusFlag {
		req.ReplyStatus = &builder.replyStatus

	}
	if builder.testStatusFlag {
		req.TestStatus = &builder.testStatus

	}
	if builder.testScheduleFlag {
		req.TestSchedule = builder.testSchedule
	}
	if builder.testCompleteTimeFlag {
		req.TestCompleteTime = &builder.testCompleteTime

	}
	if builder.reportUrlListFlag {
		req.ReportUrlList = builder.reportUrlList
	}
	if builder.resultDetailListFlag {
		req.ResultDetailList = builder.resultDetailList
	}
	if builder.resultUploadTimeFlag {
		req.ResultUploadTime = &builder.resultUploadTime

	}
	if builder.scoreFlag {
		req.Score = &builder.score

	}
	if builder.scoreSubmitTimeFlag {
		req.ScoreSubmitTime = &builder.scoreSubmitTime

	}
	if builder.reviewerFlag {
		req.Reviewer = &builder.reviewer

	}
	if builder.reviewCreatedAtFlag {
		req.ReviewCreatedAt = &builder.reviewCreatedAt

	}
	if builder.createdAtFlag {
		req.CreatedAt = &builder.createdAt

	}
	return req
}

type TestResultDetail struct {
	Subject *string `json:"subject,omitempty"` // 笔试科目

	Result *string `json:"result,omitempty"` // 笔试科目结论
}

type TestResultDetailBuilder struct {
	subject     string // 笔试科目
	subjectFlag bool

	result     string // 笔试科目结论
	resultFlag bool
}

func NewTestResultDetailBuilder() *TestResultDetailBuilder {
	builder := &TestResultDetailBuilder{}
	return builder
}

// 笔试科目
//
// 示例值：定制化报告测验
func (builder *TestResultDetailBuilder) Subject(subject string) *TestResultDetailBuilder {
	builder.subject = subject
	builder.subjectFlag = true
	return builder
}

// 笔试科目结论
//
// 示例值：合格
func (builder *TestResultDetailBuilder) Result(result string) *TestResultDetailBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

func (builder *TestResultDetailBuilder) Build() *TestResultDetail {
	req := &TestResultDetail{}
	if builder.subjectFlag {
		req.Subject = &builder.subject

	}
	if builder.resultFlag {
		req.Result = &builder.result

	}
	return req
}

type TestSchedule struct {
	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type TestScheduleBuilder struct {
	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewTestScheduleBuilder() *TestScheduleBuilder {
	builder := &TestScheduleBuilder{}
	return builder
}

// 开始时间
//
// 示例值：1621390695000
func (builder *TestScheduleBuilder) StartTime(startTime string) *TestScheduleBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：1632839400000
func (builder *TestScheduleBuilder) EndTime(endTime string) *TestScheduleBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *TestScheduleBuilder) Build() *TestSchedule {
	req := &TestSchedule{}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type Todo struct {
	Evaluation *TodoCommon `json:"evaluation,omitempty"` // 简历评估待办信息，仅当 type=evaluation 时返回

	Offer *TodoCommon `json:"offer,omitempty"` // Offer 待办信息，仅当 type=offer 时返回

	Exam *TodoCommon `json:"exam,omitempty"` // 笔试待办信息，仅当 type=exam 时返回

	Interview *TodoCommon `json:"interview,omitempty"` // 面试待办信息，仅当 type=interview 时返回
}

type TodoBuilder struct {
	evaluation     *TodoCommon // 简历评估待办信息，仅当 type=evaluation 时返回
	evaluationFlag bool

	offer     *TodoCommon // Offer 待办信息，仅当 type=offer 时返回
	offerFlag bool

	exam     *TodoCommon // 笔试待办信息，仅当 type=exam 时返回
	examFlag bool

	interview     *TodoCommon // 面试待办信息，仅当 type=interview 时返回
	interviewFlag bool
}

func NewTodoBuilder() *TodoBuilder {
	builder := &TodoBuilder{}
	return builder
}

// 简历评估待办信息，仅当 type=evaluation 时返回
//
// 示例值：
func (builder *TodoBuilder) Evaluation(evaluation *TodoCommon) *TodoBuilder {
	builder.evaluation = evaluation
	builder.evaluationFlag = true
	return builder
}

// Offer 待办信息，仅当 type=offer 时返回
//
// 示例值：
func (builder *TodoBuilder) Offer(offer *TodoCommon) *TodoBuilder {
	builder.offer = offer
	builder.offerFlag = true
	return builder
}

// 笔试待办信息，仅当 type=exam 时返回
//
// 示例值：
func (builder *TodoBuilder) Exam(exam *TodoCommon) *TodoBuilder {
	builder.exam = exam
	builder.examFlag = true
	return builder
}

// 面试待办信息，仅当 type=interview 时返回
//
// 示例值：
func (builder *TodoBuilder) Interview(interview *TodoCommon) *TodoBuilder {
	builder.interview = interview
	builder.interviewFlag = true
	return builder
}

func (builder *TodoBuilder) Build() *Todo {
	req := &Todo{}
	if builder.evaluationFlag {
		req.Evaluation = builder.evaluation
	}
	if builder.offerFlag {
		req.Offer = builder.offer
	}
	if builder.examFlag {
		req.Exam = builder.exam
	}
	if builder.interviewFlag {
		req.Interview = builder.interview
	}
	return req
}

type TodoCommon struct {
	TalentId *string `json:"talent_id,omitempty"` // 候选人 ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	Id *string `json:"id,omitempty"` // ID
}

type TodoCommonBuilder struct {
	talentId     string // 候选人 ID
	talentIdFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	id     string // ID
	idFlag bool
}

func NewTodoCommonBuilder() *TodoCommonBuilder {
	builder := &TodoCommonBuilder{}
	return builder
}

// 候选人 ID
//
// 示例值：6891524011667228941
func (builder *TodoCommonBuilder) TalentId(talentId string) *TodoCommonBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6891113155221522701
func (builder *TodoCommonBuilder) JobId(jobId string) *TodoCommonBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 投递 ID
//
// 示例值：6945436033023625516
func (builder *TodoCommonBuilder) ApplicationId(applicationId string) *TodoCommonBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// ID
//
// 示例值：6914542162822695181
func (builder *TodoCommonBuilder) Id(id string) *TodoCommonBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

func (builder *TodoCommonBuilder) Build() *TodoCommon {
	req := &TodoCommon{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	return req
}

type TradeDetail struct {
	AccountId *string `json:"account_id,omitempty"` // 账户ID

	TotalRechargeRewardInfo *BonusAmount `json:"total_recharge_reward_info,omitempty"` // 时间段内该账户在积分商城的实际充值金额
}

type TradeDetailBuilder struct {
	accountId     string // 账户ID
	accountIdFlag bool

	totalRechargeRewardInfo     *BonusAmount // 时间段内该账户在积分商城的实际充值金额
	totalRechargeRewardInfoFlag bool
}

func NewTradeDetailBuilder() *TradeDetailBuilder {
	builder := &TradeDetailBuilder{}
	return builder
}

// 账户ID
//
// 示例值：6930815272790114324
func (builder *TradeDetailBuilder) AccountId(accountId string) *TradeDetailBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 时间段内该账户在积分商城的实际充值金额
//
// 示例值：
func (builder *TradeDetailBuilder) TotalRechargeRewardInfo(totalRechargeRewardInfo *BonusAmount) *TradeDetailBuilder {
	builder.totalRechargeRewardInfo = totalRechargeRewardInfo
	builder.totalRechargeRewardInfoFlag = true
	return builder
}

func (builder *TradeDetailBuilder) Build() *TradeDetail {
	req := &TradeDetail{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId

	}
	if builder.totalRechargeRewardInfoFlag {
		req.TotalRechargeRewardInfo = builder.totalRechargeRewardInfo
	}
	return req
}

type TripartiteAgreementInfo struct {
	Id *string `json:"id,omitempty"` // 三方协议 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递ID

	State *int `json:"state,omitempty"` // 三方协议状态

	CreateTime *string `json:"create_time,omitempty"` // 三方协议创建时间，毫秒时间戳

	ModifyTime *string `json:"modify_time,omitempty"` // 三方协议修改时间，毫秒时间戳
}

type TripartiteAgreementInfoBuilder struct {
	id     string // 三方协议 ID
	idFlag bool

	applicationId     string // 投递ID
	applicationIdFlag bool

	state     int // 三方协议状态
	stateFlag bool

	createTime     string // 三方协议创建时间，毫秒时间戳
	createTimeFlag bool

	modifyTime     string // 三方协议修改时间，毫秒时间戳
	modifyTimeFlag bool
}

func NewTripartiteAgreementInfoBuilder() *TripartiteAgreementInfoBuilder {
	builder := &TripartiteAgreementInfoBuilder{}
	return builder
}

// 三方协议 ID
//
// 示例值：6930815272790114324
func (builder *TripartiteAgreementInfoBuilder) Id(id string) *TripartiteAgreementInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 投递ID
//
// 示例值：6930815272790114325
func (builder *TripartiteAgreementInfoBuilder) ApplicationId(applicationId string) *TripartiteAgreementInfoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 三方协议状态
//
// 示例值：1
func (builder *TripartiteAgreementInfoBuilder) State(state int) *TripartiteAgreementInfoBuilder {
	builder.state = state
	builder.stateFlag = true
	return builder
}

// 三方协议创建时间，毫秒时间戳
//
// 示例值：1698292282660
func (builder *TripartiteAgreementInfoBuilder) CreateTime(createTime string) *TripartiteAgreementInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 三方协议修改时间，毫秒时间戳
//
// 示例值：1698292282661
func (builder *TripartiteAgreementInfoBuilder) ModifyTime(modifyTime string) *TripartiteAgreementInfoBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

func (builder *TripartiteAgreementInfoBuilder) Build() *TripartiteAgreementInfo {
	req := &TripartiteAgreementInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.stateFlag {
		req.State = &builder.state

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	return req
}

type UserBusinessManagementScope struct {
	Entity *EntityInfo `json:"entity,omitempty"` // 实体

	ScopeRule *PermissionScopeRule `json:"scope_rule,omitempty"` // 管理范围
}

type UserBusinessManagementScopeBuilder struct {
	entity     *EntityInfo // 实体
	entityFlag bool

	scopeRule     *PermissionScopeRule // 管理范围
	scopeRuleFlag bool
}

func NewUserBusinessManagementScopeBuilder() *UserBusinessManagementScopeBuilder {
	builder := &UserBusinessManagementScopeBuilder{}
	return builder
}

// 实体
//
// 示例值：
func (builder *UserBusinessManagementScopeBuilder) Entity(entity *EntityInfo) *UserBusinessManagementScopeBuilder {
	builder.entity = entity
	builder.entityFlag = true
	return builder
}

// 管理范围
//
// 示例值：
func (builder *UserBusinessManagementScopeBuilder) ScopeRule(scopeRule *PermissionScopeRule) *UserBusinessManagementScopeBuilder {
	builder.scopeRule = scopeRule
	builder.scopeRuleFlag = true
	return builder
}

func (builder *UserBusinessManagementScopeBuilder) Build() *UserBusinessManagementScope {
	req := &UserBusinessManagementScope{}
	if builder.entityFlag {
		req.Entity = builder.entity
	}
	if builder.scopeRuleFlag {
		req.ScopeRule = builder.scopeRule
	}
	return req
}

type UserContactInfo struct {
	Name *string `json:"name,omitempty"` // 姓名

	Mobile *string `json:"mobile,omitempty"` // 手机号

	Email *string `json:"email,omitempty"` // 邮箱

	FirstName *string `json:"first_name,omitempty"` // 名字

	LastName *string `json:"last_name,omitempty"` // 姓氏
}

type UserContactInfoBuilder struct {
	name     string // 姓名
	nameFlag bool

	mobile     string // 手机号
	mobileFlag bool

	email     string // 邮箱
	emailFlag bool

	firstName     string // 名字
	firstNameFlag bool

	lastName     string // 姓氏
	lastNameFlag bool
}

func NewUserContactInfoBuilder() *UserContactInfoBuilder {
	builder := &UserContactInfoBuilder{}
	return builder
}

// 姓名
//
// 示例值：王二
func (builder *UserContactInfoBuilder) Name(name string) *UserContactInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 手机号
//
// 示例值：176xxxx1234
func (builder *UserContactInfoBuilder) Mobile(mobile string) *UserContactInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 邮箱
//
// 示例值：xxx@abc.vom
func (builder *UserContactInfoBuilder) Email(email string) *UserContactInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 名字
//
// 示例值：Ming
func (builder *UserContactInfoBuilder) FirstName(firstName string) *UserContactInfoBuilder {
	builder.firstName = firstName
	builder.firstNameFlag = true
	return builder
}

// 姓氏
//
// 示例值：Lee
func (builder *UserContactInfoBuilder) LastName(lastName string) *UserContactInfoBuilder {
	builder.lastName = lastName
	builder.lastNameFlag = true
	return builder
}

func (builder *UserContactInfoBuilder) Build() *UserContactInfo {
	req := &UserContactInfo{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.firstNameFlag {
		req.FirstName = &builder.firstName

	}
	if builder.lastNameFlag {
		req.LastName = &builder.lastName

	}
	return req
}

type UserId struct {
	UserId *string `json:"user_id,omitempty"` //

	OpenId *string `json:"open_id,omitempty"` //

	UnionId *string `json:"union_id,omitempty"` //
}

type UserIdBuilder struct {
	userId     string //
	userIdFlag bool

	openId     string //
	openIdFlag bool

	unionId     string //
	unionIdFlag bool
}

func NewUserIdBuilder() *UserIdBuilder {
	builder := &UserIdBuilder{}
	return builder
}

//
//
// 示例值：
func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

//
//
// 示例值：
func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
	builder.openId = openId
	builder.openIdFlag = true
	return builder
}

//
//
// 示例值：
func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
	builder.unionId = unionId
	builder.unionIdFlag = true
	return builder
}

func (builder *UserIdBuilder) Build() *UserId {
	req := &UserId{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.openIdFlag {
		req.OpenId = &builder.openId

	}
	if builder.unionIdFlag {
		req.UnionId = &builder.unionId

	}
	return req
}

type UserRole struct {
	UserId *string `json:"user_id,omitempty"` // 用户 ID

	RoleId *string `json:"role_id,omitempty"` // 角色 ID

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间

	RoleName *I18n `json:"role_name,omitempty"` // 角色名称

	RoleDescription *I18n `json:"role_description,omitempty"` // 角色描述

	BusinessManagementScopes []*UserBusinessManagementScope `json:"business_management_scopes,omitempty"` // 业务管理范围
}

type UserRoleBuilder struct {
	userId     string // 用户 ID
	userIdFlag bool

	roleId     string // 角色 ID
	roleIdFlag bool

	modifyTime     string // 修改时间
	modifyTimeFlag bool

	roleName     *I18n // 角色名称
	roleNameFlag bool

	roleDescription     *I18n // 角色描述
	roleDescriptionFlag bool

	businessManagementScopes     []*UserBusinessManagementScope // 业务管理范围
	businessManagementScopesFlag bool
}

func NewUserRoleBuilder() *UserRoleBuilder {
	builder := &UserRoleBuilder{}
	return builder
}

// 用户 ID
//
// 示例值：ou_49772cf5d2d19ebb5059de777a4dd487
func (builder *UserRoleBuilder) UserId(userId string) *UserRoleBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 角色 ID
//
// 示例值：101
func (builder *UserRoleBuilder) RoleId(roleId string) *UserRoleBuilder {
	builder.roleId = roleId
	builder.roleIdFlag = true
	return builder
}

// 修改时间
//
// 示例值：1618500278663
func (builder *UserRoleBuilder) ModifyTime(modifyTime string) *UserRoleBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 角色名称
//
// 示例值：
func (builder *UserRoleBuilder) RoleName(roleName *I18n) *UserRoleBuilder {
	builder.roleName = roleName
	builder.roleNameFlag = true
	return builder
}

// 角色描述
//
// 示例值：
func (builder *UserRoleBuilder) RoleDescription(roleDescription *I18n) *UserRoleBuilder {
	builder.roleDescription = roleDescription
	builder.roleDescriptionFlag = true
	return builder
}

// 业务管理范围
//
// 示例值：
func (builder *UserRoleBuilder) BusinessManagementScopes(businessManagementScopes []*UserBusinessManagementScope) *UserRoleBuilder {
	builder.businessManagementScopes = businessManagementScopes
	builder.businessManagementScopesFlag = true
	return builder
}

func (builder *UserRoleBuilder) Build() *UserRole {
	req := &UserRole{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.roleIdFlag {
		req.RoleId = &builder.roleId

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.roleNameFlag {
		req.RoleName = builder.roleName
	}
	if builder.roleDescriptionFlag {
		req.RoleDescription = builder.roleDescription
	}
	if builder.businessManagementScopesFlag {
		req.BusinessManagementScopes = builder.businessManagementScopes
	}
	return req
}

type Website struct {
	Id *string `json:"id,omitempty"` // ID

	Name *I18n `json:"name,omitempty"` // 名称

	ProcessTypeList []int `json:"process_type_list,omitempty"` // 流程类型，1-社招，2-校招

	JobChannelId *string `json:"job_channel_id,omitempty"` // 职位渠道ID
}

type WebsiteBuilder struct {
	id     string // ID
	idFlag bool

	name     *I18n // 名称
	nameFlag bool

	processTypeList     []int // 流程类型，1-社招，2-校招
	processTypeListFlag bool

	jobChannelId     string // 职位渠道ID
	jobChannelIdFlag bool
}

func NewWebsiteBuilder() *WebsiteBuilder {
	builder := &WebsiteBuilder{}
	return builder
}

// ID
//
// 示例值：1213213123123
func (builder *WebsiteBuilder) Id(id string) *WebsiteBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 名称
//
// 示例值：
func (builder *WebsiteBuilder) Name(name *I18n) *WebsiteBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 流程类型，1-社招，2-校招
//
// 示例值：
func (builder *WebsiteBuilder) ProcessTypeList(processTypeList []int) *WebsiteBuilder {
	builder.processTypeList = processTypeList
	builder.processTypeListFlag = true
	return builder
}

// 职位渠道ID
//
// 示例值：1213213123123
func (builder *WebsiteBuilder) JobChannelId(jobChannelId string) *WebsiteBuilder {
	builder.jobChannelId = jobChannelId
	builder.jobChannelIdFlag = true
	return builder
}

func (builder *WebsiteBuilder) Build() *Website {
	req := &Website{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.processTypeListFlag {
		req.ProcessTypeList = builder.processTypeList
	}
	if builder.jobChannelIdFlag {
		req.JobChannelId = &builder.jobChannelId

	}
	return req
}

type WebsiteChannelInfo struct {
	Id *string `json:"id,omitempty"` // 推广渠道 ID

	Name *string `json:"name,omitempty"` // 推广渠道名称

	Link *string `json:"link,omitempty"` // 推广渠道链接

	Code *string `json:"code,omitempty"` // 推广渠道推广码
}

type WebsiteChannelInfoBuilder struct {
	id     string // 推广渠道 ID
	idFlag bool

	name     string // 推广渠道名称
	nameFlag bool

	link     string // 推广渠道链接
	linkFlag bool

	code     string // 推广渠道推广码
	codeFlag bool
}

func NewWebsiteChannelInfoBuilder() *WebsiteChannelInfoBuilder {
	builder := &WebsiteChannelInfoBuilder{}
	return builder
}

// 推广渠道 ID
//
// 示例值：7085989097067563300
func (builder *WebsiteChannelInfoBuilder) Id(id string) *WebsiteChannelInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 推广渠道名称
//
// 示例值：官网
func (builder *WebsiteChannelInfoBuilder) Name(name string) *WebsiteChannelInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 推广渠道链接
//
// 示例值：http://recrui-demo.jobs.xxx.cn/485083/?spread=A1KM6A5
func (builder *WebsiteChannelInfoBuilder) Link(link string) *WebsiteChannelInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 推广渠道推广码
//
// 示例值：A1KM6A5
func (builder *WebsiteChannelInfoBuilder) Code(code string) *WebsiteChannelInfoBuilder {
	builder.code = code
	builder.codeFlag = true
	return builder
}

func (builder *WebsiteChannelInfoBuilder) Build() *WebsiteChannelInfo {
	req := &WebsiteChannelInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.codeFlag {
		req.Code = &builder.code

	}
	return req
}

type WebsiteDelivery struct {
	JobPostId *string `json:"job_post_id,omitempty"` // 职位广告 ID

	Resume *WebsiteDeliveryResume `json:"resume,omitempty"` // 人才信息

	UserId *string `json:"user_id,omitempty"` // 官网用户 ID

	ApplicationPreferredCityCodeList []string `json:"application_preferred_city_code_list,omitempty"` // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取

	ChannelId *string `json:"channel_id,omitempty"` // 官网推广渠道 ID
}

type WebsiteDeliveryBuilder struct {
	jobPostId     string // 职位广告 ID
	jobPostIdFlag bool

	resume     *WebsiteDeliveryResume // 人才信息
	resumeFlag bool

	userId     string // 官网用户 ID
	userIdFlag bool

	applicationPreferredCityCodeList     []string // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
	applicationPreferredCityCodeListFlag bool

	channelId     string // 官网推广渠道 ID
	channelIdFlag bool
}

func NewWebsiteDeliveryBuilder() *WebsiteDeliveryBuilder {
	builder := &WebsiteDeliveryBuilder{}
	return builder
}

// 职位广告 ID
//
// 示例值：6960663240925956636
func (builder *WebsiteDeliveryBuilder) JobPostId(jobPostId string) *WebsiteDeliveryBuilder {
	builder.jobPostId = jobPostId
	builder.jobPostIdFlag = true
	return builder
}

// 人才信息
//
// 示例值：
func (builder *WebsiteDeliveryBuilder) Resume(resume *WebsiteDeliveryResume) *WebsiteDeliveryBuilder {
	builder.resume = resume
	builder.resumeFlag = true
	return builder
}

// 官网用户 ID
//
// 示例值：6960663240925956634
func (builder *WebsiteDeliveryBuilder) UserId(userId string) *WebsiteDeliveryBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
//
// 示例值：CT_11
func (builder *WebsiteDeliveryBuilder) ApplicationPreferredCityCodeList(applicationPreferredCityCodeList []string) *WebsiteDeliveryBuilder {
	builder.applicationPreferredCityCodeList = applicationPreferredCityCodeList
	builder.applicationPreferredCityCodeListFlag = true
	return builder
}

// 官网推广渠道 ID
//
// 示例值：6891560630172518670
func (builder *WebsiteDeliveryBuilder) ChannelId(channelId string) *WebsiteDeliveryBuilder {
	builder.channelId = channelId
	builder.channelIdFlag = true
	return builder
}

func (builder *WebsiteDeliveryBuilder) Build() *WebsiteDelivery {
	req := &WebsiteDelivery{}
	if builder.jobPostIdFlag {
		req.JobPostId = &builder.jobPostId

	}
	if builder.resumeFlag {
		req.Resume = builder.resume
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.applicationPreferredCityCodeListFlag {
		req.ApplicationPreferredCityCodeList = builder.applicationPreferredCityCodeList
	}
	if builder.channelIdFlag {
		req.ChannelId = &builder.channelId

	}
	return req
}

type WebsiteDeliveryAttachment struct {
	JobPostId *string `json:"job_post_id,omitempty"` // 职位广告 ID

	UserId *string `json:"user_id,omitempty"` // 官网用户 ID

	ResumeFileId *string `json:"resume_file_id,omitempty"` // 简历文件 ID，使用「创建附件」生成

	ChannelId *string `json:"channel_id,omitempty"` // 官网推广渠道 ID

	ApplicationPreferredCityCodeList []string `json:"application_preferred_city_code_list,omitempty"` // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 电话国际区号，可从「获取地址码」查询（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）

	Mobile *string `json:"mobile,omitempty"` // 电话号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）

	Email *string `json:"email,omitempty"` // 邮箱（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）

	Identification *WebsiteDeliveryAttachmentIndentification `json:"identification,omitempty"` // 身份证件号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
}

type WebsiteDeliveryAttachmentBuilder struct {
	jobPostId     string // 职位广告 ID
	jobPostIdFlag bool

	userId     string // 官网用户 ID
	userIdFlag bool

	resumeFileId     string // 简历文件 ID，使用「创建附件」生成
	resumeFileIdFlag bool

	channelId     string // 官网推广渠道 ID
	channelIdFlag bool

	applicationPreferredCityCodeList     []string // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
	applicationPreferredCityCodeListFlag bool

	mobileCountryCode     string // 电话国际区号，可从「获取地址码」查询（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
	mobileCountryCodeFlag bool

	mobile     string // 电话号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
	mobileFlag bool

	email     string // 邮箱（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
	emailFlag bool

	identification     *WebsiteDeliveryAttachmentIndentification // 身份证件号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
	identificationFlag bool
}

func NewWebsiteDeliveryAttachmentBuilder() *WebsiteDeliveryAttachmentBuilder {
	builder := &WebsiteDeliveryAttachmentBuilder{}
	return builder
}

// 职位广告 ID
//
// 示例值：6960663240925956636
func (builder *WebsiteDeliveryAttachmentBuilder) JobPostId(jobPostId string) *WebsiteDeliveryAttachmentBuilder {
	builder.jobPostId = jobPostId
	builder.jobPostIdFlag = true
	return builder
}

// 官网用户 ID
//
// 示例值：6960663240925956634
func (builder *WebsiteDeliveryAttachmentBuilder) UserId(userId string) *WebsiteDeliveryAttachmentBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 简历文件 ID，使用「创建附件」生成
//
// 示例值：7095614894070434092
func (builder *WebsiteDeliveryAttachmentBuilder) ResumeFileId(resumeFileId string) *WebsiteDeliveryAttachmentBuilder {
	builder.resumeFileId = resumeFileId
	builder.resumeFileIdFlag = true
	return builder
}

// 官网推广渠道 ID
//
// 示例值：6891560630172518670
func (builder *WebsiteDeliveryAttachmentBuilder) ChannelId(channelId string) *WebsiteDeliveryAttachmentBuilder {
	builder.channelId = channelId
	builder.channelIdFlag = true
	return builder
}

// 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
//
// 示例值：CT_1
func (builder *WebsiteDeliveryAttachmentBuilder) ApplicationPreferredCityCodeList(applicationPreferredCityCodeList []string) *WebsiteDeliveryAttachmentBuilder {
	builder.applicationPreferredCityCodeList = applicationPreferredCityCodeList
	builder.applicationPreferredCityCodeListFlag = true
	return builder
}

// 电话国际区号，可从「获取地址码」查询（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
//
// 示例值：CN_1
func (builder *WebsiteDeliveryAttachmentBuilder) MobileCountryCode(mobileCountryCode string) *WebsiteDeliveryAttachmentBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 电话号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
//
// 示例值：182900291190
func (builder *WebsiteDeliveryAttachmentBuilder) Mobile(mobile string) *WebsiteDeliveryAttachmentBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 邮箱（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
//
// 示例值：foo@bytedance.com
func (builder *WebsiteDeliveryAttachmentBuilder) Email(email string) *WebsiteDeliveryAttachmentBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 身份证件号码（当该参数值与简历附件中的相关值不一致时，将以该参数值为准）
//
// 示例值：
func (builder *WebsiteDeliveryAttachmentBuilder) Identification(identification *WebsiteDeliveryAttachmentIndentification) *WebsiteDeliveryAttachmentBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

func (builder *WebsiteDeliveryAttachmentBuilder) Build() *WebsiteDeliveryAttachment {
	req := &WebsiteDeliveryAttachment{}
	if builder.jobPostIdFlag {
		req.JobPostId = &builder.jobPostId

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.resumeFileIdFlag {
		req.ResumeFileId = &builder.resumeFileId

	}
	if builder.channelIdFlag {
		req.ChannelId = &builder.channelId

	}
	if builder.applicationPreferredCityCodeListFlag {
		req.ApplicationPreferredCityCodeList = builder.applicationPreferredCityCodeList
	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	return req
}

type WebsiteDeliveryAttachmentIndentification struct {
	IdentificationType *int `json:"identification_type,omitempty"` // 身份证件类型

	IdentificationNumber *string `json:"identification_number,omitempty"` // 身份证件号
}

type WebsiteDeliveryAttachmentIndentificationBuilder struct {
	identificationType     int // 身份证件类型
	identificationTypeFlag bool

	identificationNumber     string // 身份证件号
	identificationNumberFlag bool
}

func NewWebsiteDeliveryAttachmentIndentificationBuilder() *WebsiteDeliveryAttachmentIndentificationBuilder {
	builder := &WebsiteDeliveryAttachmentIndentificationBuilder{}
	return builder
}

// 身份证件类型
//
// 示例值：1
func (builder *WebsiteDeliveryAttachmentIndentificationBuilder) IdentificationType(identificationType int) *WebsiteDeliveryAttachmentIndentificationBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 身份证件号
//
// 示例值：11002030131312312
func (builder *WebsiteDeliveryAttachmentIndentificationBuilder) IdentificationNumber(identificationNumber string) *WebsiteDeliveryAttachmentIndentificationBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

func (builder *WebsiteDeliveryAttachmentIndentificationBuilder) Build() *WebsiteDeliveryAttachmentIndentification {
	req := &WebsiteDeliveryAttachmentIndentification{}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	return req
}

type WebsiteDeliveryAward struct {
	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Desc *string `json:"desc,omitempty"` // 描述

	Title *string `json:"title,omitempty"` // 奖项名称

	AwardTime *int64 `json:"award_time,omitempty"` // 获奖时间
}

type WebsiteDeliveryAwardBuilder struct {
	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	desc     string // 描述
	descFlag bool

	title     string // 奖项名称
	titleFlag bool

	awardTime     int64 // 获奖时间
	awardTimeFlag bool
}

func NewWebsiteDeliveryAwardBuilder() *WebsiteDeliveryAwardBuilder {
	builder := &WebsiteDeliveryAwardBuilder{}
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryAwardBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryAwardBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 描述
//
// 示例值：ACM国际大学生程序设计竞赛
func (builder *WebsiteDeliveryAwardBuilder) Desc(desc string) *WebsiteDeliveryAwardBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 奖项名称
//
// 示例值：ACM 亚洲区金牌
func (builder *WebsiteDeliveryAwardBuilder) Title(title string) *WebsiteDeliveryAwardBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 获奖时间
//
// 示例值：1609430400
func (builder *WebsiteDeliveryAwardBuilder) AwardTime(awardTime int64) *WebsiteDeliveryAwardBuilder {
	builder.awardTime = awardTime
	builder.awardTimeFlag = true
	return builder
}

func (builder *WebsiteDeliveryAwardBuilder) Build() *WebsiteDeliveryAward {
	req := &WebsiteDeliveryAward{}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.awardTimeFlag {
		req.AwardTime = &builder.awardTime

	}
	return req
}

type WebsiteDeliveryBasicInfo struct {
	NationalityId *string `json:"nationality_id,omitempty"` // 国籍，可从「获取地址码」查询

	StartWorkTime *int64 `json:"start_work_time,omitempty"` // 起始工作时间

	CurrentHomeAddress *string `json:"current_home_address,omitempty"` // 家庭住址

	HometownCityCode *string `json:"hometown_city_code,omitempty"` // 家乡，可从「获取地址码」查询

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 电话国际区号，可从「获取地址码」查询

	Identification *WebsiteDeliveryIdentification `json:"identification,omitempty"` // 身份证件

	MaritalStatus *int `json:"marital_status,omitempty"` // 婚姻状况

	Mobile *string `json:"mobile,omitempty"` // 电话

	CurrentCityCode *string `json:"current_city_code,omitempty"` // 所在城市，可从「获取地址码」查询

	ExperienceYears *int `json:"experience_years,omitempty"` // 工作年限

	Gender *int `json:"gender,omitempty"` // 性别

	Birthday *int64 `json:"birthday,omitempty"` // 出生日期

	Name *string `json:"name,omitempty"` // 姓名

	PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向城市，可从「获取地址码」查询

	ResumeSourceId *string `json:"resume_source_id,omitempty"` // 简历来源，可从「获取简历来源列表」查询

	Age *int `json:"age,omitempty"` // 年龄

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Email *string `json:"email,omitempty"` // 邮箱
}

type WebsiteDeliveryBasicInfoBuilder struct {
	nationalityId     string // 国籍，可从「获取地址码」查询
	nationalityIdFlag bool

	startWorkTime     int64 // 起始工作时间
	startWorkTimeFlag bool

	currentHomeAddress     string // 家庭住址
	currentHomeAddressFlag bool

	hometownCityCode     string // 家乡，可从「获取地址码」查询
	hometownCityCodeFlag bool

	mobileCountryCode     string // 电话国际区号，可从「获取地址码」查询
	mobileCountryCodeFlag bool

	identification     *WebsiteDeliveryIdentification // 身份证件
	identificationFlag bool

	maritalStatus     int // 婚姻状况
	maritalStatusFlag bool

	mobile     string // 电话
	mobileFlag bool

	currentCityCode     string // 所在城市，可从「获取地址码」查询
	currentCityCodeFlag bool

	experienceYears     int // 工作年限
	experienceYearsFlag bool

	gender     int // 性别
	genderFlag bool

	birthday     int64 // 出生日期
	birthdayFlag bool

	name     string // 姓名
	nameFlag bool

	preferredCityCodeList     []string // 意向城市，可从「获取地址码」查询
	preferredCityCodeListFlag bool

	resumeSourceId     string // 简历来源，可从「获取简历来源列表」查询
	resumeSourceIdFlag bool

	age     int // 年龄
	ageFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	email     string // 邮箱
	emailFlag bool
}

func NewWebsiteDeliveryBasicInfoBuilder() *WebsiteDeliveryBasicInfoBuilder {
	builder := &WebsiteDeliveryBasicInfoBuilder{}
	return builder
}

// 国籍，可从「获取地址码」查询
//
// 示例值：CN_112
func (builder *WebsiteDeliveryBasicInfoBuilder) NationalityId(nationalityId string) *WebsiteDeliveryBasicInfoBuilder {
	builder.nationalityId = nationalityId
	builder.nationalityIdFlag = true
	return builder
}

// 起始工作时间
//
// 示例值：1625648596
func (builder *WebsiteDeliveryBasicInfoBuilder) StartWorkTime(startWorkTime int64) *WebsiteDeliveryBasicInfoBuilder {
	builder.startWorkTime = startWorkTime
	builder.startWorkTimeFlag = true
	return builder
}

// 家庭住址
//
// 示例值：成都
func (builder *WebsiteDeliveryBasicInfoBuilder) CurrentHomeAddress(currentHomeAddress string) *WebsiteDeliveryBasicInfoBuilder {
	builder.currentHomeAddress = currentHomeAddress
	builder.currentHomeAddressFlag = true
	return builder
}

// 家乡，可从「获取地址码」查询
//
// 示例值：CT_159
func (builder *WebsiteDeliveryBasicInfoBuilder) HometownCityCode(hometownCityCode string) *WebsiteDeliveryBasicInfoBuilder {
	builder.hometownCityCode = hometownCityCode
	builder.hometownCityCodeFlag = true
	return builder
}

// 电话国际区号，可从「获取地址码」查询
//
// 示例值：CN_1
func (builder *WebsiteDeliveryBasicInfoBuilder) MobileCountryCode(mobileCountryCode string) *WebsiteDeliveryBasicInfoBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

// 身份证件
//
// 示例值：
func (builder *WebsiteDeliveryBasicInfoBuilder) Identification(identification *WebsiteDeliveryIdentification) *WebsiteDeliveryBasicInfoBuilder {
	builder.identification = identification
	builder.identificationFlag = true
	return builder
}

// 婚姻状况
//
// 示例值：1
func (builder *WebsiteDeliveryBasicInfoBuilder) MaritalStatus(maritalStatus int) *WebsiteDeliveryBasicInfoBuilder {
	builder.maritalStatus = maritalStatus
	builder.maritalStatusFlag = true
	return builder
}

// 电话
//
// 示例值：182900291190
func (builder *WebsiteDeliveryBasicInfoBuilder) Mobile(mobile string) *WebsiteDeliveryBasicInfoBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 所在城市，可从「获取地址码」查询
//
// 示例值：CT_11
func (builder *WebsiteDeliveryBasicInfoBuilder) CurrentCityCode(currentCityCode string) *WebsiteDeliveryBasicInfoBuilder {
	builder.currentCityCode = currentCityCode
	builder.currentCityCodeFlag = true
	return builder
}

// 工作年限
//
// 示例值：3
func (builder *WebsiteDeliveryBasicInfoBuilder) ExperienceYears(experienceYears int) *WebsiteDeliveryBasicInfoBuilder {
	builder.experienceYears = experienceYears
	builder.experienceYearsFlag = true
	return builder
}

// 性别
//
// 示例值：1
func (builder *WebsiteDeliveryBasicInfoBuilder) Gender(gender int) *WebsiteDeliveryBasicInfoBuilder {
	builder.gender = gender
	builder.genderFlag = true
	return builder
}

// 出生日期
//
// 示例值：1609430400
func (builder *WebsiteDeliveryBasicInfoBuilder) Birthday(birthday int64) *WebsiteDeliveryBasicInfoBuilder {
	builder.birthday = birthday
	builder.birthdayFlag = true
	return builder
}

// 姓名
//
// 示例值：张三
func (builder *WebsiteDeliveryBasicInfoBuilder) Name(name string) *WebsiteDeliveryBasicInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 意向城市，可从「获取地址码」查询
//
// 示例值：意向城市
func (builder *WebsiteDeliveryBasicInfoBuilder) PreferredCityCodeList(preferredCityCodeList []string) *WebsiteDeliveryBasicInfoBuilder {
	builder.preferredCityCodeList = preferredCityCodeList
	builder.preferredCityCodeListFlag = true
	return builder
}

// 简历来源，可从「获取简历来源列表」查询
//
// 示例值：6982104077248219436
func (builder *WebsiteDeliveryBasicInfoBuilder) ResumeSourceId(resumeSourceId string) *WebsiteDeliveryBasicInfoBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 年龄
//
// 示例值：25
func (builder *WebsiteDeliveryBasicInfoBuilder) Age(age int) *WebsiteDeliveryBasicInfoBuilder {
	builder.age = age
	builder.ageFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryBasicInfoBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryBasicInfoBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 邮箱
//
// 示例值：foo@bytedance.com
func (builder *WebsiteDeliveryBasicInfoBuilder) Email(email string) *WebsiteDeliveryBasicInfoBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *WebsiteDeliveryBasicInfoBuilder) Build() *WebsiteDeliveryBasicInfo {
	req := &WebsiteDeliveryBasicInfo{}
	if builder.nationalityIdFlag {
		req.NationalityId = &builder.nationalityId

	}
	if builder.startWorkTimeFlag {
		req.StartWorkTime = &builder.startWorkTime

	}
	if builder.currentHomeAddressFlag {
		req.CurrentHomeAddress = &builder.currentHomeAddress

	}
	if builder.hometownCityCodeFlag {
		req.HometownCityCode = &builder.hometownCityCode

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	if builder.identificationFlag {
		req.Identification = builder.identification
	}
	if builder.maritalStatusFlag {
		req.MaritalStatus = &builder.maritalStatus

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.currentCityCodeFlag {
		req.CurrentCityCode = &builder.currentCityCode

	}
	if builder.experienceYearsFlag {
		req.ExperienceYears = &builder.experienceYears

	}
	if builder.genderFlag {
		req.Gender = &builder.gender

	}
	if builder.birthdayFlag {
		req.Birthday = &builder.birthday

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.preferredCityCodeListFlag {
		req.PreferredCityCodeList = builder.preferredCityCodeList
	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId

	}
	if builder.ageFlag {
		req.Age = &builder.age

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	return req
}

type WebsiteDeliveryCareer struct {
	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 如果是至今传值 -1

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	Title *string `json:"title,omitempty"` // 职位名称

	Company *string `json:"company,omitempty"` // 公司

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段
}

type WebsiteDeliveryCareerBuilder struct {
	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间, 如果是至今传值 -1
	endTimeFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	title     string // 职位名称
	titleFlag bool

	company     string // 公司
	companyFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool
}

func NewWebsiteDeliveryCareerBuilder() *WebsiteDeliveryCareerBuilder {
	builder := &WebsiteDeliveryCareerBuilder{}
	return builder
}

// 描述
//
// 示例值：这是一家创业公司，非常不错
func (builder *WebsiteDeliveryCareerBuilder) Desc(desc string) *WebsiteDeliveryCareerBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间, 如果是至今传值 -1
//
// 示例值：1618500278667
func (builder *WebsiteDeliveryCareerBuilder) EndTime(endTime int64) *WebsiteDeliveryCareerBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 开始时间
//
// 示例值：1609430400
func (builder *WebsiteDeliveryCareerBuilder) StartTime(startTime int64) *WebsiteDeliveryCareerBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 职位名称
//
// 示例值：后端研发实习生
func (builder *WebsiteDeliveryCareerBuilder) Title(title string) *WebsiteDeliveryCareerBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 公司
//
// 示例值：字节跳动
func (builder *WebsiteDeliveryCareerBuilder) Company(company string) *WebsiteDeliveryCareerBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryCareerBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryCareerBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *WebsiteDeliveryCareerBuilder) Build() *WebsiteDeliveryCareer {
	req := &WebsiteDeliveryCareer{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type WebsiteDeliveryCertificate struct {
	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Desc *string `json:"desc,omitempty"` // 描述

	Name *string `json:"name,omitempty"` // 证书名称
}

type WebsiteDeliveryCertificateBuilder struct {
	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	desc     string // 描述
	descFlag bool

	name     string // 证书名称
	nameFlag bool
}

func NewWebsiteDeliveryCertificateBuilder() *WebsiteDeliveryCertificateBuilder {
	builder := &WebsiteDeliveryCertificateBuilder{}
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryCertificateBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryCertificateBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 描述
//
// 示例值：全国普通话级别认证
func (builder *WebsiteDeliveryCertificateBuilder) Desc(desc string) *WebsiteDeliveryCertificateBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 证书名称
//
// 示例值：普通话证书
func (builder *WebsiteDeliveryCertificateBuilder) Name(name string) *WebsiteDeliveryCertificateBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *WebsiteDeliveryCertificateBuilder) Build() *WebsiteDeliveryCertificate {
	req := &WebsiteDeliveryCertificate{}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type WebsiteDeliveryCompetition struct {
	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Desc *string `json:"desc,omitempty"` // 竞赛描述

	Name *string `json:"name,omitempty"` // 竞赛名称
}

type WebsiteDeliveryCompetitionBuilder struct {
	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	desc     string // 竞赛描述
	descFlag bool

	name     string // 竞赛名称
	nameFlag bool
}

func NewWebsiteDeliveryCompetitionBuilder() *WebsiteDeliveryCompetitionBuilder {
	builder := &WebsiteDeliveryCompetitionBuilder{}
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryCompetitionBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryCompetitionBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 竞赛描述
//
// 示例值：唱歌比赛
func (builder *WebsiteDeliveryCompetitionBuilder) Desc(desc string) *WebsiteDeliveryCompetitionBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 竞赛名称
//
// 示例值：青年歌手大赛
func (builder *WebsiteDeliveryCompetitionBuilder) Name(name string) *WebsiteDeliveryCompetitionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *WebsiteDeliveryCompetitionBuilder) Build() *WebsiteDeliveryCompetition {
	req := &WebsiteDeliveryCompetition{}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type WebsiteDeliveryCustomizedData struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Value *string `json:"value,omitempty"` // 自定义字段 value，格式见接口说明
}

type WebsiteDeliveryCustomizedDataBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	value     string // 自定义字段 value，格式见接口说明
	valueFlag bool
}

func NewWebsiteDeliveryCustomizedDataBuilder() *WebsiteDeliveryCustomizedDataBuilder {
	builder := &WebsiteDeliveryCustomizedDataBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6960663240925956649
func (builder *WebsiteDeliveryCustomizedDataBuilder) ObjectId(objectId string) *WebsiteDeliveryCustomizedDataBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 自定义字段 value，格式见接口说明
//
// 示例值：AA
func (builder *WebsiteDeliveryCustomizedDataBuilder) Value(value string) *WebsiteDeliveryCustomizedDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *WebsiteDeliveryCustomizedDataBuilder) Build() *WebsiteDeliveryCustomizedData {
	req := &WebsiteDeliveryCustomizedData{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type WebsiteDeliveryCustomizedDataParent struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Children []*WebsiteDeliveryCustomizedData `json:"children,omitempty"` // 模块下的字段
}

type WebsiteDeliveryCustomizedDataParentBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	children     []*WebsiteDeliveryCustomizedData // 模块下的字段
	childrenFlag bool
}

func NewWebsiteDeliveryCustomizedDataParentBuilder() *WebsiteDeliveryCustomizedDataParentBuilder {
	builder := &WebsiteDeliveryCustomizedDataParentBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：6960663240925956651
func (builder *WebsiteDeliveryCustomizedDataParentBuilder) ObjectId(objectId string) *WebsiteDeliveryCustomizedDataParentBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 模块下的字段
//
// 示例值：
func (builder *WebsiteDeliveryCustomizedDataParentBuilder) Children(children []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryCustomizedDataParentBuilder {
	builder.children = children
	builder.childrenFlag = true
	return builder
}

func (builder *WebsiteDeliveryCustomizedDataParentBuilder) Build() *WebsiteDeliveryCustomizedDataParent {
	req := &WebsiteDeliveryCustomizedDataParent{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.childrenFlag {
		req.Children = builder.children
	}
	return req
}

type WebsiteDeliveryDto struct {
	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	Id *string `json:"id,omitempty"` // ID

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	JobPostId *string `json:"job_post_id,omitempty"` // 职位广告 ID

	PortalResumeId *string `json:"portal_resume_id,omitempty"` // 官网简历 ID

	UserId *string `json:"user_id,omitempty"` // 官网用户 ID

	TalentId *string `json:"talent_id,omitempty"` // 人才 ID
}

type WebsiteDeliveryDtoBuilder struct {
	applicationId     string // 投递 ID
	applicationIdFlag bool

	id     string // ID
	idFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	jobPostId     string // 职位广告 ID
	jobPostIdFlag bool

	portalResumeId     string // 官网简历 ID
	portalResumeIdFlag bool

	userId     string // 官网用户 ID
	userIdFlag bool

	talentId     string // 人才 ID
	talentIdFlag bool
}

func NewWebsiteDeliveryDtoBuilder() *WebsiteDeliveryDtoBuilder {
	builder := &WebsiteDeliveryDtoBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：6960663240925956657
func (builder *WebsiteDeliveryDtoBuilder) ApplicationId(applicationId string) *WebsiteDeliveryDtoBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// ID
//
// 示例值：6960663240925956655
func (builder *WebsiteDeliveryDtoBuilder) Id(id string) *WebsiteDeliveryDtoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956659
func (builder *WebsiteDeliveryDtoBuilder) JobId(jobId string) *WebsiteDeliveryDtoBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 职位广告 ID
//
// 示例值：6960663240925956658
func (builder *WebsiteDeliveryDtoBuilder) JobPostId(jobPostId string) *WebsiteDeliveryDtoBuilder {
	builder.jobPostId = jobPostId
	builder.jobPostIdFlag = true
	return builder
}

// 官网简历 ID
//
// 示例值：6960663240925956660
func (builder *WebsiteDeliveryDtoBuilder) PortalResumeId(portalResumeId string) *WebsiteDeliveryDtoBuilder {
	builder.portalResumeId = portalResumeId
	builder.portalResumeIdFlag = true
	return builder
}

// 官网用户 ID
//
// 示例值：6960663240925956656
func (builder *WebsiteDeliveryDtoBuilder) UserId(userId string) *WebsiteDeliveryDtoBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 人才 ID
//
// 示例值：7095600054216542508
func (builder *WebsiteDeliveryDtoBuilder) TalentId(talentId string) *WebsiteDeliveryDtoBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

func (builder *WebsiteDeliveryDtoBuilder) Build() *WebsiteDeliveryDto {
	req := &WebsiteDeliveryDto{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId

	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.jobPostIdFlag {
		req.JobPostId = &builder.jobPostId

	}
	if builder.portalResumeIdFlag {
		req.PortalResumeId = &builder.portalResumeId

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId

	}
	return req
}

type WebsiteDeliveryEducation struct {
	EducationType *int `json:"education_type,omitempty"` // 学历类型

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间 ,如果是至今传值 -1

	EndTimeV2 *int64 `json:"end_time_v2,omitempty"` // 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选

	FieldOfStudy *string `json:"field_of_study,omitempty"` // 专业

	School *string `json:"school,omitempty"` // 学校

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	AcademicRanking *int `json:"academic_ranking,omitempty"` // 专业排名

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Degree *int `json:"degree,omitempty"` // 学位
}

type WebsiteDeliveryEducationBuilder struct {
	educationType     int // 学历类型
	educationTypeFlag bool

	endTime     int64 // 结束时间 ,如果是至今传值 -1
	endTimeFlag bool

	endTimeV2     int64 // 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选
	endTimeV2Flag bool

	fieldOfStudy     string // 专业
	fieldOfStudyFlag bool

	school     string // 学校
	schoolFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	academicRanking     int // 专业排名
	academicRankingFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	degree     int // 学位
	degreeFlag bool
}

func NewWebsiteDeliveryEducationBuilder() *WebsiteDeliveryEducationBuilder {
	builder := &WebsiteDeliveryEducationBuilder{}
	return builder
}

// 学历类型
//
// 示例值：1
func (builder *WebsiteDeliveryEducationBuilder) EducationType(educationType int) *WebsiteDeliveryEducationBuilder {
	builder.educationType = educationType
	builder.educationTypeFlag = true
	return builder
}

// 结束时间 ,如果是至今传值 -1
//
// 示例值：1618500278663
func (builder *WebsiteDeliveryEducationBuilder) EndTime(endTime int64) *WebsiteDeliveryEducationBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 结束时间-新，无「至今」传值。建议使用此字段，避免模糊的毕业时间影响候选人筛选
//
// 示例值：1618500278663
func (builder *WebsiteDeliveryEducationBuilder) EndTimeV2(endTimeV2 int64) *WebsiteDeliveryEducationBuilder {
	builder.endTimeV2 = endTimeV2
	builder.endTimeV2Flag = true
	return builder
}

// 专业
//
// 示例值：汉语言文学
func (builder *WebsiteDeliveryEducationBuilder) FieldOfStudy(fieldOfStudy string) *WebsiteDeliveryEducationBuilder {
	builder.fieldOfStudy = fieldOfStudy
	builder.fieldOfStudyFlag = true
	return builder
}

// 学校
//
// 示例值：香港中文大学
func (builder *WebsiteDeliveryEducationBuilder) School(school string) *WebsiteDeliveryEducationBuilder {
	builder.school = school
	builder.schoolFlag = true
	return builder
}

// 开始时间
//
// 示例值：1609430400
func (builder *WebsiteDeliveryEducationBuilder) StartTime(startTime int64) *WebsiteDeliveryEducationBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 专业排名
//
// 示例值：5
func (builder *WebsiteDeliveryEducationBuilder) AcademicRanking(academicRanking int) *WebsiteDeliveryEducationBuilder {
	builder.academicRanking = academicRanking
	builder.academicRankingFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryEducationBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryEducationBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 学位
//
// 示例值：1
func (builder *WebsiteDeliveryEducationBuilder) Degree(degree int) *WebsiteDeliveryEducationBuilder {
	builder.degree = degree
	builder.degreeFlag = true
	return builder
}

func (builder *WebsiteDeliveryEducationBuilder) Build() *WebsiteDeliveryEducation {
	req := &WebsiteDeliveryEducation{}
	if builder.educationTypeFlag {
		req.EducationType = &builder.educationType

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.endTimeV2Flag {
		req.EndTimeV2 = &builder.endTimeV2

	}
	if builder.fieldOfStudyFlag {
		req.FieldOfStudy = &builder.fieldOfStudy

	}
	if builder.schoolFlag {
		req.School = &builder.school

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.academicRankingFlag {
		req.AcademicRanking = &builder.academicRanking

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.degreeFlag {
		req.Degree = &builder.degree

	}
	return req
}

type WebsiteDeliveryIdentification struct {
	IdentificationNumber *string `json:"identification_number,omitempty"` // 身份证件号码

	IdentificationType *int `json:"identification_type,omitempty"` // 身份证件类型
}

type WebsiteDeliveryIdentificationBuilder struct {
	identificationNumber     string // 身份证件号码
	identificationNumberFlag bool

	identificationType     int // 身份证件类型
	identificationTypeFlag bool
}

func NewWebsiteDeliveryIdentificationBuilder() *WebsiteDeliveryIdentificationBuilder {
	builder := &WebsiteDeliveryIdentificationBuilder{}
	return builder
}

// 身份证件号码
//
// 示例值：11002030131312312
func (builder *WebsiteDeliveryIdentificationBuilder) IdentificationNumber(identificationNumber string) *WebsiteDeliveryIdentificationBuilder {
	builder.identificationNumber = identificationNumber
	builder.identificationNumberFlag = true
	return builder
}

// 身份证件类型
//
// 示例值：1
func (builder *WebsiteDeliveryIdentificationBuilder) IdentificationType(identificationType int) *WebsiteDeliveryIdentificationBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

func (builder *WebsiteDeliveryIdentificationBuilder) Build() *WebsiteDeliveryIdentification {
	req := &WebsiteDeliveryIdentification{}
	if builder.identificationNumberFlag {
		req.IdentificationNumber = &builder.identificationNumber

	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType

	}
	return req
}

type WebsiteDeliveryInternship struct {
	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 如果是至今传值 -1

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间

	Title *string `json:"title,omitempty"` // 职位名称

	Company *string `json:"company,omitempty"` // 公司

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段
}

type WebsiteDeliveryInternshipBuilder struct {
	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间, 如果是至今传值 -1
	endTimeFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool

	title     string // 职位名称
	titleFlag bool

	company     string // 公司
	companyFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool
}

func NewWebsiteDeliveryInternshipBuilder() *WebsiteDeliveryInternshipBuilder {
	builder := &WebsiteDeliveryInternshipBuilder{}
	return builder
}

// 描述
//
// 示例值：这是一家创业公司，非常不错
func (builder *WebsiteDeliveryInternshipBuilder) Desc(desc string) *WebsiteDeliveryInternshipBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间, 如果是至今传值 -1
//
// 示例值：1618500278667
func (builder *WebsiteDeliveryInternshipBuilder) EndTime(endTime int64) *WebsiteDeliveryInternshipBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 开始时间
//
// 示例值：1609430400
func (builder *WebsiteDeliveryInternshipBuilder) StartTime(startTime int64) *WebsiteDeliveryInternshipBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 职位名称
//
// 示例值：后端研发实习生
func (builder *WebsiteDeliveryInternshipBuilder) Title(title string) *WebsiteDeliveryInternshipBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 公司
//
// 示例值：字节跳动
func (builder *WebsiteDeliveryInternshipBuilder) Company(company string) *WebsiteDeliveryInternshipBuilder {
	builder.company = company
	builder.companyFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryInternshipBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryInternshipBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *WebsiteDeliveryInternshipBuilder) Build() *WebsiteDeliveryInternship {
	req := &WebsiteDeliveryInternship{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.companyFlag {
		req.Company = &builder.company

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type WebsiteDeliveryLanguage struct {
	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Language *int `json:"language,omitempty"` // 语言

	Proficiency *int `json:"proficiency,omitempty"` // 熟悉程度
}

type WebsiteDeliveryLanguageBuilder struct {
	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	language     int // 语言
	languageFlag bool

	proficiency     int // 熟悉程度
	proficiencyFlag bool
}

func NewWebsiteDeliveryLanguageBuilder() *WebsiteDeliveryLanguageBuilder {
	builder := &WebsiteDeliveryLanguageBuilder{}
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryLanguageBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryLanguageBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 语言
//
// 示例值：1
func (builder *WebsiteDeliveryLanguageBuilder) Language(language int) *WebsiteDeliveryLanguageBuilder {
	builder.language = language
	builder.languageFlag = true
	return builder
}

// 熟悉程度
//
// 示例值：1
func (builder *WebsiteDeliveryLanguageBuilder) Proficiency(proficiency int) *WebsiteDeliveryLanguageBuilder {
	builder.proficiency = proficiency
	builder.proficiencyFlag = true
	return builder
}

func (builder *WebsiteDeliveryLanguageBuilder) Build() *WebsiteDeliveryLanguage {
	req := &WebsiteDeliveryLanguage{}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.languageFlag {
		req.Language = &builder.language

	}
	if builder.proficiencyFlag {
		req.Proficiency = &builder.proficiency

	}
	return req
}

type WebsiteDeliveryProject struct {
	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Desc *string `json:"desc,omitempty"` // 描述

	EndTime *int64 `json:"end_time,omitempty"` // 结束时间, 如果是至今传值-1

	Link *string `json:"link,omitempty"` // 项目链接

	Name *string `json:"name,omitempty"` // 项目名称

	Role *string `json:"role,omitempty"` // 角色

	StartTime *int64 `json:"start_time,omitempty"` // 开始时间
}

type WebsiteDeliveryProjectBuilder struct {
	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	desc     string // 描述
	descFlag bool

	endTime     int64 // 结束时间, 如果是至今传值-1
	endTimeFlag bool

	link     string // 项目链接
	linkFlag bool

	name     string // 项目名称
	nameFlag bool

	role     string // 角色
	roleFlag bool

	startTime     int64 // 开始时间
	startTimeFlag bool
}

func NewWebsiteDeliveryProjectBuilder() *WebsiteDeliveryProjectBuilder {
	builder := &WebsiteDeliveryProjectBuilder{}
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryProjectBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryProjectBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 描述
//
// 示例值：项目描述：xxxx
func (builder *WebsiteDeliveryProjectBuilder) Desc(desc string) *WebsiteDeliveryProjectBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 结束时间, 如果是至今传值-1
//
// 示例值：1618500278669
func (builder *WebsiteDeliveryProjectBuilder) EndTime(endTime int64) *WebsiteDeliveryProjectBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 项目链接
//
// 示例值：www.toutiao.com
func (builder *WebsiteDeliveryProjectBuilder) Link(link string) *WebsiteDeliveryProjectBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 项目名称
//
// 示例值：XXX项目重构
func (builder *WebsiteDeliveryProjectBuilder) Name(name string) *WebsiteDeliveryProjectBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 角色
//
// 示例值：项目经理
func (builder *WebsiteDeliveryProjectBuilder) Role(role string) *WebsiteDeliveryProjectBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

// 开始时间
//
// 示例值：1609430400
func (builder *WebsiteDeliveryProjectBuilder) StartTime(startTime int64) *WebsiteDeliveryProjectBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

func (builder *WebsiteDeliveryProjectBuilder) Build() *WebsiteDeliveryProject {
	req := &WebsiteDeliveryProject{}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.roleFlag {
		req.Role = &builder.role

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	return req
}

type WebsiteDeliveryResume struct {
	InternshipList []*WebsiteDeliveryInternship `json:"internship_list,omitempty"` // 实习经历

	BasicInfo *WebsiteDeliveryBasicInfo `json:"basic_info,omitempty"` // 基本信息

	EducationList []*WebsiteDeliveryEducation `json:"education_list,omitempty"` // 教育经历

	SelfEvaluation *WebsiteDeliverySelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价

	CareerList []*WebsiteDeliveryCareer `json:"career_list,omitempty"` // 工作经历

	CustomizedData []*WebsiteDeliveryCustomizedDataParent `json:"customized_data,omitempty"` // 自定义模块

	ResumeAttachmentId *string `json:"resume_attachment_id,omitempty"` // 简历附件ID，使用「创建附件」生成

	SnsList []*WebsiteDeliverySns `json:"sns_list,omitempty"` // 社交账号

	WorksList []*WebsiteDeliveryWorks `json:"works_list,omitempty"` // 作品

	AwardList []*WebsiteDeliveryAward `json:"award_list,omitempty"` // 获奖记录

	ProjectList []*WebsiteDeliveryProject `json:"project_list,omitempty"` // 项目经历

	LanguageList []*WebsiteDeliveryLanguage `json:"language_list,omitempty"` // 语言能力
}

type WebsiteDeliveryResumeBuilder struct {
	internshipList     []*WebsiteDeliveryInternship // 实习经历
	internshipListFlag bool

	basicInfo     *WebsiteDeliveryBasicInfo // 基本信息
	basicInfoFlag bool

	educationList     []*WebsiteDeliveryEducation // 教育经历
	educationListFlag bool

	selfEvaluation     *WebsiteDeliverySelfEvaluation // 自我评价
	selfEvaluationFlag bool

	careerList     []*WebsiteDeliveryCareer // 工作经历
	careerListFlag bool

	customizedData     []*WebsiteDeliveryCustomizedDataParent // 自定义模块
	customizedDataFlag bool

	resumeAttachmentId     string // 简历附件ID，使用「创建附件」生成
	resumeAttachmentIdFlag bool

	snsList     []*WebsiteDeliverySns // 社交账号
	snsListFlag bool

	worksList     []*WebsiteDeliveryWorks // 作品
	worksListFlag bool

	awardList     []*WebsiteDeliveryAward // 获奖记录
	awardListFlag bool

	projectList     []*WebsiteDeliveryProject // 项目经历
	projectListFlag bool

	languageList     []*WebsiteDeliveryLanguage // 语言能力
	languageListFlag bool
}

func NewWebsiteDeliveryResumeBuilder() *WebsiteDeliveryResumeBuilder {
	builder := &WebsiteDeliveryResumeBuilder{}
	return builder
}

// 实习经历
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) InternshipList(internshipList []*WebsiteDeliveryInternship) *WebsiteDeliveryResumeBuilder {
	builder.internshipList = internshipList
	builder.internshipListFlag = true
	return builder
}

// 基本信息
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) BasicInfo(basicInfo *WebsiteDeliveryBasicInfo) *WebsiteDeliveryResumeBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) EducationList(educationList []*WebsiteDeliveryEducation) *WebsiteDeliveryResumeBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 自我评价
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) SelfEvaluation(selfEvaluation *WebsiteDeliverySelfEvaluation) *WebsiteDeliveryResumeBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 工作经历
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) CareerList(careerList []*WebsiteDeliveryCareer) *WebsiteDeliveryResumeBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 自定义模块
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedDataParent) *WebsiteDeliveryResumeBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 简历附件ID，使用「创建附件」生成
//
// 示例值：6960663240925956654
func (builder *WebsiteDeliveryResumeBuilder) ResumeAttachmentId(resumeAttachmentId string) *WebsiteDeliveryResumeBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 社交账号
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) SnsList(snsList []*WebsiteDeliverySns) *WebsiteDeliveryResumeBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 作品
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) WorksList(worksList []*WebsiteDeliveryWorks) *WebsiteDeliveryResumeBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖记录
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) AwardList(awardList []*WebsiteDeliveryAward) *WebsiteDeliveryResumeBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 项目经历
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) ProjectList(projectList []*WebsiteDeliveryProject) *WebsiteDeliveryResumeBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 语言能力
//
// 示例值：
func (builder *WebsiteDeliveryResumeBuilder) LanguageList(languageList []*WebsiteDeliveryLanguage) *WebsiteDeliveryResumeBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

func (builder *WebsiteDeliveryResumeBuilder) Build() *WebsiteDeliveryResume {
	req := &WebsiteDeliveryResume{}
	if builder.internshipListFlag {
		req.InternshipList = builder.internshipList
	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = builder.selfEvaluation
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId

	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	return req
}

type WebsiteDeliverySelfEvaluation struct {
	Content *string `json:"content,omitempty"` // 内容

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段
}

type WebsiteDeliverySelfEvaluationBuilder struct {
	content     string // 内容
	contentFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool
}

func NewWebsiteDeliverySelfEvaluationBuilder() *WebsiteDeliverySelfEvaluationBuilder {
	builder := &WebsiteDeliverySelfEvaluationBuilder{}
	return builder
}

// 内容
//
// 示例值：自我评价：平常心
func (builder *WebsiteDeliverySelfEvaluationBuilder) Content(content string) *WebsiteDeliverySelfEvaluationBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliverySelfEvaluationBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliverySelfEvaluationBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *WebsiteDeliverySelfEvaluationBuilder) Build() *WebsiteDeliverySelfEvaluation {
	req := &WebsiteDeliverySelfEvaluation{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type WebsiteDeliverySns struct {
	SnsType *int `json:"sns_type,omitempty"` // 社交账号类型

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段

	Link *string `json:"link,omitempty"` // 链接
}

type WebsiteDeliverySnsBuilder struct {
	snsType     int // 社交账号类型
	snsTypeFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool

	link     string // 链接
	linkFlag bool
}

func NewWebsiteDeliverySnsBuilder() *WebsiteDeliverySnsBuilder {
	builder := &WebsiteDeliverySnsBuilder{}
	return builder
}

// 社交账号类型
//
// 示例值：1
func (builder *WebsiteDeliverySnsBuilder) SnsType(snsType int) *WebsiteDeliverySnsBuilder {
	builder.snsType = snsType
	builder.snsTypeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliverySnsBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliverySnsBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

// 链接
//
// 示例值：toutiao.com
func (builder *WebsiteDeliverySnsBuilder) Link(link string) *WebsiteDeliverySnsBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

func (builder *WebsiteDeliverySnsBuilder) Build() *WebsiteDeliverySns {
	req := &WebsiteDeliverySns{}
	if builder.snsTypeFlag {
		req.SnsType = &builder.snsType

	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	return req
}

type WebsiteDeliveryWorks struct {
	Desc *string `json:"desc,omitempty"` // 作品描述

	Link *string `json:"link,omitempty"` // 作品链接

	Attachment *WebsiteDeliveryWorksAttachment `json:"attachment,omitempty"` // 附件

	CustomizedData []*WebsiteDeliveryCustomizedData `json:"customized_data,omitempty"` // 自定义字段
}

type WebsiteDeliveryWorksBuilder struct {
	desc     string // 作品描述
	descFlag bool

	link     string // 作品链接
	linkFlag bool

	attachment     *WebsiteDeliveryWorksAttachment // 附件
	attachmentFlag bool

	customizedData     []*WebsiteDeliveryCustomizedData // 自定义字段
	customizedDataFlag bool
}

func NewWebsiteDeliveryWorksBuilder() *WebsiteDeliveryWorksBuilder {
	builder := &WebsiteDeliveryWorksBuilder{}
	return builder
}

// 作品描述
//
// 示例值：作品描述：xxxx
func (builder *WebsiteDeliveryWorksBuilder) Desc(desc string) *WebsiteDeliveryWorksBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 作品链接
//
// 示例值：www.toutiao.com
func (builder *WebsiteDeliveryWorksBuilder) Link(link string) *WebsiteDeliveryWorksBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 附件
//
// 示例值：
func (builder *WebsiteDeliveryWorksBuilder) Attachment(attachment *WebsiteDeliveryWorksAttachment) *WebsiteDeliveryWorksBuilder {
	builder.attachment = attachment
	builder.attachmentFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteDeliveryWorksBuilder) CustomizedData(customizedData []*WebsiteDeliveryCustomizedData) *WebsiteDeliveryWorksBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *WebsiteDeliveryWorksBuilder) Build() *WebsiteDeliveryWorks {
	req := &WebsiteDeliveryWorks{}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	if builder.attachmentFlag {
		req.Attachment = builder.attachment
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type WebsiteDeliveryWorksAttachment struct {
	FileId *string `json:"file_id,omitempty"` // 文件ID，使用「创建附件」生成
}

type WebsiteDeliveryWorksAttachmentBuilder struct {
	fileId     string // 文件ID，使用「创建附件」生成
	fileIdFlag bool
}

func NewWebsiteDeliveryWorksAttachmentBuilder() *WebsiteDeliveryWorksAttachmentBuilder {
	builder := &WebsiteDeliveryWorksAttachmentBuilder{}
	return builder
}

// 文件ID，使用「创建附件」生成
//
// 示例值：6982104077248219436
func (builder *WebsiteDeliveryWorksAttachmentBuilder) FileId(fileId string) *WebsiteDeliveryWorksAttachmentBuilder {
	builder.fileId = fileId
	builder.fileIdFlag = true
	return builder
}

func (builder *WebsiteDeliveryWorksAttachmentBuilder) Build() *WebsiteDeliveryWorksAttachment {
	req := &WebsiteDeliveryWorksAttachment{}
	if builder.fileIdFlag {
		req.FileId = &builder.fileId

	}
	return req
}

type WebsiteJobPost struct {
	Id *string `json:"id,omitempty"` // 职位广告 ID

	Title *string `json:"title,omitempty"` // 标题

	JobId *string `json:"job_id,omitempty"` // 职位 ID

	JobCode *string `json:"job_code,omitempty"` // 职位编码

	JobExpireTime *string `json:"job_expire_time,omitempty"` // 职位过期时间，「null」代表「长期有效」

	JobActiveStatus *int `json:"job_active_status,omitempty"` // 职位状态

	JobProcessType *int `json:"job_process_type,omitempty"` // 职位流程类型

	JobRecruitmentType *IdNameObject `json:"job_recruitment_type,omitempty"` // 职位雇佣类型

	JobDepartment *IdNameObject `json:"job_department,omitempty"` // 职位部门

	JobType *IdNameObject `json:"job_type,omitempty"` // 职位类型

	MinJobLevel *IdNameObject `json:"min_job_level,omitempty"` // 最低职级

	MaxJobLevel *IdNameObject `json:"max_job_level,omitempty"` // 最高职级

	Address *CommonAddress `json:"address,omitempty"` // 职位地址

	MinSalary *string `json:"min_salary,omitempty"` // 月薪范围-最低薪资

	MaxSalary *string `json:"max_salary,omitempty"` // 月薪范围-最高薪资

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	Experience *int `json:"experience,omitempty"` // 经验

	Headcount *int `json:"headcount,omitempty"` // 数量

	HighLightList []*IdNameObject `json:"high_light_list,omitempty"` // 职位亮点

	Description *string `json:"description,omitempty"` // 职位描述

	Requirement *string `json:"requirement,omitempty"` // 职位要求

	Creator *IdNameObject `json:"creator,omitempty"` // 创建人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	ModifyTime *string `json:"modify_time,omitempty"` // 修改时间

	CustomizedDataList []*WebsiteJobPostCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段

	JobFunction *IdNameObject `json:"job_function,omitempty"` // 职能分类

	Subject *IdNameObject `json:"subject,omitempty"` // 职位项目

	AddressList []*CommonAddress `json:"address_list,omitempty"` // 职位广告地址列表

	JobSequenceInfo *IdNameObject `json:"job_sequence_info,omitempty"` // 职级序列

	Currency *int `json:"currency,omitempty"` // 币种，可参考招聘「枚举常量介绍」

	TargetMajorList []*IdNameObject `json:"target_major_list,omitempty"` // 目标专业
}

type WebsiteJobPostBuilder struct {
	id     string // 职位广告 ID
	idFlag bool

	title     string // 标题
	titleFlag bool

	jobId     string // 职位 ID
	jobIdFlag bool

	jobCode     string // 职位编码
	jobCodeFlag bool

	jobExpireTime     string // 职位过期时间，「null」代表「长期有效」
	jobExpireTimeFlag bool

	jobActiveStatus     int // 职位状态
	jobActiveStatusFlag bool

	jobProcessType     int // 职位流程类型
	jobProcessTypeFlag bool

	jobRecruitmentType     *IdNameObject // 职位雇佣类型
	jobRecruitmentTypeFlag bool

	jobDepartment     *IdNameObject // 职位部门
	jobDepartmentFlag bool

	jobType     *IdNameObject // 职位类型
	jobTypeFlag bool

	minJobLevel     *IdNameObject // 最低职级
	minJobLevelFlag bool

	maxJobLevel     *IdNameObject // 最高职级
	maxJobLevelFlag bool

	address     *CommonAddress // 职位地址
	addressFlag bool

	minSalary     string // 月薪范围-最低薪资
	minSalaryFlag bool

	maxSalary     string // 月薪范围-最高薪资
	maxSalaryFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	experience     int // 经验
	experienceFlag bool

	headcount     int // 数量
	headcountFlag bool

	highLightList     []*IdNameObject // 职位亮点
	highLightListFlag bool

	description     string // 职位描述
	descriptionFlag bool

	requirement     string // 职位要求
	requirementFlag bool

	creator     *IdNameObject // 创建人
	creatorFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	modifyTime     string // 修改时间
	modifyTimeFlag bool

	customizedDataList     []*WebsiteJobPostCustomizedData // 自定义字段
	customizedDataListFlag bool

	jobFunction     *IdNameObject // 职能分类
	jobFunctionFlag bool

	subject     *IdNameObject // 职位项目
	subjectFlag bool

	addressList     []*CommonAddress // 职位广告地址列表
	addressListFlag bool

	jobSequenceInfo     *IdNameObject // 职级序列
	jobSequenceInfoFlag bool

	currency     int // 币种，可参考招聘「枚举常量介绍」
	currencyFlag bool

	targetMajorList     []*IdNameObject // 目标专业
	targetMajorListFlag bool
}

func NewWebsiteJobPostBuilder() *WebsiteJobPostBuilder {
	builder := &WebsiteJobPostBuilder{}
	return builder
}

// 职位广告 ID
//
// 示例值：1213213123123
func (builder *WebsiteJobPostBuilder) Id(id string) *WebsiteJobPostBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 标题
//
// 示例值：测试
func (builder *WebsiteJobPostBuilder) Title(title string) *WebsiteJobPostBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 职位 ID
//
// 示例值：xxx
func (builder *WebsiteJobPostBuilder) JobId(jobId string) *WebsiteJobPostBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 职位编码
//
// 示例值：007
func (builder *WebsiteJobPostBuilder) JobCode(jobCode string) *WebsiteJobPostBuilder {
	builder.jobCode = jobCode
	builder.jobCodeFlag = true
	return builder
}

// 职位过期时间，「null」代表「长期有效」
//
// 示例值：1111
func (builder *WebsiteJobPostBuilder) JobExpireTime(jobExpireTime string) *WebsiteJobPostBuilder {
	builder.jobExpireTime = jobExpireTime
	builder.jobExpireTimeFlag = true
	return builder
}

// 职位状态
//
// 示例值：1
func (builder *WebsiteJobPostBuilder) JobActiveStatus(jobActiveStatus int) *WebsiteJobPostBuilder {
	builder.jobActiveStatus = jobActiveStatus
	builder.jobActiveStatusFlag = true
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *WebsiteJobPostBuilder) JobProcessType(jobProcessType int) *WebsiteJobPostBuilder {
	builder.jobProcessType = jobProcessType
	builder.jobProcessTypeFlag = true
	return builder
}

// 职位雇佣类型
//
// 示例值：
func (builder *WebsiteJobPostBuilder) JobRecruitmentType(jobRecruitmentType *IdNameObject) *WebsiteJobPostBuilder {
	builder.jobRecruitmentType = jobRecruitmentType
	builder.jobRecruitmentTypeFlag = true
	return builder
}

// 职位部门
//
// 示例值：
func (builder *WebsiteJobPostBuilder) JobDepartment(jobDepartment *IdNameObject) *WebsiteJobPostBuilder {
	builder.jobDepartment = jobDepartment
	builder.jobDepartmentFlag = true
	return builder
}

// 职位类型
//
// 示例值：
func (builder *WebsiteJobPostBuilder) JobType(jobType *IdNameObject) *WebsiteJobPostBuilder {
	builder.jobType = jobType
	builder.jobTypeFlag = true
	return builder
}

// 最低职级
//
// 示例值：
func (builder *WebsiteJobPostBuilder) MinJobLevel(minJobLevel *IdNameObject) *WebsiteJobPostBuilder {
	builder.minJobLevel = minJobLevel
	builder.minJobLevelFlag = true
	return builder
}

// 最高职级
//
// 示例值：
func (builder *WebsiteJobPostBuilder) MaxJobLevel(maxJobLevel *IdNameObject) *WebsiteJobPostBuilder {
	builder.maxJobLevel = maxJobLevel
	builder.maxJobLevelFlag = true
	return builder
}

// 职位地址
//
// 示例值：
func (builder *WebsiteJobPostBuilder) Address(address *CommonAddress) *WebsiteJobPostBuilder {
	builder.address = address
	builder.addressFlag = true
	return builder
}

// 月薪范围-最低薪资
//
// 示例值：5000
func (builder *WebsiteJobPostBuilder) MinSalary(minSalary string) *WebsiteJobPostBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 月薪范围-最高薪资
//
// 示例值：10000
func (builder *WebsiteJobPostBuilder) MaxSalary(maxSalary string) *WebsiteJobPostBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *WebsiteJobPostBuilder) RequiredDegree(requiredDegree int) *WebsiteJobPostBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 经验
//
// 示例值：1
func (builder *WebsiteJobPostBuilder) Experience(experience int) *WebsiteJobPostBuilder {
	builder.experience = experience
	builder.experienceFlag = true
	return builder
}

// 数量
//
// 示例值：12
func (builder *WebsiteJobPostBuilder) Headcount(headcount int) *WebsiteJobPostBuilder {
	builder.headcount = headcount
	builder.headcountFlag = true
	return builder
}

// 职位亮点
//
// 示例值：
func (builder *WebsiteJobPostBuilder) HighLightList(highLightList []*IdNameObject) *WebsiteJobPostBuilder {
	builder.highLightList = highLightList
	builder.highLightListFlag = true
	return builder
}

// 职位描述
//
// 示例值：负责软件开发
func (builder *WebsiteJobPostBuilder) Description(description string) *WebsiteJobPostBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 职位要求
//
// 示例值：大专
func (builder *WebsiteJobPostBuilder) Requirement(requirement string) *WebsiteJobPostBuilder {
	builder.requirement = requirement
	builder.requirementFlag = true
	return builder
}

// 创建人
//
// 示例值：
func (builder *WebsiteJobPostBuilder) Creator(creator *IdNameObject) *WebsiteJobPostBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// 创建时间
//
// 示例值：1111
func (builder *WebsiteJobPostBuilder) CreateTime(createTime string) *WebsiteJobPostBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 修改时间
//
// 示例值：222
func (builder *WebsiteJobPostBuilder) ModifyTime(modifyTime string) *WebsiteJobPostBuilder {
	builder.modifyTime = modifyTime
	builder.modifyTimeFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *WebsiteJobPostBuilder) CustomizedDataList(customizedDataList []*WebsiteJobPostCustomizedData) *WebsiteJobPostBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 职能分类
//
// 示例值：
func (builder *WebsiteJobPostBuilder) JobFunction(jobFunction *IdNameObject) *WebsiteJobPostBuilder {
	builder.jobFunction = jobFunction
	builder.jobFunctionFlag = true
	return builder
}

// 职位项目
//
// 示例值：
func (builder *WebsiteJobPostBuilder) Subject(subject *IdNameObject) *WebsiteJobPostBuilder {
	builder.subject = subject
	builder.subjectFlag = true
	return builder
}

// 职位广告地址列表
//
// 示例值：
func (builder *WebsiteJobPostBuilder) AddressList(addressList []*CommonAddress) *WebsiteJobPostBuilder {
	builder.addressList = addressList
	builder.addressListFlag = true
	return builder
}

// 职级序列
//
// 示例值：
func (builder *WebsiteJobPostBuilder) JobSequenceInfo(jobSequenceInfo *IdNameObject) *WebsiteJobPostBuilder {
	builder.jobSequenceInfo = jobSequenceInfo
	builder.jobSequenceInfoFlag = true
	return builder
}

// 币种，可参考招聘「枚举常量介绍」
//
// 示例值：1
func (builder *WebsiteJobPostBuilder) Currency(currency int) *WebsiteJobPostBuilder {
	builder.currency = currency
	builder.currencyFlag = true
	return builder
}

// 目标专业
//
// 示例值：
func (builder *WebsiteJobPostBuilder) TargetMajorList(targetMajorList []*IdNameObject) *WebsiteJobPostBuilder {
	builder.targetMajorList = targetMajorList
	builder.targetMajorListFlag = true
	return builder
}

func (builder *WebsiteJobPostBuilder) Build() *WebsiteJobPost {
	req := &WebsiteJobPost{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId

	}
	if builder.jobCodeFlag {
		req.JobCode = &builder.jobCode

	}
	if builder.jobExpireTimeFlag {
		req.JobExpireTime = &builder.jobExpireTime

	}
	if builder.jobActiveStatusFlag {
		req.JobActiveStatus = &builder.jobActiveStatus

	}
	if builder.jobProcessTypeFlag {
		req.JobProcessType = &builder.jobProcessType

	}
	if builder.jobRecruitmentTypeFlag {
		req.JobRecruitmentType = builder.jobRecruitmentType
	}
	if builder.jobDepartmentFlag {
		req.JobDepartment = builder.jobDepartment
	}
	if builder.jobTypeFlag {
		req.JobType = builder.jobType
	}
	if builder.minJobLevelFlag {
		req.MinJobLevel = builder.minJobLevel
	}
	if builder.maxJobLevelFlag {
		req.MaxJobLevel = builder.maxJobLevel
	}
	if builder.addressFlag {
		req.Address = builder.address
	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary

	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary

	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree

	}
	if builder.experienceFlag {
		req.Experience = &builder.experience

	}
	if builder.headcountFlag {
		req.Headcount = &builder.headcount

	}
	if builder.highLightListFlag {
		req.HighLightList = builder.highLightList
	}
	if builder.descriptionFlag {
		req.Description = &builder.description

	}
	if builder.requirementFlag {
		req.Requirement = &builder.requirement

	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.modifyTimeFlag {
		req.ModifyTime = &builder.modifyTime

	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.jobFunctionFlag {
		req.JobFunction = builder.jobFunction
	}
	if builder.subjectFlag {
		req.Subject = builder.subject
	}
	if builder.addressListFlag {
		req.AddressList = builder.addressList
	}
	if builder.jobSequenceInfoFlag {
		req.JobSequenceInfo = builder.jobSequenceInfo
	}
	if builder.currencyFlag {
		req.Currency = &builder.currency

	}
	if builder.targetMajorListFlag {
		req.TargetMajorList = builder.targetMajorList
	}
	return req
}

type WebsiteJobPostCustomizedData struct {
	ObjectId *string `json:"object_id,omitempty"` // 自定义字段 ID

	Name *I18n `json:"name,omitempty"` // 字段名称

	ObjectType *int `json:"object_type,omitempty"` // 字段类型

	Value *WebsiteJobPostCustomizedValue `json:"value,omitempty"` // 自定义字段值
}

type WebsiteJobPostCustomizedDataBuilder struct {
	objectId     string // 自定义字段 ID
	objectIdFlag bool

	name     *I18n // 字段名称
	nameFlag bool

	objectType     int // 字段类型
	objectTypeFlag bool

	value     *WebsiteJobPostCustomizedValue // 自定义字段值
	valueFlag bool
}

func NewWebsiteJobPostCustomizedDataBuilder() *WebsiteJobPostCustomizedDataBuilder {
	builder := &WebsiteJobPostCustomizedDataBuilder{}
	return builder
}

// 自定义字段 ID
//
// 示例值：xxxx
func (builder *WebsiteJobPostCustomizedDataBuilder) ObjectId(objectId string) *WebsiteJobPostCustomizedDataBuilder {
	builder.objectId = objectId
	builder.objectIdFlag = true
	return builder
}

// 字段名称
//
// 示例值：
func (builder *WebsiteJobPostCustomizedDataBuilder) Name(name *I18n) *WebsiteJobPostCustomizedDataBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 字段类型
//
// 示例值：1
func (builder *WebsiteJobPostCustomizedDataBuilder) ObjectType(objectType int) *WebsiteJobPostCustomizedDataBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 自定义字段值
//
// 示例值：
func (builder *WebsiteJobPostCustomizedDataBuilder) Value(value *WebsiteJobPostCustomizedValue) *WebsiteJobPostCustomizedDataBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *WebsiteJobPostCustomizedDataBuilder) Build() *WebsiteJobPostCustomizedData {
	req := &WebsiteJobPostCustomizedData{}
	if builder.objectIdFlag {
		req.ObjectId = &builder.objectId

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.valueFlag {
		req.Value = builder.value
	}
	return req
}

type WebsiteJobPostCustomizedOption struct {
	Key *string `json:"key,omitempty"` // 选项 ID

	Name *I18n `json:"name,omitempty"` // 选项名称
}

type WebsiteJobPostCustomizedOptionBuilder struct {
	key     string // 选项 ID
	keyFlag bool

	name     *I18n // 选项名称
	nameFlag bool
}

func NewWebsiteJobPostCustomizedOptionBuilder() *WebsiteJobPostCustomizedOptionBuilder {
	builder := &WebsiteJobPostCustomizedOptionBuilder{}
	return builder
}

// 选项 ID
//
// 示例值：AA
func (builder *WebsiteJobPostCustomizedOptionBuilder) Key(key string) *WebsiteJobPostCustomizedOptionBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// 选项名称
//
// 示例值：
func (builder *WebsiteJobPostCustomizedOptionBuilder) Name(name *I18n) *WebsiteJobPostCustomizedOptionBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *WebsiteJobPostCustomizedOptionBuilder) Build() *WebsiteJobPostCustomizedOption {
	req := &WebsiteJobPostCustomizedOption{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.nameFlag {
		req.Name = builder.name
	}
	return req
}

type WebsiteJobPostCustomizedTimeRange struct {
	StartTime *string `json:"start_time,omitempty"` // 开始时间

	EndTime *string `json:"end_time,omitempty"` // 结束时间
}

type WebsiteJobPostCustomizedTimeRangeBuilder struct {
	startTime     string // 开始时间
	startTimeFlag bool

	endTime     string // 结束时间
	endTimeFlag bool
}

func NewWebsiteJobPostCustomizedTimeRangeBuilder() *WebsiteJobPostCustomizedTimeRangeBuilder {
	builder := &WebsiteJobPostCustomizedTimeRangeBuilder{}
	return builder
}

// 开始时间
//
// 示例值：AA
func (builder *WebsiteJobPostCustomizedTimeRangeBuilder) StartTime(startTime string) *WebsiteJobPostCustomizedTimeRangeBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 结束时间
//
// 示例值：AA
func (builder *WebsiteJobPostCustomizedTimeRangeBuilder) EndTime(endTime string) *WebsiteJobPostCustomizedTimeRangeBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *WebsiteJobPostCustomizedTimeRangeBuilder) Build() *WebsiteJobPostCustomizedTimeRange {
	req := &WebsiteJobPostCustomizedTimeRange{}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type WebsiteJobPostCustomizedValue struct {
	Content *string `json:"content,omitempty"` // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值

	Option *WebsiteJobPostCustomizedOption `json:"option,omitempty"` // 当字段类型为单选时，从此字段取值

	OptionList []*WebsiteJobPostCustomizedOption `json:"option_list,omitempty"` // 当字段类型为多选时，从此字段取值

	TimeRange *WebsiteJobPostCustomizedTimeRange `json:"time_range,omitempty"` // 当字段类型为时间段时，从此字段取值

	Time *string `json:"time,omitempty"` // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳

	Number *string `json:"number,omitempty"` // 当字段类型为数字时，从此字段取值
}

type WebsiteJobPostCustomizedValueBuilder struct {
	content     string // 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
	contentFlag bool

	option     *WebsiteJobPostCustomizedOption // 当字段类型为单选时，从此字段取值
	optionFlag bool

	optionList     []*WebsiteJobPostCustomizedOption // 当字段类型为多选时，从此字段取值
	optionListFlag bool

	timeRange     *WebsiteJobPostCustomizedTimeRange // 当字段类型为时间段时，从此字段取值
	timeRangeFlag bool

	time     string // 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
	timeFlag bool

	number     string // 当字段类型为数字时，从此字段取值
	numberFlag bool
}

func NewWebsiteJobPostCustomizedValueBuilder() *WebsiteJobPostCustomizedValueBuilder {
	builder := &WebsiteJobPostCustomizedValueBuilder{}
	return builder
}

// 当字段类型为单行文本、多行文本、模块、默认字段时，从此字段取值
//
// 示例值：text
func (builder *WebsiteJobPostCustomizedValueBuilder) Content(content string) *WebsiteJobPostCustomizedValueBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 当字段类型为单选时，从此字段取值
//
// 示例值：
func (builder *WebsiteJobPostCustomizedValueBuilder) Option(option *WebsiteJobPostCustomizedOption) *WebsiteJobPostCustomizedValueBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 当字段类型为多选时，从此字段取值
//
// 示例值：
func (builder *WebsiteJobPostCustomizedValueBuilder) OptionList(optionList []*WebsiteJobPostCustomizedOption) *WebsiteJobPostCustomizedValueBuilder {
	builder.optionList = optionList
	builder.optionListFlag = true
	return builder
}

// 当字段类型为时间段时，从此字段取值
//
// 示例值：
func (builder *WebsiteJobPostCustomizedValueBuilder) TimeRange(timeRange *WebsiteJobPostCustomizedTimeRange) *WebsiteJobPostCustomizedValueBuilder {
	builder.timeRange = timeRange
	builder.timeRangeFlag = true
	return builder
}

// 当字段类型为日期选择、月份选择、年份选择时，从此字段取值，该字段是毫秒级时间戳
//
// 示例值：1625456721000
func (builder *WebsiteJobPostCustomizedValueBuilder) Time(time string) *WebsiteJobPostCustomizedValueBuilder {
	builder.time = time
	builder.timeFlag = true
	return builder
}

// 当字段类型为数字时，从此字段取值
//
// 示例值：111
func (builder *WebsiteJobPostCustomizedValueBuilder) Number(number string) *WebsiteJobPostCustomizedValueBuilder {
	builder.number = number
	builder.numberFlag = true
	return builder
}

func (builder *WebsiteJobPostCustomizedValueBuilder) Build() *WebsiteJobPostCustomizedValue {
	req := &WebsiteJobPostCustomizedValue{}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.optionFlag {
		req.Option = builder.option
	}
	if builder.optionListFlag {
		req.OptionList = builder.optionList
	}
	if builder.timeRangeFlag {
		req.TimeRange = builder.timeRange
	}
	if builder.timeFlag {
		req.Time = &builder.time

	}
	if builder.numberFlag {
		req.Number = &builder.number

	}
	return req
}

type WebsiteUser struct {
	UserId *string `json:"user_id,omitempty"` // 用户 ID

	Name *string `json:"name,omitempty"` // 姓名

	Email *string `json:"email,omitempty"` // 邮箱

	ExternalId *string `json:"external_id,omitempty"` // 外部用户 ID

	Mobile *string `json:"mobile,omitempty"` // 电话，请和区号对应的国家码一并提供

	MobileCountryCode *string `json:"mobile_country_code,omitempty"` // 国家码，请和电话一并提供，可从「获取地址码」查询
}

type WebsiteUserBuilder struct {
	userId     string // 用户 ID
	userIdFlag bool

	name     string // 姓名
	nameFlag bool

	email     string // 邮箱
	emailFlag bool

	externalId     string // 外部用户 ID
	externalIdFlag bool

	mobile     string // 电话，请和区号对应的国家码一并提供
	mobileFlag bool

	mobileCountryCode     string // 国家码，请和电话一并提供，可从「获取地址码」查询
	mobileCountryCodeFlag bool
}

func NewWebsiteUserBuilder() *WebsiteUserBuilder {
	builder := &WebsiteUserBuilder{}
	return builder
}

// 用户 ID
//
// 示例值：6960663240925956620
func (builder *WebsiteUserBuilder) UserId(userId string) *WebsiteUserBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 姓名
//
// 示例值：dan27
func (builder *WebsiteUserBuilder) Name(name string) *WebsiteUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 邮箱
//
// 示例值：dan27@163.com
func (builder *WebsiteUserBuilder) Email(email string) *WebsiteUserBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 外部用户 ID
//
// 示例值：6960663240925956621
func (builder *WebsiteUserBuilder) ExternalId(externalId string) *WebsiteUserBuilder {
	builder.externalId = externalId
	builder.externalIdFlag = true
	return builder
}

// 电话，请和区号对应的国家码一并提供
//
// 示例值：182900291190
func (builder *WebsiteUserBuilder) Mobile(mobile string) *WebsiteUserBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 国家码，请和电话一并提供，可从「获取地址码」查询
//
// 示例值：CN_1
func (builder *WebsiteUserBuilder) MobileCountryCode(mobileCountryCode string) *WebsiteUserBuilder {
	builder.mobileCountryCode = mobileCountryCode
	builder.mobileCountryCodeFlag = true
	return builder
}

func (builder *WebsiteUserBuilder) Build() *WebsiteUser {
	req := &WebsiteUser{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.externalIdFlag {
		req.ExternalId = &builder.externalId

	}
	if builder.mobileFlag {
		req.Mobile = &builder.mobile

	}
	if builder.mobileCountryCodeFlag {
		req.MobileCountryCode = &builder.mobileCountryCode

	}
	return req
}

type WorksInfo struct {
	AttachmentId *string `json:"attachment_id,omitempty"` // 作品集附件ID

	Desc *string `json:"desc,omitempty"` // 作品描述

	Link *string `json:"link,omitempty"` // 作品链接
}

type WorksInfoBuilder struct {
	attachmentId     string // 作品集附件ID
	attachmentIdFlag bool

	desc     string // 作品描述
	descFlag bool

	link     string // 作品链接
	linkFlag bool
}

func NewWorksInfoBuilder() *WorksInfoBuilder {
	builder := &WorksInfoBuilder{}
	return builder
}

// 作品集附件ID
//
// 示例值：
func (builder *WorksInfoBuilder) AttachmentId(attachmentId string) *WorksInfoBuilder {
	builder.attachmentId = attachmentId
	builder.attachmentIdFlag = true
	return builder
}

// 作品描述
//
// 示例值：
func (builder *WorksInfoBuilder) Desc(desc string) *WorksInfoBuilder {
	builder.desc = desc
	builder.descFlag = true
	return builder
}

// 作品链接
//
// 示例值：
func (builder *WorksInfoBuilder) Link(link string) *WorksInfoBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

func (builder *WorksInfoBuilder) Build() *WorksInfo {
	req := &WorksInfo{}
	if builder.attachmentIdFlag {
		req.AttachmentId = &builder.attachmentId

	}
	if builder.descFlag {
		req.Desc = &builder.desc

	}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	return req
}

type PublishAdvertisementReqBodyBuilder struct {
	jobChannelId     string // 职位渠道 ID，选择要发布的招聘官网，单次仅可发布 1 个渠道，1. 内推平台提供对应的 id = 3，2. 官网渠道的 ID 通过接口「获取官网列表」获取
	jobChannelIdFlag bool
}

func NewPublishAdvertisementReqBodyBuilder() *PublishAdvertisementReqBodyBuilder {
	builder := &PublishAdvertisementReqBodyBuilder{}
	return builder
}

// 职位渠道 ID，选择要发布的招聘官网，单次仅可发布 1 个渠道，1. 内推平台提供对应的 id = 3，2. 官网渠道的 ID 通过接口「获取官网列表」获取
//
//示例值：6960663240925956631
func (builder *PublishAdvertisementReqBodyBuilder) JobChannelId(jobChannelId string) *PublishAdvertisementReqBodyBuilder {
	builder.jobChannelId = jobChannelId
	builder.jobChannelIdFlag = true
	return builder
}

func (builder *PublishAdvertisementReqBodyBuilder) Build() *PublishAdvertisementReqBody {
	req := &PublishAdvertisementReqBody{}
	if builder.jobChannelIdFlag {
		req.JobChannelId = &builder.jobChannelId
	}
	return req
}

type PublishAdvertisementPathReqBodyBuilder struct {
	jobChannelId     string
	jobChannelIdFlag bool
}

func NewPublishAdvertisementPathReqBodyBuilder() *PublishAdvertisementPathReqBodyBuilder {
	builder := &PublishAdvertisementPathReqBodyBuilder{}
	return builder
}

// 职位渠道 ID，选择要发布的招聘官网，单次仅可发布 1 个渠道，1. 内推平台提供对应的 id = 3，2. 官网渠道的 ID 通过接口「获取官网列表」获取
//
// 示例值：6960663240925956631
func (builder *PublishAdvertisementPathReqBodyBuilder) JobChannelId(jobChannelId string) *PublishAdvertisementPathReqBodyBuilder {
	builder.jobChannelId = jobChannelId
	builder.jobChannelIdFlag = true
	return builder
}

func (builder *PublishAdvertisementPathReqBodyBuilder) Build() (*PublishAdvertisementReqBody, error) {
	req := &PublishAdvertisementReqBody{}
	if builder.jobChannelIdFlag {
		req.JobChannelId = &builder.jobChannelId
	}
	return req, nil
}

type PublishAdvertisementReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *PublishAdvertisementReqBody
}

func NewPublishAdvertisementReqBuilder() *PublishAdvertisementReqBuilder {
	builder := &PublishAdvertisementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位广告 ID
//
// 示例值：6960663240925956660
func (builder *PublishAdvertisementReqBuilder) AdvertisementId(advertisementId string) *PublishAdvertisementReqBuilder {
	builder.apiReq.PathParams.Set("advertisement_id", fmt.Sprint(advertisementId))
	return builder
}

// 支持把职位发布至招聘官网、内推平台
func (builder *PublishAdvertisementReqBuilder) Body(body *PublishAdvertisementReqBody) *PublishAdvertisementReqBuilder {
	builder.body = body
	return builder
}

func (builder *PublishAdvertisementReqBuilder) Build() *PublishAdvertisementReq {
	req := &PublishAdvertisementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type PublishAdvertisementReqBody struct {
	JobChannelId *string `json:"job_channel_id,omitempty"` // 职位渠道 ID，选择要发布的招聘官网，单次仅可发布 1 个渠道，1. 内推平台提供对应的 id = 3，2. 官网渠道的 ID 通过接口「获取官网列表」获取
}

type PublishAdvertisementReq struct {
	apiReq *larkcore.ApiReq
	Body   *PublishAdvertisementReqBody `body:""`
}

type PublishAdvertisementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *PublishAdvertisementResp) Success() bool {
	return resp.Code == 0
}

type BatchQueryAgencyReqBodyBuilder struct {
	agencySupplierIdList     []string // 猎头供应商 ID 列表，当传递此值，以此值为准，其余查询字段失效
	agencySupplierIdListFlag bool

	keyword     string // 搜索关键字，可传入名称或邮箱
	keywordFlag bool

	filterList     []*CommonFilter // 筛选项，相同的 Key 仅可传一次
	filterListFlag bool
}

func NewBatchQueryAgencyReqBodyBuilder() *BatchQueryAgencyReqBodyBuilder {
	builder := &BatchQueryAgencyReqBodyBuilder{}
	return builder
}

// 猎头供应商 ID 列表，当传递此值，以此值为准，其余查询字段失效
//
//示例值：
func (builder *BatchQueryAgencyReqBodyBuilder) AgencySupplierIdList(agencySupplierIdList []string) *BatchQueryAgencyReqBodyBuilder {
	builder.agencySupplierIdList = agencySupplierIdList
	builder.agencySupplierIdListFlag = true
	return builder
}

// 搜索关键字，可传入名称或邮箱
//
//示例值：猎头
func (builder *BatchQueryAgencyReqBodyBuilder) Keyword(keyword string) *BatchQueryAgencyReqBodyBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 筛选项，相同的 Key 仅可传一次
//
//示例值：
func (builder *BatchQueryAgencyReqBodyBuilder) FilterList(filterList []*CommonFilter) *BatchQueryAgencyReqBodyBuilder {
	builder.filterList = filterList
	builder.filterListFlag = true
	return builder
}

func (builder *BatchQueryAgencyReqBodyBuilder) Build() *BatchQueryAgencyReqBody {
	req := &BatchQueryAgencyReqBody{}
	if builder.agencySupplierIdListFlag {
		req.AgencySupplierIdList = builder.agencySupplierIdList
	}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword
	}
	if builder.filterListFlag {
		req.FilterList = builder.filterList
	}
	return req
}

type BatchQueryAgencyPathReqBodyBuilder struct {
	agencySupplierIdList     []string
	agencySupplierIdListFlag bool
	keyword                  string
	keywordFlag              bool
	filterList               []*CommonFilter
	filterListFlag           bool
}

func NewBatchQueryAgencyPathReqBodyBuilder() *BatchQueryAgencyPathReqBodyBuilder {
	builder := &BatchQueryAgencyPathReqBodyBuilder{}
	return builder
}

// 猎头供应商 ID 列表，当传递此值，以此值为准，其余查询字段失效
//
// 示例值：
func (builder *BatchQueryAgencyPathReqBodyBuilder) AgencySupplierIdList(agencySupplierIdList []string) *BatchQueryAgencyPathReqBodyBuilder {
	builder.agencySupplierIdList = agencySupplierIdList
	builder.agencySupplierIdListFlag = true
	return builder
}

// 搜索关键字，可传入名称或邮箱
//
// 示例值：猎头
func (builder *BatchQueryAgencyPathReqBodyBuilder) Keyword(keyword string) *BatchQueryAgencyPathReqBodyBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 筛选项，相同的 Key 仅可传一次
//
// 示例值：
func (builder *BatchQueryAgencyPathReqBodyBuilder) FilterList(filterList []*CommonFilter) *BatchQueryAgencyPathReqBodyBuilder {
	builder.filterList = filterList
	builder.filterListFlag = true
	return builder
}

func (builder *BatchQueryAgencyPathReqBodyBuilder) Build() (*BatchQueryAgencyReqBody, error) {
	req := &BatchQueryAgencyReqBody{}
	if builder.agencySupplierIdListFlag {
		req.AgencySupplierIdList = builder.agencySupplierIdList
	}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword
	}
	if builder.filterListFlag {
		req.FilterList = builder.filterList
	}
	return req, nil
}

type BatchQueryAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchQueryAgencyReqBody
}

func NewBatchQueryAgencyReqBuilder() *BatchQueryAgencyReqBuilder {
	builder := &BatchQueryAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *BatchQueryAgencyReqBuilder) UserIdType(userIdType string) *BatchQueryAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *BatchQueryAgencyReqBuilder) PageToken(pageToken string) *BatchQueryAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量
//
// 示例值：10
func (builder *BatchQueryAgencyReqBuilder) PageSize(pageSize int) *BatchQueryAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

//
func (builder *BatchQueryAgencyReqBuilder) Body(body *BatchQueryAgencyReqBody) *BatchQueryAgencyReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchQueryAgencyReqBuilder) Build() *BatchQueryAgencyReq {
	req := &BatchQueryAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchQueryAgencyReqBody struct {
	AgencySupplierIdList []string `json:"agency_supplier_id_list,omitempty"` // 猎头供应商 ID 列表，当传递此值，以此值为准，其余查询字段失效

	Keyword *string `json:"keyword,omitempty"` // 搜索关键字，可传入名称或邮箱

	FilterList []*CommonFilter `json:"filter_list,omitempty"` // 筛选项，相同的 Key 仅可传一次
}

type BatchQueryAgencyReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchQueryAgencyReqBody `body:""`
}

type BatchQueryAgencyRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*AgencySupplier `json:"items,omitempty"` //
}

type BatchQueryAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchQueryAgencyRespData `json:"data"` // 业务数据
}

func (resp *BatchQueryAgencyResp) Success() bool {
	return resp.Code == 0
}

type GetAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetAgencyReqBuilder() *GetAgencyReqBuilder {
	builder := &GetAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 猎头供应商ID
//
// 示例值：6898173495386147079
func (builder *GetAgencyReqBuilder) AgencyId(agencyId string) *GetAgencyReqBuilder {
	builder.apiReq.PathParams.Set("agency_id", fmt.Sprint(agencyId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *GetAgencyReqBuilder) UserIdType(userIdType string) *GetAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetAgencyReqBuilder) Build() *GetAgencyReq {
	req := &GetAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetAgencyReq struct {
	apiReq *larkcore.ApiReq
}

type GetAgencyRespData struct {
	Agency *Agency `json:"agency,omitempty"` // 数据
}

type GetAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetAgencyRespData `json:"data"` // 业务数据
}

func (resp *GetAgencyResp) Success() bool {
	return resp.Code == 0
}

type GetAgencyAccountAgencyReqBodyBuilder struct {
	supplierId     string // 猎头供应商 ID
	supplierIdFlag bool

	status     int // 猎头状态
	statusFlag bool

	role     int // 角色
	roleFlag bool
}

func NewGetAgencyAccountAgencyReqBodyBuilder() *GetAgencyAccountAgencyReqBodyBuilder {
	builder := &GetAgencyAccountAgencyReqBodyBuilder{}
	return builder
}

// 猎头供应商 ID
//
//示例值：7398623155442682156
func (builder *GetAgencyAccountAgencyReqBodyBuilder) SupplierId(supplierId string) *GetAgencyAccountAgencyReqBodyBuilder {
	builder.supplierId = supplierId
	builder.supplierIdFlag = true
	return builder
}

// 猎头状态
//
//示例值：1
func (builder *GetAgencyAccountAgencyReqBodyBuilder) Status(status int) *GetAgencyAccountAgencyReqBodyBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 角色
//
//示例值：1
func (builder *GetAgencyAccountAgencyReqBodyBuilder) Role(role int) *GetAgencyAccountAgencyReqBodyBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

func (builder *GetAgencyAccountAgencyReqBodyBuilder) Build() *GetAgencyAccountAgencyReqBody {
	req := &GetAgencyAccountAgencyReqBody{}
	if builder.supplierIdFlag {
		req.SupplierId = &builder.supplierId
	}
	if builder.statusFlag {
		req.Status = &builder.status
	}
	if builder.roleFlag {
		req.Role = &builder.role
	}
	return req
}

type GetAgencyAccountAgencyPathReqBodyBuilder struct {
	supplierId     string
	supplierIdFlag bool
	status         int
	statusFlag     bool
	role           int
	roleFlag       bool
}

func NewGetAgencyAccountAgencyPathReqBodyBuilder() *GetAgencyAccountAgencyPathReqBodyBuilder {
	builder := &GetAgencyAccountAgencyPathReqBodyBuilder{}
	return builder
}

// 猎头供应商 ID
//
// 示例值：7398623155442682156
func (builder *GetAgencyAccountAgencyPathReqBodyBuilder) SupplierId(supplierId string) *GetAgencyAccountAgencyPathReqBodyBuilder {
	builder.supplierId = supplierId
	builder.supplierIdFlag = true
	return builder
}

// 猎头状态
//
// 示例值：1
func (builder *GetAgencyAccountAgencyPathReqBodyBuilder) Status(status int) *GetAgencyAccountAgencyPathReqBodyBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 角色
//
// 示例值：1
func (builder *GetAgencyAccountAgencyPathReqBodyBuilder) Role(role int) *GetAgencyAccountAgencyPathReqBodyBuilder {
	builder.role = role
	builder.roleFlag = true
	return builder
}

func (builder *GetAgencyAccountAgencyPathReqBodyBuilder) Build() (*GetAgencyAccountAgencyReqBody, error) {
	req := &GetAgencyAccountAgencyReqBody{}
	if builder.supplierIdFlag {
		req.SupplierId = &builder.supplierId
	}
	if builder.statusFlag {
		req.Status = &builder.status
	}
	if builder.roleFlag {
		req.Role = &builder.role
	}
	return req, nil
}

type GetAgencyAccountAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *GetAgencyAccountAgencyReqBody
}

func NewGetAgencyAccountAgencyReqBuilder() *GetAgencyAccountAgencyReqBuilder {
	builder := &GetAgencyAccountAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetAgencyAccountAgencyReqBuilder) UserIdType(userIdType string) *GetAgencyAccountAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *GetAgencyAccountAgencyReqBuilder) PageToken(pageToken string) *GetAgencyAccountAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量
//
// 示例值：10
func (builder *GetAgencyAccountAgencyReqBuilder) PageSize(pageSize int) *GetAgencyAccountAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

//
func (builder *GetAgencyAccountAgencyReqBuilder) Body(body *GetAgencyAccountAgencyReqBody) *GetAgencyAccountAgencyReqBuilder {
	builder.body = body
	return builder
}

func (builder *GetAgencyAccountAgencyReqBuilder) Build() *GetAgencyAccountAgencyReq {
	req := &GetAgencyAccountAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type GetAgencyAccountAgencyReqBody struct {
	SupplierId *string `json:"supplier_id,omitempty"` // 猎头供应商 ID

	Status *int `json:"status,omitempty"` // 猎头状态

	Role *int `json:"role,omitempty"` // 角色
}

type GetAgencyAccountAgencyReq struct {
	apiReq *larkcore.ApiReq
	Body   *GetAgencyAccountAgencyReqBody `body:""`
}

type GetAgencyAccountAgencyRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*AgencyAccount `json:"items,omitempty"` //
}

type GetAgencyAccountAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetAgencyAccountAgencyRespData `json:"data"` // 业务数据
}

func (resp *GetAgencyAccountAgencyResp) Success() bool {
	return resp.Code == 0
}

type OperateAgencyAccountAgencyReqBodyBuilder struct {
	option     int // 操作类型
	optionFlag bool

	id     string // 猎头 ID
	idFlag bool

	reason     string // 禁用原因，仅当禁用操作时，必填
	reasonFlag bool
}

func NewOperateAgencyAccountAgencyReqBodyBuilder() *OperateAgencyAccountAgencyReqBodyBuilder {
	builder := &OperateAgencyAccountAgencyReqBodyBuilder{}
	return builder
}

// 操作类型
//
//示例值：
func (builder *OperateAgencyAccountAgencyReqBodyBuilder) Option(option int) *OperateAgencyAccountAgencyReqBodyBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 猎头 ID
//
//示例值：7398623155442682156
func (builder *OperateAgencyAccountAgencyReqBodyBuilder) Id(id string) *OperateAgencyAccountAgencyReqBodyBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 禁用原因，仅当禁用操作时，必填
//
//示例值：这个人特别不负责
func (builder *OperateAgencyAccountAgencyReqBodyBuilder) Reason(reason string) *OperateAgencyAccountAgencyReqBodyBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

func (builder *OperateAgencyAccountAgencyReqBodyBuilder) Build() *OperateAgencyAccountAgencyReqBody {
	req := &OperateAgencyAccountAgencyReqBody{}
	if builder.optionFlag {
		req.Option = &builder.option
	}
	if builder.idFlag {
		req.Id = &builder.id
	}
	if builder.reasonFlag {
		req.Reason = &builder.reason
	}
	return req
}

type OperateAgencyAccountAgencyPathReqBodyBuilder struct {
	option     int
	optionFlag bool
	id         string
	idFlag     bool
	reason     string
	reasonFlag bool
}

func NewOperateAgencyAccountAgencyPathReqBodyBuilder() *OperateAgencyAccountAgencyPathReqBodyBuilder {
	builder := &OperateAgencyAccountAgencyPathReqBodyBuilder{}
	return builder
}

// 操作类型
//
// 示例值：
func (builder *OperateAgencyAccountAgencyPathReqBodyBuilder) Option(option int) *OperateAgencyAccountAgencyPathReqBodyBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 猎头 ID
//
// 示例值：7398623155442682156
func (builder *OperateAgencyAccountAgencyPathReqBodyBuilder) Id(id string) *OperateAgencyAccountAgencyPathReqBodyBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 禁用原因，仅当禁用操作时，必填
//
// 示例值：这个人特别不负责
func (builder *OperateAgencyAccountAgencyPathReqBodyBuilder) Reason(reason string) *OperateAgencyAccountAgencyPathReqBodyBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

func (builder *OperateAgencyAccountAgencyPathReqBodyBuilder) Build() (*OperateAgencyAccountAgencyReqBody, error) {
	req := &OperateAgencyAccountAgencyReqBody{}
	if builder.optionFlag {
		req.Option = &builder.option
	}
	if builder.idFlag {
		req.Id = &builder.id
	}
	if builder.reasonFlag {
		req.Reason = &builder.reason
	}
	return req, nil
}

type OperateAgencyAccountAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *OperateAgencyAccountAgencyReqBody
}

func NewOperateAgencyAccountAgencyReqBuilder() *OperateAgencyAccountAgencyReqBuilder {
	builder := &OperateAgencyAccountAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *OperateAgencyAccountAgencyReqBuilder) Body(body *OperateAgencyAccountAgencyReqBody) *OperateAgencyAccountAgencyReqBuilder {
	builder.body = body
	return builder
}

func (builder *OperateAgencyAccountAgencyReqBuilder) Build() *OperateAgencyAccountAgencyReq {
	req := &OperateAgencyAccountAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type OperateAgencyAccountAgencyReqBody struct {
	Option *int `json:"option,omitempty"` // 操作类型

	Id *string `json:"id,omitempty"` // 猎头 ID

	Reason *string `json:"reason,omitempty"` // 禁用原因，仅当禁用操作时，必填
}

type OperateAgencyAccountAgencyReq struct {
	apiReq *larkcore.ApiReq
	Body   *OperateAgencyAccountAgencyReqBody `body:""`
}

type OperateAgencyAccountAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *OperateAgencyAccountAgencyResp) Success() bool {
	return resp.Code == 0
}

type ProtectAgencyReqBodyBuilder struct {
	talentId     string // 人才ID
	talentIdFlag bool

	supplierId     string // 供应商ID
	supplierIdFlag bool

	consultantId     string // 猎头顾问ID
	consultantIdFlag bool

	protectCreateTime     int // 保护期创建时间
	protectCreateTimeFlag bool

	protectExpireTime     int // 保护期过期时间
	protectExpireTimeFlag bool

	comment     string // 推荐语
	commentFlag bool

	currentSalary     string // 当前薪资
	currentSalaryFlag bool

	expectedSalary     string // 预期薪资
	expectedSalaryFlag bool
}

func NewProtectAgencyReqBodyBuilder() *ProtectAgencyReqBodyBuilder {
	builder := &ProtectAgencyReqBodyBuilder{}
	return builder
}

// 人才ID
//
//示例值：6962051712422398239
func (builder *ProtectAgencyReqBodyBuilder) TalentId(talentId string) *ProtectAgencyReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 供应商ID
//
//示例值：6898173495386147079
func (builder *ProtectAgencyReqBodyBuilder) SupplierId(supplierId string) *ProtectAgencyReqBodyBuilder {
	builder.supplierId = supplierId
	builder.supplierIdFlag = true
	return builder
}

// 猎头顾问ID
//
//示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *ProtectAgencyReqBodyBuilder) ConsultantId(consultantId string) *ProtectAgencyReqBodyBuilder {
	builder.consultantId = consultantId
	builder.consultantIdFlag = true
	return builder
}

// 保护期创建时间
//
//示例值：1610695587000
func (builder *ProtectAgencyReqBodyBuilder) ProtectCreateTime(protectCreateTime int) *ProtectAgencyReqBodyBuilder {
	builder.protectCreateTime = protectCreateTime
	builder.protectCreateTimeFlag = true
	return builder
}

// 保护期过期时间
//
//示例值：1626333987000
func (builder *ProtectAgencyReqBodyBuilder) ProtectExpireTime(protectExpireTime int) *ProtectAgencyReqBodyBuilder {
	builder.protectExpireTime = protectExpireTime
	builder.protectExpireTimeFlag = true
	return builder
}

// 推荐语
//
//示例值：此候选人非常优秀，建议录用。
func (builder *ProtectAgencyReqBodyBuilder) Comment(comment string) *ProtectAgencyReqBodyBuilder {
	builder.comment = comment
	builder.commentFlag = true
	return builder
}

// 当前薪资
//
//示例值：15k * 13
func (builder *ProtectAgencyReqBodyBuilder) CurrentSalary(currentSalary string) *ProtectAgencyReqBodyBuilder {
	builder.currentSalary = currentSalary
	builder.currentSalaryFlag = true
	return builder
}

// 预期薪资
//
//示例值：18k * 16
func (builder *ProtectAgencyReqBodyBuilder) ExpectedSalary(expectedSalary string) *ProtectAgencyReqBodyBuilder {
	builder.expectedSalary = expectedSalary
	builder.expectedSalaryFlag = true
	return builder
}

func (builder *ProtectAgencyReqBodyBuilder) Build() *ProtectAgencyReqBody {
	req := &ProtectAgencyReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.supplierIdFlag {
		req.SupplierId = &builder.supplierId
	}
	if builder.consultantIdFlag {
		req.ConsultantId = &builder.consultantId
	}
	if builder.protectCreateTimeFlag {
		req.ProtectCreateTime = &builder.protectCreateTime
	}
	if builder.protectExpireTimeFlag {
		req.ProtectExpireTime = &builder.protectExpireTime
	}
	if builder.commentFlag {
		req.Comment = &builder.comment
	}
	if builder.currentSalaryFlag {
		req.CurrentSalary = &builder.currentSalary
	}
	if builder.expectedSalaryFlag {
		req.ExpectedSalary = &builder.expectedSalary
	}
	return req
}

type ProtectAgencyPathReqBodyBuilder struct {
	talentId              string
	talentIdFlag          bool
	supplierId            string
	supplierIdFlag        bool
	consultantId          string
	consultantIdFlag      bool
	protectCreateTime     int
	protectCreateTimeFlag bool
	protectExpireTime     int
	protectExpireTimeFlag bool
	comment               string
	commentFlag           bool
	currentSalary         string
	currentSalaryFlag     bool
	expectedSalary        string
	expectedSalaryFlag    bool
}

func NewProtectAgencyPathReqBodyBuilder() *ProtectAgencyPathReqBodyBuilder {
	builder := &ProtectAgencyPathReqBodyBuilder{}
	return builder
}

// 人才ID
//
// 示例值：6962051712422398239
func (builder *ProtectAgencyPathReqBodyBuilder) TalentId(talentId string) *ProtectAgencyPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 供应商ID
//
// 示例值：6898173495386147079
func (builder *ProtectAgencyPathReqBodyBuilder) SupplierId(supplierId string) *ProtectAgencyPathReqBodyBuilder {
	builder.supplierId = supplierId
	builder.supplierIdFlag = true
	return builder
}

// 猎头顾问ID
//
// 示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *ProtectAgencyPathReqBodyBuilder) ConsultantId(consultantId string) *ProtectAgencyPathReqBodyBuilder {
	builder.consultantId = consultantId
	builder.consultantIdFlag = true
	return builder
}

// 保护期创建时间
//
// 示例值：1610695587000
func (builder *ProtectAgencyPathReqBodyBuilder) ProtectCreateTime(protectCreateTime int) *ProtectAgencyPathReqBodyBuilder {
	builder.protectCreateTime = protectCreateTime
	builder.protectCreateTimeFlag = true
	return builder
}

// 保护期过期时间
//
// 示例值：1626333987000
func (builder *ProtectAgencyPathReqBodyBuilder) ProtectExpireTime(protectExpireTime int) *ProtectAgencyPathReqBodyBuilder {
	builder.protectExpireTime = protectExpireTime
	builder.protectExpireTimeFlag = true
	return builder
}

// 推荐语
//
// 示例值：此候选人非常优秀，建议录用。
func (builder *ProtectAgencyPathReqBodyBuilder) Comment(comment string) *ProtectAgencyPathReqBodyBuilder {
	builder.comment = comment
	builder.commentFlag = true
	return builder
}

// 当前薪资
//
// 示例值：15k * 13
func (builder *ProtectAgencyPathReqBodyBuilder) CurrentSalary(currentSalary string) *ProtectAgencyPathReqBodyBuilder {
	builder.currentSalary = currentSalary
	builder.currentSalaryFlag = true
	return builder
}

// 预期薪资
//
// 示例值：18k * 16
func (builder *ProtectAgencyPathReqBodyBuilder) ExpectedSalary(expectedSalary string) *ProtectAgencyPathReqBodyBuilder {
	builder.expectedSalary = expectedSalary
	builder.expectedSalaryFlag = true
	return builder
}

func (builder *ProtectAgencyPathReqBodyBuilder) Build() (*ProtectAgencyReqBody, error) {
	req := &ProtectAgencyReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.supplierIdFlag {
		req.SupplierId = &builder.supplierId
	}
	if builder.consultantIdFlag {
		req.ConsultantId = &builder.consultantId
	}
	if builder.protectCreateTimeFlag {
		req.ProtectCreateTime = &builder.protectCreateTime
	}
	if builder.protectExpireTimeFlag {
		req.ProtectExpireTime = &builder.protectExpireTime
	}
	if builder.commentFlag {
		req.Comment = &builder.comment
	}
	if builder.currentSalaryFlag {
		req.CurrentSalary = &builder.currentSalary
	}
	if builder.expectedSalaryFlag {
		req.ExpectedSalary = &builder.expectedSalary
	}
	return req, nil
}

type ProtectAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ProtectAgencyReqBody
}

func NewProtectAgencyReqBuilder() *ProtectAgencyReqBuilder {
	builder := &ProtectAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *ProtectAgencyReqBuilder) UserIdType(userIdType string) *ProtectAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 设置猎头保护期
func (builder *ProtectAgencyReqBuilder) Body(body *ProtectAgencyReqBody) *ProtectAgencyReqBuilder {
	builder.body = body
	return builder
}

func (builder *ProtectAgencyReqBuilder) Build() *ProtectAgencyReq {
	req := &ProtectAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type ProtectAgencyReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才ID

	SupplierId *string `json:"supplier_id,omitempty"` // 供应商ID

	ConsultantId *string `json:"consultant_id,omitempty"` // 猎头顾问ID

	ProtectCreateTime *int `json:"protect_create_time,omitempty"` // 保护期创建时间

	ProtectExpireTime *int `json:"protect_expire_time,omitempty"` // 保护期过期时间

	Comment *string `json:"comment,omitempty"` // 推荐语

	CurrentSalary *string `json:"current_salary,omitempty"` // 当前薪资

	ExpectedSalary *string `json:"expected_salary,omitempty"` // 预期薪资
}

type ProtectAgencyReq struct {
	apiReq *larkcore.ApiReq
	Body   *ProtectAgencyReqBody `body:""`
}

type ProtectAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *ProtectAgencyResp) Success() bool {
	return resp.Code == 0
}

type ProtectSearchAgencyReqBodyBuilder struct {
	talentId     string // 人才id
	talentIdFlag bool
}

func NewProtectSearchAgencyReqBodyBuilder() *ProtectSearchAgencyReqBodyBuilder {
	builder := &ProtectSearchAgencyReqBodyBuilder{}
	return builder
}

// 人才id
//
//示例值：6930815272790114324
func (builder *ProtectSearchAgencyReqBodyBuilder) TalentId(talentId string) *ProtectSearchAgencyReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

func (builder *ProtectSearchAgencyReqBodyBuilder) Build() *ProtectSearchAgencyReqBody {
	req := &ProtectSearchAgencyReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	return req
}

type ProtectSearchAgencyPathReqBodyBuilder struct {
	talentId     string
	talentIdFlag bool
}

func NewProtectSearchAgencyPathReqBodyBuilder() *ProtectSearchAgencyPathReqBodyBuilder {
	builder := &ProtectSearchAgencyPathReqBodyBuilder{}
	return builder
}

// 人才id
//
// 示例值：6930815272790114324
func (builder *ProtectSearchAgencyPathReqBodyBuilder) TalentId(talentId string) *ProtectSearchAgencyPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

func (builder *ProtectSearchAgencyPathReqBodyBuilder) Build() (*ProtectSearchAgencyReqBody, error) {
	req := &ProtectSearchAgencyReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	return req, nil
}

type ProtectSearchAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ProtectSearchAgencyReqBody
}

func NewProtectSearchAgencyReqBuilder() *ProtectSearchAgencyReqBuilder {
	builder := &ProtectSearchAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *ProtectSearchAgencyReqBuilder) Body(body *ProtectSearchAgencyReqBody) *ProtectSearchAgencyReqBuilder {
	builder.body = body
	return builder
}

func (builder *ProtectSearchAgencyReqBuilder) Build() *ProtectSearchAgencyReq {
	req := &ProtectSearchAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type ProtectSearchAgencyReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才id
}

type ProtectSearchAgencyReq struct {
	apiReq *larkcore.ApiReq
	Body   *ProtectSearchAgencyReqBody `body:""`
}

type ProtectSearchAgencyRespData struct {
	IsOnboarded *bool `json:"is_onboarded,omitempty"` // 是否已入职

	OnboardedInProtection *bool `json:"onboarded_in_protection,omitempty"` // 是否在猎头保护期内入职

	OnboardedProtection *AgencyProtection `json:"onboarded_protection,omitempty"` // 入职所在保护期

	ProtectionList []*AgencyProtection `json:"protection_list,omitempty"` // 人才保护信息
}

type ProtectSearchAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ProtectSearchAgencyRespData `json:"data"` // 业务数据
}

func (resp *ProtectSearchAgencyResp) Success() bool {
	return resp.Code == 0
}

type QueryAgencyReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewQueryAgencyReqBuilder() *QueryAgencyReqBuilder {
	builder := &QueryAgencyReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 猎头供应商名称
//
// 示例值：超越猎头公司
func (builder *QueryAgencyReqBuilder) Name(name string) *QueryAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("name", fmt.Sprint(name))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *QueryAgencyReqBuilder) UserIdType(userIdType string) *QueryAgencyReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *QueryAgencyReqBuilder) Build() *QueryAgencyReq {
	req := &QueryAgencyReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type QueryAgencyReq struct {
	apiReq *larkcore.ApiReq
}

type QueryAgencyRespData struct {
	Items []*Agency `json:"items,omitempty"` // 数据
}

type QueryAgencyResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *QueryAgencyRespData `json:"data"` // 业务数据
}

func (resp *QueryAgencyResp) Success() bool {
	return resp.Code == 0
}

type CancelOnboardApplicationReqBodyBuilder struct {
	terminationType     int // 终止类型
	terminationTypeFlag bool

	terminationReasonIdList     []string // 终止原因 ID 列表
	terminationReasonIdListFlag bool

	terminationReasonNotes     string // 备注
	terminationReasonNotesFlag bool
}

func NewCancelOnboardApplicationReqBodyBuilder() *CancelOnboardApplicationReqBodyBuilder {
	builder := &CancelOnboardApplicationReqBodyBuilder{}
	return builder
}

// 终止类型
//
//示例值：1
func (builder *CancelOnboardApplicationReqBodyBuilder) TerminationType(terminationType int) *CancelOnboardApplicationReqBodyBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 终止原因 ID 列表
//
//示例值：11111
func (builder *CancelOnboardApplicationReqBodyBuilder) TerminationReasonIdList(terminationReasonIdList []string) *CancelOnboardApplicationReqBodyBuilder {
	builder.terminationReasonIdList = terminationReasonIdList
	builder.terminationReasonIdListFlag = true
	return builder
}

// 备注
//
//示例值：测试
func (builder *CancelOnboardApplicationReqBodyBuilder) TerminationReasonNotes(terminationReasonNotes string) *CancelOnboardApplicationReqBodyBuilder {
	builder.terminationReasonNotes = terminationReasonNotes
	builder.terminationReasonNotesFlag = true
	return builder
}

func (builder *CancelOnboardApplicationReqBodyBuilder) Build() *CancelOnboardApplicationReqBody {
	req := &CancelOnboardApplicationReqBody{}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType
	}
	if builder.terminationReasonIdListFlag {
		req.TerminationReasonIdList = builder.terminationReasonIdList
	}
	if builder.terminationReasonNotesFlag {
		req.TerminationReasonNotes = &builder.terminationReasonNotes
	}
	return req
}

type CancelOnboardApplicationPathReqBodyBuilder struct {
	terminationType             int
	terminationTypeFlag         bool
	terminationReasonIdList     []string
	terminationReasonIdListFlag bool
	terminationReasonNotes      string
	terminationReasonNotesFlag  bool
}

func NewCancelOnboardApplicationPathReqBodyBuilder() *CancelOnboardApplicationPathReqBodyBuilder {
	builder := &CancelOnboardApplicationPathReqBodyBuilder{}
	return builder
}

// 终止类型
//
// 示例值：1
func (builder *CancelOnboardApplicationPathReqBodyBuilder) TerminationType(terminationType int) *CancelOnboardApplicationPathReqBodyBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 终止原因 ID 列表
//
// 示例值：11111
func (builder *CancelOnboardApplicationPathReqBodyBuilder) TerminationReasonIdList(terminationReasonIdList []string) *CancelOnboardApplicationPathReqBodyBuilder {
	builder.terminationReasonIdList = terminationReasonIdList
	builder.terminationReasonIdListFlag = true
	return builder
}

// 备注
//
// 示例值：测试
func (builder *CancelOnboardApplicationPathReqBodyBuilder) TerminationReasonNotes(terminationReasonNotes string) *CancelOnboardApplicationPathReqBodyBuilder {
	builder.terminationReasonNotes = terminationReasonNotes
	builder.terminationReasonNotesFlag = true
	return builder
}

func (builder *CancelOnboardApplicationPathReqBodyBuilder) Build() (*CancelOnboardApplicationReqBody, error) {
	req := &CancelOnboardApplicationReqBody{}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType
	}
	if builder.terminationReasonIdListFlag {
		req.TerminationReasonIdList = builder.terminationReasonIdList
	}
	if builder.terminationReasonNotesFlag {
		req.TerminationReasonNotes = &builder.terminationReasonNotes
	}
	return req, nil
}

type CancelOnboardApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CancelOnboardApplicationReqBody
}

func NewCancelOnboardApplicationReqBuilder() *CancelOnboardApplicationReqBuilder {
	builder := &CancelOnboardApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：1111111111
func (builder *CancelOnboardApplicationReqBuilder) ApplicationId(applicationId string) *CancelOnboardApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 操作候选人取消入职
func (builder *CancelOnboardApplicationReqBuilder) Body(body *CancelOnboardApplicationReqBody) *CancelOnboardApplicationReqBuilder {
	builder.body = body
	return builder
}

func (builder *CancelOnboardApplicationReqBuilder) Build() *CancelOnboardApplicationReq {
	req := &CancelOnboardApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type CancelOnboardApplicationReqBody struct {
	TerminationType *int `json:"termination_type,omitempty"` // 终止类型

	TerminationReasonIdList []string `json:"termination_reason_id_list,omitempty"` // 终止原因 ID 列表

	TerminationReasonNotes *string `json:"termination_reason_notes,omitempty"` // 备注
}

type CancelOnboardApplicationReq struct {
	apiReq *larkcore.ApiReq
	Body   *CancelOnboardApplicationReqBody `body:""`
}

type CancelOnboardApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CancelOnboardApplicationResp) Success() bool {
	return resp.Code == 0
}

type CreateApplicationReqBodyBuilder struct {
	talentId     string // 人才ID
	talentIdFlag bool

	jobId     string // 职位ID
	jobIdFlag bool

	userId     string // 人员ID
	userIdFlag bool

	resumeSourceId     string // 简历来源 ID，可通过「获取简历来源」接口查询。若简历来源类型属于「员工转岗」或「实习生转正」，人才需处于已入职状态。
	resumeSourceIdFlag bool

	applicationPreferredCityCodeList     []string // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
	applicationPreferredCityCodeListFlag bool

	deliveryType     int // 投递方式
	deliveryTypeFlag bool
}

func NewCreateApplicationReqBodyBuilder() *CreateApplicationReqBodyBuilder {
	builder := &CreateApplicationReqBodyBuilder{}
	return builder
}

// 人才ID
//
//示例值：12312312312
func (builder *CreateApplicationReqBodyBuilder) TalentId(talentId string) *CreateApplicationReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位ID
//
//示例值：12312312312
func (builder *CreateApplicationReqBodyBuilder) JobId(jobId string) *CreateApplicationReqBodyBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 人员ID
//
//示例值：6930815272790114324
func (builder *CreateApplicationReqBodyBuilder) UserId(userId string) *CreateApplicationReqBodyBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 简历来源 ID，可通过「获取简历来源」接口查询。若简历来源类型属于「员工转岗」或「实习生转正」，人才需处于已入职状态。
//
//示例值：7115289562569591070
func (builder *CreateApplicationReqBodyBuilder) ResumeSourceId(resumeSourceId string) *CreateApplicationReqBodyBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
//
//示例值：["CT_1"]
func (builder *CreateApplicationReqBodyBuilder) ApplicationPreferredCityCodeList(applicationPreferredCityCodeList []string) *CreateApplicationReqBodyBuilder {
	builder.applicationPreferredCityCodeList = applicationPreferredCityCodeList
	builder.applicationPreferredCityCodeListFlag = true
	return builder
}

// 投递方式
//
//示例值：1
func (builder *CreateApplicationReqBodyBuilder) DeliveryType(deliveryType int) *CreateApplicationReqBodyBuilder {
	builder.deliveryType = deliveryType
	builder.deliveryTypeFlag = true
	return builder
}

func (builder *CreateApplicationReqBodyBuilder) Build() *CreateApplicationReqBody {
	req := &CreateApplicationReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId
	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId
	}
	if builder.applicationPreferredCityCodeListFlag {
		req.ApplicationPreferredCityCodeList = builder.applicationPreferredCityCodeList
	}
	if builder.deliveryTypeFlag {
		req.DeliveryType = &builder.deliveryType
	}
	return req
}

type CreateApplicationPathReqBodyBuilder struct {
	talentId                             string
	talentIdFlag                         bool
	jobId                                string
	jobIdFlag                            bool
	userId                               string
	userIdFlag                           bool
	resumeSourceId                       string
	resumeSourceIdFlag                   bool
	applicationPreferredCityCodeList     []string
	applicationPreferredCityCodeListFlag bool
	deliveryType                         int
	deliveryTypeFlag                     bool
}

func NewCreateApplicationPathReqBodyBuilder() *CreateApplicationPathReqBodyBuilder {
	builder := &CreateApplicationPathReqBodyBuilder{}
	return builder
}

// 人才ID
//
// 示例值：12312312312
func (builder *CreateApplicationPathReqBodyBuilder) TalentId(talentId string) *CreateApplicationPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 职位ID
//
// 示例值：12312312312
func (builder *CreateApplicationPathReqBodyBuilder) JobId(jobId string) *CreateApplicationPathReqBodyBuilder {
	builder.jobId = jobId
	builder.jobIdFlag = true
	return builder
}

// 人员ID
//
// 示例值：6930815272790114324
func (builder *CreateApplicationPathReqBodyBuilder) UserId(userId string) *CreateApplicationPathReqBodyBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 简历来源 ID，可通过「获取简历来源」接口查询。若简历来源类型属于「员工转岗」或「实习生转正」，人才需处于已入职状态。
//
// 示例值：7115289562569591070
func (builder *CreateApplicationPathReqBodyBuilder) ResumeSourceId(resumeSourceId string) *CreateApplicationPathReqBodyBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取
//
// 示例值：["CT_1"]
func (builder *CreateApplicationPathReqBodyBuilder) ApplicationPreferredCityCodeList(applicationPreferredCityCodeList []string) *CreateApplicationPathReqBodyBuilder {
	builder.applicationPreferredCityCodeList = applicationPreferredCityCodeList
	builder.applicationPreferredCityCodeListFlag = true
	return builder
}

// 投递方式
//
// 示例值：1
func (builder *CreateApplicationPathReqBodyBuilder) DeliveryType(deliveryType int) *CreateApplicationPathReqBodyBuilder {
	builder.deliveryType = deliveryType
	builder.deliveryTypeFlag = true
	return builder
}

func (builder *CreateApplicationPathReqBodyBuilder) Build() (*CreateApplicationReqBody, error) {
	req := &CreateApplicationReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.jobIdFlag {
		req.JobId = &builder.jobId
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId
	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId
	}
	if builder.applicationPreferredCityCodeListFlag {
		req.ApplicationPreferredCityCodeList = builder.applicationPreferredCityCodeList
	}
	if builder.deliveryTypeFlag {
		req.DeliveryType = &builder.deliveryType
	}
	return req, nil
}

type CreateApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateApplicationReqBody
}

func NewCreateApplicationReqBuilder() *CreateApplicationReqBuilder {
	builder := &CreateApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateApplicationReqBuilder) UserIdType(userIdType string) *CreateApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 根据人才 ID 和职位 ID 创建投递
func (builder *CreateApplicationReqBuilder) Body(body *CreateApplicationReqBody) *CreateApplicationReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateApplicationReqBuilder) Build() *CreateApplicationReq {
	req := &CreateApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CreateApplicationReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才ID

	JobId *string `json:"job_id,omitempty"` // 职位ID

	UserId *string `json:"user_id,omitempty"` // 人员ID

	ResumeSourceId *string `json:"resume_source_id,omitempty"` // 简历来源 ID，可通过「获取简历来源」接口查询。若简历来源类型属于「员工转岗」或「实习生转正」，人才需处于已入职状态。

	ApplicationPreferredCityCodeList []string `json:"application_preferred_city_code_list,omitempty"` // 意向投递城市列表，可从「获取职位信息」返回的工作地点列表获取

	DeliveryType *int `json:"delivery_type,omitempty"` // 投递方式
}

type CreateApplicationReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateApplicationReqBody `body:""`
}

type CreateApplicationRespData struct {
	Id *string `json:"id,omitempty"` // 投递ID
}

type CreateApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateApplicationRespData `json:"data"` // 业务数据
}

func (resp *CreateApplicationResp) Success() bool {
	return resp.Code == 0
}

type GetApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetApplicationReqBuilder() *GetApplicationReqBuilder {
	builder := &GetApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：6949805467799537964
func (builder *GetApplicationReqBuilder) ApplicationId(applicationId string) *GetApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetApplicationReqBuilder) UserIdType(userIdType string) *GetApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 请求控制参数，用于控制接口响应逻辑。如需一次查询多个用户ID，可通过将同一参数名多次传递，并且每次传递不同的参数值。
//
// 示例值：
func (builder *GetApplicationReqBuilder) Options(options []string) *GetApplicationReqBuilder {
	for _, v := range options {
		builder.apiReq.QueryParams.Add("options", fmt.Sprint(v))
	}
	return builder
}

func (builder *GetApplicationReqBuilder) Build() *GetApplicationReq {
	req := &GetApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type GetApplicationRespData struct {
	Application *Application `json:"application,omitempty"` // 投递数据
}

type GetApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetApplicationRespData `json:"data"` // 业务数据
}

func (resp *GetApplicationResp) Success() bool {
	return resp.Code == 0
}

type GetDetailApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetDetailApplicationReqBuilder() *GetDetailApplicationReqBuilder {
	builder := &GetDetailApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：6956499586395523359
func (builder *GetDetailApplicationReqBuilder) ApplicationId(applicationId string) *GetDetailApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 此次调用中使用的用户 ID 类型
//
// 示例值：open_id
func (builder *GetDetailApplicationReqBuilder) UserIdType(userIdType string) *GetDetailApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 类型
//
// 示例值：open_department_id
func (builder *GetDetailApplicationReqBuilder) DepartmentIdType(departmentIdType string) *GetDetailApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：job_level_id
func (builder *GetDetailApplicationReqBuilder) JobLevelIdType(jobLevelIdType string) *GetDetailApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：job_family_id
func (builder *GetDetailApplicationReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetDetailApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：employee_type_enum_id
func (builder *GetDetailApplicationReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *GetDetailApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 请求控制参数，用于控制获取哪些关联实体信息。
//
// 示例值：
func (builder *GetDetailApplicationReqBuilder) Options(options []string) *GetDetailApplicationReqBuilder {
	for _, v := range options {
		builder.apiReq.QueryParams.Add("options", fmt.Sprint(v))
	}
	return builder
}

func (builder *GetDetailApplicationReqBuilder) Build() *GetDetailApplicationReq {
	req := &GetDetailApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetDetailApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type GetDetailApplicationRespData struct {
	ApplicationDetail *ApplicationDetailInfo `json:"application_detail,omitempty"` // 投递详情
}

type GetDetailApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetDetailApplicationRespData `json:"data"` // 业务数据
}

func (resp *GetDetailApplicationResp) Success() bool {
	return resp.Code == 0
}

type ListApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListApplicationReqBuilder() *ListApplicationReqBuilder {
	builder := &ListApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 按流程过滤，招聘流程 ID，枚举值通过接口「获取招聘流程信息」接口获取
//
// 示例值：6960663240925956554
func (builder *ListApplicationReqBuilder) ProcessId(processId string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("process_id", fmt.Sprint(processId))
	return builder
}

// 按招聘阶段过滤，招聘阶段 ID，枚举值通过「获取招聘流程信息」接口获取
//
// 示例值：614218419274131
func (builder *ListApplicationReqBuilder) StageId(stageId string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("stage_id", fmt.Sprint(stageId))
	return builder
}

// 按人才过滤
//
// 示例值：6891560630172518670
func (builder *ListApplicationReqBuilder) TalentId(talentId string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 按活跃状态筛选 1=活跃投递, 2=非活跃投递, 3=全部
//
// 示例值：1
func (builder *ListApplicationReqBuilder) ActiveStatus(activeStatus string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("active_status", fmt.Sprint(activeStatus))
	return builder
}

// 职位 ID
//
// 示例值：7334134355464633
func (builder *ListApplicationReqBuilder) JobId(jobId string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 锁定状态
//
// 示例值：
func (builder *ListApplicationReqBuilder) LockStatus(lockStatus []int) *ListApplicationReqBuilder {
	for _, v := range lockStatus {
		builder.apiReq.QueryParams.Add("lock_status", fmt.Sprint(v))
	}
	return builder
}

// 查询游标, 由上一页结果返回, 第一页不传
//
// 示例值：1
func (builder *ListApplicationReqBuilder) PageToken(pageToken string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页限制, 每页最大不超过100
//
// 示例值：100
func (builder *ListApplicationReqBuilder) PageSize(pageSize int) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListApplicationReqBuilder) UpdateStartTime(updateStartTime string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListApplicationReqBuilder) UpdateEndTime(updateEndTime string) *ListApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

func (builder *ListApplicationReqBuilder) Build() *ListApplicationReq {
	req := &ListApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type ListApplicationRespData struct {
	Items []string `json:"items,omitempty"` // 投递数据列表

	PageToken *string `json:"page_token,omitempty"` // 游标, 翻下一页数据时使用

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据
}

type ListApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListApplicationRespData `json:"data"` // 业务数据
}

func (resp *ListApplicationResp) Success() bool {
	return resp.Code == 0
}

type OfferApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewOfferApplicationReqBuilder() *OfferApplicationReqBuilder {
	builder := &OfferApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递ID
//
// 示例值：6949805467799537964
func (builder *OfferApplicationReqBuilder) ApplicationId(applicationId string) *OfferApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *OfferApplicationReqBuilder) UserIdType(userIdType string) *OfferApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：open_department_id
func (builder *OfferApplicationReqBuilder) DepartmentIdType(departmentIdType string) *OfferApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *OfferApplicationReqBuilder) JobLevelIdType(jobLevelIdType string) *OfferApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *OfferApplicationReqBuilder) JobFamilyIdType(jobFamilyIdType string) *OfferApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *OfferApplicationReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *OfferApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *OfferApplicationReqBuilder) Build() *OfferApplicationReq {
	req := &OfferApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type OfferApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type OfferApplicationRespData struct {
	Offer *ApplicationOffer `json:"offer,omitempty"` // Offer数据
}

type OfferApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *OfferApplicationRespData `json:"data"` // 业务数据
}

func (resp *OfferApplicationResp) Success() bool {
	return resp.Code == 0
}

type RecoverApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewRecoverApplicationReqBuilder() *RecoverApplicationReqBuilder {
	builder := &RecoverApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递ID
//
// 示例值：12312312312
func (builder *RecoverApplicationReqBuilder) ApplicationId(applicationId string) *RecoverApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

func (builder *RecoverApplicationReqBuilder) Build() *RecoverApplicationReq {
	req := &RecoverApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type RecoverApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type RecoverApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *RecoverApplicationResp) Success() bool {
	return resp.Code == 0
}

type TerminateApplicationReqBodyBuilder struct {
	terminationType     int // 终止原因的类型
	terminationTypeFlag bool

	terminationReasonList     []string // 终止的具体原因的id列表
	terminationReasonListFlag bool

	terminationReasonNote     string // 终止备注
	terminationReasonNoteFlag bool

	needTerminateOffer     bool // 是否终止offer（撤销offer或者标记为候选人拒绝）
	needTerminateOfferFlag bool

	terminateOfferOperateType     int // 终止 Offer 操作类型
	terminateOfferOperateTypeFlag bool

	cancelOfferTerminationType     int // 撤销offer的终止原因的类型
	cancelOfferTerminationTypeFlag bool

	cancelOfferTerminationReasonList     []string // 撤销offer的终止的具体原因的id列表
	cancelOfferTerminationReasonListFlag bool

	candidateRejectOfferTerminationReasonList     []string // 候选人拒绝offer的终止的具体原因的id列表
	candidateRejectOfferTerminationReasonListFlag bool

	needWithdrawOfferApproval     bool // 是否撤回offer审批
	needWithdrawOfferApprovalFlag bool
}

func NewTerminateApplicationReqBodyBuilder() *TerminateApplicationReqBodyBuilder {
	builder := &TerminateApplicationReqBodyBuilder{}
	return builder
}

// 终止原因的类型
//
//示例值：1
func (builder *TerminateApplicationReqBodyBuilder) TerminationType(terminationType int) *TerminateApplicationReqBodyBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 终止的具体原因的id列表
//
//示例值：["6891560630172518670"]
func (builder *TerminateApplicationReqBodyBuilder) TerminationReasonList(terminationReasonList []string) *TerminateApplicationReqBodyBuilder {
	builder.terminationReasonList = terminationReasonList
	builder.terminationReasonListFlag = true
	return builder
}

// 终止备注
//
//示例值：不符合期望
func (builder *TerminateApplicationReqBodyBuilder) TerminationReasonNote(terminationReasonNote string) *TerminateApplicationReqBodyBuilder {
	builder.terminationReasonNote = terminationReasonNote
	builder.terminationReasonNoteFlag = true
	return builder
}

// 是否终止offer（撤销offer或者标记为候选人拒绝）
//
//示例值：false
func (builder *TerminateApplicationReqBodyBuilder) NeedTerminateOffer(needTerminateOffer bool) *TerminateApplicationReqBodyBuilder {
	builder.needTerminateOffer = needTerminateOffer
	builder.needTerminateOfferFlag = true
	return builder
}

// 终止 Offer 操作类型
//
//示例值：1
func (builder *TerminateApplicationReqBodyBuilder) TerminateOfferOperateType(terminateOfferOperateType int) *TerminateApplicationReqBodyBuilder {
	builder.terminateOfferOperateType = terminateOfferOperateType
	builder.terminateOfferOperateTypeFlag = true
	return builder
}

// 撤销offer的终止原因的类型
//
//示例值：1
func (builder *TerminateApplicationReqBodyBuilder) CancelOfferTerminationType(cancelOfferTerminationType int) *TerminateApplicationReqBodyBuilder {
	builder.cancelOfferTerminationType = cancelOfferTerminationType
	builder.cancelOfferTerminationTypeFlag = true
	return builder
}

// 撤销offer的终止的具体原因的id列表
//
//示例值：
func (builder *TerminateApplicationReqBodyBuilder) CancelOfferTerminationReasonList(cancelOfferTerminationReasonList []string) *TerminateApplicationReqBodyBuilder {
	builder.cancelOfferTerminationReasonList = cancelOfferTerminationReasonList
	builder.cancelOfferTerminationReasonListFlag = true
	return builder
}

// 候选人拒绝offer的终止的具体原因的id列表
//
//示例值：
func (builder *TerminateApplicationReqBodyBuilder) CandidateRejectOfferTerminationReasonList(candidateRejectOfferTerminationReasonList []string) *TerminateApplicationReqBodyBuilder {
	builder.candidateRejectOfferTerminationReasonList = candidateRejectOfferTerminationReasonList
	builder.candidateRejectOfferTerminationReasonListFlag = true
	return builder
}

// 是否撤回offer审批
//
//示例值：false
func (builder *TerminateApplicationReqBodyBuilder) NeedWithdrawOfferApproval(needWithdrawOfferApproval bool) *TerminateApplicationReqBodyBuilder {
	builder.needWithdrawOfferApproval = needWithdrawOfferApproval
	builder.needWithdrawOfferApprovalFlag = true
	return builder
}

func (builder *TerminateApplicationReqBodyBuilder) Build() *TerminateApplicationReqBody {
	req := &TerminateApplicationReqBody{}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType
	}
	if builder.terminationReasonListFlag {
		req.TerminationReasonList = builder.terminationReasonList
	}
	if builder.terminationReasonNoteFlag {
		req.TerminationReasonNote = &builder.terminationReasonNote
	}
	if builder.needTerminateOfferFlag {
		req.NeedTerminateOffer = &builder.needTerminateOffer
	}
	if builder.terminateOfferOperateTypeFlag {
		req.TerminateOfferOperateType = &builder.terminateOfferOperateType
	}
	if builder.cancelOfferTerminationTypeFlag {
		req.CancelOfferTerminationType = &builder.cancelOfferTerminationType
	}
	if builder.cancelOfferTerminationReasonListFlag {
		req.CancelOfferTerminationReasonList = builder.cancelOfferTerminationReasonList
	}
	if builder.candidateRejectOfferTerminationReasonListFlag {
		req.CandidateRejectOfferTerminationReasonList = builder.candidateRejectOfferTerminationReasonList
	}
	if builder.needWithdrawOfferApprovalFlag {
		req.NeedWithdrawOfferApproval = &builder.needWithdrawOfferApproval
	}
	return req
}

type TerminateApplicationPathReqBodyBuilder struct {
	terminationType                               int
	terminationTypeFlag                           bool
	terminationReasonList                         []string
	terminationReasonListFlag                     bool
	terminationReasonNote                         string
	terminationReasonNoteFlag                     bool
	needTerminateOffer                            bool
	needTerminateOfferFlag                        bool
	terminateOfferOperateType                     int
	terminateOfferOperateTypeFlag                 bool
	cancelOfferTerminationType                    int
	cancelOfferTerminationTypeFlag                bool
	cancelOfferTerminationReasonList              []string
	cancelOfferTerminationReasonListFlag          bool
	candidateRejectOfferTerminationReasonList     []string
	candidateRejectOfferTerminationReasonListFlag bool
	needWithdrawOfferApproval                     bool
	needWithdrawOfferApprovalFlag                 bool
}

func NewTerminateApplicationPathReqBodyBuilder() *TerminateApplicationPathReqBodyBuilder {
	builder := &TerminateApplicationPathReqBodyBuilder{}
	return builder
}

// 终止原因的类型
//
// 示例值：1
func (builder *TerminateApplicationPathReqBodyBuilder) TerminationType(terminationType int) *TerminateApplicationPathReqBodyBuilder {
	builder.terminationType = terminationType
	builder.terminationTypeFlag = true
	return builder
}

// 终止的具体原因的id列表
//
// 示例值：["6891560630172518670"]
func (builder *TerminateApplicationPathReqBodyBuilder) TerminationReasonList(terminationReasonList []string) *TerminateApplicationPathReqBodyBuilder {
	builder.terminationReasonList = terminationReasonList
	builder.terminationReasonListFlag = true
	return builder
}

// 终止备注
//
// 示例值：不符合期望
func (builder *TerminateApplicationPathReqBodyBuilder) TerminationReasonNote(terminationReasonNote string) *TerminateApplicationPathReqBodyBuilder {
	builder.terminationReasonNote = terminationReasonNote
	builder.terminationReasonNoteFlag = true
	return builder
}

// 是否终止offer（撤销offer或者标记为候选人拒绝）
//
// 示例值：false
func (builder *TerminateApplicationPathReqBodyBuilder) NeedTerminateOffer(needTerminateOffer bool) *TerminateApplicationPathReqBodyBuilder {
	builder.needTerminateOffer = needTerminateOffer
	builder.needTerminateOfferFlag = true
	return builder
}

// 终止 Offer 操作类型
//
// 示例值：1
func (builder *TerminateApplicationPathReqBodyBuilder) TerminateOfferOperateType(terminateOfferOperateType int) *TerminateApplicationPathReqBodyBuilder {
	builder.terminateOfferOperateType = terminateOfferOperateType
	builder.terminateOfferOperateTypeFlag = true
	return builder
}

// 撤销offer的终止原因的类型
//
// 示例值：1
func (builder *TerminateApplicationPathReqBodyBuilder) CancelOfferTerminationType(cancelOfferTerminationType int) *TerminateApplicationPathReqBodyBuilder {
	builder.cancelOfferTerminationType = cancelOfferTerminationType
	builder.cancelOfferTerminationTypeFlag = true
	return builder
}

// 撤销offer的终止的具体原因的id列表
//
// 示例值：
func (builder *TerminateApplicationPathReqBodyBuilder) CancelOfferTerminationReasonList(cancelOfferTerminationReasonList []string) *TerminateApplicationPathReqBodyBuilder {
	builder.cancelOfferTerminationReasonList = cancelOfferTerminationReasonList
	builder.cancelOfferTerminationReasonListFlag = true
	return builder
}

// 候选人拒绝offer的终止的具体原因的id列表
//
// 示例值：
func (builder *TerminateApplicationPathReqBodyBuilder) CandidateRejectOfferTerminationReasonList(candidateRejectOfferTerminationReasonList []string) *TerminateApplicationPathReqBodyBuilder {
	builder.candidateRejectOfferTerminationReasonList = candidateRejectOfferTerminationReasonList
	builder.candidateRejectOfferTerminationReasonListFlag = true
	return builder
}

// 是否撤回offer审批
//
// 示例值：false
func (builder *TerminateApplicationPathReqBodyBuilder) NeedWithdrawOfferApproval(needWithdrawOfferApproval bool) *TerminateApplicationPathReqBodyBuilder {
	builder.needWithdrawOfferApproval = needWithdrawOfferApproval
	builder.needWithdrawOfferApprovalFlag = true
	return builder
}

func (builder *TerminateApplicationPathReqBodyBuilder) Build() (*TerminateApplicationReqBody, error) {
	req := &TerminateApplicationReqBody{}
	if builder.terminationTypeFlag {
		req.TerminationType = &builder.terminationType
	}
	if builder.terminationReasonListFlag {
		req.TerminationReasonList = builder.terminationReasonList
	}
	if builder.terminationReasonNoteFlag {
		req.TerminationReasonNote = &builder.terminationReasonNote
	}
	if builder.needTerminateOfferFlag {
		req.NeedTerminateOffer = &builder.needTerminateOffer
	}
	if builder.terminateOfferOperateTypeFlag {
		req.TerminateOfferOperateType = &builder.terminateOfferOperateType
	}
	if builder.cancelOfferTerminationTypeFlag {
		req.CancelOfferTerminationType = &builder.cancelOfferTerminationType
	}
	if builder.cancelOfferTerminationReasonListFlag {
		req.CancelOfferTerminationReasonList = builder.cancelOfferTerminationReasonList
	}
	if builder.candidateRejectOfferTerminationReasonListFlag {
		req.CandidateRejectOfferTerminationReasonList = builder.candidateRejectOfferTerminationReasonList
	}
	if builder.needWithdrawOfferApprovalFlag {
		req.NeedWithdrawOfferApproval = &builder.needWithdrawOfferApproval
	}
	return req, nil
}

type TerminateApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *TerminateApplicationReqBody
}

func NewTerminateApplicationReqBuilder() *TerminateApplicationReqBuilder {
	builder := &TerminateApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递ID
//
// 示例值：12312312312
func (builder *TerminateApplicationReqBuilder) ApplicationId(applicationId string) *TerminateApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 根据投递 ID 修改投递状态为「已终止」
func (builder *TerminateApplicationReqBuilder) Body(body *TerminateApplicationReqBody) *TerminateApplicationReqBuilder {
	builder.body = body
	return builder
}

func (builder *TerminateApplicationReqBuilder) Build() *TerminateApplicationReq {
	req := &TerminateApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type TerminateApplicationReqBody struct {
	TerminationType *int `json:"termination_type,omitempty"` // 终止原因的类型

	TerminationReasonList []string `json:"termination_reason_list,omitempty"` // 终止的具体原因的id列表

	TerminationReasonNote *string `json:"termination_reason_note,omitempty"` // 终止备注

	NeedTerminateOffer *bool `json:"need_terminate_offer,omitempty"` // 是否终止offer（撤销offer或者标记为候选人拒绝）

	TerminateOfferOperateType *int `json:"terminate_offer_operate_type,omitempty"` // 终止 Offer 操作类型

	CancelOfferTerminationType *int `json:"cancel_offer_termination_type,omitempty"` // 撤销offer的终止原因的类型

	CancelOfferTerminationReasonList []string `json:"cancel_offer_termination_reason_list,omitempty"` // 撤销offer的终止的具体原因的id列表

	CandidateRejectOfferTerminationReasonList []string `json:"candidate_reject_offer_termination_reason_list,omitempty"` // 候选人拒绝offer的终止的具体原因的id列表

	NeedWithdrawOfferApproval *bool `json:"need_withdraw_offer_approval,omitempty"` // 是否撤回offer审批
}

type TerminateApplicationReq struct {
	apiReq *larkcore.ApiReq
	Body   *TerminateApplicationReqBody `body:""`
}

type TerminateApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *TerminateApplicationResp) Success() bool {
	return resp.Code == 0
}

type TransferOnboardApplicationReqBodyBuilder struct {
	actualOnboardTime     int // 实际入职时间
	actualOnboardTimeFlag bool

	expectedConversionTime     int // 预期转正时间
	expectedConversionTimeFlag bool

	jobRequirementId     string // 招聘需求 ID
	jobRequirementIdFlag bool

	operatorId     string // 操作人 UserID
	operatorIdFlag bool

	onboardCityCode     string // 候选人办公地点 ID ，枚举可通过接口「获取地址列表」获取，将用于候选人内推奖规则判断
	onboardCityCodeFlag bool

	department     string // 候选人入职部门 ID ，枚举可通过接口「获取部门信息列表」获取，将用于候选人内推奖规则判断
	departmentFlag bool

	leader     string // 候选人直属上级 UserID ，将用于候选人内推奖规则判断
	leaderFlag bool

	sequence     string // 候选人序列 ID ，枚举可通过接口「获取职务分类列表」获取，将用于候选人内推奖规则判断
	sequenceFlag bool

	level     string // 候选人职级 ID ，枚举可通过接口「获取职级列表」获取，将用于候选人内推奖规则判断
	levelFlag bool

	employeeType     string // 候选人入职人员类型 ID，可通过接口人力资源管理平台「获取员工类型列表」获取，将用于候选人内推奖规则判断
	employeeTypeFlag bool
}

func NewTransferOnboardApplicationReqBodyBuilder() *TransferOnboardApplicationReqBodyBuilder {
	builder := &TransferOnboardApplicationReqBodyBuilder{}
	return builder
}

// 实际入职时间
//
//示例值：1616428800000
func (builder *TransferOnboardApplicationReqBodyBuilder) ActualOnboardTime(actualOnboardTime int) *TransferOnboardApplicationReqBodyBuilder {
	builder.actualOnboardTime = actualOnboardTime
	builder.actualOnboardTimeFlag = true
	return builder
}

// 预期转正时间
//
//示例值：1616428800000
func (builder *TransferOnboardApplicationReqBodyBuilder) ExpectedConversionTime(expectedConversionTime int) *TransferOnboardApplicationReqBodyBuilder {
	builder.expectedConversionTime = expectedConversionTime
	builder.expectedConversionTimeFlag = true
	return builder
}

// 招聘需求 ID
//
//示例值：6960663240925956402
func (builder *TransferOnboardApplicationReqBodyBuilder) JobRequirementId(jobRequirementId string) *TransferOnboardApplicationReqBodyBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// 操作人 UserID
//
//示例值：ou-xxx
func (builder *TransferOnboardApplicationReqBodyBuilder) OperatorId(operatorId string) *TransferOnboardApplicationReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 候选人办公地点 ID ，枚举可通过接口「获取地址列表」获取，将用于候选人内推奖规则判断
//
//示例值：CT_2
func (builder *TransferOnboardApplicationReqBodyBuilder) OnboardCityCode(onboardCityCode string) *TransferOnboardApplicationReqBodyBuilder {
	builder.onboardCityCode = onboardCityCode
	builder.onboardCityCodeFlag = true
	return builder
}

// 候选人入职部门 ID ，枚举可通过接口「获取部门信息列表」获取，将用于候选人内推奖规则判断
//
//示例值：6966123381141866028
func (builder *TransferOnboardApplicationReqBodyBuilder) Department(department string) *TransferOnboardApplicationReqBodyBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 候选人直属上级 UserID ，将用于候选人内推奖规则判断
//
//示例值：ou-xxx
func (builder *TransferOnboardApplicationReqBodyBuilder) Leader(leader string) *TransferOnboardApplicationReqBodyBuilder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 候选人序列 ID ，枚举可通过接口「获取职务分类列表」获取，将用于候选人内推奖规则判断
//
//示例值：7006234385490345986
func (builder *TransferOnboardApplicationReqBodyBuilder) Sequence(sequence string) *TransferOnboardApplicationReqBodyBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 候选人职级 ID ，枚举可通过接口「获取职级列表」获取，将用于候选人内推奖规则判断
//
//示例值：6937934036379650311
func (builder *TransferOnboardApplicationReqBodyBuilder) Level(level string) *TransferOnboardApplicationReqBodyBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 候选人入职人员类型 ID，可通过接口人力资源管理平台「获取员工类型列表」获取，将用于候选人内推奖规则判断
//
//示例值：1
func (builder *TransferOnboardApplicationReqBodyBuilder) EmployeeType(employeeType string) *TransferOnboardApplicationReqBodyBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

func (builder *TransferOnboardApplicationReqBodyBuilder) Build() *TransferOnboardApplicationReqBody {
	req := &TransferOnboardApplicationReqBody{}
	if builder.actualOnboardTimeFlag {
		req.ActualOnboardTime = &builder.actualOnboardTime
	}
	if builder.expectedConversionTimeFlag {
		req.ExpectedConversionTime = &builder.expectedConversionTime
	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.onboardCityCodeFlag {
		req.OnboardCityCode = &builder.onboardCityCode
	}
	if builder.departmentFlag {
		req.Department = &builder.department
	}
	if builder.leaderFlag {
		req.Leader = &builder.leader
	}
	if builder.sequenceFlag {
		req.Sequence = &builder.sequence
	}
	if builder.levelFlag {
		req.Level = &builder.level
	}
	if builder.employeeTypeFlag {
		req.EmployeeType = &builder.employeeType
	}
	return req
}

type TransferOnboardApplicationPathReqBodyBuilder struct {
	actualOnboardTime          int
	actualOnboardTimeFlag      bool
	expectedConversionTime     int
	expectedConversionTimeFlag bool
	jobRequirementId           string
	jobRequirementIdFlag       bool
	operatorId                 string
	operatorIdFlag             bool
	onboardCityCode            string
	onboardCityCodeFlag        bool
	department                 string
	departmentFlag             bool
	leader                     string
	leaderFlag                 bool
	sequence                   string
	sequenceFlag               bool
	level                      string
	levelFlag                  bool
	employeeType               string
	employeeTypeFlag           bool
}

func NewTransferOnboardApplicationPathReqBodyBuilder() *TransferOnboardApplicationPathReqBodyBuilder {
	builder := &TransferOnboardApplicationPathReqBodyBuilder{}
	return builder
}

// 实际入职时间
//
// 示例值：1616428800000
func (builder *TransferOnboardApplicationPathReqBodyBuilder) ActualOnboardTime(actualOnboardTime int) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.actualOnboardTime = actualOnboardTime
	builder.actualOnboardTimeFlag = true
	return builder
}

// 预期转正时间
//
// 示例值：1616428800000
func (builder *TransferOnboardApplicationPathReqBodyBuilder) ExpectedConversionTime(expectedConversionTime int) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.expectedConversionTime = expectedConversionTime
	builder.expectedConversionTimeFlag = true
	return builder
}

// 招聘需求 ID
//
// 示例值：6960663240925956402
func (builder *TransferOnboardApplicationPathReqBodyBuilder) JobRequirementId(jobRequirementId string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.jobRequirementId = jobRequirementId
	builder.jobRequirementIdFlag = true
	return builder
}

// 操作人 UserID
//
// 示例值：ou-xxx
func (builder *TransferOnboardApplicationPathReqBodyBuilder) OperatorId(operatorId string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 候选人办公地点 ID ，枚举可通过接口「获取地址列表」获取，将用于候选人内推奖规则判断
//
// 示例值：CT_2
func (builder *TransferOnboardApplicationPathReqBodyBuilder) OnboardCityCode(onboardCityCode string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.onboardCityCode = onboardCityCode
	builder.onboardCityCodeFlag = true
	return builder
}

// 候选人入职部门 ID ，枚举可通过接口「获取部门信息列表」获取，将用于候选人内推奖规则判断
//
// 示例值：6966123381141866028
func (builder *TransferOnboardApplicationPathReqBodyBuilder) Department(department string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.department = department
	builder.departmentFlag = true
	return builder
}

// 候选人直属上级 UserID ，将用于候选人内推奖规则判断
//
// 示例值：ou-xxx
func (builder *TransferOnboardApplicationPathReqBodyBuilder) Leader(leader string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.leader = leader
	builder.leaderFlag = true
	return builder
}

// 候选人序列 ID ，枚举可通过接口「获取职务分类列表」获取，将用于候选人内推奖规则判断
//
// 示例值：7006234385490345986
func (builder *TransferOnboardApplicationPathReqBodyBuilder) Sequence(sequence string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.sequence = sequence
	builder.sequenceFlag = true
	return builder
}

// 候选人职级 ID ，枚举可通过接口「获取职级列表」获取，将用于候选人内推奖规则判断
//
// 示例值：6937934036379650311
func (builder *TransferOnboardApplicationPathReqBodyBuilder) Level(level string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.level = level
	builder.levelFlag = true
	return builder
}

// 候选人入职人员类型 ID，可通过接口人力资源管理平台「获取员工类型列表」获取，将用于候选人内推奖规则判断
//
// 示例值：1
func (builder *TransferOnboardApplicationPathReqBodyBuilder) EmployeeType(employeeType string) *TransferOnboardApplicationPathReqBodyBuilder {
	builder.employeeType = employeeType
	builder.employeeTypeFlag = true
	return builder
}

func (builder *TransferOnboardApplicationPathReqBodyBuilder) Build() (*TransferOnboardApplicationReqBody, error) {
	req := &TransferOnboardApplicationReqBody{}
	if builder.actualOnboardTimeFlag {
		req.ActualOnboardTime = &builder.actualOnboardTime
	}
	if builder.expectedConversionTimeFlag {
		req.ExpectedConversionTime = &builder.expectedConversionTime
	}
	if builder.jobRequirementIdFlag {
		req.JobRequirementId = &builder.jobRequirementId
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.onboardCityCodeFlag {
		req.OnboardCityCode = &builder.onboardCityCode
	}
	if builder.departmentFlag {
		req.Department = &builder.department
	}
	if builder.leaderFlag {
		req.Leader = &builder.leader
	}
	if builder.sequenceFlag {
		req.Sequence = &builder.sequence
	}
	if builder.levelFlag {
		req.Level = &builder.level
	}
	if builder.employeeTypeFlag {
		req.EmployeeType = &builder.employeeType
	}
	return req, nil
}

type TransferOnboardApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *TransferOnboardApplicationReqBody
}

func NewTransferOnboardApplicationReqBuilder() *TransferOnboardApplicationReqBuilder {
	builder := &TransferOnboardApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递ID
//
// 示例值：7073372582620416300
func (builder *TransferOnboardApplicationReqBuilder) ApplicationId(applicationId string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *TransferOnboardApplicationReqBuilder) UserIdType(userIdType string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *TransferOnboardApplicationReqBuilder) DepartmentIdType(departmentIdType string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *TransferOnboardApplicationReqBuilder) JobLevelIdType(jobLevelIdType string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *TransferOnboardApplicationReqBuilder) JobFamilyIdType(jobFamilyIdType string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *TransferOnboardApplicationReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *TransferOnboardApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 根据投递 ID 操作候选人入职并创建员工。投递须处于「待入职」阶段，可通过「转移阶段」接口变更投递状态
func (builder *TransferOnboardApplicationReqBuilder) Body(body *TransferOnboardApplicationReqBody) *TransferOnboardApplicationReqBuilder {
	builder.body = body
	return builder
}

func (builder *TransferOnboardApplicationReqBuilder) Build() *TransferOnboardApplicationReq {
	req := &TransferOnboardApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type TransferOnboardApplicationReqBody struct {
	ActualOnboardTime *int `json:"actual_onboard_time,omitempty"` // 实际入职时间

	ExpectedConversionTime *int `json:"expected_conversion_time,omitempty"` // 预期转正时间

	JobRequirementId *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID

	OperatorId *string `json:"operator_id,omitempty"` // 操作人 UserID

	OnboardCityCode *string `json:"onboard_city_code,omitempty"` // 候选人办公地点 ID ，枚举可通过接口「获取地址列表」获取，将用于候选人内推奖规则判断

	Department *string `json:"department,omitempty"` // 候选人入职部门 ID ，枚举可通过接口「获取部门信息列表」获取，将用于候选人内推奖规则判断

	Leader *string `json:"leader,omitempty"` // 候选人直属上级 UserID ，将用于候选人内推奖规则判断

	Sequence *string `json:"sequence,omitempty"` // 候选人序列 ID ，枚举可通过接口「获取职务分类列表」获取，将用于候选人内推奖规则判断

	Level *string `json:"level,omitempty"` // 候选人职级 ID ，枚举可通过接口「获取职级列表」获取，将用于候选人内推奖规则判断

	EmployeeType *string `json:"employee_type,omitempty"` // 候选人入职人员类型 ID，可通过接口人力资源管理平台「获取员工类型列表」获取，将用于候选人内推奖规则判断
}

type TransferOnboardApplicationReq struct {
	apiReq *larkcore.ApiReq
	Body   *TransferOnboardApplicationReqBody `body:""`
}

type TransferOnboardApplicationRespData struct {
	Employee *Employee `json:"employee,omitempty"` // employee
}

type TransferOnboardApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *TransferOnboardApplicationRespData `json:"data"` // 业务数据
}

func (resp *TransferOnboardApplicationResp) Success() bool {
	return resp.Code == 0
}

type TransferStageApplicationReqBodyBuilder struct {
	stageId     string // 要转移到的阶段 ID，可通过「获取招聘流程信息」接口获取阶段 ID 枚举
	stageIdFlag bool
}

func NewTransferStageApplicationReqBodyBuilder() *TransferStageApplicationReqBodyBuilder {
	builder := &TransferStageApplicationReqBodyBuilder{}
	return builder
}

// 要转移到的阶段 ID，可通过「获取招聘流程信息」接口获取阶段 ID 枚举
//
//示例值：6960663240925956402
func (builder *TransferStageApplicationReqBodyBuilder) StageId(stageId string) *TransferStageApplicationReqBodyBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

func (builder *TransferStageApplicationReqBodyBuilder) Build() *TransferStageApplicationReqBody {
	req := &TransferStageApplicationReqBody{}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId
	}
	return req
}

type TransferStageApplicationPathReqBodyBuilder struct {
	stageId     string
	stageIdFlag bool
}

func NewTransferStageApplicationPathReqBodyBuilder() *TransferStageApplicationPathReqBodyBuilder {
	builder := &TransferStageApplicationPathReqBodyBuilder{}
	return builder
}

// 要转移到的阶段 ID，可通过「获取招聘流程信息」接口获取阶段 ID 枚举
//
// 示例值：6960663240925956402
func (builder *TransferStageApplicationPathReqBodyBuilder) StageId(stageId string) *TransferStageApplicationPathReqBodyBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

func (builder *TransferStageApplicationPathReqBodyBuilder) Build() (*TransferStageApplicationReqBody, error) {
	req := &TransferStageApplicationReqBody{}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId
	}
	return req, nil
}

type TransferStageApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *TransferStageApplicationReqBody
}

func NewTransferStageApplicationReqBuilder() *TransferStageApplicationReqBuilder {
	builder := &TransferStageApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：6960663240925956401
func (builder *TransferStageApplicationReqBuilder) ApplicationId(applicationId string) *TransferStageApplicationReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 转移投递阶段
func (builder *TransferStageApplicationReqBuilder) Body(body *TransferStageApplicationReqBody) *TransferStageApplicationReqBuilder {
	builder.body = body
	return builder
}

func (builder *TransferStageApplicationReqBuilder) Build() *TransferStageApplicationReq {
	req := &TransferStageApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type TransferStageApplicationReqBody struct {
	StageId *string `json:"stage_id,omitempty"` // 要转移到的阶段 ID，可通过「获取招聘流程信息」接口获取阶段 ID 枚举
}

type TransferStageApplicationReq struct {
	apiReq *larkcore.ApiReq
	Body   *TransferStageApplicationReqBody `body:""`
}

type TransferStageApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *TransferStageApplicationResp) Success() bool {
	return resp.Code == 0
}

type ListApplicationInterviewReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListApplicationInterviewReqBuilder() *ListApplicationInterviewReqBuilder {
	builder := &ListApplicationInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：6960663240925956555
func (builder *ListApplicationInterviewReqBuilder) ApplicationId(applicationId string) *ListApplicationInterviewReqBuilder {
	builder.apiReq.PathParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 分页大小，不能超过 50
//
// 示例值：10
func (builder *ListApplicationInterviewReqBuilder) PageSize(pageSize int) *ListApplicationInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：xx
func (builder *ListApplicationInterviewReqBuilder) PageToken(pageToken string) *ListApplicationInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *ListApplicationInterviewReqBuilder) UserIdType(userIdType string) *ListApplicationInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListApplicationInterviewReqBuilder) JobLevelIdType(jobLevelIdType string) *ListApplicationInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

func (builder *ListApplicationInterviewReqBuilder) Build() *ListApplicationInterviewReq {
	req := &ListApplicationInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListApplicationInterviewReq struct {
	apiReq *larkcore.ApiReq
}

type ListApplicationInterviewRespData struct {
	PageToken *string `json:"page_token,omitempty"` // 分页标志

	HasMore *bool `json:"has_more,omitempty"` // 是否有更多

	Items []*Interview `json:"items,omitempty"` // 面试列表
}

type ListApplicationInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListApplicationInterviewRespData `json:"data"` // 业务数据
}

func (resp *ListApplicationInterviewResp) Success() bool {
	return resp.Code == 0
}

type CreateAttachmentRespData struct {
	Id *string `json:"id,omitempty"` // 上传文件的 id
}

type CreateAttachmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateAttachmentRespData `json:"data"` // 业务数据
}

func (resp *CreateAttachmentResp) Success() bool {
	return resp.Code == 0
}

type GetAttachmentReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetAttachmentReqBuilder() *GetAttachmentReqBuilder {
	builder := &GetAttachmentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 附件id
//
// 示例值：6435242341238
func (builder *GetAttachmentReqBuilder) AttachmentId(attachmentId string) *GetAttachmentReqBuilder {
	builder.apiReq.PathParams.Set("attachment_id", fmt.Sprint(attachmentId))
	return builder
}

// 附件类型
//
// 示例值：1
func (builder *GetAttachmentReqBuilder) Type(type_ int) *GetAttachmentReqBuilder {
	builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_))
	return builder
}

func (builder *GetAttachmentReqBuilder) Build() *GetAttachmentReq {
	req := &GetAttachmentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetAttachmentReq struct {
	apiReq *larkcore.ApiReq
}

type GetAttachmentRespData struct {
	Attachment *Attachment `json:"attachment,omitempty"` // 附件信息
}

type GetAttachmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetAttachmentRespData `json:"data"` // 业务数据
}

func (resp *GetAttachmentResp) Success() bool {
	return resp.Code == 0
}

type PreviewAttachmentReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewPreviewAttachmentReqBuilder() *PreviewAttachmentReqBuilder {
	builder := &PreviewAttachmentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 附件id
//
// 示例值：11111
func (builder *PreviewAttachmentReqBuilder) AttachmentId(attachmentId string) *PreviewAttachmentReqBuilder {
	builder.apiReq.PathParams.Set("attachment_id", fmt.Sprint(attachmentId))
	return builder
}

func (builder *PreviewAttachmentReqBuilder) Build() *PreviewAttachmentReq {
	req := &PreviewAttachmentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type PreviewAttachmentReq struct {
	apiReq *larkcore.ApiReq
}

type PreviewAttachmentRespData struct {
	Url *string `json:"url,omitempty"` // 预览链接
}

type PreviewAttachmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PreviewAttachmentRespData `json:"data"` // 业务数据
}

func (resp *PreviewAttachmentResp) Success() bool {
	return resp.Code == 0
}

type BatchQueryBackgroundCheckOrderReqBodyBuilder struct {
	backgroundCheckOrderIdList     []string // 背调订单 ID 列表
	backgroundCheckOrderIdListFlag bool

	updateStartTime     string // 最早更新时间,毫秒级时间戳
	updateStartTimeFlag bool

	updateEndTime     string // 最晚更新时间,毫秒级时间戳
	updateEndTimeFlag bool

	beginStartTime     string // 最早创建时间,毫秒级时间戳
	beginStartTimeFlag bool

	beginEndTime     string // 最晚创建时间,毫秒级时间戳
	beginEndTimeFlag bool

	applicationId     string // 投递 ID
	applicationIdFlag bool

	orderStatus     string // 订单状态
	orderStatusFlag bool
}

func NewBatchQueryBackgroundCheckOrderReqBodyBuilder() *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder := &BatchQueryBackgroundCheckOrderReqBodyBuilder{}
	return builder
}

// 背调订单 ID 列表
//
//示例值：
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) BackgroundCheckOrderIdList(backgroundCheckOrderIdList []string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.backgroundCheckOrderIdList = backgroundCheckOrderIdList
	builder.backgroundCheckOrderIdListFlag = true
	return builder
}

// 最早更新时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) UpdateStartTime(updateStartTime string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.updateStartTime = updateStartTime
	builder.updateStartTimeFlag = true
	return builder
}

// 最晚更新时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) UpdateEndTime(updateEndTime string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.updateEndTime = updateEndTime
	builder.updateEndTimeFlag = true
	return builder
}

// 最早创建时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) BeginStartTime(beginStartTime string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.beginStartTime = beginStartTime
	builder.beginStartTimeFlag = true
	return builder
}

// 最晚创建时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) BeginEndTime(beginEndTime string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.beginEndTime = beginEndTime
	builder.beginEndTimeFlag = true
	return builder
}

// 投递 ID
//
//示例值：7398493486516799788
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) ApplicationId(applicationId string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 订单状态
//
//示例值：2
func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) OrderStatus(orderStatus string) *BatchQueryBackgroundCheckOrderReqBodyBuilder {
	builder.orderStatus = orderStatus
	builder.orderStatusFlag = true
	return builder
}

func (builder *BatchQueryBackgroundCheckOrderReqBodyBuilder) Build() *BatchQueryBackgroundCheckOrderReqBody {
	req := &BatchQueryBackgroundCheckOrderReqBody{}
	if builder.backgroundCheckOrderIdListFlag {
		req.BackgroundCheckOrderIdList = builder.backgroundCheckOrderIdList
	}
	if builder.updateStartTimeFlag {
		req.UpdateStartTime = &builder.updateStartTime
	}
	if builder.updateEndTimeFlag {
		req.UpdateEndTime = &builder.updateEndTime
	}
	if builder.beginStartTimeFlag {
		req.BeginStartTime = &builder.beginStartTime
	}
	if builder.beginEndTimeFlag {
		req.BeginEndTime = &builder.beginEndTime
	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId
	}
	if builder.orderStatusFlag {
		req.OrderStatus = &builder.orderStatus
	}
	return req
}

type BatchQueryBackgroundCheckOrderPathReqBodyBuilder struct {
	backgroundCheckOrderIdList     []string
	backgroundCheckOrderIdListFlag bool
	updateStartTime                string
	updateStartTimeFlag            bool
	updateEndTime                  string
	updateEndTimeFlag              bool
	beginStartTime                 string
	beginStartTimeFlag             bool
	beginEndTime                   string
	beginEndTimeFlag               bool
	applicationId                  string
	applicationIdFlag              bool
	orderStatus                    string
	orderStatusFlag                bool
}

func NewBatchQueryBackgroundCheckOrderPathReqBodyBuilder() *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder := &BatchQueryBackgroundCheckOrderPathReqBodyBuilder{}
	return builder
}

// 背调订单 ID 列表
//
// 示例值：
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) BackgroundCheckOrderIdList(backgroundCheckOrderIdList []string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.backgroundCheckOrderIdList = backgroundCheckOrderIdList
	builder.backgroundCheckOrderIdListFlag = true
	return builder
}

// 最早更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) UpdateStartTime(updateStartTime string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.updateStartTime = updateStartTime
	builder.updateStartTimeFlag = true
	return builder
}

// 最晚更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) UpdateEndTime(updateEndTime string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.updateEndTime = updateEndTime
	builder.updateEndTimeFlag = true
	return builder
}

// 最早创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) BeginStartTime(beginStartTime string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.beginStartTime = beginStartTime
	builder.beginStartTimeFlag = true
	return builder
}

// 最晚创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) BeginEndTime(beginEndTime string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.beginEndTime = beginEndTime
	builder.beginEndTimeFlag = true
	return builder
}

// 投递 ID
//
// 示例值：7398493486516799788
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) ApplicationId(applicationId string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 订单状态
//
// 示例值：2
func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) OrderStatus(orderStatus string) *BatchQueryBackgroundCheckOrderPathReqBodyBuilder {
	builder.orderStatus = orderStatus
	builder.orderStatusFlag = true
	return builder
}

func (builder *BatchQueryBackgroundCheckOrderPathReqBodyBuilder) Build() (*BatchQueryBackgroundCheckOrderReqBody, error) {
	req := &BatchQueryBackgroundCheckOrderReqBody{}
	if builder.backgroundCheckOrderIdListFlag {
		req.BackgroundCheckOrderIdList = builder.backgroundCheckOrderIdList
	}
	if builder.updateStartTimeFlag {
		req.UpdateStartTime = &builder.updateStartTime
	}
	if builder.updateEndTimeFlag {
		req.UpdateEndTime = &builder.updateEndTime
	}
	if builder.beginStartTimeFlag {
		req.BeginStartTime = &builder.beginStartTime
	}
	if builder.beginEndTimeFlag {
		req.BeginEndTime = &builder.beginEndTime
	}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId
	}
	if builder.orderStatusFlag {
		req.OrderStatus = &builder.orderStatus
	}
	return req, nil
}

type BatchQueryBackgroundCheckOrderReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchQueryBackgroundCheckOrderReqBody
}

func NewBatchQueryBackgroundCheckOrderReqBuilder() *BatchQueryBackgroundCheckOrderReqBuilder {
	builder := &BatchQueryBackgroundCheckOrderReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *BatchQueryBackgroundCheckOrderReqBuilder) UserIdType(userIdType string) *BatchQueryBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *BatchQueryBackgroundCheckOrderReqBuilder) PageToken(pageToken string) *BatchQueryBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量
//
// 示例值：10
func (builder *BatchQueryBackgroundCheckOrderReqBuilder) PageSize(pageSize int) *BatchQueryBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

//
func (builder *BatchQueryBackgroundCheckOrderReqBuilder) Body(body *BatchQueryBackgroundCheckOrderReqBody) *BatchQueryBackgroundCheckOrderReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchQueryBackgroundCheckOrderReqBuilder) Build() *BatchQueryBackgroundCheckOrderReq {
	req := &BatchQueryBackgroundCheckOrderReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchQueryBackgroundCheckOrderReqBody struct {
	BackgroundCheckOrderIdList []string `json:"background_check_order_id_list,omitempty"` // 背调订单 ID 列表

	UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间,毫秒级时间戳

	UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间,毫秒级时间戳

	BeginStartTime *string `json:"begin_start_time,omitempty"` // 最早创建时间,毫秒级时间戳

	BeginEndTime *string `json:"begin_end_time,omitempty"` // 最晚创建时间,毫秒级时间戳

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	OrderStatus *string `json:"order_status,omitempty"` // 订单状态
}

type BatchQueryBackgroundCheckOrderReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchQueryBackgroundCheckOrderReqBody `body:""`
}

type BatchQueryBackgroundCheckOrderRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*BackgroundCheckOrder `json:"items,omitempty"` // 背调信息列表
}

type BatchQueryBackgroundCheckOrderResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchQueryBackgroundCheckOrderRespData `json:"data"` // 业务数据
}

func (resp *BatchQueryBackgroundCheckOrderResp) Success() bool {
	return resp.Code == 0
}

type ListBackgroundCheckOrderReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListBackgroundCheckOrderReqBuilder() *ListBackgroundCheckOrderReqBuilder {
	builder := &ListBackgroundCheckOrderReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListBackgroundCheckOrderReqBuilder) UserIdType(userIdType string) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *ListBackgroundCheckOrderReqBuilder) PageToken(pageToken string) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListBackgroundCheckOrderReqBuilder) PageSize(pageSize int) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 投递 ID
//
// 示例值：6985833807195212076
func (builder *ListBackgroundCheckOrderReqBuilder) ApplicationId(applicationId string) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1638848468868
func (builder *ListBackgroundCheckOrderReqBuilder) UpdateStartTime(updateStartTime string) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1638848468869
func (builder *ListBackgroundCheckOrderReqBuilder) UpdateEndTime(updateEndTime string) *ListBackgroundCheckOrderReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

func (builder *ListBackgroundCheckOrderReqBuilder) Build() *ListBackgroundCheckOrderReq {
	req := &ListBackgroundCheckOrderReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListBackgroundCheckOrderReq struct {
	apiReq *larkcore.ApiReq
}

type ListBackgroundCheckOrderRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*BackgroundCheckOrder `json:"items,omitempty"` // 背调信息列表
}

type ListBackgroundCheckOrderResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListBackgroundCheckOrderRespData `json:"data"` // 业务数据
}

func (resp *ListBackgroundCheckOrderResp) Success() bool {
	return resp.Code == 0
}

type SearchDiversityInclusionReqBodyBuilder struct {
	talentIds     []string // 需要查询DI数据的人才ID列表
	talentIdsFlag bool

	applicationIds     []string // 需要查询DI数据的投递ID列表
	applicationIdsFlag bool
}

func NewSearchDiversityInclusionReqBodyBuilder() *SearchDiversityInclusionReqBodyBuilder {
	builder := &SearchDiversityInclusionReqBodyBuilder{}
	return builder
}

// 需要查询DI数据的人才ID列表
//
//示例值：
func (builder *SearchDiversityInclusionReqBodyBuilder) TalentIds(talentIds []string) *SearchDiversityInclusionReqBodyBuilder {
	builder.talentIds = talentIds
	builder.talentIdsFlag = true
	return builder
}

// 需要查询DI数据的投递ID列表
//
//示例值：
func (builder *SearchDiversityInclusionReqBodyBuilder) ApplicationIds(applicationIds []string) *SearchDiversityInclusionReqBodyBuilder {
	builder.applicationIds = applicationIds
	builder.applicationIdsFlag = true
	return builder
}

func (builder *SearchDiversityInclusionReqBodyBuilder) Build() *SearchDiversityInclusionReqBody {
	req := &SearchDiversityInclusionReqBody{}
	if builder.talentIdsFlag {
		req.TalentIds = builder.talentIds
	}
	if builder.applicationIdsFlag {
		req.ApplicationIds = builder.applicationIds
	}
	return req
}

type SearchDiversityInclusionPathReqBodyBuilder struct {
	talentIds          []string
	talentIdsFlag      bool
	applicationIds     []string
	applicationIdsFlag bool
}

func NewSearchDiversityInclusionPathReqBodyBuilder() *SearchDiversityInclusionPathReqBodyBuilder {
	builder := &SearchDiversityInclusionPathReqBodyBuilder{}
	return builder
}

// 需要查询DI数据的人才ID列表
//
// 示例值：
func (builder *SearchDiversityInclusionPathReqBodyBuilder) TalentIds(talentIds []string) *SearchDiversityInclusionPathReqBodyBuilder {
	builder.talentIds = talentIds
	builder.talentIdsFlag = true
	return builder
}

// 需要查询DI数据的投递ID列表
//
// 示例值：
func (builder *SearchDiversityInclusionPathReqBodyBuilder) ApplicationIds(applicationIds []string) *SearchDiversityInclusionPathReqBodyBuilder {
	builder.applicationIds = applicationIds
	builder.applicationIdsFlag = true
	return builder
}

func (builder *SearchDiversityInclusionPathReqBodyBuilder) Build() (*SearchDiversityInclusionReqBody, error) {
	req := &SearchDiversityInclusionReqBody{}
	if builder.talentIdsFlag {
		req.TalentIds = builder.talentIds
	}
	if builder.applicationIdsFlag {
		req.ApplicationIds = builder.applicationIds
	}
	return req, nil
}

type SearchDiversityInclusionReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchDiversityInclusionReqBody
}

func NewSearchDiversityInclusionReqBuilder() *SearchDiversityInclusionReqBuilder {
	builder := &SearchDiversityInclusionReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *SearchDiversityInclusionReqBuilder) Body(body *SearchDiversityInclusionReqBody) *SearchDiversityInclusionReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchDiversityInclusionReqBuilder) Build() *SearchDiversityInclusionReq {
	req := &SearchDiversityInclusionReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type SearchDiversityInclusionReqBody struct {
	TalentIds []string `json:"talent_ids,omitempty"` // 需要查询DI数据的人才ID列表

	ApplicationIds []string `json:"application_ids,omitempty"` // 需要查询DI数据的投递ID列表
}

type SearchDiversityInclusionReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchDiversityInclusionReqBody `body:""`
}

type SearchDiversityInclusionRespData struct {
	Items []*DiInfo `json:"items,omitempty"` // 多元化与包容性信息列表
}

type SearchDiversityInclusionResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchDiversityInclusionRespData `json:"data"` // 业务数据
}

func (resp *SearchDiversityInclusionResp) Success() bool {
	return resp.Code == 0
}

type BatchDeleteEcoAccountCustomFieldReqBodyBuilder struct {
	scope     int // 适用范围
	scopeFlag bool

	customFieldKeyList     []string // 要删除的自定义字段的 key 列表
	customFieldKeyListFlag bool
}

func NewBatchDeleteEcoAccountCustomFieldReqBodyBuilder() *BatchDeleteEcoAccountCustomFieldReqBodyBuilder {
	builder := &BatchDeleteEcoAccountCustomFieldReqBodyBuilder{}
	return builder
}

// 适用范围
//
//示例值：1
func (builder *BatchDeleteEcoAccountCustomFieldReqBodyBuilder) Scope(scope int) *BatchDeleteEcoAccountCustomFieldReqBodyBuilder {
	builder.scope = scope
	builder.scopeFlag = true
	return builder
}

// 要删除的自定义字段的 key 列表
//
//示例值：123
func (builder *BatchDeleteEcoAccountCustomFieldReqBodyBuilder) CustomFieldKeyList(customFieldKeyList []string) *BatchDeleteEcoAccountCustomFieldReqBodyBuilder {
	builder.customFieldKeyList = customFieldKeyList
	builder.customFieldKeyListFlag = true
	return builder
}

func (builder *BatchDeleteEcoAccountCustomFieldReqBodyBuilder) Build() *BatchDeleteEcoAccountCustomFieldReqBody {
	req := &BatchDeleteEcoAccountCustomFieldReqBody{}
	if builder.scopeFlag {
		req.Scope = &builder.scope
	}
	if builder.customFieldKeyListFlag {
		req.CustomFieldKeyList = builder.customFieldKeyList
	}
	return req
}

type BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder struct {
	scope                  int
	scopeFlag              bool
	customFieldKeyList     []string
	customFieldKeyListFlag bool
}

func NewBatchDeleteEcoAccountCustomFieldPathReqBodyBuilder() *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder {
	builder := &BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder{}
	return builder
}

// 适用范围
//
// 示例值：1
func (builder *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder) Scope(scope int) *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder {
	builder.scope = scope
	builder.scopeFlag = true
	return builder
}

// 要删除的自定义字段的 key 列表
//
// 示例值：123
func (builder *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder) CustomFieldKeyList(customFieldKeyList []string) *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder {
	builder.customFieldKeyList = customFieldKeyList
	builder.customFieldKeyListFlag = true
	return builder
}

func (builder *BatchDeleteEcoAccountCustomFieldPathReqBodyBuilder) Build() (*BatchDeleteEcoAccountCustomFieldReqBody, error) {
	req := &BatchDeleteEcoAccountCustomFieldReqBody{}
	if builder.scopeFlag {
		req.Scope = &builder.scope
	}
	if builder.customFieldKeyListFlag {
		req.CustomFieldKeyList = builder.customFieldKeyList
	}
	return req, nil
}

type BatchDeleteEcoAccountCustomFieldReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchDeleteEcoAccountCustomFieldReqBody
}

func NewBatchDeleteEcoAccountCustomFieldReqBuilder() *BatchDeleteEcoAccountCustomFieldReqBuilder {
	builder := &BatchDeleteEcoAccountCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 删除用户在服务商处的身份标示字段（如用户在服务商处的租户 ID）。删除后，不影响已添加帐号对应的自定义字段的值。但在添加新帐号时，将不能再使用此自定义字段。删除不支持撤销，对应的 key 将无法再次复用。
func (builder *BatchDeleteEcoAccountCustomFieldReqBuilder) Body(body *BatchDeleteEcoAccountCustomFieldReqBody) *BatchDeleteEcoAccountCustomFieldReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchDeleteEcoAccountCustomFieldReqBuilder) Build() *BatchDeleteEcoAccountCustomFieldReq {
	req := &BatchDeleteEcoAccountCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchDeleteEcoAccountCustomFieldReqBody struct {
	Scope *int `json:"scope,omitempty"` // 适用范围

	CustomFieldKeyList []string `json:"custom_field_key_list,omitempty"` // 要删除的自定义字段的 key 列表
}

type BatchDeleteEcoAccountCustomFieldReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchDeleteEcoAccountCustomFieldReqBody `body:""`
}

type BatchDeleteEcoAccountCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchDeleteEcoAccountCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateEcoAccountCustomFieldReqBuilder struct {
	apiReq                *larkcore.ApiReq
	ecoAccountCustomField *EcoAccountCustomField
}

func NewBatchUpdateEcoAccountCustomFieldReqBuilder() *BatchUpdateEcoAccountCustomFieldReqBuilder {
	builder := &BatchUpdateEcoAccountCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 更新用户在服务商处的身份标示字段（如用户在服务商处的租户 ID），此方法只会更新同一 scope 内 key 一致的自定义字段。
func (builder *BatchUpdateEcoAccountCustomFieldReqBuilder) EcoAccountCustomField(ecoAccountCustomField *EcoAccountCustomField) *BatchUpdateEcoAccountCustomFieldReqBuilder {
	builder.ecoAccountCustomField = ecoAccountCustomField
	return builder
}

func (builder *BatchUpdateEcoAccountCustomFieldReqBuilder) Build() *BatchUpdateEcoAccountCustomFieldReq {
	req := &BatchUpdateEcoAccountCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoAccountCustomField
	return req
}

type BatchUpdateEcoAccountCustomFieldReq struct {
	apiReq                *larkcore.ApiReq
	EcoAccountCustomField *EcoAccountCustomField `body:""`
}

type BatchUpdateEcoAccountCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchUpdateEcoAccountCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type CreateEcoAccountCustomFieldReqBuilder struct {
	apiReq                *larkcore.ApiReq
	ecoAccountCustomField *EcoAccountCustomField
}

func NewCreateEcoAccountCustomFieldReqBuilder() *CreateEcoAccountCustomFieldReqBuilder {
	builder := &CreateEcoAccountCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 定制用户在服务商处的身份标示字段（如用户在服务商处的租户 ID）。用户在飞书招聘后台添加帐号后，系统会推送「帐号绑定」事件给开发者，事件将携带用户填写的自定义字段信息，开发者可根据此信息识别飞书招聘用户在服务商处的身份信息，完成飞书招聘用户和服务商帐号的绑定，并以此来推送对应的套餐或试卷列表等。
func (builder *CreateEcoAccountCustomFieldReqBuilder) EcoAccountCustomField(ecoAccountCustomField *EcoAccountCustomField) *CreateEcoAccountCustomFieldReqBuilder {
	builder.ecoAccountCustomField = ecoAccountCustomField
	return builder
}

func (builder *CreateEcoAccountCustomFieldReqBuilder) Build() *CreateEcoAccountCustomFieldReq {
	req := &CreateEcoAccountCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoAccountCustomField
	return req
}

type CreateEcoAccountCustomFieldReq struct {
	apiReq                *larkcore.ApiReq
	EcoAccountCustomField *EcoAccountCustomField `body:""`
}

type CreateEcoAccountCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CreateEcoAccountCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type CancelEcoBackgroundCheckReqBodyBuilder struct {
	backgroundCheckId     string // 背调 ID
	backgroundCheckIdFlag bool
}

func NewCancelEcoBackgroundCheckReqBodyBuilder() *CancelEcoBackgroundCheckReqBodyBuilder {
	builder := &CancelEcoBackgroundCheckReqBodyBuilder{}
	return builder
}

// 背调 ID
//
//示例值：6931286400470354183
func (builder *CancelEcoBackgroundCheckReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *CancelEcoBackgroundCheckReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

func (builder *CancelEcoBackgroundCheckReqBodyBuilder) Build() *CancelEcoBackgroundCheckReqBody {
	req := &CancelEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	return req
}

type CancelEcoBackgroundCheckPathReqBodyBuilder struct {
	backgroundCheckId     string
	backgroundCheckIdFlag bool
}

func NewCancelEcoBackgroundCheckPathReqBodyBuilder() *CancelEcoBackgroundCheckPathReqBodyBuilder {
	builder := &CancelEcoBackgroundCheckPathReqBodyBuilder{}
	return builder
}

// 背调 ID
//
// 示例值：6931286400470354183
func (builder *CancelEcoBackgroundCheckPathReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *CancelEcoBackgroundCheckPathReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

func (builder *CancelEcoBackgroundCheckPathReqBodyBuilder) Build() (*CancelEcoBackgroundCheckReqBody, error) {
	req := &CancelEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	return req, nil
}

type CancelEcoBackgroundCheckReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CancelEcoBackgroundCheckReqBody
}

func NewCancelEcoBackgroundCheckReqBuilder() *CancelEcoBackgroundCheckReqBuilder {
	builder := &CancelEcoBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 终止背调订单
func (builder *CancelEcoBackgroundCheckReqBuilder) Body(body *CancelEcoBackgroundCheckReqBody) *CancelEcoBackgroundCheckReqBuilder {
	builder.body = body
	return builder
}

func (builder *CancelEcoBackgroundCheckReqBuilder) Build() *CancelEcoBackgroundCheckReq {
	req := &CancelEcoBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type CancelEcoBackgroundCheckReqBody struct {
	BackgroundCheckId *string `json:"background_check_id,omitempty"` // 背调 ID
}

type CancelEcoBackgroundCheckReq struct {
	apiReq *larkcore.ApiReq
	Body   *CancelEcoBackgroundCheckReqBody `body:""`
}

type CancelEcoBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CancelEcoBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type UpdateProgressEcoBackgroundCheckReqBodyBuilder struct {
	backgroundCheckId     string // 背调 ID，招聘侧的 ID
	backgroundCheckIdFlag bool

	stageId     string // 阶段 ID，同一背调订单此 ID 不能重复
	stageIdFlag bool

	stageEnName     string // 背调阶段英文名称
	stageEnNameFlag bool

	stageName     string // 背调阶段名称
	stageNameFlag bool

	stageTime     string // 进入到此背调阶段的时间
	stageTimeFlag bool

	result     string // 阶段性背调结果
	resultFlag bool

	operatorRole     int // 操作人角色，默认值为 1
	operatorRoleFlag bool

	reportFileList     []*EcoBackgroundCheckReportFile // 报告列表
	reportFileListFlag bool
}

func NewUpdateProgressEcoBackgroundCheckReqBodyBuilder() *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder := &UpdateProgressEcoBackgroundCheckReqBodyBuilder{}
	return builder
}

// 背调 ID，招聘侧的 ID
//
//示例值：6931286400470354183
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

// 阶段 ID，同一背调订单此 ID 不能重复
//
//示例值：6931286400470354183
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) StageId(stageId string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 背调阶段英文名称
//
//示例值：stage report
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) StageEnName(stageEnName string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.stageEnName = stageEnName
	builder.stageEnNameFlag = true
	return builder
}

// 背调阶段名称
//
//示例值：阶段报告
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) StageName(stageName string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.stageName = stageName
	builder.stageNameFlag = true
	return builder
}

// 进入到此背调阶段的时间
//
//示例值：1660123456789
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) StageTime(stageTime string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.stageTime = stageTime
	builder.stageTimeFlag = true
	return builder
}

// 阶段性背调结果
//
//示例值：通过
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) Result(result string) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 操作人角色，默认值为 1
//
//示例值：1
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) OperatorRole(operatorRole int) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.operatorRole = operatorRole
	builder.operatorRoleFlag = true
	return builder
}

// 报告列表
//
//示例值：
func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) ReportFileList(reportFileList []*EcoBackgroundCheckReportFile) *UpdateProgressEcoBackgroundCheckReqBodyBuilder {
	builder.reportFileList = reportFileList
	builder.reportFileListFlag = true
	return builder
}

func (builder *UpdateProgressEcoBackgroundCheckReqBodyBuilder) Build() *UpdateProgressEcoBackgroundCheckReqBody {
	req := &UpdateProgressEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId
	}
	if builder.stageEnNameFlag {
		req.StageEnName = &builder.stageEnName
	}
	if builder.stageNameFlag {
		req.StageName = &builder.stageName
	}
	if builder.stageTimeFlag {
		req.StageTime = &builder.stageTime
	}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.operatorRoleFlag {
		req.OperatorRole = &builder.operatorRole
	}
	if builder.reportFileListFlag {
		req.ReportFileList = builder.reportFileList
	}
	return req
}

type UpdateProgressEcoBackgroundCheckPathReqBodyBuilder struct {
	backgroundCheckId     string
	backgroundCheckIdFlag bool
	stageId               string
	stageIdFlag           bool
	stageEnName           string
	stageEnNameFlag       bool
	stageName             string
	stageNameFlag         bool
	stageTime             string
	stageTimeFlag         bool
	result                string
	resultFlag            bool
	operatorRole          int
	operatorRoleFlag      bool
	reportFileList        []*EcoBackgroundCheckReportFile
	reportFileListFlag    bool
}

func NewUpdateProgressEcoBackgroundCheckPathReqBodyBuilder() *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder := &UpdateProgressEcoBackgroundCheckPathReqBodyBuilder{}
	return builder
}

// 背调 ID，招聘侧的 ID
//
// 示例值：6931286400470354183
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

// 阶段 ID，同一背调订单此 ID 不能重复
//
// 示例值：6931286400470354183
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) StageId(stageId string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.stageId = stageId
	builder.stageIdFlag = true
	return builder
}

// 背调阶段英文名称
//
// 示例值：stage report
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) StageEnName(stageEnName string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.stageEnName = stageEnName
	builder.stageEnNameFlag = true
	return builder
}

// 背调阶段名称
//
// 示例值：阶段报告
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) StageName(stageName string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.stageName = stageName
	builder.stageNameFlag = true
	return builder
}

// 进入到此背调阶段的时间
//
// 示例值：1660123456789
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) StageTime(stageTime string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.stageTime = stageTime
	builder.stageTimeFlag = true
	return builder
}

// 阶段性背调结果
//
// 示例值：通过
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) Result(result string) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 操作人角色，默认值为 1
//
// 示例值：1
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) OperatorRole(operatorRole int) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.operatorRole = operatorRole
	builder.operatorRoleFlag = true
	return builder
}

// 报告列表
//
// 示例值：
func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) ReportFileList(reportFileList []*EcoBackgroundCheckReportFile) *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder {
	builder.reportFileList = reportFileList
	builder.reportFileListFlag = true
	return builder
}

func (builder *UpdateProgressEcoBackgroundCheckPathReqBodyBuilder) Build() (*UpdateProgressEcoBackgroundCheckReqBody, error) {
	req := &UpdateProgressEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	if builder.stageIdFlag {
		req.StageId = &builder.stageId
	}
	if builder.stageEnNameFlag {
		req.StageEnName = &builder.stageEnName
	}
	if builder.stageNameFlag {
		req.StageName = &builder.stageName
	}
	if builder.stageTimeFlag {
		req.StageTime = &builder.stageTime
	}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.operatorRoleFlag {
		req.OperatorRole = &builder.operatorRole
	}
	if builder.reportFileListFlag {
		req.ReportFileList = builder.reportFileList
	}
	return req, nil
}

type UpdateProgressEcoBackgroundCheckReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateProgressEcoBackgroundCheckReqBody
}

func NewUpdateProgressEcoBackgroundCheckReqBuilder() *UpdateProgressEcoBackgroundCheckReqBuilder {
	builder := &UpdateProgressEcoBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 更新指定背调的进度信息
func (builder *UpdateProgressEcoBackgroundCheckReqBuilder) Body(body *UpdateProgressEcoBackgroundCheckReqBody) *UpdateProgressEcoBackgroundCheckReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateProgressEcoBackgroundCheckReqBuilder) Build() *UpdateProgressEcoBackgroundCheckReq {
	req := &UpdateProgressEcoBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type UpdateProgressEcoBackgroundCheckReqBody struct {
	BackgroundCheckId *string `json:"background_check_id,omitempty"` // 背调 ID，招聘侧的 ID

	StageId *string `json:"stage_id,omitempty"` // 阶段 ID，同一背调订单此 ID 不能重复

	StageEnName *string `json:"stage_en_name,omitempty"` // 背调阶段英文名称

	StageName *string `json:"stage_name,omitempty"` // 背调阶段名称

	StageTime *string `json:"stage_time,omitempty"` // 进入到此背调阶段的时间

	Result *string `json:"result,omitempty"` // 阶段性背调结果

	OperatorRole *int `json:"operator_role,omitempty"` // 操作人角色，默认值为 1

	ReportFileList []*EcoBackgroundCheckReportFile `json:"report_file_list,omitempty"` // 报告列表
}

type UpdateProgressEcoBackgroundCheckReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateProgressEcoBackgroundCheckReqBody `body:""`
}

type UpdateProgressEcoBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateProgressEcoBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type UpdateResultEcoBackgroundCheckReqBodyBuilder struct {
	backgroundCheckId     string // 背调 ID
	backgroundCheckIdFlag bool

	result     string // 背调结果
	resultFlag bool

	resultTime     string // 背调结果时间
	resultTimeFlag bool

	operatorRole     int // 操作人角色，默认值为 1
	operatorRoleFlag bool

	reportFileList     []*EcoBackgroundCheckReportFile // 报告列表
	reportFileListFlag bool
}

func NewUpdateResultEcoBackgroundCheckReqBodyBuilder() *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder := &UpdateResultEcoBackgroundCheckReqBodyBuilder{}
	return builder
}

// 背调 ID
//
//示例值：6931286400470354183
func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

// 背调结果
//
//示例值：无差异
func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) Result(result string) *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 背调结果时间
//
//示例值：1660123456789
func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) ResultTime(resultTime string) *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder.resultTime = resultTime
	builder.resultTimeFlag = true
	return builder
}

// 操作人角色，默认值为 1
//
//示例值：1
func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) OperatorRole(operatorRole int) *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder.operatorRole = operatorRole
	builder.operatorRoleFlag = true
	return builder
}

// 报告列表
//
//示例值：
func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) ReportFileList(reportFileList []*EcoBackgroundCheckReportFile) *UpdateResultEcoBackgroundCheckReqBodyBuilder {
	builder.reportFileList = reportFileList
	builder.reportFileListFlag = true
	return builder
}

func (builder *UpdateResultEcoBackgroundCheckReqBodyBuilder) Build() *UpdateResultEcoBackgroundCheckReqBody {
	req := &UpdateResultEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.resultTimeFlag {
		req.ResultTime = &builder.resultTime
	}
	if builder.operatorRoleFlag {
		req.OperatorRole = &builder.operatorRole
	}
	if builder.reportFileListFlag {
		req.ReportFileList = builder.reportFileList
	}
	return req
}

type UpdateResultEcoBackgroundCheckPathReqBodyBuilder struct {
	backgroundCheckId     string
	backgroundCheckIdFlag bool
	result                string
	resultFlag            bool
	resultTime            string
	resultTimeFlag        bool
	operatorRole          int
	operatorRoleFlag      bool
	reportFileList        []*EcoBackgroundCheckReportFile
	reportFileListFlag    bool
}

func NewUpdateResultEcoBackgroundCheckPathReqBodyBuilder() *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder := &UpdateResultEcoBackgroundCheckPathReqBodyBuilder{}
	return builder
}

// 背调 ID
//
// 示例值：6931286400470354183
func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) BackgroundCheckId(backgroundCheckId string) *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder.backgroundCheckId = backgroundCheckId
	builder.backgroundCheckIdFlag = true
	return builder
}

// 背调结果
//
// 示例值：无差异
func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) Result(result string) *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 背调结果时间
//
// 示例值：1660123456789
func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) ResultTime(resultTime string) *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder.resultTime = resultTime
	builder.resultTimeFlag = true
	return builder
}

// 操作人角色，默认值为 1
//
// 示例值：1
func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) OperatorRole(operatorRole int) *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder.operatorRole = operatorRole
	builder.operatorRoleFlag = true
	return builder
}

// 报告列表
//
// 示例值：
func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) ReportFileList(reportFileList []*EcoBackgroundCheckReportFile) *UpdateResultEcoBackgroundCheckPathReqBodyBuilder {
	builder.reportFileList = reportFileList
	builder.reportFileListFlag = true
	return builder
}

func (builder *UpdateResultEcoBackgroundCheckPathReqBodyBuilder) Build() (*UpdateResultEcoBackgroundCheckReqBody, error) {
	req := &UpdateResultEcoBackgroundCheckReqBody{}
	if builder.backgroundCheckIdFlag {
		req.BackgroundCheckId = &builder.backgroundCheckId
	}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.resultTimeFlag {
		req.ResultTime = &builder.resultTime
	}
	if builder.operatorRoleFlag {
		req.OperatorRole = &builder.operatorRole
	}
	if builder.reportFileListFlag {
		req.ReportFileList = builder.reportFileList
	}
	return req, nil
}

type UpdateResultEcoBackgroundCheckReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateResultEcoBackgroundCheckReqBody
}

func NewUpdateResultEcoBackgroundCheckReqBuilder() *UpdateResultEcoBackgroundCheckReqBuilder {
	builder := &UpdateResultEcoBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 回传背调的最终结果
func (builder *UpdateResultEcoBackgroundCheckReqBuilder) Body(body *UpdateResultEcoBackgroundCheckReqBody) *UpdateResultEcoBackgroundCheckReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateResultEcoBackgroundCheckReqBuilder) Build() *UpdateResultEcoBackgroundCheckReq {
	req := &UpdateResultEcoBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type UpdateResultEcoBackgroundCheckReqBody struct {
	BackgroundCheckId *string `json:"background_check_id,omitempty"` // 背调 ID

	Result *string `json:"result,omitempty"` // 背调结果

	ResultTime *string `json:"result_time,omitempty"` // 背调结果时间

	OperatorRole *int `json:"operator_role,omitempty"` // 操作人角色，默认值为 1

	ReportFileList []*EcoBackgroundCheckReportFile `json:"report_file_list,omitempty"` // 报告列表
}

type UpdateResultEcoBackgroundCheckReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateResultEcoBackgroundCheckReqBody `body:""`
}

type UpdateResultEcoBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateResultEcoBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder struct {
	accountId     string // 背调账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool
}

func NewBatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder() *BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder {
	builder := &BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
//示例值：a001
func (builder *BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckCustomFieldReqBodyBuilder) Build() *BatchDeleteEcoBackgroundCheckCustomFieldReqBody {
	req := &BatchDeleteEcoBackgroundCheckCustomFieldReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	return req
}

type BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder struct {
	accountId     string
	accountIdFlag bool
}

func NewBatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder() *BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder {
	builder := &BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
// 示例值：a001
func (builder *BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckCustomFieldPathReqBodyBuilder) Build() (*BatchDeleteEcoBackgroundCheckCustomFieldReqBody, error) {
	req := &BatchDeleteEcoBackgroundCheckCustomFieldReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	return req, nil
}

type BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchDeleteEcoBackgroundCheckCustomFieldReqBody
}

func NewBatchDeleteEcoBackgroundCheckCustomFieldReqBuilder() *BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder {
	builder := &BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 删除用户在发起背调时的自定义字段，删除不影响已创建的背调，删除后对应的自定义字段的 key 不能再复用。
func (builder *BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder) Body(body *BatchDeleteEcoBackgroundCheckCustomFieldReqBody) *BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckCustomFieldReqBuilder) Build() *BatchDeleteEcoBackgroundCheckCustomFieldReq {
	req := &BatchDeleteEcoBackgroundCheckCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchDeleteEcoBackgroundCheckCustomFieldReqBody struct {
	AccountId *string `json:"account_id,omitempty"` // 背调账号 ID，可在「账号绑定」事件中获取
}

type BatchDeleteEcoBackgroundCheckCustomFieldReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchDeleteEcoBackgroundCheckCustomFieldReqBody `body:""`
}

type BatchDeleteEcoBackgroundCheckCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchDeleteEcoBackgroundCheckCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder struct {
	apiReq                        *larkcore.ApiReq
	ecoBackgroundCheckCustomField *EcoBackgroundCheckCustomField
}

func NewBatchUpdateEcoBackgroundCheckCustomFieldReqBuilder() *BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder {
	builder := &BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 更新用户在发起背调时的自定义字段。更新操作不支持更新自定义字段类型，且将影响已发起的背调表单展示。
func (builder *BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder) EcoBackgroundCheckCustomField(ecoBackgroundCheckCustomField *EcoBackgroundCheckCustomField) *BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder {
	builder.ecoBackgroundCheckCustomField = ecoBackgroundCheckCustomField
	return builder
}

func (builder *BatchUpdateEcoBackgroundCheckCustomFieldReqBuilder) Build() *BatchUpdateEcoBackgroundCheckCustomFieldReq {
	req := &BatchUpdateEcoBackgroundCheckCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoBackgroundCheckCustomField
	return req
}

type BatchUpdateEcoBackgroundCheckCustomFieldReq struct {
	apiReq                        *larkcore.ApiReq
	EcoBackgroundCheckCustomField *EcoBackgroundCheckCustomField `body:""`
}

type BatchUpdateEcoBackgroundCheckCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchUpdateEcoBackgroundCheckCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type CreateEcoBackgroundCheckCustomFieldReqBuilder struct {
	apiReq                        *larkcore.ApiReq
	ecoBackgroundCheckCustomField *EcoBackgroundCheckCustomField
}

func NewCreateEcoBackgroundCheckCustomFieldReqBuilder() *CreateEcoBackgroundCheckCustomFieldReqBuilder {
	builder := &CreateEcoBackgroundCheckCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 定制用户在发起背调时的自定义字段
func (builder *CreateEcoBackgroundCheckCustomFieldReqBuilder) EcoBackgroundCheckCustomField(ecoBackgroundCheckCustomField *EcoBackgroundCheckCustomField) *CreateEcoBackgroundCheckCustomFieldReqBuilder {
	builder.ecoBackgroundCheckCustomField = ecoBackgroundCheckCustomField
	return builder
}

func (builder *CreateEcoBackgroundCheckCustomFieldReqBuilder) Build() *CreateEcoBackgroundCheckCustomFieldReq {
	req := &CreateEcoBackgroundCheckCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoBackgroundCheckCustomField
	return req
}

type CreateEcoBackgroundCheckCustomFieldReq struct {
	apiReq                        *larkcore.ApiReq
	EcoBackgroundCheckCustomField *EcoBackgroundCheckCustomField `body:""`
}

type CreateEcoBackgroundCheckCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CreateEcoBackgroundCheckCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder struct {
	accountId     string // 背调账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool

	packageIdList     []string // 要删除的套餐 ID 列表，删除套餐不影响已安排的背调
	packageIdListFlag bool

	additionalItemIdList     []string // 要删除的附加调查项 ID 列表，删除附加调查项不影响已安排的背调
	additionalItemIdListFlag bool
}

func NewBatchDeleteEcoBackgroundCheckPackageReqBodyBuilder() *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder {
	builder := &BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
//示例值：xd_bc_001
func (builder *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 要删除的套餐 ID 列表，删除套餐不影响已安排的背调
//
//示例值：6996920667635566881
func (builder *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder) PackageIdList(packageIdList []string) *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder {
	builder.packageIdList = packageIdList
	builder.packageIdListFlag = true
	return builder
}

// 要删除的附加调查项 ID 列表，删除附加调查项不影响已安排的背调
//
//示例值：6996920667635566881
func (builder *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder) AdditionalItemIdList(additionalItemIdList []string) *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder {
	builder.additionalItemIdList = additionalItemIdList
	builder.additionalItemIdListFlag = true
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckPackageReqBodyBuilder) Build() *BatchDeleteEcoBackgroundCheckPackageReqBody {
	req := &BatchDeleteEcoBackgroundCheckPackageReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	if builder.packageIdListFlag {
		req.PackageIdList = builder.packageIdList
	}
	if builder.additionalItemIdListFlag {
		req.AdditionalItemIdList = builder.additionalItemIdList
	}
	return req
}

type BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder struct {
	accountId                string
	accountIdFlag            bool
	packageIdList            []string
	packageIdListFlag        bool
	additionalItemIdList     []string
	additionalItemIdListFlag bool
}

func NewBatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder() *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder {
	builder := &BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
// 示例值：xd_bc_001
func (builder *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 要删除的套餐 ID 列表，删除套餐不影响已安排的背调
//
// 示例值：6996920667635566881
func (builder *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder) PackageIdList(packageIdList []string) *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder {
	builder.packageIdList = packageIdList
	builder.packageIdListFlag = true
	return builder
}

// 要删除的附加调查项 ID 列表，删除附加调查项不影响已安排的背调
//
// 示例值：6996920667635566881
func (builder *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder) AdditionalItemIdList(additionalItemIdList []string) *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder {
	builder.additionalItemIdList = additionalItemIdList
	builder.additionalItemIdListFlag = true
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckPackagePathReqBodyBuilder) Build() (*BatchDeleteEcoBackgroundCheckPackageReqBody, error) {
	req := &BatchDeleteEcoBackgroundCheckPackageReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	if builder.packageIdListFlag {
		req.PackageIdList = builder.packageIdList
	}
	if builder.additionalItemIdListFlag {
		req.AdditionalItemIdList = builder.additionalItemIdList
	}
	return req, nil
}

type BatchDeleteEcoBackgroundCheckPackageReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchDeleteEcoBackgroundCheckPackageReqBody
}

func NewBatchDeleteEcoBackgroundCheckPackageReqBuilder() *BatchDeleteEcoBackgroundCheckPackageReqBuilder {
	builder := &BatchDeleteEcoBackgroundCheckPackageReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 删除指定帐号的指定背调套餐和附加调查项信息，删除不会影响已创建的背调。
func (builder *BatchDeleteEcoBackgroundCheckPackageReqBuilder) Body(body *BatchDeleteEcoBackgroundCheckPackageReqBody) *BatchDeleteEcoBackgroundCheckPackageReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchDeleteEcoBackgroundCheckPackageReqBuilder) Build() *BatchDeleteEcoBackgroundCheckPackageReq {
	req := &BatchDeleteEcoBackgroundCheckPackageReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchDeleteEcoBackgroundCheckPackageReqBody struct {
	AccountId *string `json:"account_id,omitempty"` // 背调账号 ID，可在「账号绑定」事件中获取

	PackageIdList []string `json:"package_id_list,omitempty"` // 要删除的套餐 ID 列表，删除套餐不影响已安排的背调

	AdditionalItemIdList []string `json:"additional_item_id_list,omitempty"` // 要删除的附加调查项 ID 列表，删除附加调查项不影响已安排的背调
}

type BatchDeleteEcoBackgroundCheckPackageReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchDeleteEcoBackgroundCheckPackageReqBody `body:""`
}

type BatchDeleteEcoBackgroundCheckPackageResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchDeleteEcoBackgroundCheckPackageResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateEcoBackgroundCheckPackageReqBuilder struct {
	apiReq                    *larkcore.ApiReq
	ecoBackgroundCheckPackage *EcoBackgroundCheckPackage
}

func NewBatchUpdateEcoBackgroundCheckPackageReqBuilder() *BatchUpdateEcoBackgroundCheckPackageReqBuilder {
	builder := &BatchUpdateEcoBackgroundCheckPackageReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 更新指定帐号可用的背调套餐和附加调查项信息，更新将影响已发起背调的表单项展示
func (builder *BatchUpdateEcoBackgroundCheckPackageReqBuilder) EcoBackgroundCheckPackage(ecoBackgroundCheckPackage *EcoBackgroundCheckPackage) *BatchUpdateEcoBackgroundCheckPackageReqBuilder {
	builder.ecoBackgroundCheckPackage = ecoBackgroundCheckPackage
	return builder
}

func (builder *BatchUpdateEcoBackgroundCheckPackageReqBuilder) Build() *BatchUpdateEcoBackgroundCheckPackageReq {
	req := &BatchUpdateEcoBackgroundCheckPackageReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoBackgroundCheckPackage
	return req
}

type BatchUpdateEcoBackgroundCheckPackageReq struct {
	apiReq                    *larkcore.ApiReq
	EcoBackgroundCheckPackage *EcoBackgroundCheckPackage `body:""`
}

type BatchUpdateEcoBackgroundCheckPackageResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchUpdateEcoBackgroundCheckPackageResp) Success() bool {
	return resp.Code == 0
}

type CreateEcoBackgroundCheckPackageReqBuilder struct {
	apiReq                    *larkcore.ApiReq
	ecoBackgroundCheckPackage *EcoBackgroundCheckPackage
}

func NewCreateEcoBackgroundCheckPackageReqBuilder() *CreateEcoBackgroundCheckPackageReqBuilder {
	builder := &CreateEcoBackgroundCheckPackageReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 定制指定帐号可用的背调套餐和附加调查项信息
func (builder *CreateEcoBackgroundCheckPackageReqBuilder) EcoBackgroundCheckPackage(ecoBackgroundCheckPackage *EcoBackgroundCheckPackage) *CreateEcoBackgroundCheckPackageReqBuilder {
	builder.ecoBackgroundCheckPackage = ecoBackgroundCheckPackage
	return builder
}

func (builder *CreateEcoBackgroundCheckPackageReqBuilder) Build() *CreateEcoBackgroundCheckPackageReq {
	req := &CreateEcoBackgroundCheckPackageReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoBackgroundCheckPackage
	return req
}

type CreateEcoBackgroundCheckPackageReq struct {
	apiReq                    *larkcore.ApiReq
	EcoBackgroundCheckPackage *EcoBackgroundCheckPackage `body:""`
}

type CreateEcoBackgroundCheckPackageResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CreateEcoBackgroundCheckPackageResp) Success() bool {
	return resp.Code == 0
}

type LoginInfoEcoExamReqBodyBuilder struct {
	result     int // 状态码，0-成功 非零-错误码
	resultFlag bool

	msg     string // 成功或失败的描述信息
	msgFlag bool

	examLoginInfo     *EcoExamLoginInfo // 笔试作答信息
	examLoginInfoFlag bool
}

func NewLoginInfoEcoExamReqBodyBuilder() *LoginInfoEcoExamReqBodyBuilder {
	builder := &LoginInfoEcoExamReqBodyBuilder{}
	return builder
}

// 状态码，0-成功 非零-错误码
//
//示例值：0
func (builder *LoginInfoEcoExamReqBodyBuilder) Result(result int) *LoginInfoEcoExamReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 成功或失败的描述信息
//
//示例值：success
func (builder *LoginInfoEcoExamReqBodyBuilder) Msg(msg string) *LoginInfoEcoExamReqBodyBuilder {
	builder.msg = msg
	builder.msgFlag = true
	return builder
}

// 笔试作答信息
//
//示例值：
func (builder *LoginInfoEcoExamReqBodyBuilder) ExamLoginInfo(examLoginInfo *EcoExamLoginInfo) *LoginInfoEcoExamReqBodyBuilder {
	builder.examLoginInfo = examLoginInfo
	builder.examLoginInfoFlag = true
	return builder
}

func (builder *LoginInfoEcoExamReqBodyBuilder) Build() *LoginInfoEcoExamReqBody {
	req := &LoginInfoEcoExamReqBody{}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.msgFlag {
		req.Msg = &builder.msg
	}
	if builder.examLoginInfoFlag {
		req.ExamLoginInfo = builder.examLoginInfo
	}
	return req
}

type LoginInfoEcoExamPathReqBodyBuilder struct {
	result            int
	resultFlag        bool
	msg               string
	msgFlag           bool
	examLoginInfo     *EcoExamLoginInfo
	examLoginInfoFlag bool
}

func NewLoginInfoEcoExamPathReqBodyBuilder() *LoginInfoEcoExamPathReqBodyBuilder {
	builder := &LoginInfoEcoExamPathReqBodyBuilder{}
	return builder
}

// 状态码，0-成功 非零-错误码
//
// 示例值：0
func (builder *LoginInfoEcoExamPathReqBodyBuilder) Result(result int) *LoginInfoEcoExamPathReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 成功或失败的描述信息
//
// 示例值：success
func (builder *LoginInfoEcoExamPathReqBodyBuilder) Msg(msg string) *LoginInfoEcoExamPathReqBodyBuilder {
	builder.msg = msg
	builder.msgFlag = true
	return builder
}

// 笔试作答信息
//
// 示例值：
func (builder *LoginInfoEcoExamPathReqBodyBuilder) ExamLoginInfo(examLoginInfo *EcoExamLoginInfo) *LoginInfoEcoExamPathReqBodyBuilder {
	builder.examLoginInfo = examLoginInfo
	builder.examLoginInfoFlag = true
	return builder
}

func (builder *LoginInfoEcoExamPathReqBodyBuilder) Build() (*LoginInfoEcoExamReqBody, error) {
	req := &LoginInfoEcoExamReqBody{}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.msgFlag {
		req.Msg = &builder.msg
	}
	if builder.examLoginInfoFlag {
		req.ExamLoginInfo = builder.examLoginInfo
	}
	return req, nil
}

type LoginInfoEcoExamReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *LoginInfoEcoExamReqBody
}

func NewLoginInfoEcoExamReqBuilder() *LoginInfoEcoExamReqBuilder {
	builder := &LoginInfoEcoExamReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// exam id
//
// 示例值：7178536692385679677
func (builder *LoginInfoEcoExamReqBuilder) ExamId(examId string) *LoginInfoEcoExamReqBuilder {
	builder.apiReq.PathParams.Set("exam_id", fmt.Sprint(examId))
	return builder
}

//
func (builder *LoginInfoEcoExamReqBuilder) Body(body *LoginInfoEcoExamReqBody) *LoginInfoEcoExamReqBuilder {
	builder.body = body
	return builder
}

func (builder *LoginInfoEcoExamReqBuilder) Build() *LoginInfoEcoExamReq {
	req := &LoginInfoEcoExamReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type LoginInfoEcoExamReqBody struct {
	Result *int `json:"result,omitempty"` // 状态码，0-成功 非零-错误码

	Msg *string `json:"msg,omitempty"` // 成功或失败的描述信息

	ExamLoginInfo *EcoExamLoginInfo `json:"exam_login_info,omitempty"` // 笔试作答信息
}

type LoginInfoEcoExamReq struct {
	apiReq *larkcore.ApiReq
	Body   *LoginInfoEcoExamReqBody `body:""`
}

type LoginInfoEcoExamResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *LoginInfoEcoExamResp) Success() bool {
	return resp.Code == 0
}

type UpdateResultEcoExamReqBodyBuilder struct {
	result     string // 笔试结果
	resultFlag bool

	resultTime     string // 笔试结果时间
	resultTimeFlag bool

	reportList     []*EcoExamResultReport // 报告列表
	reportListFlag bool

	detailList     []*EcoExamResultDetail // 详细评价结果
	detailListFlag bool

	status     int // 笔试状态
	statusFlag bool
}

func NewUpdateResultEcoExamReqBodyBuilder() *UpdateResultEcoExamReqBodyBuilder {
	builder := &UpdateResultEcoExamReqBodyBuilder{}
	return builder
}

// 笔试结果
//
//示例值：60.5
func (builder *UpdateResultEcoExamReqBodyBuilder) Result(result string) *UpdateResultEcoExamReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 笔试结果时间
//
//示例值：1658676234053
func (builder *UpdateResultEcoExamReqBodyBuilder) ResultTime(resultTime string) *UpdateResultEcoExamReqBodyBuilder {
	builder.resultTime = resultTime
	builder.resultTimeFlag = true
	return builder
}

// 报告列表
//
//示例值：
func (builder *UpdateResultEcoExamReqBodyBuilder) ReportList(reportList []*EcoExamResultReport) *UpdateResultEcoExamReqBodyBuilder {
	builder.reportList = reportList
	builder.reportListFlag = true
	return builder
}

// 详细评价结果
//
//示例值：
func (builder *UpdateResultEcoExamReqBodyBuilder) DetailList(detailList []*EcoExamResultDetail) *UpdateResultEcoExamReqBodyBuilder {
	builder.detailList = detailList
	builder.detailListFlag = true
	return builder
}

// 笔试状态
//
//示例值：1
func (builder *UpdateResultEcoExamReqBodyBuilder) Status(status int) *UpdateResultEcoExamReqBodyBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

func (builder *UpdateResultEcoExamReqBodyBuilder) Build() *UpdateResultEcoExamReqBody {
	req := &UpdateResultEcoExamReqBody{}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.resultTimeFlag {
		req.ResultTime = &builder.resultTime
	}
	if builder.reportListFlag {
		req.ReportList = builder.reportList
	}
	if builder.detailListFlag {
		req.DetailList = builder.detailList
	}
	if builder.statusFlag {
		req.Status = &builder.status
	}
	return req
}

type UpdateResultEcoExamPathReqBodyBuilder struct {
	result         string
	resultFlag     bool
	resultTime     string
	resultTimeFlag bool
	reportList     []*EcoExamResultReport
	reportListFlag bool
	detailList     []*EcoExamResultDetail
	detailListFlag bool
	status         int
	statusFlag     bool
}

func NewUpdateResultEcoExamPathReqBodyBuilder() *UpdateResultEcoExamPathReqBodyBuilder {
	builder := &UpdateResultEcoExamPathReqBodyBuilder{}
	return builder
}

// 笔试结果
//
// 示例值：60.5
func (builder *UpdateResultEcoExamPathReqBodyBuilder) Result(result string) *UpdateResultEcoExamPathReqBodyBuilder {
	builder.result = result
	builder.resultFlag = true
	return builder
}

// 笔试结果时间
//
// 示例值：1658676234053
func (builder *UpdateResultEcoExamPathReqBodyBuilder) ResultTime(resultTime string) *UpdateResultEcoExamPathReqBodyBuilder {
	builder.resultTime = resultTime
	builder.resultTimeFlag = true
	return builder
}

// 报告列表
//
// 示例值：
func (builder *UpdateResultEcoExamPathReqBodyBuilder) ReportList(reportList []*EcoExamResultReport) *UpdateResultEcoExamPathReqBodyBuilder {
	builder.reportList = reportList
	builder.reportListFlag = true
	return builder
}

// 详细评价结果
//
// 示例值：
func (builder *UpdateResultEcoExamPathReqBodyBuilder) DetailList(detailList []*EcoExamResultDetail) *UpdateResultEcoExamPathReqBodyBuilder {
	builder.detailList = detailList
	builder.detailListFlag = true
	return builder
}

// 笔试状态
//
// 示例值：1
func (builder *UpdateResultEcoExamPathReqBodyBuilder) Status(status int) *UpdateResultEcoExamPathReqBodyBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

func (builder *UpdateResultEcoExamPathReqBodyBuilder) Build() (*UpdateResultEcoExamReqBody, error) {
	req := &UpdateResultEcoExamReqBody{}
	if builder.resultFlag {
		req.Result = &builder.result
	}
	if builder.resultTimeFlag {
		req.ResultTime = &builder.resultTime
	}
	if builder.reportListFlag {
		req.ReportList = builder.reportList
	}
	if builder.detailListFlag {
		req.DetailList = builder.detailList
	}
	if builder.statusFlag {
		req.Status = &builder.status
	}
	return req, nil
}

type UpdateResultEcoExamReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateResultEcoExamReqBody
}

func NewUpdateResultEcoExamReqBuilder() *UpdateResultEcoExamReqBuilder {
	builder := &UpdateResultEcoExamReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// exam id
//
// 示例值：7178536692385679677
func (builder *UpdateResultEcoExamReqBuilder) ExamId(examId string) *UpdateResultEcoExamReqBuilder {
	builder.apiReq.PathParams.Set("exam_id", fmt.Sprint(examId))
	return builder
}

//
func (builder *UpdateResultEcoExamReqBuilder) Body(body *UpdateResultEcoExamReqBody) *UpdateResultEcoExamReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateResultEcoExamReqBuilder) Build() *UpdateResultEcoExamReq {
	req := &UpdateResultEcoExamReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateResultEcoExamReqBody struct {
	Result *string `json:"result,omitempty"` // 笔试结果

	ResultTime *string `json:"result_time,omitempty"` // 笔试结果时间

	ReportList []*EcoExamResultReport `json:"report_list,omitempty"` // 报告列表

	DetailList []*EcoExamResultDetail `json:"detail_list,omitempty"` // 详细评价结果

	Status *int `json:"status,omitempty"` // 笔试状态
}

type UpdateResultEcoExamReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateResultEcoExamReqBody `body:""`
}

type UpdateResultEcoExamResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateResultEcoExamResp) Success() bool {
	return resp.Code == 0
}

type BatchDeleteEcoExamPaperReqBodyBuilder struct {
	accountId     string // 背调账号 ID，可在「账号绑定」事件中获取
	accountIdFlag bool

	paperIdList     []string // 试卷 ID 列表
	paperIdListFlag bool
}

func NewBatchDeleteEcoExamPaperReqBodyBuilder() *BatchDeleteEcoExamPaperReqBodyBuilder {
	builder := &BatchDeleteEcoExamPaperReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
//示例值：7147998241542539527
func (builder *BatchDeleteEcoExamPaperReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoExamPaperReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 试卷 ID 列表
//
//示例值：
func (builder *BatchDeleteEcoExamPaperReqBodyBuilder) PaperIdList(paperIdList []string) *BatchDeleteEcoExamPaperReqBodyBuilder {
	builder.paperIdList = paperIdList
	builder.paperIdListFlag = true
	return builder
}

func (builder *BatchDeleteEcoExamPaperReqBodyBuilder) Build() *BatchDeleteEcoExamPaperReqBody {
	req := &BatchDeleteEcoExamPaperReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	if builder.paperIdListFlag {
		req.PaperIdList = builder.paperIdList
	}
	return req
}

type BatchDeleteEcoExamPaperPathReqBodyBuilder struct {
	accountId       string
	accountIdFlag   bool
	paperIdList     []string
	paperIdListFlag bool
}

func NewBatchDeleteEcoExamPaperPathReqBodyBuilder() *BatchDeleteEcoExamPaperPathReqBodyBuilder {
	builder := &BatchDeleteEcoExamPaperPathReqBodyBuilder{}
	return builder
}

// 背调账号 ID，可在「账号绑定」事件中获取
//
// 示例值：7147998241542539527
func (builder *BatchDeleteEcoExamPaperPathReqBodyBuilder) AccountId(accountId string) *BatchDeleteEcoExamPaperPathReqBodyBuilder {
	builder.accountId = accountId
	builder.accountIdFlag = true
	return builder
}

// 试卷 ID 列表
//
// 示例值：
func (builder *BatchDeleteEcoExamPaperPathReqBodyBuilder) PaperIdList(paperIdList []string) *BatchDeleteEcoExamPaperPathReqBodyBuilder {
	builder.paperIdList = paperIdList
	builder.paperIdListFlag = true
	return builder
}

func (builder *BatchDeleteEcoExamPaperPathReqBodyBuilder) Build() (*BatchDeleteEcoExamPaperReqBody, error) {
	req := &BatchDeleteEcoExamPaperReqBody{}
	if builder.accountIdFlag {
		req.AccountId = &builder.accountId
	}
	if builder.paperIdListFlag {
		req.PaperIdList = builder.paperIdList
	}
	return req, nil
}

type BatchDeleteEcoExamPaperReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchDeleteEcoExamPaperReqBody
}

func NewBatchDeleteEcoExamPaperReqBuilder() *BatchDeleteEcoExamPaperReqBuilder {
	builder := &BatchDeleteEcoExamPaperReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *BatchDeleteEcoExamPaperReqBuilder) Body(body *BatchDeleteEcoExamPaperReqBody) *BatchDeleteEcoExamPaperReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchDeleteEcoExamPaperReqBuilder) Build() *BatchDeleteEcoExamPaperReq {
	req := &BatchDeleteEcoExamPaperReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchDeleteEcoExamPaperReqBody struct {
	AccountId *string `json:"account_id,omitempty"` // 背调账号 ID，可在「账号绑定」事件中获取

	PaperIdList []string `json:"paper_id_list,omitempty"` // 试卷 ID 列表
}

type BatchDeleteEcoExamPaperReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchDeleteEcoExamPaperReqBody `body:""`
}

type BatchDeleteEcoExamPaperResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchDeleteEcoExamPaperResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateEcoExamPaperReqBuilder struct {
	apiReq       *larkcore.ApiReq
	ecoExamPaper *EcoExamPaper
}

func NewBatchUpdateEcoExamPaperReqBuilder() *BatchUpdateEcoExamPaperReqBuilder {
	builder := &BatchUpdateEcoExamPaperReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *BatchUpdateEcoExamPaperReqBuilder) EcoExamPaper(ecoExamPaper *EcoExamPaper) *BatchUpdateEcoExamPaperReqBuilder {
	builder.ecoExamPaper = ecoExamPaper
	return builder
}

func (builder *BatchUpdateEcoExamPaperReqBuilder) Build() *BatchUpdateEcoExamPaperReq {
	req := &BatchUpdateEcoExamPaperReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoExamPaper
	return req
}

type BatchUpdateEcoExamPaperReq struct {
	apiReq       *larkcore.ApiReq
	EcoExamPaper *EcoExamPaper `body:""`
}

type BatchUpdateEcoExamPaperResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchUpdateEcoExamPaperResp) Success() bool {
	return resp.Code == 0
}

type CreateEcoExamPaperReqBuilder struct {
	apiReq       *larkcore.ApiReq
	ecoExamPaper *EcoExamPaper
}

func NewCreateEcoExamPaperReqBuilder() *CreateEcoExamPaperReqBuilder {
	builder := &CreateEcoExamPaperReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *CreateEcoExamPaperReqBuilder) EcoExamPaper(ecoExamPaper *EcoExamPaper) *CreateEcoExamPaperReqBuilder {
	builder.ecoExamPaper = ecoExamPaper
	return builder
}

func (builder *CreateEcoExamPaperReqBuilder) Build() *CreateEcoExamPaperReq {
	req := &CreateEcoExamPaperReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.ecoExamPaper
	return req
}

type CreateEcoExamPaperReq struct {
	apiReq       *larkcore.ApiReq
	EcoExamPaper *EcoExamPaper `body:""`
}

type CreateEcoExamPaperResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CreateEcoExamPaperResp) Success() bool {
	return resp.Code == 0
}

type PatchEhrImportTaskReqBuilder struct {
	apiReq        *larkcore.ApiReq
	ehrImportTask *EhrImportTask
}

func NewPatchEhrImportTaskReqBuilder() *PatchEhrImportTaskReqBuilder {
	builder := &PatchEhrImportTaskReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 导入任务 ID
//
// 示例值：623455234
func (builder *PatchEhrImportTaskReqBuilder) EhrImportTaskId(ehrImportTaskId string) *PatchEhrImportTaskReqBuilder {
	builder.apiReq.PathParams.Set("ehr_import_task_id", fmt.Sprint(ehrImportTaskId))
	return builder
}

// 在处理完导入 e-HR 事件后，可调用该接口，更新  e-HR 导入任务结果
func (builder *PatchEhrImportTaskReqBuilder) EhrImportTask(ehrImportTask *EhrImportTask) *PatchEhrImportTaskReqBuilder {
	builder.ehrImportTask = ehrImportTask
	return builder
}

func (builder *PatchEhrImportTaskReqBuilder) Build() *PatchEhrImportTaskReq {
	req := &PatchEhrImportTaskReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.ehrImportTask
	return req
}

type PatchEhrImportTaskReq struct {
	apiReq        *larkcore.ApiReq
	EhrImportTask *EhrImportTask `body:""`
}

type PatchEhrImportTaskResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *PatchEhrImportTaskResp) Success() bool {
	return resp.Code == 0
}

type GetEmployeeReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetEmployeeReqBuilder() *GetEmployeeReqBuilder {
	builder := &GetEmployeeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 员工ID
//
// 示例值：123
func (builder *GetEmployeeReqBuilder) EmployeeId(employeeId string) *GetEmployeeReqBuilder {
	builder.apiReq.PathParams.Set("employee_id", fmt.Sprint(employeeId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetEmployeeReqBuilder) UserIdType(userIdType string) *GetEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetEmployeeReqBuilder) DepartmentIdType(departmentIdType string) *GetEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetEmployeeReqBuilder) JobLevelIdType(jobLevelIdType string) *GetEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *GetEmployeeReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *GetEmployeeReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *GetEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *GetEmployeeReqBuilder) Build() *GetEmployeeReq {
	req := &GetEmployeeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetEmployeeReq struct {
	apiReq *larkcore.ApiReq
}

type GetEmployeeRespData struct {
	Employee *Employee `json:"employee,omitempty"` // 员工信息
}

type GetEmployeeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetEmployeeRespData `json:"data"` // 业务数据
}

func (resp *GetEmployeeResp) Success() bool {
	return resp.Code == 0
}

type GetByApplicationEmployeeReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetByApplicationEmployeeReqBuilder() *GetByApplicationEmployeeReqBuilder {
	builder := &GetByApplicationEmployeeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递ID
//
// 示例值：123
func (builder *GetByApplicationEmployeeReqBuilder) ApplicationId(applicationId string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetByApplicationEmployeeReqBuilder) UserIdType(userIdType string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetByApplicationEmployeeReqBuilder) DepartmentIdType(departmentIdType string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetByApplicationEmployeeReqBuilder) JobLevelIdType(jobLevelIdType string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *GetByApplicationEmployeeReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *GetByApplicationEmployeeReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *GetByApplicationEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *GetByApplicationEmployeeReqBuilder) Build() *GetByApplicationEmployeeReq {
	req := &GetByApplicationEmployeeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetByApplicationEmployeeReq struct {
	apiReq *larkcore.ApiReq
}

type GetByApplicationEmployeeRespData struct {
	Employee *Employee `json:"employee,omitempty"` // 员工信息
}

type GetByApplicationEmployeeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetByApplicationEmployeeRespData `json:"data"` // 业务数据
}

func (resp *GetByApplicationEmployeeResp) Success() bool {
	return resp.Code == 0
}

type PatchEmployeeReqBuilder struct {
	apiReq              *larkcore.ApiReq
	changeEmployeeStage *ChangeEmployeeStage
}

func NewPatchEmployeeReqBuilder() *PatchEmployeeReqBuilder {
	builder := &PatchEmployeeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 员工ID
//
// 示例值：123
func (builder *PatchEmployeeReqBuilder) EmployeeId(employeeId string) *PatchEmployeeReqBuilder {
	builder.apiReq.PathParams.Set("employee_id", fmt.Sprint(employeeId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *PatchEmployeeReqBuilder) UserIdType(userIdType string) *PatchEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：department_id
func (builder *PatchEmployeeReqBuilder) DepartmentIdType(departmentIdType string) *PatchEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *PatchEmployeeReqBuilder) JobLevelIdType(jobLevelIdType string) *PatchEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *PatchEmployeeReqBuilder) JobFamilyIdType(jobFamilyIdType string) *PatchEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *PatchEmployeeReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *PatchEmployeeReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 根据员工 ID 更新员工转正、离职状态
func (builder *PatchEmployeeReqBuilder) ChangeEmployeeStage(changeEmployeeStage *ChangeEmployeeStage) *PatchEmployeeReqBuilder {
	builder.changeEmployeeStage = changeEmployeeStage
	return builder
}

func (builder *PatchEmployeeReqBuilder) Build() *PatchEmployeeReq {
	req := &PatchEmployeeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.changeEmployeeStage
	return req
}

type PatchEmployeeReq struct {
	apiReq              *larkcore.ApiReq
	ChangeEmployeeStage *ChangeEmployeeStage `body:""`
}

type PatchEmployeeRespData struct {
	Employee *Employee `json:"employee,omitempty"` // 员工信息
}

type PatchEmployeeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchEmployeeRespData `json:"data"` // 业务数据
}

func (resp *PatchEmployeeResp) Success() bool {
	return resp.Code == 0
}

type ListEvaluationReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListEvaluationReqBuilder() *ListEvaluationReqBuilder {
	builder := &ListEvaluationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListEvaluationReqBuilder) Limit(limit int) *ListEvaluationReqBuilder {
	builder.limit = limit
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *ListEvaluationReqBuilder) PageToken(pageToken string) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListEvaluationReqBuilder) PageSize(pageSize int) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 投递 ID
//
// 示例值：6875569957036738823
func (builder *ListEvaluationReqBuilder) ApplicationId(applicationId string) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1600843767338
func (builder *ListEvaluationReqBuilder) UpdateStartTime(updateStartTime string) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1600843938726
func (builder *ListEvaluationReqBuilder) UpdateEndTime(updateEndTime string) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

// 用户ID类型
//
// 示例值：open_id
func (builder *ListEvaluationReqBuilder) UserIdType(userIdType string) *ListEvaluationReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListEvaluationReqBuilder) Build() *ListEvaluationReq {
	req := &ListEvaluationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListEvaluationReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListEvaluationRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*Evaluation `json:"items,omitempty"` // 简历评估信息列表
}

type ListEvaluationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListEvaluationRespData `json:"data"` // 业务数据
}

func (resp *ListEvaluationResp) Success() bool {
	return resp.Code == 0
}

type ListEvaluationTaskReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListEvaluationTaskReqBuilder() *ListEvaluationTaskReqBuilder {
	builder := &ListEvaluationTaskReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListEvaluationTaskReqBuilder) Limit(limit int) *ListEvaluationTaskReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小, 默认10，不能超过 20
//
// 示例值：10
func (builder *ListEvaluationTaskReqBuilder) PageSize(pageSize int) *ListEvaluationTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListEvaluationTaskReqBuilder) PageToken(pageToken string) *ListEvaluationTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID
//
// 示例值：ou_e6139117c300506837def50545420c6a
func (builder *ListEvaluationTaskReqBuilder) UserId(userId string) *ListEvaluationTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *ListEvaluationTaskReqBuilder) ActivityStatus(activityStatus int) *ListEvaluationTaskReqBuilder {
	builder.apiReq.QueryParams.Set("activity_status", fmt.Sprint(activityStatus))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListEvaluationTaskReqBuilder) UserIdType(userIdType string) *ListEvaluationTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListEvaluationTaskReqBuilder) Build() *ListEvaluationTaskReq {
	req := &ListEvaluationTaskReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListEvaluationTaskReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListEvaluationTaskRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*EvaluationTask `json:"items,omitempty"` // 列表
}

type ListEvaluationTaskResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListEvaluationTaskRespData `json:"data"` // 业务数据
}

func (resp *ListEvaluationTaskResp) Success() bool {
	return resp.Code == 0
}

type CreateExamReqBodyBuilder struct {
	applicationId     string // 投递 ID
	applicationIdFlag bool

	examResourceName     string // 试卷名称
	examResourceNameFlag bool

	score     float64 // 笔试分数
	scoreFlag bool

	uuid     string // 报告附件，使用[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)上传，获取附件ID，支持的文件格式：JPG、JPEG、PNG、PDF，不超过 100MB。
	uuidFlag bool

	operatorId     string // 添加人 ID
	operatorIdFlag bool
}

func NewCreateExamReqBodyBuilder() *CreateExamReqBodyBuilder {
	builder := &CreateExamReqBodyBuilder{}
	return builder
}

// 投递 ID
//
//示例值：6891565253964859661
func (builder *CreateExamReqBodyBuilder) ApplicationId(applicationId string) *CreateExamReqBodyBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 试卷名称
//
//示例值：笔试试卷
func (builder *CreateExamReqBodyBuilder) ExamResourceName(examResourceName string) *CreateExamReqBodyBuilder {
	builder.examResourceName = examResourceName
	builder.examResourceNameFlag = true
	return builder
}

// 笔试分数
//
//示例值：100
func (builder *CreateExamReqBodyBuilder) Score(score float64) *CreateExamReqBodyBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 报告附件，使用[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)上传，获取附件ID，支持的文件格式：JPG、JPEG、PNG、PDF，不超过 100MB。
//
//示例值：6949805467799537964
func (builder *CreateExamReqBodyBuilder) Uuid(uuid string) *CreateExamReqBodyBuilder {
	builder.uuid = uuid
	builder.uuidFlag = true
	return builder
}

// 添加人 ID
//
//示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *CreateExamReqBodyBuilder) OperatorId(operatorId string) *CreateExamReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

func (builder *CreateExamReqBodyBuilder) Build() *CreateExamReqBody {
	req := &CreateExamReqBody{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId
	}
	if builder.examResourceNameFlag {
		req.ExamResourceName = &builder.examResourceName
	}
	if builder.scoreFlag {
		req.Score = &builder.score
	}
	if builder.uuidFlag {
		req.Uuid = &builder.uuid
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	return req
}

type CreateExamPathReqBodyBuilder struct {
	applicationId        string
	applicationIdFlag    bool
	examResourceName     string
	examResourceNameFlag bool
	score                float64
	scoreFlag            bool
	uuid                 string
	uuidFlag             bool
	operatorId           string
	operatorIdFlag       bool
}

func NewCreateExamPathReqBodyBuilder() *CreateExamPathReqBodyBuilder {
	builder := &CreateExamPathReqBodyBuilder{}
	return builder
}

// 投递 ID
//
// 示例值：6891565253964859661
func (builder *CreateExamPathReqBodyBuilder) ApplicationId(applicationId string) *CreateExamPathReqBodyBuilder {
	builder.applicationId = applicationId
	builder.applicationIdFlag = true
	return builder
}

// 试卷名称
//
// 示例值：笔试试卷
func (builder *CreateExamPathReqBodyBuilder) ExamResourceName(examResourceName string) *CreateExamPathReqBodyBuilder {
	builder.examResourceName = examResourceName
	builder.examResourceNameFlag = true
	return builder
}

// 笔试分数
//
// 示例值：100
func (builder *CreateExamPathReqBodyBuilder) Score(score float64) *CreateExamPathReqBodyBuilder {
	builder.score = score
	builder.scoreFlag = true
	return builder
}

// 报告附件，使用[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)上传，获取附件ID，支持的文件格式：JPG、JPEG、PNG、PDF，不超过 100MB。
//
// 示例值：6949805467799537964
func (builder *CreateExamPathReqBodyBuilder) Uuid(uuid string) *CreateExamPathReqBodyBuilder {
	builder.uuid = uuid
	builder.uuidFlag = true
	return builder
}

// 添加人 ID
//
// 示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *CreateExamPathReqBodyBuilder) OperatorId(operatorId string) *CreateExamPathReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

func (builder *CreateExamPathReqBodyBuilder) Build() (*CreateExamReqBody, error) {
	req := &CreateExamReqBody{}
	if builder.applicationIdFlag {
		req.ApplicationId = &builder.applicationId
	}
	if builder.examResourceNameFlag {
		req.ExamResourceName = &builder.examResourceName
	}
	if builder.scoreFlag {
		req.Score = &builder.score
	}
	if builder.uuidFlag {
		req.Uuid = &builder.uuid
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	return req, nil
}

type CreateExamReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateExamReqBody
}

func NewCreateExamReqBuilder() *CreateExamReqBuilder {
	builder := &CreateExamReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateExamReqBuilder) UserIdType(userIdType string) *CreateExamReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 根据投递 ID 添加该投递下的笔试结果
func (builder *CreateExamReqBuilder) Body(body *CreateExamReqBody) *CreateExamReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateExamReqBuilder) Build() *CreateExamReq {
	req := &CreateExamReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CreateExamReqBody struct {
	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ExamResourceName *string `json:"exam_resource_name,omitempty"` // 试卷名称

	Score *float64 `json:"score,omitempty"` // 笔试分数

	Uuid *string `json:"uuid,omitempty"` // 报告附件，使用[创建附件](https://open.feishu.cn/document/ukTMukTMukTM/uIDN1YjLyQTN24iM0UjN/create_attachment)上传，获取附件ID，支持的文件格式：JPG、JPEG、PNG、PDF，不超过 100MB。

	OperatorId *string `json:"operator_id,omitempty"` // 添加人 ID
}

type CreateExamReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateExamReqBody `body:""`
}

type CreateExamRespData struct {
	ExamId *string `json:"exam_id,omitempty"` // 笔试 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	ExamResourceName *string `json:"exam_resource_name,omitempty"` // 试卷名称

	Score *float64 `json:"score,omitempty"` // 笔试分数

	Uuid *string `json:"uuid,omitempty"` // 附件ID

	OperatorId *string `json:"operator_id,omitempty"` // 操作人 ID

	OperateTime *string `json:"operate_time,omitempty"` // 操作时间
}

type CreateExamResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExamRespData `json:"data"` // 业务数据
}

func (resp *CreateExamResp) Success() bool {
	return resp.Code == 0
}

type ListExamMarkingTaskReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListExamMarkingTaskReqBuilder() *ListExamMarkingTaskReqBuilder {
	builder := &ListExamMarkingTaskReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListExamMarkingTaskReqBuilder) Limit(limit int) *ListExamMarkingTaskReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小, 默认10，不能超过 20
//
// 示例值：10
func (builder *ListExamMarkingTaskReqBuilder) PageSize(pageSize int) *ListExamMarkingTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListExamMarkingTaskReqBuilder) PageToken(pageToken string) *ListExamMarkingTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID
//
// 示例值：ou_e6139117c300506837def50545420c6a
func (builder *ListExamMarkingTaskReqBuilder) UserId(userId string) *ListExamMarkingTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *ListExamMarkingTaskReqBuilder) ActivityStatus(activityStatus int) *ListExamMarkingTaskReqBuilder {
	builder.apiReq.QueryParams.Set("activity_status", fmt.Sprint(activityStatus))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListExamMarkingTaskReqBuilder) UserIdType(userIdType string) *ListExamMarkingTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListExamMarkingTaskReqBuilder) Build() *ListExamMarkingTaskReq {
	req := &ListExamMarkingTaskReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListExamMarkingTaskReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListExamMarkingTaskRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*ExamMarkingTask `json:"items,omitempty"` // 列表
}

type ListExamMarkingTaskResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListExamMarkingTaskRespData `json:"data"` // 业务数据
}

func (resp *ListExamMarkingTaskResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalApplicationReqBuilder struct {
	apiReq              *larkcore.ApiReq
	externalApplication *ExternalApplication
}

func NewCreateExternalApplicationReqBuilder() *CreateExternalApplicationReqBuilder {
	builder := &CreateExternalApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 导入来自其他系统的投递信息，创建为外部投递
func (builder *CreateExternalApplicationReqBuilder) ExternalApplication(externalApplication *ExternalApplication) *CreateExternalApplicationReqBuilder {
	builder.externalApplication = externalApplication
	return builder
}

func (builder *CreateExternalApplicationReqBuilder) Build() *CreateExternalApplicationReq {
	req := &CreateExternalApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.externalApplication
	return req
}

type CreateExternalApplicationReq struct {
	apiReq              *larkcore.ApiReq
	ExternalApplication *ExternalApplication `body:""`
}

type CreateExternalApplicationRespData struct {
	ExternalApplication *ExternalApplication `json:"external_application,omitempty"` // 外部投递信息
}

type CreateExternalApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalApplicationRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalApplicationResp) Success() bool {
	return resp.Code == 0
}

type DeleteExternalApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteExternalApplicationReqBuilder() *DeleteExternalApplicationReqBuilder {
	builder := &DeleteExternalApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部投递 id
//
// 示例值：6960663240925956660
func (builder *DeleteExternalApplicationReqBuilder) ExternalApplicationId(externalApplicationId string) *DeleteExternalApplicationReqBuilder {
	builder.apiReq.PathParams.Set("external_application_id", fmt.Sprint(externalApplicationId))
	return builder
}

// 人才ID
//
// 示例值：6960663240925956660
func (builder *DeleteExternalApplicationReqBuilder) TalentId(talentId string) *DeleteExternalApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

func (builder *DeleteExternalApplicationReqBuilder) Build() *DeleteExternalApplicationReq {
	req := &DeleteExternalApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type DeleteExternalApplicationReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteExternalApplicationRespData struct {
	ExternalApplication *ExternalApplication `json:"external_application,omitempty"` //
}

type DeleteExternalApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *DeleteExternalApplicationRespData `json:"data"` // 业务数据
}

func (resp *DeleteExternalApplicationResp) Success() bool {
	return resp.Code == 0
}

type ListExternalApplicationReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListExternalApplicationReqBuilder() *ListExternalApplicationReqBuilder {
	builder := &ListExternalApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListExternalApplicationReqBuilder) Limit(limit int) *ListExternalApplicationReqBuilder {
	builder.limit = limit
	return builder
}

// 人才ID
//
// 示例值：6960663240925956660
func (builder *ListExternalApplicationReqBuilder) TalentId(talentId string) *ListExternalApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *ListExternalApplicationReqBuilder) PageSize(pageSize int) *ListExternalApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListExternalApplicationReqBuilder) PageToken(pageToken string) *ListExternalApplicationReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListExternalApplicationReqBuilder) Build() *ListExternalApplicationReq {
	req := &ListExternalApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListExternalApplicationReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListExternalApplicationRespData struct {
	Items []*ExternalApplication `json:"items,omitempty"` // 外部投递列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
}

type ListExternalApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListExternalApplicationRespData `json:"data"` // 业务数据
}

func (resp *ListExternalApplicationResp) Success() bool {
	return resp.Code == 0
}

type UpdateExternalApplicationReqBuilder struct {
	apiReq              *larkcore.ApiReq
	externalApplication *ExternalApplication
}

func NewUpdateExternalApplicationReqBuilder() *UpdateExternalApplicationReqBuilder {
	builder := &UpdateExternalApplicationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部投递 id
//
// 示例值：6960663240925956660
func (builder *UpdateExternalApplicationReqBuilder) ExternalApplicationId(externalApplicationId string) *UpdateExternalApplicationReqBuilder {
	builder.apiReq.PathParams.Set("external_application_id", fmt.Sprint(externalApplicationId))
	return builder
}

// 更新外部投递
func (builder *UpdateExternalApplicationReqBuilder) ExternalApplication(externalApplication *ExternalApplication) *UpdateExternalApplicationReqBuilder {
	builder.externalApplication = externalApplication
	return builder
}

func (builder *UpdateExternalApplicationReqBuilder) Build() *UpdateExternalApplicationReq {
	req := &UpdateExternalApplicationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.externalApplication
	return req
}

type UpdateExternalApplicationReq struct {
	apiReq              *larkcore.ApiReq
	ExternalApplication *ExternalApplication `body:""`
}

type UpdateExternalApplicationRespData struct {
	ExternalApplication *ExternalApplication `json:"external_application,omitempty"` //
}

type UpdateExternalApplicationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateExternalApplicationRespData `json:"data"` // 业务数据
}

func (resp *UpdateExternalApplicationResp) Success() bool {
	return resp.Code == 0
}

type BatchQueryExternalBackgroundCheckReqBodyBuilder struct {
	externalBackgroundCheckIdList     []string // 外部背调 ID 列表,当传递此值时,以此值为准
	externalBackgroundCheckIdListFlag bool
}

func NewBatchQueryExternalBackgroundCheckReqBodyBuilder() *BatchQueryExternalBackgroundCheckReqBodyBuilder {
	builder := &BatchQueryExternalBackgroundCheckReqBodyBuilder{}
	return builder
}

// 外部背调 ID 列表,当传递此值时,以此值为准
//
//示例值：6960663240925956660
func (builder *BatchQueryExternalBackgroundCheckReqBodyBuilder) ExternalBackgroundCheckIdList(externalBackgroundCheckIdList []string) *BatchQueryExternalBackgroundCheckReqBodyBuilder {
	builder.externalBackgroundCheckIdList = externalBackgroundCheckIdList
	builder.externalBackgroundCheckIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalBackgroundCheckReqBodyBuilder) Build() *BatchQueryExternalBackgroundCheckReqBody {
	req := &BatchQueryExternalBackgroundCheckReqBody{}
	if builder.externalBackgroundCheckIdListFlag {
		req.ExternalBackgroundCheckIdList = builder.externalBackgroundCheckIdList
	}
	return req
}

type BatchQueryExternalBackgroundCheckPathReqBodyBuilder struct {
	externalBackgroundCheckIdList     []string
	externalBackgroundCheckIdListFlag bool
}

func NewBatchQueryExternalBackgroundCheckPathReqBodyBuilder() *BatchQueryExternalBackgroundCheckPathReqBodyBuilder {
	builder := &BatchQueryExternalBackgroundCheckPathReqBodyBuilder{}
	return builder
}

// 外部背调 ID 列表,当传递此值时,以此值为准
//
// 示例值：6960663240925956660
func (builder *BatchQueryExternalBackgroundCheckPathReqBodyBuilder) ExternalBackgroundCheckIdList(externalBackgroundCheckIdList []string) *BatchQueryExternalBackgroundCheckPathReqBodyBuilder {
	builder.externalBackgroundCheckIdList = externalBackgroundCheckIdList
	builder.externalBackgroundCheckIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalBackgroundCheckPathReqBodyBuilder) Build() (*BatchQueryExternalBackgroundCheckReqBody, error) {
	req := &BatchQueryExternalBackgroundCheckReqBody{}
	if builder.externalBackgroundCheckIdListFlag {
		req.ExternalBackgroundCheckIdList = builder.externalBackgroundCheckIdList
	}
	return req, nil
}

type BatchQueryExternalBackgroundCheckReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchQueryExternalBackgroundCheckReqBody
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewBatchQueryExternalBackgroundCheckReqBuilder() *BatchQueryExternalBackgroundCheckReqBuilder {
	builder := &BatchQueryExternalBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *BatchQueryExternalBackgroundCheckReqBuilder) Limit(limit int) *BatchQueryExternalBackgroundCheckReqBuilder {
	builder.limit = limit
	return builder
}

// 外部投递 ID
//
// 示例值：6960663240925956660
func (builder *BatchQueryExternalBackgroundCheckReqBuilder) ExternalApplicationId(externalApplicationId string) *BatchQueryExternalBackgroundCheckReqBuilder {
	builder.apiReq.QueryParams.Set("external_application_id", fmt.Sprint(externalApplicationId))
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *BatchQueryExternalBackgroundCheckReqBuilder) PageSize(pageSize int) *BatchQueryExternalBackgroundCheckReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *BatchQueryExternalBackgroundCheckReqBuilder) PageToken(pageToken string) *BatchQueryExternalBackgroundCheckReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

//
func (builder *BatchQueryExternalBackgroundCheckReqBuilder) Body(body *BatchQueryExternalBackgroundCheckReqBody) *BatchQueryExternalBackgroundCheckReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchQueryExternalBackgroundCheckReqBuilder) Build() *BatchQueryExternalBackgroundCheckReq {
	req := &BatchQueryExternalBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchQueryExternalBackgroundCheckReqBody struct {
	ExternalBackgroundCheckIdList []string `json:"external_background_check_id_list,omitempty"` // 外部背调 ID 列表,当传递此值时,以此值为准
}

type BatchQueryExternalBackgroundCheckReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchQueryExternalBackgroundCheckReqBody `body:""`
	Limit  int                                       // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type BatchQueryExternalBackgroundCheckRespData struct {
	Items []*ExternalBackgroundCheck `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type BatchQueryExternalBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchQueryExternalBackgroundCheckRespData `json:"data"` // 业务数据
}

func (resp *BatchQueryExternalBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalBackgroundCheckReqBuilder struct {
	apiReq                  *larkcore.ApiReq
	externalBackgroundCheck *ExternalBackgroundCheck
}

func NewCreateExternalBackgroundCheckReqBuilder() *CreateExternalBackgroundCheckReqBuilder {
	builder := &CreateExternalBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 导入来自其他系统的背调信息，创建为外部背调
func (builder *CreateExternalBackgroundCheckReqBuilder) ExternalBackgroundCheck(externalBackgroundCheck *ExternalBackgroundCheck) *CreateExternalBackgroundCheckReqBuilder {
	builder.externalBackgroundCheck = externalBackgroundCheck
	return builder
}

func (builder *CreateExternalBackgroundCheckReqBuilder) Build() *CreateExternalBackgroundCheckReq {
	req := &CreateExternalBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.externalBackgroundCheck
	return req
}

type CreateExternalBackgroundCheckReq struct {
	apiReq                  *larkcore.ApiReq
	ExternalBackgroundCheck *ExternalBackgroundCheck `body:""`
}

type CreateExternalBackgroundCheckRespData struct {
	ExternalBackgroundCheck *ExternalBackgroundCheck `json:"external_background_check,omitempty"` // 外部背调信息
}

type CreateExternalBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalBackgroundCheckRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type DeleteExternalBackgroundCheckReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteExternalBackgroundCheckReqBuilder() *DeleteExternalBackgroundCheckReqBuilder {
	builder := &DeleteExternalBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部背调 ID
//
// 示例值：6960663240925956660
func (builder *DeleteExternalBackgroundCheckReqBuilder) ExternalBackgroundCheckId(externalBackgroundCheckId string) *DeleteExternalBackgroundCheckReqBuilder {
	builder.apiReq.PathParams.Set("external_background_check_id", fmt.Sprint(externalBackgroundCheckId))
	return builder
}

func (builder *DeleteExternalBackgroundCheckReqBuilder) Build() *DeleteExternalBackgroundCheckReq {
	req := &DeleteExternalBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteExternalBackgroundCheckReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteExternalBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteExternalBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type UpdateExternalBackgroundCheckReqBuilder struct {
	apiReq                  *larkcore.ApiReq
	externalBackgroundCheck *ExternalBackgroundCheck
}

func NewUpdateExternalBackgroundCheckReqBuilder() *UpdateExternalBackgroundCheckReqBuilder {
	builder := &UpdateExternalBackgroundCheckReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部背调 ID
//
// 示例值：6960663240925956660
func (builder *UpdateExternalBackgroundCheckReqBuilder) ExternalBackgroundCheckId(externalBackgroundCheckId string) *UpdateExternalBackgroundCheckReqBuilder {
	builder.apiReq.PathParams.Set("external_background_check_id", fmt.Sprint(externalBackgroundCheckId))
	return builder
}

//
func (builder *UpdateExternalBackgroundCheckReqBuilder) ExternalBackgroundCheck(externalBackgroundCheck *ExternalBackgroundCheck) *UpdateExternalBackgroundCheckReqBuilder {
	builder.externalBackgroundCheck = externalBackgroundCheck
	return builder
}

func (builder *UpdateExternalBackgroundCheckReqBuilder) Build() *UpdateExternalBackgroundCheckReq {
	req := &UpdateExternalBackgroundCheckReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.externalBackgroundCheck
	return req
}

type UpdateExternalBackgroundCheckReq struct {
	apiReq                  *larkcore.ApiReq
	ExternalBackgroundCheck *ExternalBackgroundCheck `body:""`
}

type UpdateExternalBackgroundCheckRespData struct {
	ExternalBackgroundCheck *ExternalBackgroundCheck `json:"external_background_check,omitempty"` //
}

type UpdateExternalBackgroundCheckResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateExternalBackgroundCheckRespData `json:"data"` // 业务数据
}

func (resp *UpdateExternalBackgroundCheckResp) Success() bool {
	return resp.Code == 0
}

type BatchQueryExternalInterviewReqBodyBuilder struct {
	externalInterviewIdList     []string // 外部面试 ID列表,当传递此值时,以此值为准
	externalInterviewIdListFlag bool
}

func NewBatchQueryExternalInterviewReqBodyBuilder() *BatchQueryExternalInterviewReqBodyBuilder {
	builder := &BatchQueryExternalInterviewReqBodyBuilder{}
	return builder
}

// 外部面试 ID列表,当传递此值时,以此值为准
//
//示例值：
func (builder *BatchQueryExternalInterviewReqBodyBuilder) ExternalInterviewIdList(externalInterviewIdList []string) *BatchQueryExternalInterviewReqBodyBuilder {
	builder.externalInterviewIdList = externalInterviewIdList
	builder.externalInterviewIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalInterviewReqBodyBuilder) Build() *BatchQueryExternalInterviewReqBody {
	req := &BatchQueryExternalInterviewReqBody{}
	if builder.externalInterviewIdListFlag {
		req.ExternalInterviewIdList = builder.externalInterviewIdList
	}
	return req
}

type BatchQueryExternalInterviewPathReqBodyBuilder struct {
	externalInterviewIdList     []string
	externalInterviewIdListFlag bool
}

func NewBatchQueryExternalInterviewPathReqBodyBuilder() *BatchQueryExternalInterviewPathReqBodyBuilder {
	builder := &BatchQueryExternalInterviewPathReqBodyBuilder{}
	return builder
}

// 外部面试 ID列表,当传递此值时,以此值为准
//
// 示例值：
func (builder *BatchQueryExternalInterviewPathReqBodyBuilder) ExternalInterviewIdList(externalInterviewIdList []string) *BatchQueryExternalInterviewPathReqBodyBuilder {
	builder.externalInterviewIdList = externalInterviewIdList
	builder.externalInterviewIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalInterviewPathReqBodyBuilder) Build() (*BatchQueryExternalInterviewReqBody, error) {
	req := &BatchQueryExternalInterviewReqBody{}
	if builder.externalInterviewIdListFlag {
		req.ExternalInterviewIdList = builder.externalInterviewIdList
	}
	return req, nil
}

type BatchQueryExternalInterviewReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchQueryExternalInterviewReqBody
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewBatchQueryExternalInterviewReqBuilder() *BatchQueryExternalInterviewReqBuilder {
	builder := &BatchQueryExternalInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *BatchQueryExternalInterviewReqBuilder) Limit(limit int) *BatchQueryExternalInterviewReqBuilder {
	builder.limit = limit
	return builder
}

// 外部投递 ID
//
// 示例值：6960663240925956660
func (builder *BatchQueryExternalInterviewReqBuilder) ExternalApplicationId(externalApplicationId string) *BatchQueryExternalInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("external_application_id", fmt.Sprint(externalApplicationId))
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *BatchQueryExternalInterviewReqBuilder) PageSize(pageSize int) *BatchQueryExternalInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *BatchQueryExternalInterviewReqBuilder) PageToken(pageToken string) *BatchQueryExternalInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

//
func (builder *BatchQueryExternalInterviewReqBuilder) Body(body *BatchQueryExternalInterviewReqBody) *BatchQueryExternalInterviewReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchQueryExternalInterviewReqBuilder) Build() *BatchQueryExternalInterviewReq {
	req := &BatchQueryExternalInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchQueryExternalInterviewReqBody struct {
	ExternalInterviewIdList []string `json:"external_interview_id_list,omitempty"` // 外部面试 ID列表,当传递此值时,以此值为准
}

type BatchQueryExternalInterviewReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchQueryExternalInterviewReqBody `body:""`
	Limit  int                                 // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type BatchQueryExternalInterviewRespData struct {
	Items []*ExternalInterview `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type BatchQueryExternalInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchQueryExternalInterviewRespData `json:"data"` // 业务数据
}

func (resp *BatchQueryExternalInterviewResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalInterviewReqBuilder struct {
	apiReq            *larkcore.ApiReq
	externalInterview *ExternalInterview
}

func NewCreateExternalInterviewReqBuilder() *CreateExternalInterviewReqBuilder {
	builder := &CreateExternalInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 导入来自其他系统的面试信息，创建为外部面试
func (builder *CreateExternalInterviewReqBuilder) ExternalInterview(externalInterview *ExternalInterview) *CreateExternalInterviewReqBuilder {
	builder.externalInterview = externalInterview
	return builder
}

func (builder *CreateExternalInterviewReqBuilder) Build() *CreateExternalInterviewReq {
	req := &CreateExternalInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.externalInterview
	return req
}

type CreateExternalInterviewReq struct {
	apiReq            *larkcore.ApiReq
	ExternalInterview *ExternalInterview `body:""`
}

type CreateExternalInterviewRespData struct {
	ExternalInterview *ExternalInterview `json:"external_interview,omitempty"` // 外部面试信息
}

type CreateExternalInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalInterviewRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalInterviewResp) Success() bool {
	return resp.Code == 0
}

type DeleteExternalInterviewReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteExternalInterviewReqBuilder() *DeleteExternalInterviewReqBuilder {
	builder := &DeleteExternalInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部面试 ID
//
// 示例值：6960663240925956660
func (builder *DeleteExternalInterviewReqBuilder) ExternalInterviewId(externalInterviewId string) *DeleteExternalInterviewReqBuilder {
	builder.apiReq.PathParams.Set("external_interview_id", fmt.Sprint(externalInterviewId))
	return builder
}

func (builder *DeleteExternalInterviewReqBuilder) Build() *DeleteExternalInterviewReq {
	req := &DeleteExternalInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteExternalInterviewReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteExternalInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteExternalInterviewResp) Success() bool {
	return resp.Code == 0
}

type UpdateExternalInterviewReqBuilder struct {
	apiReq            *larkcore.ApiReq
	externalInterview *ExternalInterview
}

func NewUpdateExternalInterviewReqBuilder() *UpdateExternalInterviewReqBuilder {
	builder := &UpdateExternalInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部面试 ID
//
// 示例值：6960663240925956660
func (builder *UpdateExternalInterviewReqBuilder) ExternalInterviewId(externalInterviewId string) *UpdateExternalInterviewReqBuilder {
	builder.apiReq.PathParams.Set("external_interview_id", fmt.Sprint(externalInterviewId))
	return builder
}

//
func (builder *UpdateExternalInterviewReqBuilder) ExternalInterview(externalInterview *ExternalInterview) *UpdateExternalInterviewReqBuilder {
	builder.externalInterview = externalInterview
	return builder
}

func (builder *UpdateExternalInterviewReqBuilder) Build() *UpdateExternalInterviewReq {
	req := &UpdateExternalInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.externalInterview
	return req
}

type UpdateExternalInterviewReq struct {
	apiReq            *larkcore.ApiReq
	ExternalInterview *ExternalInterview `body:""`
}

type UpdateExternalInterviewRespData struct {
	ExternalInterview *ExternalInterview `json:"external_interview,omitempty"` //
}

type UpdateExternalInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateExternalInterviewRespData `json:"data"` // 业务数据
}

func (resp *UpdateExternalInterviewResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalInterviewAssessmentReqBuilder struct {
	apiReq                      *larkcore.ApiReq
	externalInterviewAssessment *ExternalInterviewAssessment
}

func NewCreateExternalInterviewAssessmentReqBuilder() *CreateExternalInterviewAssessmentReqBuilder {
	builder := &CreateExternalInterviewAssessmentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 导入来自其他系统的面评信息，创建为外部面评
func (builder *CreateExternalInterviewAssessmentReqBuilder) ExternalInterviewAssessment(externalInterviewAssessment *ExternalInterviewAssessment) *CreateExternalInterviewAssessmentReqBuilder {
	builder.externalInterviewAssessment = externalInterviewAssessment
	return builder
}

func (builder *CreateExternalInterviewAssessmentReqBuilder) Build() *CreateExternalInterviewAssessmentReq {
	req := &CreateExternalInterviewAssessmentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.externalInterviewAssessment
	return req
}

type CreateExternalInterviewAssessmentReq struct {
	apiReq                      *larkcore.ApiReq
	ExternalInterviewAssessment *ExternalInterviewAssessment `body:""`
}

type CreateExternalInterviewAssessmentRespData struct {
	ExternalInterviewAssessment *ExternalInterviewAssessment `json:"external_interview_assessment,omitempty"` // 外部面评信息
}

type CreateExternalInterviewAssessmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalInterviewAssessmentRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalInterviewAssessmentResp) Success() bool {
	return resp.Code == 0
}

type PatchExternalInterviewAssessmentReqBuilder struct {
	apiReq                      *larkcore.ApiReq
	externalInterviewAssessment *ExternalInterviewAssessment
}

func NewPatchExternalInterviewAssessmentReqBuilder() *PatchExternalInterviewAssessmentReqBuilder {
	builder := &PatchExternalInterviewAssessmentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部面评 ID
//
// 示例值：6930815272790114324
func (builder *PatchExternalInterviewAssessmentReqBuilder) ExternalInterviewAssessmentId(externalInterviewAssessmentId string) *PatchExternalInterviewAssessmentReqBuilder {
	builder.apiReq.PathParams.Set("external_interview_assessment_id", fmt.Sprint(externalInterviewAssessmentId))
	return builder
}

//
func (builder *PatchExternalInterviewAssessmentReqBuilder) ExternalInterviewAssessment(externalInterviewAssessment *ExternalInterviewAssessment) *PatchExternalInterviewAssessmentReqBuilder {
	builder.externalInterviewAssessment = externalInterviewAssessment
	return builder
}

func (builder *PatchExternalInterviewAssessmentReqBuilder) Build() *PatchExternalInterviewAssessmentReq {
	req := &PatchExternalInterviewAssessmentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.externalInterviewAssessment
	return req
}

type PatchExternalInterviewAssessmentReq struct {
	apiReq                      *larkcore.ApiReq
	ExternalInterviewAssessment *ExternalInterviewAssessment `body:""`
}

type PatchExternalInterviewAssessmentRespData struct {
	ExternalInterviewAssessment *ExternalInterviewAssessment `json:"external_interview_assessment,omitempty"` //
}

type PatchExternalInterviewAssessmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchExternalInterviewAssessmentRespData `json:"data"` // 业务数据
}

func (resp *PatchExternalInterviewAssessmentResp) Success() bool {
	return resp.Code == 0
}

type BatchQueryExternalOfferReqBodyBuilder struct {
	externalOfferIdList     []string // 外部 Offer ID列表,当传递此值时,以此值为准
	externalOfferIdListFlag bool
}

func NewBatchQueryExternalOfferReqBodyBuilder() *BatchQueryExternalOfferReqBodyBuilder {
	builder := &BatchQueryExternalOfferReqBodyBuilder{}
	return builder
}

// 外部 Offer ID列表,当传递此值时,以此值为准
//
//示例值：
func (builder *BatchQueryExternalOfferReqBodyBuilder) ExternalOfferIdList(externalOfferIdList []string) *BatchQueryExternalOfferReqBodyBuilder {
	builder.externalOfferIdList = externalOfferIdList
	builder.externalOfferIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalOfferReqBodyBuilder) Build() *BatchQueryExternalOfferReqBody {
	req := &BatchQueryExternalOfferReqBody{}
	if builder.externalOfferIdListFlag {
		req.ExternalOfferIdList = builder.externalOfferIdList
	}
	return req
}

type BatchQueryExternalOfferPathReqBodyBuilder struct {
	externalOfferIdList     []string
	externalOfferIdListFlag bool
}

func NewBatchQueryExternalOfferPathReqBodyBuilder() *BatchQueryExternalOfferPathReqBodyBuilder {
	builder := &BatchQueryExternalOfferPathReqBodyBuilder{}
	return builder
}

// 外部 Offer ID列表,当传递此值时,以此值为准
//
// 示例值：
func (builder *BatchQueryExternalOfferPathReqBodyBuilder) ExternalOfferIdList(externalOfferIdList []string) *BatchQueryExternalOfferPathReqBodyBuilder {
	builder.externalOfferIdList = externalOfferIdList
	builder.externalOfferIdListFlag = true
	return builder
}

func (builder *BatchQueryExternalOfferPathReqBodyBuilder) Build() (*BatchQueryExternalOfferReqBody, error) {
	req := &BatchQueryExternalOfferReqBody{}
	if builder.externalOfferIdListFlag {
		req.ExternalOfferIdList = builder.externalOfferIdList
	}
	return req, nil
}

type BatchQueryExternalOfferReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchQueryExternalOfferReqBody
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewBatchQueryExternalOfferReqBuilder() *BatchQueryExternalOfferReqBuilder {
	builder := &BatchQueryExternalOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *BatchQueryExternalOfferReqBuilder) Limit(limit int) *BatchQueryExternalOfferReqBuilder {
	builder.limit = limit
	return builder
}

// 外部投递 ID
//
// 示例值：6960663240925956660
func (builder *BatchQueryExternalOfferReqBuilder) ExternalApplicationId(externalApplicationId string) *BatchQueryExternalOfferReqBuilder {
	builder.apiReq.QueryParams.Set("external_application_id", fmt.Sprint(externalApplicationId))
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *BatchQueryExternalOfferReqBuilder) PageSize(pageSize int) *BatchQueryExternalOfferReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *BatchQueryExternalOfferReqBuilder) PageToken(pageToken string) *BatchQueryExternalOfferReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

//
func (builder *BatchQueryExternalOfferReqBuilder) Body(body *BatchQueryExternalOfferReqBody) *BatchQueryExternalOfferReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchQueryExternalOfferReqBuilder) Build() *BatchQueryExternalOfferReq {
	req := &BatchQueryExternalOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchQueryExternalOfferReqBody struct {
	ExternalOfferIdList []string `json:"external_offer_id_list,omitempty"` // 外部 Offer ID列表,当传递此值时,以此值为准
}

type BatchQueryExternalOfferReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchQueryExternalOfferReqBody `body:""`
	Limit  int                             // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type BatchQueryExternalOfferRespData struct {
	Items []*ExternalOffer `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type BatchQueryExternalOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchQueryExternalOfferRespData `json:"data"` // 业务数据
}

func (resp *BatchQueryExternalOfferResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalOfferReqBuilder struct {
	apiReq        *larkcore.ApiReq
	externalOffer *ExternalOffer
}

func NewCreateExternalOfferReqBuilder() *CreateExternalOfferReqBuilder {
	builder := &CreateExternalOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *CreateExternalOfferReqBuilder) ExternalOffer(externalOffer *ExternalOffer) *CreateExternalOfferReqBuilder {
	builder.externalOffer = externalOffer
	return builder
}

func (builder *CreateExternalOfferReqBuilder) Build() *CreateExternalOfferReq {
	req := &CreateExternalOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.externalOffer
	return req
}

type CreateExternalOfferReq struct {
	apiReq        *larkcore.ApiReq
	ExternalOffer *ExternalOffer `body:""`
}

type CreateExternalOfferRespData struct {
	ExternalOffer *ExternalOffer `json:"external_offer,omitempty"` //
}

type CreateExternalOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalOfferRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalOfferResp) Success() bool {
	return resp.Code == 0
}

type DeleteExternalOfferReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteExternalOfferReqBuilder() *DeleteExternalOfferReqBuilder {
	builder := &DeleteExternalOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部Offer ID
//
// 示例值：6960663240925956660
func (builder *DeleteExternalOfferReqBuilder) ExternalOfferId(externalOfferId string) *DeleteExternalOfferReqBuilder {
	builder.apiReq.PathParams.Set("external_offer_id", fmt.Sprint(externalOfferId))
	return builder
}

func (builder *DeleteExternalOfferReqBuilder) Build() *DeleteExternalOfferReq {
	req := &DeleteExternalOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteExternalOfferReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteExternalOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteExternalOfferResp) Success() bool {
	return resp.Code == 0
}

type UpdateExternalOfferReqBuilder struct {
	apiReq        *larkcore.ApiReq
	externalOffer *ExternalOffer
}

func NewUpdateExternalOfferReqBuilder() *UpdateExternalOfferReqBuilder {
	builder := &UpdateExternalOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 外部Offer ID
//
// 示例值：6960663240925956660
func (builder *UpdateExternalOfferReqBuilder) ExternalOfferId(externalOfferId string) *UpdateExternalOfferReqBuilder {
	builder.apiReq.PathParams.Set("external_offer_id", fmt.Sprint(externalOfferId))
	return builder
}

//
func (builder *UpdateExternalOfferReqBuilder) ExternalOffer(externalOffer *ExternalOffer) *UpdateExternalOfferReqBuilder {
	builder.externalOffer = externalOffer
	return builder
}

func (builder *UpdateExternalOfferReqBuilder) Build() *UpdateExternalOfferReq {
	req := &UpdateExternalOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.externalOffer
	return req
}

type UpdateExternalOfferReq struct {
	apiReq        *larkcore.ApiReq
	ExternalOffer *ExternalOffer `body:""`
}

type UpdateExternalOfferRespData struct {
	ExternalOffer *ExternalOffer `json:"external_offer,omitempty"` //
}

type UpdateExternalOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateExternalOfferRespData `json:"data"` // 业务数据
}

func (resp *UpdateExternalOfferResp) Success() bool {
	return resp.Code == 0
}

type CreateExternalReferralRewardReqBuilder struct {
	apiReq         *larkcore.ApiReq
	externalReward *ExternalReward
}

func NewCreateExternalReferralRewardReqBuilder() *CreateExternalReferralRewardReqBuilder {
	builder := &CreateExternalReferralRewardReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateExternalReferralRewardReqBuilder) UserIdType(userIdType string) *CreateExternalReferralRewardReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *CreateExternalReferralRewardReqBuilder) ExternalReward(externalReward *ExternalReward) *CreateExternalReferralRewardReqBuilder {
	builder.externalReward = externalReward
	return builder
}

func (builder *CreateExternalReferralRewardReqBuilder) Build() *CreateExternalReferralRewardReq {
	req := &CreateExternalReferralRewardReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.externalReward
	return req
}

type CreateExternalReferralRewardReq struct {
	apiReq         *larkcore.ApiReq
	ExternalReward *ExternalReward `body:""`
}

type CreateExternalReferralRewardRespData struct {
	Id *string `json:"id,omitempty"` // 创建的内推奖励的id
}

type CreateExternalReferralRewardResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateExternalReferralRewardRespData `json:"data"` // 业务数据
}

func (resp *CreateExternalReferralRewardResp) Success() bool {
	return resp.Code == 0
}

type DeleteExternalReferralRewardReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteExternalReferralRewardReqBuilder() *DeleteExternalReferralRewardReqBuilder {
	builder := &DeleteExternalReferralRewardReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
//
// 示例值：
func (builder *DeleteExternalReferralRewardReqBuilder) ExternalReferralRewardId(externalReferralRewardId string) *DeleteExternalReferralRewardReqBuilder {
	builder.apiReq.PathParams.Set("external_referral_reward_id", fmt.Sprint(externalReferralRewardId))
	return builder
}

func (builder *DeleteExternalReferralRewardReqBuilder) Build() *DeleteExternalReferralRewardReq {
	req := &DeleteExternalReferralRewardReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteExternalReferralRewardReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteExternalReferralRewardResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteExternalReferralRewardResp) Success() bool {
	return resp.Code == 0
}

type GetByTalentInterviewReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetByTalentInterviewReqBuilder() *GetByTalentInterviewReqBuilder {
	builder := &GetByTalentInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才 ID
//
// 示例值：6949805467799537964
func (builder *GetByTalentInterviewReqBuilder) TalentId(talentId string) *GetByTalentInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetByTalentInterviewReqBuilder) UserIdType(userIdType string) *GetByTalentInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetByTalentInterviewReqBuilder) JobLevelIdType(jobLevelIdType string) *GetByTalentInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

func (builder *GetByTalentInterviewReqBuilder) Build() *GetByTalentInterviewReq {
	req := &GetByTalentInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetByTalentInterviewReq struct {
	apiReq *larkcore.ApiReq
}

type GetByTalentInterviewRespData struct {
	Items []*TalentInterview `json:"items,omitempty"` // 投递面试列表
}

type GetByTalentInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetByTalentInterviewRespData `json:"data"` // 业务数据
}

func (resp *GetByTalentInterviewResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListInterviewReqBuilder() *ListInterviewReqBuilder {
	builder := &ListInterviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 分页大小，不能超过 100
//
// 示例值：10
func (builder *ListInterviewReqBuilder) PageSize(pageSize int) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 查询游标, 由上一页结果返回, 第一页不传
//
// 示例值：xx
func (builder *ListInterviewReqBuilder) PageToken(pageToken string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 投递 ID
//
// 示例值：6134134355464633
func (builder *ListInterviewReqBuilder) ApplicationId(applicationId string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 面试 ID
//
// 示例值：6888217964693309704
func (builder *ListInterviewReqBuilder) InterviewId(interviewId string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("interview_id", fmt.Sprint(interviewId))
	return builder
}

// 最早开始时间，格式为时间戳
//
// 示例值：1609489908000
func (builder *ListInterviewReqBuilder) StartTime(startTime string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
	return builder
}

// 最晚开始时间，格式为时间戳
//
// 示例值：1610489908000
func (builder *ListInterviewReqBuilder) EndTime(endTime string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListInterviewReqBuilder) JobLevelIdType(jobLevelIdType string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListInterviewReqBuilder) UserIdType(userIdType string) *ListInterviewReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListInterviewReqBuilder) Build() *ListInterviewReq {
	req := &ListInterviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewReq struct {
	apiReq *larkcore.ApiReq
}

type ListInterviewRespData struct {
	Items []*InterviewExtend `json:"items,omitempty"` // 面试列表

	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListInterviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewFeedbackFormReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListInterviewFeedbackFormReqBuilder() *ListInterviewFeedbackFormReqBuilder {
	builder := &ListInterviewFeedbackFormReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListInterviewFeedbackFormReqBuilder) Limit(limit int) *ListInterviewFeedbackFormReqBuilder {
	builder.limit = limit
	return builder
}

// 面试评价表ID列表, 如果使用此字段则会忽略其他参数
//
// 示例值：
func (builder *ListInterviewFeedbackFormReqBuilder) InterviewFeedbackFormIds(interviewFeedbackFormIds []string) *ListInterviewFeedbackFormReqBuilder {
	for _, v := range interviewFeedbackFormIds {
		builder.apiReq.QueryParams.Add("interview_feedback_form_ids", fmt.Sprint(v))
	}
	return builder
}

// 分页大小
//
// 示例值：
func (builder *ListInterviewFeedbackFormReqBuilder) PageSize(pageSize int) *ListInterviewFeedbackFormReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：
func (builder *ListInterviewFeedbackFormReqBuilder) PageToken(pageToken string) *ListInterviewFeedbackFormReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListInterviewFeedbackFormReqBuilder) Build() *ListInterviewFeedbackFormReq {
	req := &ListInterviewFeedbackFormReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewFeedbackFormReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListInterviewFeedbackFormRespData struct {
	Items []*InterviewFeedbackForm `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListInterviewFeedbackFormResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewFeedbackFormRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewFeedbackFormResp) Success() bool {
	return resp.Code == 0
}

type GetInterviewRecordReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetInterviewRecordReqBuilder() *GetInterviewRecordReqBuilder {
	builder := &GetInterviewRecordReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 记录 ID
//
// 示例值：1618209327096
func (builder *GetInterviewRecordReqBuilder) InterviewRecordId(interviewRecordId string) *GetInterviewRecordReqBuilder {
	builder.apiReq.PathParams.Set("interview_record_id", fmt.Sprint(interviewRecordId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetInterviewRecordReqBuilder) UserIdType(userIdType string) *GetInterviewRecordReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetInterviewRecordReqBuilder) Build() *GetInterviewRecordReq {
	req := &GetInterviewRecordReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetInterviewRecordReq struct {
	apiReq *larkcore.ApiReq
}

type GetInterviewRecordRespData struct {
	InterviewRecord *InterviewRecord `json:"interview_record,omitempty"` // 数据
}

type GetInterviewRecordResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetInterviewRecordRespData `json:"data"` // 业务数据
}

func (resp *GetInterviewRecordResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewRecordReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListInterviewRecordReqBuilder() *ListInterviewRecordReqBuilder {
	builder := &ListInterviewRecordReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListInterviewRecordReqBuilder) Limit(limit int) *ListInterviewRecordReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *ListInterviewRecordReqBuilder) PageSize(pageSize int) *ListInterviewRecordReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：
func (builder *ListInterviewRecordReqBuilder) PageToken(pageToken string) *ListInterviewRecordReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 面试评价ID列表，使用该筛选项时不会分页
//
// 示例值：
func (builder *ListInterviewRecordReqBuilder) Ids(ids []string) *ListInterviewRecordReqBuilder {
	for _, v := range ids {
		builder.apiReq.QueryParams.Add("ids", fmt.Sprint(v))
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListInterviewRecordReqBuilder) UserIdType(userIdType string) *ListInterviewRecordReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListInterviewRecordReqBuilder) Build() *ListInterviewRecordReq {
	req := &ListInterviewRecordReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewRecordReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListInterviewRecordRespData struct {
	Items []*InterviewRecord `json:"items,omitempty"` // 面试评价详细信息列表

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListInterviewRecordResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewRecordRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewRecordResp) Success() bool {
	return resp.Code == 0
}

type GetInterviewRecordAttachmentReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetInterviewRecordAttachmentReqBuilder() *GetInterviewRecordAttachmentReqBuilder {
	builder := &GetInterviewRecordAttachmentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递 ID
//
// 示例值：6949805467799537964
func (builder *GetInterviewRecordAttachmentReqBuilder) ApplicationId(applicationId string) *GetInterviewRecordAttachmentReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 面试记录 ID
//
// 示例值：6969137186734393644
func (builder *GetInterviewRecordAttachmentReqBuilder) InterviewRecordId(interviewRecordId string) *GetInterviewRecordAttachmentReqBuilder {
	builder.apiReq.QueryParams.Set("interview_record_id", fmt.Sprint(interviewRecordId))
	return builder
}

// 面试记录语言
//
// 示例值：
func (builder *GetInterviewRecordAttachmentReqBuilder) Language(language int) *GetInterviewRecordAttachmentReqBuilder {
	builder.apiReq.QueryParams.Set("language", fmt.Sprint(language))
	return builder
}

func (builder *GetInterviewRecordAttachmentReqBuilder) Build() *GetInterviewRecordAttachmentReq {
	req := &GetInterviewRecordAttachmentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetInterviewRecordAttachmentReq struct {
	apiReq *larkcore.ApiReq
}

type GetInterviewRecordAttachmentRespData struct {
	Attachment *AttachmentInfo `json:"attachment,omitempty"` // 附件信息
}

type GetInterviewRecordAttachmentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetInterviewRecordAttachmentRespData `json:"data"` // 业务数据
}

func (resp *GetInterviewRecordAttachmentResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewRegistrationSchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListInterviewRegistrationSchemaReqBuilder() *ListInterviewRegistrationSchemaReqBuilder {
	builder := &ListInterviewRegistrationSchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListInterviewRegistrationSchemaReqBuilder) Limit(limit int) *ListInterviewRegistrationSchemaReqBuilder {
	builder.limit = limit
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListInterviewRegistrationSchemaReqBuilder) PageToken(pageToken string) *ListInterviewRegistrationSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListInterviewRegistrationSchemaReqBuilder) PageSize(pageSize int) *ListInterviewRegistrationSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListInterviewRegistrationSchemaReqBuilder) Build() *ListInterviewRegistrationSchemaReq {
	req := &ListInterviewRegistrationSchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewRegistrationSchemaReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListInterviewRegistrationSchemaRespData struct {
	Items []*InterviewRegistrationSchema `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListInterviewRegistrationSchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewRegistrationSchemaRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewRegistrationSchemaResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewRoundTypeReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListInterviewRoundTypeReqBuilder() *ListInterviewRoundTypeReqBuilder {
	builder := &ListInterviewRoundTypeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位流程类型
//
// 示例值：1
func (builder *ListInterviewRoundTypeReqBuilder) ProcessType(processType int) *ListInterviewRoundTypeReqBuilder {
	builder.apiReq.QueryParams.Set("process_type", fmt.Sprint(processType))
	return builder
}

func (builder *ListInterviewRoundTypeReqBuilder) Build() *ListInterviewRoundTypeReq {
	req := &ListInterviewRoundTypeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewRoundTypeReq struct {
	apiReq *larkcore.ApiReq
}

type ListInterviewRoundTypeRespData struct {
	ActiveStatus *int `json:"active_status,omitempty"` // 是否启用面试轮次类型

	Items []*InterviewRoundType `json:"items,omitempty"` // 列表
}

type ListInterviewRoundTypeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewRoundTypeRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewRoundTypeResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewTaskReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListInterviewTaskReqBuilder() *ListInterviewTaskReqBuilder {
	builder := &ListInterviewTaskReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListInterviewTaskReqBuilder) Limit(limit int) *ListInterviewTaskReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小, 默认10，不能超过 20
//
// 示例值：10
func (builder *ListInterviewTaskReqBuilder) PageSize(pageSize int) *ListInterviewTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListInterviewTaskReqBuilder) PageToken(pageToken string) *ListInterviewTaskReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID
//
// 示例值：ou_e6139117c300506837def50545420c6a
func (builder *ListInterviewTaskReqBuilder) UserId(userId string) *ListInterviewTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 任务状态
//
// 示例值：1
func (builder *ListInterviewTaskReqBuilder) ActivityStatus(activityStatus int) *ListInterviewTaskReqBuilder {
	builder.apiReq.QueryParams.Set("activity_status", fmt.Sprint(activityStatus))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListInterviewTaskReqBuilder) UserIdType(userIdType string) *ListInterviewTaskReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListInterviewTaskReqBuilder) Build() *ListInterviewTaskReq {
	req := &ListInterviewTaskReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewTaskReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListInterviewTaskRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*InterviewTask `json:"items,omitempty"` // 列表
}

type ListInterviewTaskResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewTaskRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewTaskResp) Success() bool {
	return resp.Code == 0
}

type ListInterviewerReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListInterviewerReqBuilder() *ListInterviewerReqBuilder {
	builder := &ListInterviewerReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListInterviewerReqBuilder) Limit(limit int) *ListInterviewerReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：
func (builder *ListInterviewerReqBuilder) PageSize(pageSize int) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：
func (builder *ListInterviewerReqBuilder) PageToken(pageToken string) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 面试官userID列表
//
// 示例值：
func (builder *ListInterviewerReqBuilder) UserIds(userIds []string) *ListInterviewerReqBuilder {
	for _, v := range userIds {
		builder.apiReq.QueryParams.Add("user_ids", fmt.Sprint(v))
	}
	return builder
}

// 认证状态
//
// 示例值：1
func (builder *ListInterviewerReqBuilder) VerifyStatus(verifyStatus int) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("verify_status", fmt.Sprint(verifyStatus))
	return builder
}

// 最早更新时间，毫秒时间戳
//
// 示例值：1714374796615
func (builder *ListInterviewerReqBuilder) EarliestUpdateTime(earliestUpdateTime string) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("earliest_update_time", fmt.Sprint(earliestUpdateTime))
	return builder
}

// 最晚更新时间，毫秒时间戳
//
// 示例值：1714374796616
func (builder *ListInterviewerReqBuilder) LatestUpdateTime(latestUpdateTime string) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("latest_update_time", fmt.Sprint(latestUpdateTime))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListInterviewerReqBuilder) UserIdType(userIdType string) *ListInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListInterviewerReqBuilder) Build() *ListInterviewerReq {
	req := &ListInterviewerReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListInterviewerReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListInterviewerRespData struct {
	Items []*Interviewer `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListInterviewerResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListInterviewerRespData `json:"data"` // 业务数据
}

func (resp *ListInterviewerResp) Success() bool {
	return resp.Code == 0
}

type PatchInterviewerReqBodyBuilder struct {
	interviewer     *Interviewer // 面试官信息
	interviewerFlag bool
}

func NewPatchInterviewerReqBodyBuilder() *PatchInterviewerReqBodyBuilder {
	builder := &PatchInterviewerReqBodyBuilder{}
	return builder
}

// 面试官信息
//
//示例值：
func (builder *PatchInterviewerReqBodyBuilder) Interviewer(interviewer *Interviewer) *PatchInterviewerReqBodyBuilder {
	builder.interviewer = interviewer
	builder.interviewerFlag = true
	return builder
}

func (builder *PatchInterviewerReqBodyBuilder) Build() *PatchInterviewerReqBody {
	req := &PatchInterviewerReqBody{}
	if builder.interviewerFlag {
		req.Interviewer = builder.interviewer
	}
	return req
}

type PatchInterviewerPathReqBodyBuilder struct {
	interviewer     *Interviewer
	interviewerFlag bool
}

func NewPatchInterviewerPathReqBodyBuilder() *PatchInterviewerPathReqBodyBuilder {
	builder := &PatchInterviewerPathReqBodyBuilder{}
	return builder
}

// 面试官信息
//
// 示例值：
func (builder *PatchInterviewerPathReqBodyBuilder) Interviewer(interviewer *Interviewer) *PatchInterviewerPathReqBodyBuilder {
	builder.interviewer = interviewer
	builder.interviewerFlag = true
	return builder
}

func (builder *PatchInterviewerPathReqBodyBuilder) Build() (*PatchInterviewerReqBody, error) {
	req := &PatchInterviewerReqBody{}
	if builder.interviewerFlag {
		req.Interviewer = builder.interviewer
	}
	return req, nil
}

type PatchInterviewerReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *PatchInterviewerReqBody
}

func NewPatchInterviewerReqBuilder() *PatchInterviewerReqBuilder {
	builder := &PatchInterviewerReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 面试官userID
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *PatchInterviewerReqBuilder) InterviewerId(interviewerId string) *PatchInterviewerReqBuilder {
	builder.apiReq.PathParams.Set("interviewer_id", fmt.Sprint(interviewerId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *PatchInterviewerReqBuilder) UserIdType(userIdType string) *PatchInterviewerReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *PatchInterviewerReqBuilder) Body(body *PatchInterviewerReqBody) *PatchInterviewerReqBuilder {
	builder.body = body
	return builder
}

func (builder *PatchInterviewerReqBuilder) Build() *PatchInterviewerReq {
	req := &PatchInterviewerReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type PatchInterviewerReqBody struct {
	Interviewer *Interviewer `json:"interviewer,omitempty"` // 面试官信息
}

type PatchInterviewerReq struct {
	apiReq *larkcore.ApiReq
	Body   *PatchInterviewerReqBody `body:""`
}

type PatchInterviewerRespData struct {
	Interviewer *Interviewer `json:"interviewer,omitempty"` // 面试官信息
}

type PatchInterviewerResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchInterviewerRespData `json:"data"` // 业务数据
}

func (resp *PatchInterviewerResp) Success() bool {
	return resp.Code == 0
}

type CloseJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewCloseJobReqBuilder() *CloseJobReqBuilder {
	builder := &CloseJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956555
func (builder *CloseJobReqBuilder) JobId(jobId string) *CloseJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

func (builder *CloseJobReqBuilder) Build() *CloseJobReq {
	req := &CloseJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type CloseJobReq struct {
	apiReq *larkcore.ApiReq
}

type CloseJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CloseJobResp) Success() bool {
	return resp.Code == 0
}

type CombinedCreateJobReqBuilder struct {
	apiReq      *larkcore.ApiReq
	combinedJob *CombinedJob
}

func NewCombinedCreateJobReqBuilder() *CombinedCreateJobReqBuilder {
	builder := &CombinedCreateJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *CombinedCreateJobReqBuilder) UserIdType(userIdType string) *CombinedCreateJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：此次调用中使用的部门 ID 的类型
func (builder *CombinedCreateJobReqBuilder) DepartmentIdType(departmentIdType string) *CombinedCreateJobReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *CombinedCreateJobReqBuilder) JobLevelIdType(jobLevelIdType string) *CombinedCreateJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *CombinedCreateJobReqBuilder) JobFamilyIdType(jobFamilyIdType string) *CombinedCreateJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 新建职位，字段的是否必填，以系统中的「职位字段管理」中的设置为准。
func (builder *CombinedCreateJobReqBuilder) CombinedJob(combinedJob *CombinedJob) *CombinedCreateJobReqBuilder {
	builder.combinedJob = combinedJob
	return builder
}

func (builder *CombinedCreateJobReqBuilder) Build() *CombinedCreateJobReq {
	req := &CombinedCreateJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.combinedJob
	return req
}

type CombinedCreateJobReq struct {
	apiReq      *larkcore.ApiReq
	CombinedJob *CombinedJob `body:""`
}

type CombinedCreateJobRespData struct {
	DefaultJobPost *CombinedJobResultDefaultJobPost `json:"default_job_post,omitempty"` // 职位广告

	Job *Job `json:"job,omitempty"` // 职位

	JobManager *JobManager `json:"job_manager,omitempty"` // 职位负责人

	InterviewRegistrationSchemaInfo *RegistrationSchemaInfo `json:"interview_registration_schema_info,omitempty"` // 面试登记表

	OnboardRegistrationSchemaInfo *RegistrationSchemaInfo `json:"onboard_registration_schema_info,omitempty"` // 入职登记表

	TargetMajorList []*TargetMajorInfo `json:"target_major_list,omitempty"` // 目标专业

	PortalWebsiteApplyFormSchemaInfo *RegistrationSchemaInfo `json:"portal_website_apply_form_schema_info,omitempty"` // 官网申请表
}

type CombinedCreateJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CombinedCreateJobRespData `json:"data"` // 业务数据
}

func (resp *CombinedCreateJobResp) Success() bool {
	return resp.Code == 0
}

type CombinedUpdateJobReqBuilder struct {
	apiReq      *larkcore.ApiReq
	combinedJob *CombinedJob
}

func NewCombinedUpdateJobReqBuilder() *CombinedUpdateJobReqBuilder {
	builder := &CombinedUpdateJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956660
func (builder *CombinedUpdateJobReqBuilder) JobId(jobId string) *CombinedUpdateJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *CombinedUpdateJobReqBuilder) UserIdType(userIdType string) *CombinedUpdateJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *CombinedUpdateJobReqBuilder) DepartmentIdType(departmentIdType string) *CombinedUpdateJobReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *CombinedUpdateJobReqBuilder) JobLevelIdType(jobLevelIdType string) *CombinedUpdateJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *CombinedUpdateJobReqBuilder) JobFamilyIdType(jobFamilyIdType string) *CombinedUpdateJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 更新职位信息，该接口为全量更新，若字段没有返回值，则原有值将会被清空。字段的是否必填，将以系统中的「职位字段管理」中的设置为准。
func (builder *CombinedUpdateJobReqBuilder) CombinedJob(combinedJob *CombinedJob) *CombinedUpdateJobReqBuilder {
	builder.combinedJob = combinedJob
	return builder
}

func (builder *CombinedUpdateJobReqBuilder) Build() *CombinedUpdateJobReq {
	req := &CombinedUpdateJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.combinedJob
	return req
}

type CombinedUpdateJobReq struct {
	apiReq      *larkcore.ApiReq
	CombinedJob *CombinedJob `body:""`
}

type CombinedUpdateJobRespData struct {
	DefaultJobPost *CombinedJobResultDefaultJobPost `json:"default_job_post,omitempty"` // 职位广告

	Job *Job `json:"job,omitempty"` // 职位

	JobManager *JobManager `json:"job_manager,omitempty"` // 职位负责人

	InterviewRegistrationSchemaInfo *RegistrationSchemaInfo `json:"interview_registration_schema_info,omitempty"` // 面试登记表

	OnboardRegistrationSchemaInfo *RegistrationSchemaInfo `json:"onboard_registration_schema_info,omitempty"` // 入职登记表

	TargetMajorList []*TargetMajorInfo `json:"target_major_list,omitempty"` // 目标专业

	PortalWebsiteApplyFormSchemaInfo *RegistrationSchemaInfo `json:"portal_website_apply_form_schema_info,omitempty"` // 官网申请表
}

type CombinedUpdateJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CombinedUpdateJobRespData `json:"data"` // 业务数据
}

func (resp *CombinedUpdateJobResp) Success() bool {
	return resp.Code == 0
}

type ConfigJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewConfigJobReqBuilder() *ConfigJobReqBuilder {
	builder := &ConfigJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956660
func (builder *ConfigJobReqBuilder) JobId(jobId string) *ConfigJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ConfigJobReqBuilder) UserIdType(userIdType string) *ConfigJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ConfigJobReqBuilder) Build() *ConfigJobReq {
	req := &ConfigJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ConfigJobReq struct {
	apiReq *larkcore.ApiReq
}

type ConfigJobRespData struct {
	JobConfig *JobConfigResult `json:"job_config,omitempty"` // 职位配置
}

type ConfigJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ConfigJobRespData `json:"data"` // 业务数据
}

func (resp *ConfigJobResp) Success() bool {
	return resp.Code == 0
}

type GetJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetJobReqBuilder() *GetJobReqBuilder {
	builder := &GetJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID，请求Path中
//
// 示例值：6001
func (builder *GetJobReqBuilder) JobId(jobId string) *GetJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetJobReqBuilder) UserIdType(userIdType string) *GetJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetJobReqBuilder) DepartmentIdType(departmentIdType string) *GetJobReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetJobReqBuilder) JobLevelIdType(jobLevelIdType string) *GetJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *GetJobReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

func (builder *GetJobReqBuilder) Build() *GetJobReq {
	req := &GetJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetJobReq struct {
	apiReq *larkcore.ApiReq
}

type GetJobRespData struct {
	Job *Job `json:"job,omitempty"` // 职位数据
}

type GetJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetJobRespData `json:"data"` // 业务数据
}

func (resp *GetJobResp) Success() bool {
	return resp.Code == 0
}

type GetDetailJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetDetailJobReqBuilder() *GetDetailJobReqBuilder {
	builder := &GetDetailJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID，请求Path中
//
// 示例值：6001
func (builder *GetDetailJobReqBuilder) JobId(jobId string) *GetDetailJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetDetailJobReqBuilder) UserIdType(userIdType string) *GetDetailJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetDetailJobReqBuilder) DepartmentIdType(departmentIdType string) *GetDetailJobReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetDetailJobReqBuilder) JobLevelIdType(jobLevelIdType string) *GetDetailJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *GetDetailJobReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetDetailJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

func (builder *GetDetailJobReqBuilder) Build() *GetDetailJobReq {
	req := &GetDetailJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetDetailJobReq struct {
	apiReq *larkcore.ApiReq
}

type GetDetailJobRespData struct {
	JobDetail *JobDetail `json:"job_detail,omitempty"` // 职位详情数据
}

type GetDetailJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetDetailJobRespData `json:"data"` // 业务数据
}

func (resp *GetDetailJobResp) Success() bool {
	return resp.Code == 0
}

type ListJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListJobReqBuilder() *ListJobReqBuilder {
	builder := &ListJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListJobReqBuilder) UpdateStartTime(updateStartTime string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListJobReqBuilder) UpdateEndTime(updateEndTime string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

// 分页大小, 不能超过 20
//
// 示例值：10
func (builder *ListJobReqBuilder) PageSize(pageSize int) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListJobReqBuilder) PageToken(pageToken string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListJobReqBuilder) UserIdType(userIdType string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListJobReqBuilder) DepartmentIdType(departmentIdType string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListJobReqBuilder) JobLevelIdType(jobLevelIdType string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *ListJobReqBuilder) JobFamilyIdType(jobFamilyIdType string) *ListJobReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

func (builder *ListJobReqBuilder) Build() *ListJobReq {
	req := &ListJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobReq struct {
	apiReq *larkcore.ApiReq
}

type ListJobRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*Job `json:"items,omitempty"` // 列表
}

type ListJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobRespData `json:"data"` // 业务数据
}

func (resp *ListJobResp) Success() bool {
	return resp.Code == 0
}

type OpenJobReqBodyBuilder struct {
	expiryTime     int // 到期日期
	expiryTimeFlag bool

	isNeverExpired     bool // 是否长期有效
	isNeverExpiredFlag bool
}

func NewOpenJobReqBodyBuilder() *OpenJobReqBodyBuilder {
	builder := &OpenJobReqBodyBuilder{}
	return builder
}

// 到期日期
//
//示例值：1598844859612
func (builder *OpenJobReqBodyBuilder) ExpiryTime(expiryTime int) *OpenJobReqBodyBuilder {
	builder.expiryTime = expiryTime
	builder.expiryTimeFlag = true
	return builder
}

// 是否长期有效
//
//示例值：true
func (builder *OpenJobReqBodyBuilder) IsNeverExpired(isNeverExpired bool) *OpenJobReqBodyBuilder {
	builder.isNeverExpired = isNeverExpired
	builder.isNeverExpiredFlag = true
	return builder
}

func (builder *OpenJobReqBodyBuilder) Build() *OpenJobReqBody {
	req := &OpenJobReqBody{}
	if builder.expiryTimeFlag {
		req.ExpiryTime = &builder.expiryTime
	}
	if builder.isNeverExpiredFlag {
		req.IsNeverExpired = &builder.isNeverExpired
	}
	return req
}

type OpenJobPathReqBodyBuilder struct {
	expiryTime         int
	expiryTimeFlag     bool
	isNeverExpired     bool
	isNeverExpiredFlag bool
}

func NewOpenJobPathReqBodyBuilder() *OpenJobPathReqBodyBuilder {
	builder := &OpenJobPathReqBodyBuilder{}
	return builder
}

// 到期日期
//
// 示例值：1598844859612
func (builder *OpenJobPathReqBodyBuilder) ExpiryTime(expiryTime int) *OpenJobPathReqBodyBuilder {
	builder.expiryTime = expiryTime
	builder.expiryTimeFlag = true
	return builder
}

// 是否长期有效
//
// 示例值：true
func (builder *OpenJobPathReqBodyBuilder) IsNeverExpired(isNeverExpired bool) *OpenJobPathReqBodyBuilder {
	builder.isNeverExpired = isNeverExpired
	builder.isNeverExpiredFlag = true
	return builder
}

func (builder *OpenJobPathReqBodyBuilder) Build() (*OpenJobReqBody, error) {
	req := &OpenJobReqBody{}
	if builder.expiryTimeFlag {
		req.ExpiryTime = &builder.expiryTime
	}
	if builder.isNeverExpiredFlag {
		req.IsNeverExpired = &builder.isNeverExpired
	}
	return req, nil
}

type OpenJobReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *OpenJobReqBody
}

func NewOpenJobReqBuilder() *OpenJobReqBuilder {
	builder := &OpenJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956555
func (builder *OpenJobReqBuilder) JobId(jobId string) *OpenJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 支持开启职位
func (builder *OpenJobReqBuilder) Body(body *OpenJobReqBody) *OpenJobReqBuilder {
	builder.body = body
	return builder
}

func (builder *OpenJobReqBuilder) Build() *OpenJobReq {
	req := &OpenJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type OpenJobReqBody struct {
	ExpiryTime *int `json:"expiry_time,omitempty"` // 到期日期

	IsNeverExpired *bool `json:"is_never_expired,omitempty"` // 是否长期有效
}

type OpenJobReq struct {
	apiReq *larkcore.ApiReq
	Body   *OpenJobReqBody `body:""`
}

type OpenJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *OpenJobResp) Success() bool {
	return resp.Code == 0
}

type RecruiterJobReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewRecruiterJobReqBuilder() *RecruiterJobReqBuilder {
	builder := &RecruiterJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956555
func (builder *RecruiterJobReqBuilder) JobId(jobId string) *RecruiterJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *RecruiterJobReqBuilder) UserIdType(userIdType string) *RecruiterJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *RecruiterJobReqBuilder) Build() *RecruiterJobReq {
	req := &RecruiterJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type RecruiterJobReq struct {
	apiReq *larkcore.ApiReq
}

type RecruiterJobRespData struct {
	Info *JobRecruiter2 `json:"info,omitempty"` // 职位负责人
}

type RecruiterJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *RecruiterJobRespData `json:"data"` // 业务数据
}

func (resp *RecruiterJobResp) Success() bool {
	return resp.Code == 0
}

type UpdateConfigJobReqBuilder struct {
	apiReq    *larkcore.ApiReq
	jobConfig *JobConfig
}

func NewUpdateConfigJobReqBuilder() *UpdateConfigJobReqBuilder {
	builder := &UpdateConfigJobReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：6960663240925956660
func (builder *UpdateConfigJobReqBuilder) JobId(jobId string) *UpdateConfigJobReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *UpdateConfigJobReqBuilder) UserIdType(userIdType string) *UpdateConfigJobReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 更新职位设置，包括面试评价表、Offer 申请表等。接口将按照所选择的「更新选项」进行设置参数校验和更新。
func (builder *UpdateConfigJobReqBuilder) JobConfig(jobConfig *JobConfig) *UpdateConfigJobReqBuilder {
	builder.jobConfig = jobConfig
	return builder
}

func (builder *UpdateConfigJobReqBuilder) Build() *UpdateConfigJobReq {
	req := &UpdateConfigJobReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.jobConfig
	return req
}

type UpdateConfigJobReq struct {
	apiReq    *larkcore.ApiReq
	JobConfig *JobConfig `body:""`
}

type UpdateConfigJobRespData struct {
	JobConfig *JobConfigResult `json:"job_config,omitempty"` // 职位信息
}

type UpdateConfigJobResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateConfigJobRespData `json:"data"` // 业务数据
}

func (resp *UpdateConfigJobResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateJobManagerReqBodyBuilder struct {
	recruiterId     string // 招聘负责人 ID
	recruiterIdFlag bool

	assistantIdList     []string // 招聘协助人 ID
	assistantIdListFlag bool

	hiringManagerIdList     []string // 用人经理 ID
	hiringManagerIdListFlag bool

	updateOptionList     []int // 更新的人员类型，可选值：1=招聘负责人; 2=招聘协助人; 3=用人经理；
	updateOptionListFlag bool

	creatorId     string // 操作者 ID
	creatorIdFlag bool
}

func NewBatchUpdateJobManagerReqBodyBuilder() *BatchUpdateJobManagerReqBodyBuilder {
	builder := &BatchUpdateJobManagerReqBodyBuilder{}
	return builder
}

// 招聘负责人 ID
//
//示例值：ou_e6139117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerReqBodyBuilder) RecruiterId(recruiterId string) *BatchUpdateJobManagerReqBodyBuilder {
	builder.recruiterId = recruiterId
	builder.recruiterIdFlag = true
	return builder
}

// 招聘协助人 ID
//
//示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerReqBodyBuilder) AssistantIdList(assistantIdList []string) *BatchUpdateJobManagerReqBodyBuilder {
	builder.assistantIdList = assistantIdList
	builder.assistantIdListFlag = true
	return builder
}

// 用人经理 ID
//
//示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerReqBodyBuilder) HiringManagerIdList(hiringManagerIdList []string) *BatchUpdateJobManagerReqBodyBuilder {
	builder.hiringManagerIdList = hiringManagerIdList
	builder.hiringManagerIdListFlag = true
	return builder
}

// 更新的人员类型，可选值：1=招聘负责人; 2=招聘协助人; 3=用人经理；
//
//示例值：1
func (builder *BatchUpdateJobManagerReqBodyBuilder) UpdateOptionList(updateOptionList []int) *BatchUpdateJobManagerReqBodyBuilder {
	builder.updateOptionList = updateOptionList
	builder.updateOptionListFlag = true
	return builder
}

// 操作者 ID
//
//示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerReqBodyBuilder) CreatorId(creatorId string) *BatchUpdateJobManagerReqBodyBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

func (builder *BatchUpdateJobManagerReqBodyBuilder) Build() *BatchUpdateJobManagerReqBody {
	req := &BatchUpdateJobManagerReqBody{}
	if builder.recruiterIdFlag {
		req.RecruiterId = &builder.recruiterId
	}
	if builder.assistantIdListFlag {
		req.AssistantIdList = builder.assistantIdList
	}
	if builder.hiringManagerIdListFlag {
		req.HiringManagerIdList = builder.hiringManagerIdList
	}
	if builder.updateOptionListFlag {
		req.UpdateOptionList = builder.updateOptionList
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId
	}
	return req
}

type BatchUpdateJobManagerPathReqBodyBuilder struct {
	recruiterId             string
	recruiterIdFlag         bool
	assistantIdList         []string
	assistantIdListFlag     bool
	hiringManagerIdList     []string
	hiringManagerIdListFlag bool
	updateOptionList        []int
	updateOptionListFlag    bool
	creatorId               string
	creatorIdFlag           bool
}

func NewBatchUpdateJobManagerPathReqBodyBuilder() *BatchUpdateJobManagerPathReqBodyBuilder {
	builder := &BatchUpdateJobManagerPathReqBodyBuilder{}
	return builder
}

// 招聘负责人 ID
//
// 示例值：ou_e6139117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerPathReqBodyBuilder) RecruiterId(recruiterId string) *BatchUpdateJobManagerPathReqBodyBuilder {
	builder.recruiterId = recruiterId
	builder.recruiterIdFlag = true
	return builder
}

// 招聘协助人 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerPathReqBodyBuilder) AssistantIdList(assistantIdList []string) *BatchUpdateJobManagerPathReqBodyBuilder {
	builder.assistantIdList = assistantIdList
	builder.assistantIdListFlag = true
	return builder
}

// 用人经理 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerPathReqBodyBuilder) HiringManagerIdList(hiringManagerIdList []string) *BatchUpdateJobManagerPathReqBodyBuilder {
	builder.hiringManagerIdList = hiringManagerIdList
	builder.hiringManagerIdListFlag = true
	return builder
}

// 更新的人员类型，可选值：1=招聘负责人; 2=招聘协助人; 3=用人经理；
//
// 示例值：1
func (builder *BatchUpdateJobManagerPathReqBodyBuilder) UpdateOptionList(updateOptionList []int) *BatchUpdateJobManagerPathReqBodyBuilder {
	builder.updateOptionList = updateOptionList
	builder.updateOptionListFlag = true
	return builder
}

// 操作者 ID
//
// 示例值：ou_efk39117c300506837def50545420c6a
func (builder *BatchUpdateJobManagerPathReqBodyBuilder) CreatorId(creatorId string) *BatchUpdateJobManagerPathReqBodyBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

func (builder *BatchUpdateJobManagerPathReqBodyBuilder) Build() (*BatchUpdateJobManagerReqBody, error) {
	req := &BatchUpdateJobManagerReqBody{}
	if builder.recruiterIdFlag {
		req.RecruiterId = &builder.recruiterId
	}
	if builder.assistantIdListFlag {
		req.AssistantIdList = builder.assistantIdList
	}
	if builder.hiringManagerIdListFlag {
		req.HiringManagerIdList = builder.hiringManagerIdList
	}
	if builder.updateOptionListFlag {
		req.UpdateOptionList = builder.updateOptionList
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId
	}
	return req, nil
}

type BatchUpdateJobManagerReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchUpdateJobManagerReqBody
}

func NewBatchUpdateJobManagerReqBuilder() *BatchUpdateJobManagerReqBuilder {
	builder := &BatchUpdateJobManagerReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：7096318853365369132
func (builder *BatchUpdateJobManagerReqBuilder) JobId(jobId string) *BatchUpdateJobManagerReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *BatchUpdateJobManagerReqBuilder) UserIdType(userIdType string) *BatchUpdateJobManagerReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 更新职位相关人员
func (builder *BatchUpdateJobManagerReqBuilder) Body(body *BatchUpdateJobManagerReqBody) *BatchUpdateJobManagerReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchUpdateJobManagerReqBuilder) Build() *BatchUpdateJobManagerReq {
	req := &BatchUpdateJobManagerReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BatchUpdateJobManagerReqBody struct {
	RecruiterId *string `json:"recruiter_id,omitempty"` // 招聘负责人 ID

	AssistantIdList []string `json:"assistant_id_list,omitempty"` // 招聘协助人 ID

	HiringManagerIdList []string `json:"hiring_manager_id_list,omitempty"` // 用人经理 ID

	UpdateOptionList []int `json:"update_option_list,omitempty"` // 更新的人员类型，可选值：1=招聘负责人; 2=招聘协助人; 3=用人经理；

	CreatorId *string `json:"creator_id,omitempty"` // 操作者 ID
}

type BatchUpdateJobManagerReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchUpdateJobManagerReqBody `body:""`
}

type BatchUpdateJobManagerRespData struct {
	JobManager *JobManager `json:"job_manager,omitempty"` // 职位负责人
}

type BatchUpdateJobManagerResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchUpdateJobManagerRespData `json:"data"` // 业务数据
}

func (resp *BatchUpdateJobManagerResp) Success() bool {
	return resp.Code == 0
}

type GetJobManagerReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetJobManagerReqBuilder() *GetJobManagerReqBuilder {
	builder := &GetJobManagerReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位 ID
//
// 示例值：1618209327096
func (builder *GetJobManagerReqBuilder) JobId(jobId string) *GetJobManagerReqBuilder {
	builder.apiReq.PathParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 此处传入职位 ID
//
// 示例值：1618209327096
func (builder *GetJobManagerReqBuilder) ManagerId(managerId string) *GetJobManagerReqBuilder {
	builder.apiReq.PathParams.Set("manager_id", fmt.Sprint(managerId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetJobManagerReqBuilder) UserIdType(userIdType string) *GetJobManagerReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetJobManagerReqBuilder) Build() *GetJobManagerReq {
	req := &GetJobManagerReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetJobManagerReq struct {
	apiReq *larkcore.ApiReq
}

type GetJobManagerRespData struct {
	Info *JobManager `json:"info,omitempty"` // 职位负责人
}

type GetJobManagerResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetJobManagerRespData `json:"data"` // 业务数据
}

func (resp *GetJobManagerResp) Success() bool {
	return resp.Code == 0
}

type ListJobFunctionReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListJobFunctionReqBuilder() *ListJobFunctionReqBuilder {
	builder := &ListJobFunctionReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListJobFunctionReqBuilder) Limit(limit int) *ListJobFunctionReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小, 不能超过 50
//
// 示例值：10
func (builder *ListJobFunctionReqBuilder) PageSize(pageSize int) *ListJobFunctionReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListJobFunctionReqBuilder) PageToken(pageToken string) *ListJobFunctionReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListJobFunctionReqBuilder) Build() *ListJobFunctionReq {
	req := &ListJobFunctionReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobFunctionReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListJobFunctionRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*JobFunction `json:"items,omitempty"` // 列表
}

type ListJobFunctionResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobFunctionRespData `json:"data"` // 业务数据
}

func (resp *ListJobFunctionResp) Success() bool {
	return resp.Code == 0
}

type ListJobProcessReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListJobProcessReqBuilder() *ListJobProcessReqBuilder {
	builder := &ListJobProcessReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 分页大小, 不能超过 100
//
// 示例值：10
func (builder *ListJobProcessReqBuilder) PageSize(pageSize int) *ListJobProcessReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：1
func (builder *ListJobProcessReqBuilder) PageToken(pageToken string) *ListJobProcessReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListJobProcessReqBuilder) Build() *ListJobProcessReq {
	req := &ListJobProcessReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobProcessReq struct {
	apiReq *larkcore.ApiReq
}

type ListJobProcessRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*JobProcesses `json:"items,omitempty"` // 列表
}

type ListJobProcessResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobProcessRespData `json:"data"` // 业务数据
}

func (resp *ListJobProcessResp) Success() bool {
	return resp.Code == 0
}

type SearchJobPublishRecordReqBodyBuilder struct {
	jobChannelId     string // 渠道 ID
	jobChannelIdFlag bool
}

func NewSearchJobPublishRecordReqBodyBuilder() *SearchJobPublishRecordReqBodyBuilder {
	builder := &SearchJobPublishRecordReqBodyBuilder{}
	return builder
}

// 渠道 ID
//
//示例值：7047318856652261676
func (builder *SearchJobPublishRecordReqBodyBuilder) JobChannelId(jobChannelId string) *SearchJobPublishRecordReqBodyBuilder {
	builder.jobChannelId = jobChannelId
	builder.jobChannelIdFlag = true
	return builder
}

func (builder *SearchJobPublishRecordReqBodyBuilder) Build() *SearchJobPublishRecordReqBody {
	req := &SearchJobPublishRecordReqBody{}
	if builder.jobChannelIdFlag {
		req.JobChannelId = &builder.jobChannelId
	}
	return req
}

type SearchJobPublishRecordPathReqBodyBuilder struct {
	jobChannelId     string
	jobChannelIdFlag bool
}

func NewSearchJobPublishRecordPathReqBodyBuilder() *SearchJobPublishRecordPathReqBodyBuilder {
	builder := &SearchJobPublishRecordPathReqBodyBuilder{}
	return builder
}

// 渠道 ID
//
// 示例值：7047318856652261676
func (builder *SearchJobPublishRecordPathReqBodyBuilder) JobChannelId(jobChannelId string) *SearchJobPublishRecordPathReqBodyBuilder {
	builder.jobChannelId = jobChannelId
	builder.jobChannelIdFlag = true
	return builder
}

func (builder *SearchJobPublishRecordPathReqBodyBuilder) Build() (*SearchJobPublishRecordReqBody, error) {
	req := &SearchJobPublishRecordReqBody{}
	if builder.jobChannelIdFlag {
		req.JobChannelId = &builder.jobChannelId
	}
	return req, nil
}

type SearchJobPublishRecordReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchJobPublishRecordReqBody
}

func NewSearchJobPublishRecordReqBuilder() *SearchJobPublishRecordReqBuilder {
	builder := &SearchJobPublishRecordReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *SearchJobPublishRecordReqBuilder) PageToken(pageToken string) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：10
func (builder *SearchJobPublishRecordReqBuilder) PageSize(pageSize int) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *SearchJobPublishRecordReqBuilder) UserIdType(userIdType string) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *SearchJobPublishRecordReqBuilder) DepartmentIdType(departmentIdType string) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *SearchJobPublishRecordReqBuilder) JobLevelIdType(jobLevelIdType string) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *SearchJobPublishRecordReqBuilder) JobFamilyIdType(jobFamilyIdType string) *SearchJobPublishRecordReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 获取职位广告发布记录
func (builder *SearchJobPublishRecordReqBuilder) Body(body *SearchJobPublishRecordReqBody) *SearchJobPublishRecordReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchJobPublishRecordReqBuilder) Build() *SearchJobPublishRecordReq {
	req := &SearchJobPublishRecordReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type SearchJobPublishRecordReqBody struct {
	JobChannelId *string `json:"job_channel_id,omitempty"` // 渠道 ID
}

type SearchJobPublishRecordReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchJobPublishRecordReqBody `body:""`
}

type SearchJobPublishRecordRespData struct {
	Items []*WebsiteJobPost `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type SearchJobPublishRecordResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchJobPublishRecordRespData `json:"data"` // 业务数据
}

func (resp *SearchJobPublishRecordResp) Success() bool {
	return resp.Code == 0
}

type CreateJobRequirementReqBuilder struct {
	apiReq         *larkcore.ApiReq
	jobRequirement *JobRequirement
}

func NewCreateJobRequirementReqBuilder() *CreateJobRequirementReqBuilder {
	builder := &CreateJobRequirementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateJobRequirementReqBuilder) UserIdType(userIdType string) *CreateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：open_department_id
func (builder *CreateJobRequirementReqBuilder) DepartmentIdType(departmentIdType string) *CreateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *CreateJobRequirementReqBuilder) JobLevelIdType(jobLevelIdType string) *CreateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *CreateJobRequirementReqBuilder) JobFamilyIdType(jobFamilyIdType string) *CreateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *CreateJobRequirementReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *CreateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 创建招聘需求，除招聘需求编号为必填外，其他字段是否必填与飞书招聘「招聘需求字段管理」内设置一致
func (builder *CreateJobRequirementReqBuilder) JobRequirement(jobRequirement *JobRequirement) *CreateJobRequirementReqBuilder {
	builder.jobRequirement = jobRequirement
	return builder
}

func (builder *CreateJobRequirementReqBuilder) Build() *CreateJobRequirementReq {
	req := &CreateJobRequirementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.jobRequirement
	return req
}

type CreateJobRequirementReq struct {
	apiReq         *larkcore.ApiReq
	JobRequirement *JobRequirement `body:""`
}

type CreateJobRequirementRespData struct {
	JobRequirement *JobRequirementDto `json:"job_requirement,omitempty"` // 招聘需求信息
}

type CreateJobRequirementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateJobRequirementRespData `json:"data"` // 业务数据
}

func (resp *CreateJobRequirementResp) Success() bool {
	return resp.Code == 0
}

type DeleteJobRequirementReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteJobRequirementReqBuilder() *DeleteJobRequirementReqBuilder {
	builder := &DeleteJobRequirementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 招聘需求 ID
//
// 示例值：1616161616
func (builder *DeleteJobRequirementReqBuilder) JobRequirementId(jobRequirementId string) *DeleteJobRequirementReqBuilder {
	builder.apiReq.PathParams.Set("job_requirement_id", fmt.Sprint(jobRequirementId))
	return builder
}

func (builder *DeleteJobRequirementReqBuilder) Build() *DeleteJobRequirementReq {
	req := &DeleteJobRequirementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteJobRequirementReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteJobRequirementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteJobRequirementResp) Success() bool {
	return resp.Code == 0
}

type ListJobRequirementReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListJobRequirementReqBuilder() *ListJobRequirementReqBuilder {
	builder := &ListJobRequirementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListJobRequirementReqBuilder) PageToken(pageToken string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：20
func (builder *ListJobRequirementReqBuilder) PageSize(pageSize int) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 职位ID
//
// 示例值：6001
func (builder *ListJobRequirementReqBuilder) JobId(jobId string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_id", fmt.Sprint(jobId))
	return builder
}

// 起始创建时间，传入毫秒级时间戳
//
// 示例值：1658980233000
func (builder *ListJobRequirementReqBuilder) CreateTimeBegin(createTimeBegin string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("create_time_begin", fmt.Sprint(createTimeBegin))
	return builder
}

// 截止创建时间，传入毫秒级时间戳
//
// 示例值：1658980233000
func (builder *ListJobRequirementReqBuilder) CreateTimeEnd(createTimeEnd string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("create_time_end", fmt.Sprint(createTimeEnd))
	return builder
}

// 起始更新时间，传入毫秒级时间戳
//
// 示例值：1658980233000
func (builder *ListJobRequirementReqBuilder) UpdateTimeBegin(updateTimeBegin string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("update_time_begin", fmt.Sprint(updateTimeBegin))
	return builder
}

// 截止更新时间，传入毫秒级时间戳
//
// 示例值：1658980233000
func (builder *ListJobRequirementReqBuilder) UpdateTimeEnd(updateTimeEnd string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("update_time_end", fmt.Sprint(updateTimeEnd))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListJobRequirementReqBuilder) UserIdType(userIdType string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListJobRequirementReqBuilder) DepartmentIdType(departmentIdType string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListJobRequirementReqBuilder) JobLevelIdType(jobLevelIdType string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *ListJobRequirementReqBuilder) JobFamilyIdType(jobFamilyIdType string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *ListJobRequirementReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *ListJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *ListJobRequirementReqBuilder) Build() *ListJobRequirementReq {
	req := &ListJobRequirementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobRequirementReq struct {
	apiReq *larkcore.ApiReq
}

type ListJobRequirementRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*JobRequirementDto `json:"items,omitempty"` // 查询的招聘需求信息
}

type ListJobRequirementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobRequirementRespData `json:"data"` // 业务数据
}

func (resp *ListJobRequirementResp) Success() bool {
	return resp.Code == 0
}

type ListByIdJobRequirementReqBodyBuilder struct {
	idList     []string // 招聘需求ID列表
	idListFlag bool

	shortCodeList     []string // 招聘需求编号列表
	shortCodeListFlag bool
}

func NewListByIdJobRequirementReqBodyBuilder() *ListByIdJobRequirementReqBodyBuilder {
	builder := &ListByIdJobRequirementReqBodyBuilder{}
	return builder
}

// 招聘需求ID列表
//
//示例值：
func (builder *ListByIdJobRequirementReqBodyBuilder) IdList(idList []string) *ListByIdJobRequirementReqBodyBuilder {
	builder.idList = idList
	builder.idListFlag = true
	return builder
}

// 招聘需求编号列表
//
//示例值：
func (builder *ListByIdJobRequirementReqBodyBuilder) ShortCodeList(shortCodeList []string) *ListByIdJobRequirementReqBodyBuilder {
	builder.shortCodeList = shortCodeList
	builder.shortCodeListFlag = true
	return builder
}

func (builder *ListByIdJobRequirementReqBodyBuilder) Build() *ListByIdJobRequirementReqBody {
	req := &ListByIdJobRequirementReqBody{}
	if builder.idListFlag {
		req.IdList = builder.idList
	}
	if builder.shortCodeListFlag {
		req.ShortCodeList = builder.shortCodeList
	}
	return req
}

type ListByIdJobRequirementPathReqBodyBuilder struct {
	idList            []string
	idListFlag        bool
	shortCodeList     []string
	shortCodeListFlag bool
}

func NewListByIdJobRequirementPathReqBodyBuilder() *ListByIdJobRequirementPathReqBodyBuilder {
	builder := &ListByIdJobRequirementPathReqBodyBuilder{}
	return builder
}

// 招聘需求ID列表
//
// 示例值：
func (builder *ListByIdJobRequirementPathReqBodyBuilder) IdList(idList []string) *ListByIdJobRequirementPathReqBodyBuilder {
	builder.idList = idList
	builder.idListFlag = true
	return builder
}

// 招聘需求编号列表
//
// 示例值：
func (builder *ListByIdJobRequirementPathReqBodyBuilder) ShortCodeList(shortCodeList []string) *ListByIdJobRequirementPathReqBodyBuilder {
	builder.shortCodeList = shortCodeList
	builder.shortCodeListFlag = true
	return builder
}

func (builder *ListByIdJobRequirementPathReqBodyBuilder) Build() (*ListByIdJobRequirementReqBody, error) {
	req := &ListByIdJobRequirementReqBody{}
	if builder.idListFlag {
		req.IdList = builder.idList
	}
	if builder.shortCodeListFlag {
		req.ShortCodeList = builder.shortCodeList
	}
	return req, nil
}

type ListByIdJobRequirementReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ListByIdJobRequirementReqBody
}

func NewListByIdJobRequirementReqBuilder() *ListByIdJobRequirementReqBuilder {
	builder := &ListByIdJobRequirementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListByIdJobRequirementReqBuilder) UserIdType(userIdType string) *ListByIdJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListByIdJobRequirementReqBuilder) DepartmentIdType(departmentIdType string) *ListByIdJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListByIdJobRequirementReqBuilder) JobLevelIdType(jobLevelIdType string) *ListByIdJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *ListByIdJobRequirementReqBuilder) JobFamilyIdType(jobFamilyIdType string) *ListByIdJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *ListByIdJobRequirementReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *ListByIdJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 获取招聘需求信息
func (builder *ListByIdJobRequirementReqBuilder) Body(body *ListByIdJobRequirementReqBody) *ListByIdJobRequirementReqBuilder {
	builder.body = body
	return builder
}

func (builder *ListByIdJobRequirementReqBuilder) Build() *ListByIdJobRequirementReq {
	req := &ListByIdJobRequirementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type ListByIdJobRequirementReqBody struct {
	IdList []string `json:"id_list,omitempty"` // 招聘需求ID列表

	ShortCodeList []string `json:"short_code_list,omitempty"` // 招聘需求编号列表
}

type ListByIdJobRequirementReq struct {
	apiReq *larkcore.ApiReq
	Body   *ListByIdJobRequirementReqBody `body:""`
}

type ListByIdJobRequirementRespData struct {
	Items []*JobRequirementDto `json:"items,omitempty"` // 招聘需求列表
}

type ListByIdJobRequirementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListByIdJobRequirementRespData `json:"data"` // 业务数据
}

func (resp *ListByIdJobRequirementResp) Success() bool {
	return resp.Code == 0
}

type UpdateJobRequirementReqBodyBuilder struct {
	name     string // 需求名称
	nameFlag bool

	displayProgress     int // 需求状态
	displayProgressFlag bool

	headCount     int // 需求人数，取值范围需大于 0
	headCountFlag bool

	recruitmentTypeId     string // 职位性质 ID
	recruitmentTypeIdFlag bool

	employeeTypeId     string // 人员类型
	employeeTypeIdFlag bool

	maxLevelId     string // 最高职级 ID
	maxLevelIdFlag bool

	minLevelId     string // 最低职级 ID
	minLevelIdFlag bool

	sequenceId     string // 职位序列 ID
	sequenceIdFlag bool

	category     int // 需求类型
	categoryFlag bool

	departmentId     string // 需求部门 ID
	departmentIdFlag bool

	recruiterIdList     []string // 需求负责人 ID 列表
	recruiterIdListFlag bool

	jrHiringManagerIdList     []string // 需求用人经理 ID 列表
	jrHiringManagerIdListFlag bool

	directLeaderIdList     []string // 直属上级 ID
	directLeaderIdListFlag bool

	startTime     string // 开始日期，毫秒级时间戳
	startTimeFlag bool

	deadline     string // 预计完成日期，毫秒级时间戳
	deadlineFlag bool

	priority     int // 招聘优先级
	priorityFlag bool

	requiredDegree     int // 学历要求
	requiredDegreeFlag bool

	maxSalary     string // 最高薪资
	maxSalaryFlag bool

	minSalary     string // 最低薪资
	minSalaryFlag bool

	addressId     string // 工作地点 ID
	addressIdFlag bool

	description     string // 需求描述
	descriptionFlag bool

	customizedDataList     []*JobRequirementCustomizedData // 自定义字段
	customizedDataListFlag bool

	processType     int // 支持的招聘类型列表
	processTypeFlag bool

	jobTypeId     string // 招聘需求中的职位类别
	jobTypeIdFlag bool

	jobIdList     []string // 关联的职位 ID 列表。;注：系统限制「需求基础信息修改」与「更新关联职位列表」需分开执行，因此传入此参数时请勿传入其他参数。
	jobIdListFlag bool

	employmentJobId     string // 职务 ID
	employmentJobIdFlag bool

	positionId     string // 岗位 ID
	positionIdFlag bool

	updateOption     *JobRequirementUpdateOption // 招聘需求修改确认控制
	updateOptionFlag bool
}

func NewUpdateJobRequirementReqBodyBuilder() *UpdateJobRequirementReqBodyBuilder {
	builder := &UpdateJobRequirementReqBodyBuilder{}
	return builder
}

// 需求名称
//
//示例值：HR部门春季招聘需求
func (builder *UpdateJobRequirementReqBodyBuilder) Name(name string) *UpdateJobRequirementReqBodyBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 需求状态
//
//示例值：1
func (builder *UpdateJobRequirementReqBodyBuilder) DisplayProgress(displayProgress int) *UpdateJobRequirementReqBodyBuilder {
	builder.displayProgress = displayProgress
	builder.displayProgressFlag = true
	return builder
}

// 需求人数，取值范围需大于 0
//
//示例值：11
func (builder *UpdateJobRequirementReqBodyBuilder) HeadCount(headCount int) *UpdateJobRequirementReqBodyBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 职位性质 ID
//
//示例值：1618209327096
func (builder *UpdateJobRequirementReqBodyBuilder) RecruitmentTypeId(recruitmentTypeId string) *UpdateJobRequirementReqBodyBuilder {
	builder.recruitmentTypeId = recruitmentTypeId
	builder.recruitmentTypeIdFlag = true
	return builder
}

// 人员类型
//
//示例值：6807409776231254285
func (builder *UpdateJobRequirementReqBodyBuilder) EmployeeTypeId(employeeTypeId string) *UpdateJobRequirementReqBodyBuilder {
	builder.employeeTypeId = employeeTypeId
	builder.employeeTypeIdFlag = true
	return builder
}

// 最高职级 ID
//
//示例值：123
func (builder *UpdateJobRequirementReqBodyBuilder) MaxLevelId(maxLevelId string) *UpdateJobRequirementReqBodyBuilder {
	builder.maxLevelId = maxLevelId
	builder.maxLevelIdFlag = true
	return builder
}

// 最低职级 ID
//
//示例值：11
func (builder *UpdateJobRequirementReqBodyBuilder) MinLevelId(minLevelId string) *UpdateJobRequirementReqBodyBuilder {
	builder.minLevelId = minLevelId
	builder.minLevelIdFlag = true
	return builder
}

// 职位序列 ID
//
//示例值：111
func (builder *UpdateJobRequirementReqBodyBuilder) SequenceId(sequenceId string) *UpdateJobRequirementReqBodyBuilder {
	builder.sequenceId = sequenceId
	builder.sequenceIdFlag = true
	return builder
}

// 需求类型
//
//示例值：1
func (builder *UpdateJobRequirementReqBodyBuilder) Category(category int) *UpdateJobRequirementReqBodyBuilder {
	builder.category = category
	builder.categoryFlag = true
	return builder
}

// 需求部门 ID
//
//示例值：1111
func (builder *UpdateJobRequirementReqBodyBuilder) DepartmentId(departmentId string) *UpdateJobRequirementReqBodyBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 需求负责人 ID 列表
//
//示例值：
func (builder *UpdateJobRequirementReqBodyBuilder) RecruiterIdList(recruiterIdList []string) *UpdateJobRequirementReqBodyBuilder {
	builder.recruiterIdList = recruiterIdList
	builder.recruiterIdListFlag = true
	return builder
}

// 需求用人经理 ID 列表
//
//示例值：
func (builder *UpdateJobRequirementReqBodyBuilder) JrHiringManagerIdList(jrHiringManagerIdList []string) *UpdateJobRequirementReqBodyBuilder {
	builder.jrHiringManagerIdList = jrHiringManagerIdList
	builder.jrHiringManagerIdListFlag = true
	return builder
}

// 直属上级 ID
//
//示例值：
func (builder *UpdateJobRequirementReqBodyBuilder) DirectLeaderIdList(directLeaderIdList []string) *UpdateJobRequirementReqBodyBuilder {
	builder.directLeaderIdList = directLeaderIdList
	builder.directLeaderIdListFlag = true
	return builder
}

// 开始日期，毫秒级时间戳
//
//示例值：1625729379000
func (builder *UpdateJobRequirementReqBodyBuilder) StartTime(startTime string) *UpdateJobRequirementReqBodyBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 预计完成日期，毫秒级时间戳
//
//示例值：1625729379000
func (builder *UpdateJobRequirementReqBodyBuilder) Deadline(deadline string) *UpdateJobRequirementReqBodyBuilder {
	builder.deadline = deadline
	builder.deadlineFlag = true
	return builder
}

// 招聘优先级
//
//示例值：1
func (builder *UpdateJobRequirementReqBodyBuilder) Priority(priority int) *UpdateJobRequirementReqBodyBuilder {
	builder.priority = priority
	builder.priorityFlag = true
	return builder
}

// 学历要求
//
//示例值：1
func (builder *UpdateJobRequirementReqBodyBuilder) RequiredDegree(requiredDegree int) *UpdateJobRequirementReqBodyBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 最高薪资
//
//示例值：123
func (builder *UpdateJobRequirementReqBodyBuilder) MaxSalary(maxSalary string) *UpdateJobRequirementReqBodyBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 最低薪资
//
//示例值：11
func (builder *UpdateJobRequirementReqBodyBuilder) MinSalary(minSalary string) *UpdateJobRequirementReqBodyBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 工作地点 ID
//
//示例值：11
func (builder *UpdateJobRequirementReqBodyBuilder) AddressId(addressId string) *UpdateJobRequirementReqBodyBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 需求描述
//
//示例值：11
func (builder *UpdateJobRequirementReqBodyBuilder) Description(description string) *UpdateJobRequirementReqBodyBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 自定义字段
//
//示例值：
func (builder *UpdateJobRequirementReqBodyBuilder) CustomizedDataList(customizedDataList []*JobRequirementCustomizedData) *UpdateJobRequirementReqBodyBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 支持的招聘类型列表
//
//示例值：1
func (builder *UpdateJobRequirementReqBodyBuilder) ProcessType(processType int) *UpdateJobRequirementReqBodyBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 招聘需求中的职位类别
//
//示例值：6930815272790114324
func (builder *UpdateJobRequirementReqBodyBuilder) JobTypeId(jobTypeId string) *UpdateJobRequirementReqBodyBuilder {
	builder.jobTypeId = jobTypeId
	builder.jobTypeIdFlag = true
	return builder
}

// 关联的职位 ID 列表。;注：系统限制「需求基础信息修改」与「更新关联职位列表」需分开执行，因此传入此参数时请勿传入其他参数。
//
//示例值：
func (builder *UpdateJobRequirementReqBodyBuilder) JobIdList(jobIdList []string) *UpdateJobRequirementReqBodyBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 职务 ID
//
//示例值：123
func (builder *UpdateJobRequirementReqBodyBuilder) EmploymentJobId(employmentJobId string) *UpdateJobRequirementReqBodyBuilder {
	builder.employmentJobId = employmentJobId
	builder.employmentJobIdFlag = true
	return builder
}

// 岗位 ID
//
//示例值：123
func (builder *UpdateJobRequirementReqBodyBuilder) PositionId(positionId string) *UpdateJobRequirementReqBodyBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

func (builder *UpdateJobRequirementReqBodyBuilder) Build() *UpdateJobRequirementReqBody {
	req := &UpdateJobRequirementReqBody{}
	if builder.nameFlag {
		req.Name = &builder.name
	}
	if builder.displayProgressFlag {
		req.DisplayProgress = &builder.displayProgress
	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount
	}
	if builder.recruitmentTypeIdFlag {
		req.RecruitmentTypeId = &builder.recruitmentTypeId
	}
	if builder.employeeTypeIdFlag {
		req.EmployeeTypeId = &builder.employeeTypeId
	}
	if builder.maxLevelIdFlag {
		req.MaxLevelId = &builder.maxLevelId
	}
	if builder.minLevelIdFlag {
		req.MinLevelId = &builder.minLevelId
	}
	if builder.sequenceIdFlag {
		req.SequenceId = &builder.sequenceId
	}
	if builder.categoryFlag {
		req.Category = &builder.category
	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId
	}
	if builder.recruiterIdListFlag {
		req.RecruiterIdList = builder.recruiterIdList
	}
	if builder.jrHiringManagerIdListFlag {
		req.JrHiringManagerIdList = builder.jrHiringManagerIdList
	}
	if builder.directLeaderIdListFlag {
		req.DirectLeaderIdList = builder.directLeaderIdList
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime
	}
	if builder.deadlineFlag {
		req.Deadline = &builder.deadline
	}
	if builder.priorityFlag {
		req.Priority = &builder.priority
	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree
	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary
	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary
	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId
	}
	if builder.descriptionFlag {
		req.Description = &builder.description
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType
	}
	if builder.jobTypeIdFlag {
		req.JobTypeId = &builder.jobTypeId
	}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.employmentJobIdFlag {
		req.EmploymentJobId = &builder.employmentJobId
	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId
	}
	return req
}

type UpdateJobRequirementPathReqBodyBuilder struct {
	name                      string
	nameFlag                  bool
	displayProgress           int
	displayProgressFlag       bool
	headCount                 int
	headCountFlag             bool
	recruitmentTypeId         string
	recruitmentTypeIdFlag     bool
	employeeTypeId            string
	employeeTypeIdFlag        bool
	maxLevelId                string
	maxLevelIdFlag            bool
	minLevelId                string
	minLevelIdFlag            bool
	sequenceId                string
	sequenceIdFlag            bool
	category                  int
	categoryFlag              bool
	departmentId              string
	departmentIdFlag          bool
	recruiterIdList           []string
	recruiterIdListFlag       bool
	jrHiringManagerIdList     []string
	jrHiringManagerIdListFlag bool
	directLeaderIdList        []string
	directLeaderIdListFlag    bool
	startTime                 string
	startTimeFlag             bool
	deadline                  string
	deadlineFlag              bool
	priority                  int
	priorityFlag              bool
	requiredDegree            int
	requiredDegreeFlag        bool
	maxSalary                 string
	maxSalaryFlag             bool
	minSalary                 string
	minSalaryFlag             bool
	addressId                 string
	addressIdFlag             bool
	description               string
	descriptionFlag           bool
	customizedDataList        []*JobRequirementCustomizedData
	customizedDataListFlag    bool
	processType               int
	processTypeFlag           bool
	jobTypeId                 string
	jobTypeIdFlag             bool
	jobIdList                 []string
	jobIdListFlag             bool
	employmentJobId           string
	employmentJobIdFlag       bool
	positionId                string
	positionIdFlag            bool
	updateOption              *JobRequirementUpdateOption
	updateOptionFlag          bool
}

func NewUpdateJobRequirementPathReqBodyBuilder() *UpdateJobRequirementPathReqBodyBuilder {
	builder := &UpdateJobRequirementPathReqBodyBuilder{}
	return builder
}

// 需求名称
//
// 示例值：HR部门春季招聘需求
func (builder *UpdateJobRequirementPathReqBodyBuilder) Name(name string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 需求状态
//
// 示例值：1
func (builder *UpdateJobRequirementPathReqBodyBuilder) DisplayProgress(displayProgress int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.displayProgress = displayProgress
	builder.displayProgressFlag = true
	return builder
}

// 需求人数，取值范围需大于 0
//
// 示例值：11
func (builder *UpdateJobRequirementPathReqBodyBuilder) HeadCount(headCount int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.headCount = headCount
	builder.headCountFlag = true
	return builder
}

// 职位性质 ID
//
// 示例值：1618209327096
func (builder *UpdateJobRequirementPathReqBodyBuilder) RecruitmentTypeId(recruitmentTypeId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.recruitmentTypeId = recruitmentTypeId
	builder.recruitmentTypeIdFlag = true
	return builder
}

// 人员类型
//
// 示例值：6807409776231254285
func (builder *UpdateJobRequirementPathReqBodyBuilder) EmployeeTypeId(employeeTypeId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.employeeTypeId = employeeTypeId
	builder.employeeTypeIdFlag = true
	return builder
}

// 最高职级 ID
//
// 示例值：123
func (builder *UpdateJobRequirementPathReqBodyBuilder) MaxLevelId(maxLevelId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.maxLevelId = maxLevelId
	builder.maxLevelIdFlag = true
	return builder
}

// 最低职级 ID
//
// 示例值：11
func (builder *UpdateJobRequirementPathReqBodyBuilder) MinLevelId(minLevelId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.minLevelId = minLevelId
	builder.minLevelIdFlag = true
	return builder
}

// 职位序列 ID
//
// 示例值：111
func (builder *UpdateJobRequirementPathReqBodyBuilder) SequenceId(sequenceId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.sequenceId = sequenceId
	builder.sequenceIdFlag = true
	return builder
}

// 需求类型
//
// 示例值：1
func (builder *UpdateJobRequirementPathReqBodyBuilder) Category(category int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.category = category
	builder.categoryFlag = true
	return builder
}

// 需求部门 ID
//
// 示例值：1111
func (builder *UpdateJobRequirementPathReqBodyBuilder) DepartmentId(departmentId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 需求负责人 ID 列表
//
// 示例值：
func (builder *UpdateJobRequirementPathReqBodyBuilder) RecruiterIdList(recruiterIdList []string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.recruiterIdList = recruiterIdList
	builder.recruiterIdListFlag = true
	return builder
}

// 需求用人经理 ID 列表
//
// 示例值：
func (builder *UpdateJobRequirementPathReqBodyBuilder) JrHiringManagerIdList(jrHiringManagerIdList []string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.jrHiringManagerIdList = jrHiringManagerIdList
	builder.jrHiringManagerIdListFlag = true
	return builder
}

// 直属上级 ID
//
// 示例值：
func (builder *UpdateJobRequirementPathReqBodyBuilder) DirectLeaderIdList(directLeaderIdList []string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.directLeaderIdList = directLeaderIdList
	builder.directLeaderIdListFlag = true
	return builder
}

// 开始日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *UpdateJobRequirementPathReqBodyBuilder) StartTime(startTime string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 预计完成日期，毫秒级时间戳
//
// 示例值：1625729379000
func (builder *UpdateJobRequirementPathReqBodyBuilder) Deadline(deadline string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.deadline = deadline
	builder.deadlineFlag = true
	return builder
}

// 招聘优先级
//
// 示例值：1
func (builder *UpdateJobRequirementPathReqBodyBuilder) Priority(priority int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.priority = priority
	builder.priorityFlag = true
	return builder
}

// 学历要求
//
// 示例值：1
func (builder *UpdateJobRequirementPathReqBodyBuilder) RequiredDegree(requiredDegree int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.requiredDegree = requiredDegree
	builder.requiredDegreeFlag = true
	return builder
}

// 最高薪资
//
// 示例值：123
func (builder *UpdateJobRequirementPathReqBodyBuilder) MaxSalary(maxSalary string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.maxSalary = maxSalary
	builder.maxSalaryFlag = true
	return builder
}

// 最低薪资
//
// 示例值：11
func (builder *UpdateJobRequirementPathReqBodyBuilder) MinSalary(minSalary string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.minSalary = minSalary
	builder.minSalaryFlag = true
	return builder
}

// 工作地点 ID
//
// 示例值：11
func (builder *UpdateJobRequirementPathReqBodyBuilder) AddressId(addressId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.addressId = addressId
	builder.addressIdFlag = true
	return builder
}

// 需求描述
//
// 示例值：11
func (builder *UpdateJobRequirementPathReqBodyBuilder) Description(description string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.description = description
	builder.descriptionFlag = true
	return builder
}

// 自定义字段
//
// 示例值：
func (builder *UpdateJobRequirementPathReqBodyBuilder) CustomizedDataList(customizedDataList []*JobRequirementCustomizedData) *UpdateJobRequirementPathReqBodyBuilder {
	builder.customizedDataList = customizedDataList
	builder.customizedDataListFlag = true
	return builder
}

// 支持的招聘类型列表
//
// 示例值：1
func (builder *UpdateJobRequirementPathReqBodyBuilder) ProcessType(processType int) *UpdateJobRequirementPathReqBodyBuilder {
	builder.processType = processType
	builder.processTypeFlag = true
	return builder
}

// 招聘需求中的职位类别
//
// 示例值：6930815272790114324
func (builder *UpdateJobRequirementPathReqBodyBuilder) JobTypeId(jobTypeId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.jobTypeId = jobTypeId
	builder.jobTypeIdFlag = true
	return builder
}

// 关联的职位 ID 列表。;注：系统限制「需求基础信息修改」与「更新关联职位列表」需分开执行，因此传入此参数时请勿传入其他参数。
//
// 示例值：
func (builder *UpdateJobRequirementPathReqBodyBuilder) JobIdList(jobIdList []string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 职务 ID
//
// 示例值：123
func (builder *UpdateJobRequirementPathReqBodyBuilder) EmploymentJobId(employmentJobId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.employmentJobId = employmentJobId
	builder.employmentJobIdFlag = true
	return builder
}

// 岗位 ID
//
// 示例值：123
func (builder *UpdateJobRequirementPathReqBodyBuilder) PositionId(positionId string) *UpdateJobRequirementPathReqBodyBuilder {
	builder.positionId = positionId
	builder.positionIdFlag = true
	return builder
}

func (builder *UpdateJobRequirementPathReqBodyBuilder) Build() (*UpdateJobRequirementReqBody, error) {
	req := &UpdateJobRequirementReqBody{}
	if builder.nameFlag {
		req.Name = &builder.name
	}
	if builder.displayProgressFlag {
		req.DisplayProgress = &builder.displayProgress
	}
	if builder.headCountFlag {
		req.HeadCount = &builder.headCount
	}
	if builder.recruitmentTypeIdFlag {
		req.RecruitmentTypeId = &builder.recruitmentTypeId
	}
	if builder.employeeTypeIdFlag {
		req.EmployeeTypeId = &builder.employeeTypeId
	}
	if builder.maxLevelIdFlag {
		req.MaxLevelId = &builder.maxLevelId
	}
	if builder.minLevelIdFlag {
		req.MinLevelId = &builder.minLevelId
	}
	if builder.sequenceIdFlag {
		req.SequenceId = &builder.sequenceId
	}
	if builder.categoryFlag {
		req.Category = &builder.category
	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId
	}
	if builder.recruiterIdListFlag {
		req.RecruiterIdList = builder.recruiterIdList
	}
	if builder.jrHiringManagerIdListFlag {
		req.JrHiringManagerIdList = builder.jrHiringManagerIdList
	}
	if builder.directLeaderIdListFlag {
		req.DirectLeaderIdList = builder.directLeaderIdList
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime
	}
	if builder.deadlineFlag {
		req.Deadline = &builder.deadline
	}
	if builder.priorityFlag {
		req.Priority = &builder.priority
	}
	if builder.requiredDegreeFlag {
		req.RequiredDegree = &builder.requiredDegree
	}
	if builder.maxSalaryFlag {
		req.MaxSalary = &builder.maxSalary
	}
	if builder.minSalaryFlag {
		req.MinSalary = &builder.minSalary
	}
	if builder.addressIdFlag {
		req.AddressId = &builder.addressId
	}
	if builder.descriptionFlag {
		req.Description = &builder.description
	}
	if builder.customizedDataListFlag {
		req.CustomizedDataList = builder.customizedDataList
	}
	if builder.processTypeFlag {
		req.ProcessType = &builder.processType
	}
	if builder.jobTypeIdFlag {
		req.JobTypeId = &builder.jobTypeId
	}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.employmentJobIdFlag {
		req.EmploymentJobId = &builder.employmentJobId
	}
	if builder.positionIdFlag {
		req.PositionId = &builder.positionId
	}
	return req, nil
}

type UpdateJobRequirementReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateJobRequirementReqBody
}

func NewUpdateJobRequirementReqBuilder() *UpdateJobRequirementReqBuilder {
	builder := &UpdateJobRequirementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 招聘需求ID
//
// 示例值：623455234
func (builder *UpdateJobRequirementReqBuilder) JobRequirementId(jobRequirementId string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.PathParams.Set("job_requirement_id", fmt.Sprint(jobRequirementId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *UpdateJobRequirementReqBuilder) UserIdType(userIdType string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *UpdateJobRequirementReqBuilder) DepartmentIdType(departmentIdType string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *UpdateJobRequirementReqBuilder) JobLevelIdType(jobLevelIdType string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *UpdateJobRequirementReqBuilder) JobFamilyIdType(jobFamilyIdType string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *UpdateJobRequirementReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *UpdateJobRequirementReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 更新招聘需求
func (builder *UpdateJobRequirementReqBuilder) Body(body *UpdateJobRequirementReqBody) *UpdateJobRequirementReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateJobRequirementReqBuilder) Build() *UpdateJobRequirementReq {
	req := &UpdateJobRequirementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateJobRequirementReqBody struct {
	Name *string `json:"name,omitempty"` // 需求名称

	DisplayProgress *int `json:"display_progress,omitempty"` // 需求状态

	HeadCount *int `json:"head_count,omitempty"` // 需求人数，取值范围需大于 0

	RecruitmentTypeId *string `json:"recruitment_type_id,omitempty"` // 职位性质 ID

	EmployeeTypeId *string `json:"employee_type_id,omitempty"` // 人员类型

	MaxLevelId *string `json:"max_level_id,omitempty"` // 最高职级 ID

	MinLevelId *string `json:"min_level_id,omitempty"` // 最低职级 ID

	SequenceId *string `json:"sequence_id,omitempty"` // 职位序列 ID

	Category *int `json:"category,omitempty"` // 需求类型

	DepartmentId *string `json:"department_id,omitempty"` // 需求部门 ID

	RecruiterIdList []string `json:"recruiter_id_list,omitempty"` // 需求负责人 ID 列表

	JrHiringManagerIdList []string `json:"jr_hiring_manager_id_list,omitempty"` // 需求用人经理 ID 列表

	DirectLeaderIdList []string `json:"direct_leader_id_list,omitempty"` // 直属上级 ID

	StartTime *string `json:"start_time,omitempty"` // 开始日期，毫秒级时间戳

	Deadline *string `json:"deadline,omitempty"` // 预计完成日期，毫秒级时间戳

	Priority *int `json:"priority,omitempty"` // 招聘优先级

	RequiredDegree *int `json:"required_degree,omitempty"` // 学历要求

	MaxSalary *string `json:"max_salary,omitempty"` // 最高薪资

	MinSalary *string `json:"min_salary,omitempty"` // 最低薪资

	AddressId *string `json:"address_id,omitempty"` // 工作地点 ID

	Description *string `json:"description,omitempty"` // 需求描述

	CustomizedDataList []*JobRequirementCustomizedData `json:"customized_data_list,omitempty"` // 自定义字段

	ProcessType *int `json:"process_type,omitempty"` // 支持的招聘类型列表

	JobTypeId *string `json:"job_type_id,omitempty"` // 招聘需求中的职位类别

	JobIdList []string `json:"job_id_list,omitempty"` // 关联的职位 ID 列表。;注：系统限制「需求基础信息修改」与「更新关联职位列表」需分开执行，因此传入此参数时请勿传入其他参数。

	EmploymentJobId *string `json:"employment_job_id,omitempty"` // 职务 ID

	PositionId *string `json:"position_id,omitempty"` // 岗位 ID

	UpdateOption *JobRequirementUpdateOption `json:"update_option,omitempty"` // 招聘需求修改确认控制
}

type UpdateJobRequirementReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateJobRequirementReqBody `body:""`
}

type UpdateJobRequirementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateJobRequirementResp) Success() bool {
	return resp.Code == 0
}

type ListJobRequirementSchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListJobRequirementSchemaReqBuilder() *ListJobRequirementSchemaReqBuilder {
	builder := &ListJobRequirementSchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListJobRequirementSchemaReqBuilder) PageToken(pageToken string) *ListJobRequirementSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListJobRequirementSchemaReqBuilder) PageSize(pageSize int) *ListJobRequirementSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListJobRequirementSchemaReqBuilder) Build() *ListJobRequirementSchemaReq {
	req := &ListJobRequirementSchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobRequirementSchemaReq struct {
	apiReq *larkcore.ApiReq
}

type ListJobRequirementSchemaRespData struct {
	Items []*JobRequirementSchema `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListJobRequirementSchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobRequirementSchemaRespData `json:"data"` // 业务数据
}

func (resp *ListJobRequirementSchemaResp) Success() bool {
	return resp.Code == 0
}

type ListJobSchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListJobSchemaReqBuilder() *ListJobSchemaReqBuilder {
	builder := &ListJobSchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListJobSchemaReqBuilder) PageToken(pageToken string) *ListJobSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListJobSchemaReqBuilder) PageSize(pageSize int) *ListJobSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 职位模板类型
//
// 示例值：1
func (builder *ListJobSchemaReqBuilder) Scenario(scenario int) *ListJobSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("scenario", fmt.Sprint(scenario))
	return builder
}

func (builder *ListJobSchemaReqBuilder) Build() *ListJobSchemaReq {
	req := &ListJobSchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobSchemaReq struct {
	apiReq *larkcore.ApiReq
}

type ListJobSchemaRespData struct {
	Items []*JobSchema `json:"items,omitempty"` // 数据列表

	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListJobSchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobSchemaRespData `json:"data"` // 业务数据
}

func (resp *ListJobSchemaResp) Success() bool {
	return resp.Code == 0
}

type ListJobTypeReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListJobTypeReqBuilder() *ListJobTypeReqBuilder {
	builder := &ListJobTypeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListJobTypeReqBuilder) Limit(limit int) *ListJobTypeReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：
func (builder *ListJobTypeReqBuilder) PageSize(pageSize int) *ListJobTypeReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：
func (builder *ListJobTypeReqBuilder) PageToken(pageToken string) *ListJobTypeReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListJobTypeReqBuilder) Build() *ListJobTypeReq {
	req := &ListJobTypeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListJobTypeReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListJobTypeRespData struct {
	Items []*JobTypeInfo `json:"items,omitempty"` // 职位类别列表

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListJobTypeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListJobTypeRespData `json:"data"` // 业务数据
}

func (resp *ListJobTypeResp) Success() bool {
	return resp.Code == 0
}

type ListLocationReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListLocationReqBuilder() *ListLocationReqBuilder {
	builder := &ListLocationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListLocationReqBuilder) Limit(limit int) *ListLocationReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListLocationReqBuilder) PageToken(pageToken string) *ListLocationReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListLocationReqBuilder) PageSize(pageSize int) *ListLocationReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 地址类型
//
// 示例值：interview_location
func (builder *ListLocationReqBuilder) Usage(usage string) *ListLocationReqBuilder {
	builder.apiReq.QueryParams.Set("usage", fmt.Sprint(usage))
	return builder
}

func (builder *ListLocationReqBuilder) Build() *ListLocationReq {
	req := &ListLocationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListLocationReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListLocationRespData struct {
	Items []*Location `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListLocationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListLocationRespData `json:"data"` // 业务数据
}

func (resp *ListLocationResp) Success() bool {
	return resp.Code == 0
}

type QueryLocationReqBodyBuilder struct {
	codeList     []string // 地址码列表,最大长度不超过100
	codeListFlag bool

	locationType     int // 地址类型
	locationTypeFlag bool
}

func NewQueryLocationReqBodyBuilder() *QueryLocationReqBodyBuilder {
	builder := &QueryLocationReqBodyBuilder{}
	return builder
}

// 地址码列表,最大长度不超过100
//
//示例值：CN_1
func (builder *QueryLocationReqBodyBuilder) CodeList(codeList []string) *QueryLocationReqBodyBuilder {
	builder.codeList = codeList
	builder.codeListFlag = true
	return builder
}

// 地址类型
//
//示例值：1
func (builder *QueryLocationReqBodyBuilder) LocationType(locationType int) *QueryLocationReqBodyBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *QueryLocationReqBodyBuilder) Build() *QueryLocationReqBody {
	req := &QueryLocationReqBody{}
	if builder.codeListFlag {
		req.CodeList = builder.codeList
	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType
	}
	return req
}

type QueryLocationPathReqBodyBuilder struct {
	codeList         []string
	codeListFlag     bool
	locationType     int
	locationTypeFlag bool
}

func NewQueryLocationPathReqBodyBuilder() *QueryLocationPathReqBodyBuilder {
	builder := &QueryLocationPathReqBodyBuilder{}
	return builder
}

// 地址码列表,最大长度不超过100
//
// 示例值：CN_1
func (builder *QueryLocationPathReqBodyBuilder) CodeList(codeList []string) *QueryLocationPathReqBodyBuilder {
	builder.codeList = codeList
	builder.codeListFlag = true
	return builder
}

// 地址类型
//
// 示例值：1
func (builder *QueryLocationPathReqBodyBuilder) LocationType(locationType int) *QueryLocationPathReqBodyBuilder {
	builder.locationType = locationType
	builder.locationTypeFlag = true
	return builder
}

func (builder *QueryLocationPathReqBodyBuilder) Build() (*QueryLocationReqBody, error) {
	req := &QueryLocationReqBody{}
	if builder.codeListFlag {
		req.CodeList = builder.codeList
	}
	if builder.locationTypeFlag {
		req.LocationType = &builder.locationType
	}
	return req, nil
}

type QueryLocationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *QueryLocationReqBody
}

func NewQueryLocationReqBuilder() *QueryLocationReqBuilder {
	builder := &QueryLocationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *QueryLocationReqBuilder) PageToken(pageToken string) *QueryLocationReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页限制, 数据校验规则 1-100
//
// 示例值：100
func (builder *QueryLocationReqBuilder) PageSize(pageSize int) *QueryLocationReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

//
func (builder *QueryLocationReqBuilder) Body(body *QueryLocationReqBody) *QueryLocationReqBuilder {
	builder.body = body
	return builder
}

func (builder *QueryLocationReqBuilder) Build() *QueryLocationReq {
	req := &QueryLocationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type QueryLocationReqBody struct {
	CodeList []string `json:"code_list,omitempty"` // 地址码列表,最大长度不超过100

	LocationType *int `json:"location_type,omitempty"` // 地址类型
}

type QueryLocationReq struct {
	apiReq *larkcore.ApiReq
	Body   *QueryLocationReqBody `body:""`
}

type QueryLocationRespData struct {
	Items []*LocationDto `json:"items,omitempty"` // 地址数据列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token,否则不返回 page_token
}

type QueryLocationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *QueryLocationRespData `json:"data"` // 业务数据
}

func (resp *QueryLocationResp) Success() bool {
	return resp.Code == 0
}

type GetMinutesReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetMinutesReqBuilder() *GetMinutesReqBuilder {
	builder := &GetMinutesReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 面试ID
//
// 示例值：
func (builder *GetMinutesReqBuilder) InterviewId(interviewId string) *GetMinutesReqBuilder {
	builder.apiReq.QueryParams.Set("interview_id", fmt.Sprint(interviewId))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该page_token获取查询结果
//
// 示例值：
func (builder *GetMinutesReqBuilder) PageToken(pageToken string) *GetMinutesReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 分页大小，表示本次请求获取的速记中的语句的最大数量
//
// 示例值：
func (builder *GetMinutesReqBuilder) PageSize(pageSize int) *GetMinutesReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *GetMinutesReqBuilder) Build() *GetMinutesReq {
	req := &GetMinutesReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetMinutesReq struct {
	apiReq *larkcore.ApiReq
}

type GetMinutesRespData struct {
	Minutes *Minutes `json:"minutes,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	HasMore *bool `json:"has_more,omitempty"` // 对应面试是否还有更多项
}

type GetMinutesResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetMinutesRespData `json:"data"` // 业务数据
}

func (resp *GetMinutesResp) Success() bool {
	return resp.Code == 0
}

type CreateNoteReqBuilder struct {
	apiReq *larkcore.ApiReq
	note   *Note
}

func NewCreateNoteReqBuilder() *CreateNoteReqBuilder {
	builder := &CreateNoteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateNoteReqBuilder) UserIdType(userIdType string) *CreateNoteReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 创建备注信息
func (builder *CreateNoteReqBuilder) Note(note *Note) *CreateNoteReqBuilder {
	builder.note = note
	return builder
}

func (builder *CreateNoteReqBuilder) Build() *CreateNoteReq {
	req := &CreateNoteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.note
	return req
}

type CreateNoteReq struct {
	apiReq *larkcore.ApiReq
	Note   *Note `body:""`
}

type CreateNoteRespData struct {
	Note *Note `json:"note,omitempty"` // 备注信息
}

type CreateNoteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateNoteRespData `json:"data"` // 业务数据
}

func (resp *CreateNoteResp) Success() bool {
	return resp.Code == 0
}

type DeleteNoteReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteNoteReqBuilder() *DeleteNoteReqBuilder {
	builder := &DeleteNoteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
//
// 示例值：
func (builder *DeleteNoteReqBuilder) NoteId(noteId string) *DeleteNoteReqBuilder {
	builder.apiReq.PathParams.Set("note_id", fmt.Sprint(noteId))
	return builder
}

func (builder *DeleteNoteReqBuilder) Build() *DeleteNoteReq {
	req := &DeleteNoteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteNoteReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteNoteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteNoteResp) Success() bool {
	return resp.Code == 0
}

type GetNoteReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetNoteReqBuilder() *GetNoteReqBuilder {
	builder := &GetNoteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 备注ID
//
// 示例值：6949805467799537964
func (builder *GetNoteReqBuilder) NoteId(noteId string) *GetNoteReqBuilder {
	builder.apiReq.PathParams.Set("note_id", fmt.Sprint(noteId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetNoteReqBuilder) UserIdType(userIdType string) *GetNoteReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetNoteReqBuilder) Build() *GetNoteReq {
	req := &GetNoteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetNoteReq struct {
	apiReq *larkcore.ApiReq
}

type GetNoteRespData struct {
	Note *Note `json:"note,omitempty"` // 备注数据
}

type GetNoteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetNoteRespData `json:"data"` // 业务数据
}

func (resp *GetNoteResp) Success() bool {
	return resp.Code == 0
}

type ListNoteReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListNoteReqBuilder() *ListNoteReqBuilder {
	builder := &ListNoteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 每页限制, 每页最大不超过100
//
// 示例值：10
func (builder *ListNoteReqBuilder) PageSize(pageSize int) *ListNoteReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 查询游标, 由上一页结果返回, 第一页不传
//
// 示例值：1
func (builder *ListNoteReqBuilder) PageToken(pageToken string) *ListNoteReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 人才ID
//
// 示例值：6916472453069883661
func (builder *ListNoteReqBuilder) TalentId(talentId string) *ListNoteReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListNoteReqBuilder) UserIdType(userIdType string) *ListNoteReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListNoteReqBuilder) Build() *ListNoteReq {
	req := &ListNoteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListNoteReq struct {
	apiReq *larkcore.ApiReq
}

type ListNoteRespData struct {
	Items []*Note `json:"items,omitempty"` // 备注数据列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 游标, 翻下一页数据时使用
}

type ListNoteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListNoteRespData `json:"data"` // 业务数据
}

func (resp *ListNoteResp) Success() bool {
	return resp.Code == 0
}

type PatchNoteReqBodyBuilder struct {
	content     string // 备注内容
	contentFlag bool

	operatorId     string // 更新人 ID
	operatorIdFlag bool

	notifyMentionedUser     bool // 是否通知被@的用户
	notifyMentionedUserFlag bool

	mentionEntityList     []*MentionEntity // 被@用户列表
	mentionEntityListFlag bool
}

func NewPatchNoteReqBodyBuilder() *PatchNoteReqBodyBuilder {
	builder := &PatchNoteReqBodyBuilder{}
	return builder
}

// 备注内容
//
//示例值：111
func (builder *PatchNoteReqBodyBuilder) Content(content string) *PatchNoteReqBodyBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 更新人 ID
//
//示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *PatchNoteReqBodyBuilder) OperatorId(operatorId string) *PatchNoteReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 是否通知被@的用户
//
//示例值：false
func (builder *PatchNoteReqBodyBuilder) NotifyMentionedUser(notifyMentionedUser bool) *PatchNoteReqBodyBuilder {
	builder.notifyMentionedUser = notifyMentionedUser
	builder.notifyMentionedUserFlag = true
	return builder
}

// 被@用户列表
//
//示例值：
func (builder *PatchNoteReqBodyBuilder) MentionEntityList(mentionEntityList []*MentionEntity) *PatchNoteReqBodyBuilder {
	builder.mentionEntityList = mentionEntityList
	builder.mentionEntityListFlag = true
	return builder
}

func (builder *PatchNoteReqBodyBuilder) Build() *PatchNoteReqBody {
	req := &PatchNoteReqBody{}
	if builder.contentFlag {
		req.Content = &builder.content
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.notifyMentionedUserFlag {
		req.NotifyMentionedUser = &builder.notifyMentionedUser
	}
	if builder.mentionEntityListFlag {
		req.MentionEntityList = builder.mentionEntityList
	}
	return req
}

type PatchNotePathReqBodyBuilder struct {
	content                 string
	contentFlag             bool
	operatorId              string
	operatorIdFlag          bool
	notifyMentionedUser     bool
	notifyMentionedUserFlag bool
	mentionEntityList       []*MentionEntity
	mentionEntityListFlag   bool
}

func NewPatchNotePathReqBodyBuilder() *PatchNotePathReqBodyBuilder {
	builder := &PatchNotePathReqBodyBuilder{}
	return builder
}

// 备注内容
//
// 示例值：111
func (builder *PatchNotePathReqBodyBuilder) Content(content string) *PatchNotePathReqBodyBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 更新人 ID
//
// 示例值：ou_f476cb099ac9227c9bae09ce46112579
func (builder *PatchNotePathReqBodyBuilder) OperatorId(operatorId string) *PatchNotePathReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 是否通知被@的用户
//
// 示例值：false
func (builder *PatchNotePathReqBodyBuilder) NotifyMentionedUser(notifyMentionedUser bool) *PatchNotePathReqBodyBuilder {
	builder.notifyMentionedUser = notifyMentionedUser
	builder.notifyMentionedUserFlag = true
	return builder
}

// 被@用户列表
//
// 示例值：
func (builder *PatchNotePathReqBodyBuilder) MentionEntityList(mentionEntityList []*MentionEntity) *PatchNotePathReqBodyBuilder {
	builder.mentionEntityList = mentionEntityList
	builder.mentionEntityListFlag = true
	return builder
}

func (builder *PatchNotePathReqBodyBuilder) Build() (*PatchNoteReqBody, error) {
	req := &PatchNoteReqBody{}
	if builder.contentFlag {
		req.Content = &builder.content
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.notifyMentionedUserFlag {
		req.NotifyMentionedUser = &builder.notifyMentionedUser
	}
	if builder.mentionEntityListFlag {
		req.MentionEntityList = builder.mentionEntityList
	}
	return req, nil
}

type PatchNoteReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *PatchNoteReqBody
}

func NewPatchNoteReqBuilder() *PatchNoteReqBuilder {
	builder := &PatchNoteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 备注 ID
//
// 示例值：6960663240925956401
func (builder *PatchNoteReqBuilder) NoteId(noteId string) *PatchNoteReqBuilder {
	builder.apiReq.PathParams.Set("note_id", fmt.Sprint(noteId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *PatchNoteReqBuilder) UserIdType(userIdType string) *PatchNoteReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 根据备注 ID 更新备注信息
func (builder *PatchNoteReqBuilder) Body(body *PatchNoteReqBody) *PatchNoteReqBuilder {
	builder.body = body
	return builder
}

func (builder *PatchNoteReqBuilder) Build() *PatchNoteReq {
	req := &PatchNoteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type PatchNoteReqBody struct {
	Content *string `json:"content,omitempty"` // 备注内容

	OperatorId *string `json:"operator_id,omitempty"` // 更新人 ID

	NotifyMentionedUser *bool `json:"notify_mentioned_user,omitempty"` // 是否通知被@的用户

	MentionEntityList []*MentionEntity `json:"mention_entity_list,omitempty"` // 被@用户列表
}

type PatchNoteReq struct {
	apiReq *larkcore.ApiReq
	Body   *PatchNoteReqBody `body:""`
}

type PatchNoteRespData struct {
	Note *Note `json:"note,omitempty"` // 备注数据
}

type PatchNoteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchNoteRespData `json:"data"` // 业务数据
}

func (resp *PatchNoteResp) Success() bool {
	return resp.Code == 0
}

type CreateOfferReqBuilder struct {
	apiReq    *larkcore.ApiReq
	offerInfo *OfferInfo
}

func NewCreateOfferReqBuilder() *CreateOfferReqBuilder {
	builder := &CreateOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *CreateOfferReqBuilder) UserIdType(userIdType string) *CreateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *CreateOfferReqBuilder) DepartmentIdType(departmentIdType string) *CreateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *CreateOfferReqBuilder) JobLevelIdType(jobLevelIdType string) *CreateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *CreateOfferReqBuilder) JobFamilyIdType(jobFamilyIdType string) *CreateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *CreateOfferReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *CreateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 创建 Offer 时，需传入本文档中标注为必传的参数，其余参数是否必传参考「获取 Offer 申请表模板信息」的参数定义
func (builder *CreateOfferReqBuilder) OfferInfo(offerInfo *OfferInfo) *CreateOfferReqBuilder {
	builder.offerInfo = offerInfo
	return builder
}

func (builder *CreateOfferReqBuilder) Build() *CreateOfferReq {
	req := &CreateOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.offerInfo
	return req
}

type CreateOfferReq struct {
	apiReq    *larkcore.ApiReq
	OfferInfo *OfferInfo `body:""`
}

type CreateOfferRespData struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	SchemaId *string `json:"schema_id,omitempty"` // 模板 ID

	OfferType *int `json:"offer_type,omitempty"` // Offer 类型

	BasicInfo *OfferBasicInfo `json:"basic_info,omitempty"` // Offer 基本信息

	SalaryInfo *OfferSalaryInfo `json:"salary_info,omitempty"` // Offer 薪资信息

	CustomizedInfoList []*OfferCustomizedInfo `json:"customized_info_list,omitempty"` // 自定义信息
}

type CreateOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateOfferRespData `json:"data"` // 业务数据
}

func (resp *CreateOfferResp) Success() bool {
	return resp.Code == 0
}

type GetOfferReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetOfferReqBuilder() *GetOfferReqBuilder {
	builder := &GetOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// Offer ID
//
// 示例值：1111111
func (builder *GetOfferReqBuilder) OfferId(offerId string) *GetOfferReqBuilder {
	builder.apiReq.PathParams.Set("offer_id", fmt.Sprint(offerId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetOfferReqBuilder) UserIdType(userIdType string) *GetOfferReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetOfferReqBuilder) DepartmentIdType(departmentIdType string) *GetOfferReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetOfferReqBuilder) JobLevelIdType(jobLevelIdType string) *GetOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *GetOfferReqBuilder) JobFamilyIdType(jobFamilyIdType string) *GetOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *GetOfferReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *GetOfferReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *GetOfferReqBuilder) Build() *GetOfferReq {
	req := &GetOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetOfferReq struct {
	apiReq *larkcore.ApiReq
}

type GetOfferRespData struct {
	Offer *Offer `json:"offer,omitempty"` // Offer 详情
}

type GetOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetOfferRespData `json:"data"` // 业务数据
}

func (resp *GetOfferResp) Success() bool {
	return resp.Code == 0
}

type InternOfferStatusOfferReqBuilder struct {
	apiReq            *larkcore.ApiReq
	internOfferStatus *InternOfferStatus
}

func NewInternOfferStatusOfferReqBuilder() *InternOfferStatusOfferReqBuilder {
	builder := &InternOfferStatusOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// Offer ID
//
// 示例值：7016605170635213100
func (builder *InternOfferStatusOfferReqBuilder) OfferId(offerId string) *InternOfferStatusOfferReqBuilder {
	builder.apiReq.PathParams.Set("offer_id", fmt.Sprint(offerId))
	return builder
}

// 对「实习待入职」状态的实习 Offer 确认入职、放弃入职，或对「实习已入职」状态的实习 Offer 操作离职
func (builder *InternOfferStatusOfferReqBuilder) InternOfferStatus(internOfferStatus *InternOfferStatus) *InternOfferStatusOfferReqBuilder {
	builder.internOfferStatus = internOfferStatus
	return builder
}

func (builder *InternOfferStatusOfferReqBuilder) Build() *InternOfferStatusOfferReq {
	req := &InternOfferStatusOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.internOfferStatus
	return req
}

type InternOfferStatusOfferReq struct {
	apiReq            *larkcore.ApiReq
	InternOfferStatus *InternOfferStatus `body:""`
}

type InternOfferStatusOfferRespData struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	Operation *string `json:"operation,omitempty"` // 更新入/离职状态的操作

	OnboardingInfo *InternOfferOnboardingInfo `json:"onboarding_info,omitempty"` // 入职表单信息（当 operation 为 confirm_onboarding 时，该字段必填）

	OffboardingInfo *InternOfferOffboardingInfo `json:"offboarding_info,omitempty"` // 离职表单信息（当 operation 为 offboard 时，该字段必填）
}

type InternOfferStatusOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *InternOfferStatusOfferRespData `json:"data"` // 业务数据
}

func (resp *InternOfferStatusOfferResp) Success() bool {
	return resp.Code == 0
}

type ListOfferReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListOfferReqBuilder() *ListOfferReqBuilder {
	builder := &ListOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListOfferReqBuilder) PageToken(pageToken string) *ListOfferReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListOfferReqBuilder) PageSize(pageSize int) *ListOfferReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 人才 ID
//
// 示例值：7096320678581242123
func (builder *ListOfferReqBuilder) TalentId(talentId string) *ListOfferReqBuilder {
	builder.apiReq.QueryParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListOfferReqBuilder) UserIdType(userIdType string) *ListOfferReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *ListOfferReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *ListOfferReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

func (builder *ListOfferReqBuilder) Build() *ListOfferReq {
	req := &ListOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListOfferReq struct {
	apiReq *larkcore.ApiReq
}

type ListOfferRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*OfferListInfo `json:"items,omitempty"` // Offer 列表
}

type ListOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListOfferRespData `json:"data"` // 业务数据
}

func (resp *ListOfferResp) Success() bool {
	return resp.Code == 0
}

type OfferStatusOfferReqBodyBuilder struct {
	offerStatus     int // offer状态
	offerStatusFlag bool

	expirationDate     string // offer 失效时间，当反馈状态是「offer已发出」时为必填项
	expirationDateFlag bool

	terminationReasonIdList     []string // 终止原因列表，当反馈状态是「候选人已拒绝」时为必填项，或者当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项；最多传入50个
	terminationReasonIdListFlag bool

	terminationReasonNote     string // 终止备注
	terminationReasonNoteFlag bool

	cancelOfferTerminationType     int // 撤销Offer时终止原因的类型，当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项
	cancelOfferTerminationTypeFlag bool
}

func NewOfferStatusOfferReqBodyBuilder() *OfferStatusOfferReqBodyBuilder {
	builder := &OfferStatusOfferReqBodyBuilder{}
	return builder
}

// offer状态
//
//示例值：
func (builder *OfferStatusOfferReqBodyBuilder) OfferStatus(offerStatus int) *OfferStatusOfferReqBodyBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// offer 失效时间，当反馈状态是「offer已发出」时为必填项
//
//示例值：2023-01-01
func (builder *OfferStatusOfferReqBodyBuilder) ExpirationDate(expirationDate string) *OfferStatusOfferReqBodyBuilder {
	builder.expirationDate = expirationDate
	builder.expirationDateFlag = true
	return builder
}

// 终止原因列表，当反馈状态是「候选人已拒绝」时为必填项，或者当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项；最多传入50个
//
//示例值：
func (builder *OfferStatusOfferReqBodyBuilder) TerminationReasonIdList(terminationReasonIdList []string) *OfferStatusOfferReqBodyBuilder {
	builder.terminationReasonIdList = terminationReasonIdList
	builder.terminationReasonIdListFlag = true
	return builder
}

// 终止备注
//
//示例值：不符合期望
func (builder *OfferStatusOfferReqBodyBuilder) TerminationReasonNote(terminationReasonNote string) *OfferStatusOfferReqBodyBuilder {
	builder.terminationReasonNote = terminationReasonNote
	builder.terminationReasonNoteFlag = true
	return builder
}

// 撤销Offer时终止原因的类型，当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项
//
//示例值：1
func (builder *OfferStatusOfferReqBodyBuilder) CancelOfferTerminationType(cancelOfferTerminationType int) *OfferStatusOfferReqBodyBuilder {
	builder.cancelOfferTerminationType = cancelOfferTerminationType
	builder.cancelOfferTerminationTypeFlag = true
	return builder
}

func (builder *OfferStatusOfferReqBodyBuilder) Build() *OfferStatusOfferReqBody {
	req := &OfferStatusOfferReqBody{}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus
	}
	if builder.expirationDateFlag {
		req.ExpirationDate = &builder.expirationDate
	}
	if builder.terminationReasonIdListFlag {
		req.TerminationReasonIdList = builder.terminationReasonIdList
	}
	if builder.terminationReasonNoteFlag {
		req.TerminationReasonNote = &builder.terminationReasonNote
	}
	if builder.cancelOfferTerminationTypeFlag {
		req.CancelOfferTerminationType = &builder.cancelOfferTerminationType
	}
	return req
}

type OfferStatusOfferPathReqBodyBuilder struct {
	offerStatus                    int
	offerStatusFlag                bool
	expirationDate                 string
	expirationDateFlag             bool
	terminationReasonIdList        []string
	terminationReasonIdListFlag    bool
	terminationReasonNote          string
	terminationReasonNoteFlag      bool
	cancelOfferTerminationType     int
	cancelOfferTerminationTypeFlag bool
}

func NewOfferStatusOfferPathReqBodyBuilder() *OfferStatusOfferPathReqBodyBuilder {
	builder := &OfferStatusOfferPathReqBodyBuilder{}
	return builder
}

// offer状态
//
// 示例值：
func (builder *OfferStatusOfferPathReqBodyBuilder) OfferStatus(offerStatus int) *OfferStatusOfferPathReqBodyBuilder {
	builder.offerStatus = offerStatus
	builder.offerStatusFlag = true
	return builder
}

// offer 失效时间，当反馈状态是「offer已发出」时为必填项
//
// 示例值：2023-01-01
func (builder *OfferStatusOfferPathReqBodyBuilder) ExpirationDate(expirationDate string) *OfferStatusOfferPathReqBodyBuilder {
	builder.expirationDate = expirationDate
	builder.expirationDateFlag = true
	return builder
}

// 终止原因列表，当反馈状态是「候选人已拒绝」时为必填项，或者当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项；最多传入50个
//
// 示例值：
func (builder *OfferStatusOfferPathReqBodyBuilder) TerminationReasonIdList(terminationReasonIdList []string) *OfferStatusOfferPathReqBodyBuilder {
	builder.terminationReasonIdList = terminationReasonIdList
	builder.terminationReasonIdListFlag = true
	return builder
}

// 终止备注
//
// 示例值：不符合期望
func (builder *OfferStatusOfferPathReqBodyBuilder) TerminationReasonNote(terminationReasonNote string) *OfferStatusOfferPathReqBodyBuilder {
	builder.terminationReasonNote = terminationReasonNote
	builder.terminationReasonNoteFlag = true
	return builder
}

// 撤销Offer时终止原因的类型，当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项
//
// 示例值：1
func (builder *OfferStatusOfferPathReqBodyBuilder) CancelOfferTerminationType(cancelOfferTerminationType int) *OfferStatusOfferPathReqBodyBuilder {
	builder.cancelOfferTerminationType = cancelOfferTerminationType
	builder.cancelOfferTerminationTypeFlag = true
	return builder
}

func (builder *OfferStatusOfferPathReqBodyBuilder) Build() (*OfferStatusOfferReqBody, error) {
	req := &OfferStatusOfferReqBody{}
	if builder.offerStatusFlag {
		req.OfferStatus = &builder.offerStatus
	}
	if builder.expirationDateFlag {
		req.ExpirationDate = &builder.expirationDate
	}
	if builder.terminationReasonIdListFlag {
		req.TerminationReasonIdList = builder.terminationReasonIdList
	}
	if builder.terminationReasonNoteFlag {
		req.TerminationReasonNote = &builder.terminationReasonNote
	}
	if builder.cancelOfferTerminationTypeFlag {
		req.CancelOfferTerminationType = &builder.cancelOfferTerminationType
	}
	return req, nil
}

type OfferStatusOfferReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *OfferStatusOfferReqBody
}

func NewOfferStatusOfferReqBuilder() *OfferStatusOfferReqBuilder {
	builder := &OfferStatusOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// offer ID
//
// 示例值：6930815272790114324
func (builder *OfferStatusOfferReqBuilder) OfferId(offerId string) *OfferStatusOfferReqBuilder {
	builder.apiReq.PathParams.Set("offer_id", fmt.Sprint(offerId))
	return builder
}

//
func (builder *OfferStatusOfferReqBuilder) Body(body *OfferStatusOfferReqBody) *OfferStatusOfferReqBuilder {
	builder.body = body
	return builder
}

func (builder *OfferStatusOfferReqBuilder) Build() *OfferStatusOfferReq {
	req := &OfferStatusOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type OfferStatusOfferReqBody struct {
	OfferStatus *int `json:"offer_status,omitempty"` // offer状态

	ExpirationDate *string `json:"expiration_date,omitempty"` // offer 失效时间，当反馈状态是「offer已发出」时为必填项

	TerminationReasonIdList []string `json:"termination_reason_id_list,omitempty"` // 终止原因列表，当反馈状态是「候选人已拒绝」时为必填项，或者当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项；最多传入50个

	TerminationReasonNote *string `json:"termination_reason_note,omitempty"` // 终止备注

	CancelOfferTerminationType *int `json:"cancel_offer_termination_type,omitempty"` // 撤销Offer时终止原因的类型，当反馈状态是「Offer 已失效」且开启租户「撤销 Offer 时选择撤销类型」开关时为必填项
}

type OfferStatusOfferReq struct {
	apiReq *larkcore.ApiReq
	Body   *OfferStatusOfferReqBody `body:""`
}

type OfferStatusOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *OfferStatusOfferResp) Success() bool {
	return resp.Code == 0
}

type UpdateOfferReqBuilder struct {
	apiReq    *larkcore.ApiReq
	offerInfo *OfferInfo
}

func NewUpdateOfferReqBuilder() *UpdateOfferReqBuilder {
	builder := &UpdateOfferReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// Offer ID
//
// 示例值：7016605170635213100
func (builder *UpdateOfferReqBuilder) OfferId(offerId string) *UpdateOfferReqBuilder {
	builder.apiReq.PathParams.Set("offer_id", fmt.Sprint(offerId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *UpdateOfferReqBuilder) UserIdType(userIdType string) *UpdateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *UpdateOfferReqBuilder) DepartmentIdType(departmentIdType string) *UpdateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *UpdateOfferReqBuilder) JobLevelIdType(jobLevelIdType string) *UpdateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 此次调用中使用的「序列 ID」的类型
//
// 示例值：
func (builder *UpdateOfferReqBuilder) JobFamilyIdType(jobFamilyIdType string) *UpdateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("job_family_id_type", fmt.Sprint(jobFamilyIdType))
	return builder
}

// 此次调用中使用的「人员类型 ID」的类型
//
// 示例值：
func (builder *UpdateOfferReqBuilder) EmployeeTypeIdType(employeeTypeIdType string) *UpdateOfferReqBuilder {
	builder.apiReq.QueryParams.Set("employee_type_id_type", fmt.Sprint(employeeTypeIdType))
	return builder
}

// 1. 更新 Offer 时，需传入本文档中标注为必传的参数，其余参数是否必传参考「获取 Offer 申请表模板信息」的参数定义；;2. 对系统中已存在的 offer 进行更新的，若更新 offer 中含有「修改需审批」的字段，更新后原 Offer 的审批会自动撤回，需要重新发起审批
func (builder *UpdateOfferReqBuilder) OfferInfo(offerInfo *OfferInfo) *UpdateOfferReqBuilder {
	builder.offerInfo = offerInfo
	return builder
}

func (builder *UpdateOfferReqBuilder) Build() *UpdateOfferReq {
	req := &UpdateOfferReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.offerInfo
	return req
}

type UpdateOfferReq struct {
	apiReq    *larkcore.ApiReq
	OfferInfo *OfferInfo `body:""`
}

type UpdateOfferRespData struct {
	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	SchemaId *string `json:"schema_id,omitempty"` // 模板 ID

	BasicInfo *OfferBasicInfo `json:"basic_info,omitempty"` // Offer 基本信息

	SalaryInfo *OfferSalaryInfo `json:"salary_info,omitempty"` // Offer 薪资信息

	CustomizedInfoList []*OfferCustomizedInfo `json:"customized_info_list,omitempty"` // 自定义信息
}

type UpdateOfferResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateOfferRespData `json:"data"` // 业务数据
}

func (resp *UpdateOfferResp) Success() bool {
	return resp.Code == 0
}

type GetOfferApplicationFormReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetOfferApplicationFormReqBuilder() *GetOfferApplicationFormReqBuilder {
	builder := &GetOfferApplicationFormReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// offer申请表 ID
//
// 示例值：237186812432
func (builder *GetOfferApplicationFormReqBuilder) OfferApplicationFormId(offerApplicationFormId string) *GetOfferApplicationFormReqBuilder {
	builder.apiReq.PathParams.Set("offer_application_form_id", fmt.Sprint(offerApplicationFormId))
	return builder
}

func (builder *GetOfferApplicationFormReqBuilder) Build() *GetOfferApplicationFormReq {
	req := &GetOfferApplicationFormReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type GetOfferApplicationFormReq struct {
	apiReq *larkcore.ApiReq
}

type GetOfferApplicationFormRespData struct {
	OfferApplyForm *OfferApplyFormInfo `json:"offer_apply_form,omitempty"` // Offer 申请表详情
}

type GetOfferApplicationFormResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetOfferApplicationFormRespData `json:"data"` // 业务数据
}

func (resp *GetOfferApplicationFormResp) Success() bool {
	return resp.Code == 0
}

type ListOfferApplicationFormReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListOfferApplicationFormReqBuilder() *ListOfferApplicationFormReqBuilder {
	builder := &ListOfferApplicationFormReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListOfferApplicationFormReqBuilder) PageToken(pageToken string) *ListOfferApplicationFormReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListOfferApplicationFormReqBuilder) PageSize(pageSize int) *ListOfferApplicationFormReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListOfferApplicationFormReqBuilder) Build() *ListOfferApplicationFormReq {
	req := &ListOfferApplicationFormReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListOfferApplicationFormReq struct {
	apiReq *larkcore.ApiReq
}

type ListOfferApplicationFormRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*OfferApplyForm `json:"items,omitempty"` // Offer 申请表列表
}

type ListOfferApplicationFormResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListOfferApplicationFormRespData `json:"data"` // 业务数据
}

func (resp *ListOfferApplicationFormResp) Success() bool {
	return resp.Code == 0
}

type ListOfferApprovalTemplateReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListOfferApprovalTemplateReqBuilder() *ListOfferApprovalTemplateReqBuilder {
	builder := &ListOfferApprovalTemplateReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListOfferApprovalTemplateReqBuilder) PageToken(pageToken string) *ListOfferApprovalTemplateReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListOfferApprovalTemplateReqBuilder) PageSize(pageSize int) *ListOfferApprovalTemplateReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListOfferApprovalTemplateReqBuilder) DepartmentIdType(departmentIdType string) *ListOfferApprovalTemplateReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

func (builder *ListOfferApprovalTemplateReqBuilder) Build() *ListOfferApprovalTemplateReq {
	req := &ListOfferApprovalTemplateReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListOfferApprovalTemplateReq struct {
	apiReq *larkcore.ApiReq
}

type ListOfferApprovalTemplateRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*OfferApprovalTemplate `json:"items,omitempty"` // Offer 审批流配置列表
}

type ListOfferApprovalTemplateResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListOfferApprovalTemplateRespData `json:"data"` // 业务数据
}

func (resp *ListOfferApprovalTemplateResp) Success() bool {
	return resp.Code == 0
}

type UpdateOfferCustomFieldReqBuilder struct {
	apiReq           *larkcore.ApiReq
	offerCustomField *OfferCustomField
}

func NewUpdateOfferCustomFieldReqBuilder() *UpdateOfferCustomFieldReqBuilder {
	builder := &UpdateOfferCustomFieldReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// Offer 申请表自定义字段 ID，可通过接口「获取 Offer 申请表模板信息」获取
//
// 示例值：6906755946257615112
func (builder *UpdateOfferCustomFieldReqBuilder) OfferCustomFieldId(offerCustomFieldId string) *UpdateOfferCustomFieldReqBuilder {
	builder.apiReq.PathParams.Set("offer_custom_field_id", fmt.Sprint(offerCustomFieldId))
	return builder
}

// - 本文档支持通过接口更新「飞书招聘」-「设置」-「Offer 申请表设置」中 Offer 申请表的自定义字段配置；;- 当前修改申请表信息（包括更新自定义字段）后，所有申请表的 schema_id 均会更新，即所有申请表均会新增一个版本，申请表的 schema_id 会在创建 offer、更新 offer 中使用；;- 「飞书招聘」中 Offer 申请表自定义字段创建后，不支持修改字段类型，本接口亦不支持更新字段类型；;- 当前字段类型为「公式」的，不支持通过接口更新
func (builder *UpdateOfferCustomFieldReqBuilder) OfferCustomField(offerCustomField *OfferCustomField) *UpdateOfferCustomFieldReqBuilder {
	builder.offerCustomField = offerCustomField
	return builder
}

func (builder *UpdateOfferCustomFieldReqBuilder) Build() *UpdateOfferCustomFieldReq {
	req := &UpdateOfferCustomFieldReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.offerCustomField
	return req
}

type UpdateOfferCustomFieldReq struct {
	apiReq           *larkcore.ApiReq
	OfferCustomField *OfferCustomField `body:""`
}

type UpdateOfferCustomFieldResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateOfferCustomFieldResp) Success() bool {
	return resp.Code == 0
}

type GetOfferSchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetOfferSchemaReqBuilder() *GetOfferSchemaReqBuilder {
	builder := &GetOfferSchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// offer申请表的ID *必需属性
//
// 示例值：1231231231231
func (builder *GetOfferSchemaReqBuilder) OfferSchemaId(offerSchemaId string) *GetOfferSchemaReqBuilder {
	builder.apiReq.PathParams.Set("offer_schema_id", fmt.Sprint(offerSchemaId))
	return builder
}

func (builder *GetOfferSchemaReqBuilder) Build() *GetOfferSchemaReq {
	req := &GetOfferSchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type GetOfferSchemaReq struct {
	apiReq *larkcore.ApiReq
}

type GetOfferSchemaRespData struct {
	Id *string `json:"id,omitempty"` // offer申请表ID

	Scenario *int `json:"scenario,omitempty"` // offer申请表使用场景

	Version *int `json:"version,omitempty"` // 申请表版本

	ObjectList []*OfferSchemaDetail `json:"object_list,omitempty"` // 字段对象信息
}

type GetOfferSchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetOfferSchemaRespData `json:"data"` // 业务数据
}

func (resp *GetOfferSchemaResp) Success() bool {
	return resp.Code == 0
}

type ListPortalApplySchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListPortalApplySchemaReqBuilder() *ListPortalApplySchemaReqBuilder {
	builder := &ListPortalApplySchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListPortalApplySchemaReqBuilder) Limit(limit int) *ListPortalApplySchemaReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：20
func (builder *ListPortalApplySchemaReqBuilder) PageSize(pageSize int) *ListPortalApplySchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：6930815272790114324
func (builder *ListPortalApplySchemaReqBuilder) PageToken(pageToken string) *ListPortalApplySchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListPortalApplySchemaReqBuilder) Build() *ListPortalApplySchemaReq {
	req := &ListPortalApplySchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListPortalApplySchemaReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListPortalApplySchemaRespData struct {
	Items []*RegistrationSchema `json:"items,omitempty"` // 官网申请表列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记

	HasMore *bool `json:"has_more,omitempty"` // 是否仍有数据
}

type ListPortalApplySchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListPortalApplySchemaRespData `json:"data"` // 业务数据
}

func (resp *ListPortalApplySchemaResp) Success() bool {
	return resp.Code == 0
}

type ListQuestionnaireReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListQuestionnaireReqBuilder() *ListQuestionnaireReqBuilder {
	builder := &ListQuestionnaireReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListQuestionnaireReqBuilder) PageToken(pageToken string) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListQuestionnaireReqBuilder) PageSize(pageSize int) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 投递 ID
//
// 示例值：6985833807195212076
func (builder *ListQuestionnaireReqBuilder) ApplicationId(applicationId string) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 面试 ID
//
// 示例值：7038435261598763308
func (builder *ListQuestionnaireReqBuilder) InterviewId(interviewId string) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("interview_id", fmt.Sprint(interviewId))
	return builder
}

// 最早更新时间
//
// 示例值：1638848468868
func (builder *ListQuestionnaireReqBuilder) UpdateStartTime(updateStartTime string) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间
//
// 示例值：1638848468869
func (builder *ListQuestionnaireReqBuilder) UpdateEndTime(updateEndTime string) *ListQuestionnaireReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

func (builder *ListQuestionnaireReqBuilder) Build() *ListQuestionnaireReq {
	req := &ListQuestionnaireReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListQuestionnaireReq struct {
	apiReq *larkcore.ApiReq
}

type ListQuestionnaireRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*Questionnaire `json:"items,omitempty"` // 满意度评价列表
}

type ListQuestionnaireResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListQuestionnaireRespData `json:"data"` // 业务数据
}

func (resp *ListQuestionnaireResp) Success() bool {
	return resp.Code == 0
}

type GetByApplicationReferralReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetByApplicationReferralReqBuilder() *GetByApplicationReferralReqBuilder {
	builder := &GetByApplicationReferralReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 投递的 ID
//
// 示例值：6134134355464633
func (builder *GetByApplicationReferralReqBuilder) ApplicationId(applicationId string) *GetByApplicationReferralReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *GetByApplicationReferralReqBuilder) UserIdType(userIdType string) *GetByApplicationReferralReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetByApplicationReferralReqBuilder) Build() *GetByApplicationReferralReq {
	req := &GetByApplicationReferralReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetByApplicationReferralReq struct {
	apiReq *larkcore.ApiReq
}

type GetByApplicationReferralRespData struct {
	Referral *Referral `json:"referral,omitempty"` // 内推信息
}

type GetByApplicationReferralResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetByApplicationReferralRespData `json:"data"` // 业务数据
}

func (resp *GetByApplicationReferralResp) Success() bool {
	return resp.Code == 0
}

type SearchReferralReqBodyBuilder struct {
	talentId     string // 人才id
	talentIdFlag bool

	startTime     string // 投递起始时间，若不填，默认为全部，但最多返回200条
	startTimeFlag bool

	endTime     string // 投递终止时间，若不填，默认为全部，但最多返回200条
	endTimeFlag bool
}

func NewSearchReferralReqBodyBuilder() *SearchReferralReqBodyBuilder {
	builder := &SearchReferralReqBodyBuilder{}
	return builder
}

// 人才id
//
//示例值：6930815272790114324
func (builder *SearchReferralReqBodyBuilder) TalentId(talentId string) *SearchReferralReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递起始时间，若不填，默认为全部，但最多返回200条
//
//示例值：
func (builder *SearchReferralReqBodyBuilder) StartTime(startTime string) *SearchReferralReqBodyBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 投递终止时间，若不填，默认为全部，但最多返回200条
//
//示例值：
func (builder *SearchReferralReqBodyBuilder) EndTime(endTime string) *SearchReferralReqBodyBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SearchReferralReqBodyBuilder) Build() *SearchReferralReqBody {
	req := &SearchReferralReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime
	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime
	}
	return req
}

type SearchReferralPathReqBodyBuilder struct {
	talentId      string
	talentIdFlag  bool
	startTime     string
	startTimeFlag bool
	endTime       string
	endTimeFlag   bool
}

func NewSearchReferralPathReqBodyBuilder() *SearchReferralPathReqBodyBuilder {
	builder := &SearchReferralPathReqBodyBuilder{}
	return builder
}

// 人才id
//
// 示例值：6930815272790114324
func (builder *SearchReferralPathReqBodyBuilder) TalentId(talentId string) *SearchReferralPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 投递起始时间，若不填，默认为全部，但最多返回200条
//
// 示例值：
func (builder *SearchReferralPathReqBodyBuilder) StartTime(startTime string) *SearchReferralPathReqBodyBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 投递终止时间，若不填，默认为全部，但最多返回200条
//
// 示例值：
func (builder *SearchReferralPathReqBodyBuilder) EndTime(endTime string) *SearchReferralPathReqBodyBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SearchReferralPathReqBodyBuilder) Build() (*SearchReferralReqBody, error) {
	req := &SearchReferralReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime
	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime
	}
	return req, nil
}

type SearchReferralReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchReferralReqBody
}

func NewSearchReferralReqBuilder() *SearchReferralReqBuilder {
	builder := &SearchReferralReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *SearchReferralReqBuilder) UserIdType(userIdType string) *SearchReferralReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *SearchReferralReqBuilder) Body(body *SearchReferralReqBody) *SearchReferralReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchReferralReqBuilder) Build() *SearchReferralReq {
	req := &SearchReferralReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type SearchReferralReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才id

	StartTime *string `json:"start_time,omitempty"` // 投递起始时间，若不填，默认为全部，但最多返回200条

	EndTime *string `json:"end_time,omitempty"` // 投递终止时间，若不填，默认为全部，但最多返回200条
}

type SearchReferralReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchReferralReqBody `body:""`
}

type SearchReferralRespData struct {
	Items []*ReferralInfo `json:"items,omitempty"` // 内推信息列表
}

type SearchReferralResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchReferralRespData `json:"data"` // 业务数据
}

func (resp *SearchReferralResp) Success() bool {
	return resp.Code == 0
}

type CreateReferralAccountReqBodyBuilder struct {
	mobile     *Mobile // 电话
	mobileFlag bool

	email     string // 邮箱
	emailFlag bool
}

func NewCreateReferralAccountReqBodyBuilder() *CreateReferralAccountReqBodyBuilder {
	builder := &CreateReferralAccountReqBodyBuilder{}
	return builder
}

// 电话
//
//示例值：
func (builder *CreateReferralAccountReqBodyBuilder) Mobile(mobile *Mobile) *CreateReferralAccountReqBodyBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 邮箱
//
//示例值：hire@open.com
func (builder *CreateReferralAccountReqBodyBuilder) Email(email string) *CreateReferralAccountReqBodyBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *CreateReferralAccountReqBodyBuilder) Build() *CreateReferralAccountReqBody {
	req := &CreateReferralAccountReqBody{}
	if builder.mobileFlag {
		req.Mobile = builder.mobile
	}
	if builder.emailFlag {
		req.Email = &builder.email
	}
	return req
}

type CreateReferralAccountPathReqBodyBuilder struct {
	mobile     *Mobile
	mobileFlag bool
	email      string
	emailFlag  bool
}

func NewCreateReferralAccountPathReqBodyBuilder() *CreateReferralAccountPathReqBodyBuilder {
	builder := &CreateReferralAccountPathReqBodyBuilder{}
	return builder
}

// 电话
//
// 示例值：
func (builder *CreateReferralAccountPathReqBodyBuilder) Mobile(mobile *Mobile) *CreateReferralAccountPathReqBodyBuilder {
	builder.mobile = mobile
	builder.mobileFlag = true
	return builder
}

// 邮箱
//
// 示例值：hire@open.com
func (builder *CreateReferralAccountPathReqBodyBuilder) Email(email string) *CreateReferralAccountPathReqBodyBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

func (builder *CreateReferralAccountPathReqBodyBuilder) Build() (*CreateReferralAccountReqBody, error) {
	req := &CreateReferralAccountReqBody{}
	if builder.mobileFlag {
		req.Mobile = builder.mobile
	}
	if builder.emailFlag {
		req.Email = &builder.email
	}
	return req, nil
}

type CreateReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateReferralAccountReqBody
}

func NewCreateReferralAccountReqBuilder() *CreateReferralAccountReqBuilder {
	builder := &CreateReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateReferralAccountReqBuilder) UserIdType(userIdType string) *CreateReferralAccountReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *CreateReferralAccountReqBuilder) Body(body *CreateReferralAccountReqBody) *CreateReferralAccountReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateReferralAccountReqBuilder) Build() *CreateReferralAccountReq {
	req := &CreateReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CreateReferralAccountReqBody struct {
	Mobile *Mobile `json:"mobile,omitempty"` // 电话

	Email *string `json:"email,omitempty"` // 邮箱
}

type CreateReferralAccountReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateReferralAccountReqBody `body:""`
}

type CreateReferralAccountRespData struct {
	Account *Account `json:"account,omitempty"` // 账号信息
}

type CreateReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *CreateReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type DeactivateReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeactivateReferralAccountReqBuilder() *DeactivateReferralAccountReqBuilder {
	builder := &DeactivateReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 账户ID
//
// 示例值：6942778198054125570
func (builder *DeactivateReferralAccountReqBuilder) ReferralAccountId(referralAccountId string) *DeactivateReferralAccountReqBuilder {
	builder.apiReq.PathParams.Set("referral_account_id", fmt.Sprint(referralAccountId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *DeactivateReferralAccountReqBuilder) UserIdType(userIdType string) *DeactivateReferralAccountReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *DeactivateReferralAccountReqBuilder) Build() *DeactivateReferralAccountReq {
	req := &DeactivateReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type DeactivateReferralAccountReq struct {
	apiReq *larkcore.ApiReq
}

type DeactivateReferralAccountRespData struct {
	Account *Account `json:"account,omitempty"` // 账号信息
}

type DeactivateReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *DeactivateReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *DeactivateReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type EnableReferralAccountReqBodyBuilder struct {
	referralAccountId     string // 账户 ID
	referralAccountIdFlag bool
}

func NewEnableReferralAccountReqBodyBuilder() *EnableReferralAccountReqBodyBuilder {
	builder := &EnableReferralAccountReqBodyBuilder{}
	return builder
}

// 账户 ID
//
//示例值：6942778198054125570
func (builder *EnableReferralAccountReqBodyBuilder) ReferralAccountId(referralAccountId string) *EnableReferralAccountReqBodyBuilder {
	builder.referralAccountId = referralAccountId
	builder.referralAccountIdFlag = true
	return builder
}

func (builder *EnableReferralAccountReqBodyBuilder) Build() *EnableReferralAccountReqBody {
	req := &EnableReferralAccountReqBody{}
	if builder.referralAccountIdFlag {
		req.ReferralAccountId = &builder.referralAccountId
	}
	return req
}

type EnableReferralAccountPathReqBodyBuilder struct {
	referralAccountId     string
	referralAccountIdFlag bool
}

func NewEnableReferralAccountPathReqBodyBuilder() *EnableReferralAccountPathReqBodyBuilder {
	builder := &EnableReferralAccountPathReqBodyBuilder{}
	return builder
}

// 账户 ID
//
// 示例值：6942778198054125570
func (builder *EnableReferralAccountPathReqBodyBuilder) ReferralAccountId(referralAccountId string) *EnableReferralAccountPathReqBodyBuilder {
	builder.referralAccountId = referralAccountId
	builder.referralAccountIdFlag = true
	return builder
}

func (builder *EnableReferralAccountPathReqBodyBuilder) Build() (*EnableReferralAccountReqBody, error) {
	req := &EnableReferralAccountReqBody{}
	if builder.referralAccountIdFlag {
		req.ReferralAccountId = &builder.referralAccountId
	}
	return req, nil
}

type EnableReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *EnableReferralAccountReqBody
}

func NewEnableReferralAccountReqBuilder() *EnableReferralAccountReqBuilder {
	builder := &EnableReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *EnableReferralAccountReqBuilder) UserIdType(userIdType string) *EnableReferralAccountReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *EnableReferralAccountReqBuilder) Body(body *EnableReferralAccountReqBody) *EnableReferralAccountReqBuilder {
	builder.body = body
	return builder
}

func (builder *EnableReferralAccountReqBuilder) Build() *EnableReferralAccountReq {
	req := &EnableReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type EnableReferralAccountReqBody struct {
	ReferralAccountId *string `json:"referral_account_id,omitempty"` // 账户 ID
}

type EnableReferralAccountReq struct {
	apiReq *larkcore.ApiReq
	Body   *EnableReferralAccountReqBody `body:""`
}

type EnableReferralAccountRespData struct {
	Account *Account `json:"account,omitempty"` // 账号信息
}

type EnableReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *EnableReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *EnableReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type GetAccountAssetsReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetAccountAssetsReferralAccountReqBuilder() *GetAccountAssetsReferralAccountReqBuilder {
	builder := &GetAccountAssetsReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 账户 ID
//
// 示例值：6942778198054125570
func (builder *GetAccountAssetsReferralAccountReqBuilder) ReferralAccountId(referralAccountId string) *GetAccountAssetsReferralAccountReqBuilder {
	builder.apiReq.QueryParams.Set("referral_account_id", fmt.Sprint(referralAccountId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *GetAccountAssetsReferralAccountReqBuilder) UserIdType(userIdType string) *GetAccountAssetsReferralAccountReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetAccountAssetsReferralAccountReqBuilder) Build() *GetAccountAssetsReferralAccountReq {
	req := &GetAccountAssetsReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetAccountAssetsReferralAccountReq struct {
	apiReq *larkcore.ApiReq
}

type GetAccountAssetsReferralAccountRespData struct {
	Account *Account `json:"account,omitempty"` // 账户信息
}

type GetAccountAssetsReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetAccountAssetsReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *GetAccountAssetsReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type ReconciliationReferralAccountReqBodyBuilder struct {
	startTransTime     string // 按时间范围进行对账时 时间段的起始交易时间
	startTransTimeFlag bool

	endTransTime     string // 按时间范围进行对账时 时间段的截止交易时间
	endTransTimeFlag bool

	tradeDetails     []*TradeDetail // 交易信息
	tradeDetailsFlag bool
}

func NewReconciliationReferralAccountReqBodyBuilder() *ReconciliationReferralAccountReqBodyBuilder {
	builder := &ReconciliationReferralAccountReqBodyBuilder{}
	return builder
}

// 按时间范围进行对账时 时间段的起始交易时间
//
//示例值：1685416831621
func (builder *ReconciliationReferralAccountReqBodyBuilder) StartTransTime(startTransTime string) *ReconciliationReferralAccountReqBodyBuilder {
	builder.startTransTime = startTransTime
	builder.startTransTimeFlag = true
	return builder
}

// 按时间范围进行对账时 时间段的截止交易时间
//
//示例值：1685416831622
func (builder *ReconciliationReferralAccountReqBodyBuilder) EndTransTime(endTransTime string) *ReconciliationReferralAccountReqBodyBuilder {
	builder.endTransTime = endTransTime
	builder.endTransTimeFlag = true
	return builder
}

// 交易信息
//
//示例值：
func (builder *ReconciliationReferralAccountReqBodyBuilder) TradeDetails(tradeDetails []*TradeDetail) *ReconciliationReferralAccountReqBodyBuilder {
	builder.tradeDetails = tradeDetails
	builder.tradeDetailsFlag = true
	return builder
}

func (builder *ReconciliationReferralAccountReqBodyBuilder) Build() *ReconciliationReferralAccountReqBody {
	req := &ReconciliationReferralAccountReqBody{}
	if builder.startTransTimeFlag {
		req.StartTransTime = &builder.startTransTime
	}
	if builder.endTransTimeFlag {
		req.EndTransTime = &builder.endTransTime
	}
	if builder.tradeDetailsFlag {
		req.TradeDetails = builder.tradeDetails
	}
	return req
}

type ReconciliationReferralAccountPathReqBodyBuilder struct {
	startTransTime     string
	startTransTimeFlag bool
	endTransTime       string
	endTransTimeFlag   bool
	tradeDetails       []*TradeDetail
	tradeDetailsFlag   bool
}

func NewReconciliationReferralAccountPathReqBodyBuilder() *ReconciliationReferralAccountPathReqBodyBuilder {
	builder := &ReconciliationReferralAccountPathReqBodyBuilder{}
	return builder
}

// 按时间范围进行对账时 时间段的起始交易时间
//
// 示例值：1685416831621
func (builder *ReconciliationReferralAccountPathReqBodyBuilder) StartTransTime(startTransTime string) *ReconciliationReferralAccountPathReqBodyBuilder {
	builder.startTransTime = startTransTime
	builder.startTransTimeFlag = true
	return builder
}

// 按时间范围进行对账时 时间段的截止交易时间
//
// 示例值：1685416831622
func (builder *ReconciliationReferralAccountPathReqBodyBuilder) EndTransTime(endTransTime string) *ReconciliationReferralAccountPathReqBodyBuilder {
	builder.endTransTime = endTransTime
	builder.endTransTimeFlag = true
	return builder
}

// 交易信息
//
// 示例值：
func (builder *ReconciliationReferralAccountPathReqBodyBuilder) TradeDetails(tradeDetails []*TradeDetail) *ReconciliationReferralAccountPathReqBodyBuilder {
	builder.tradeDetails = tradeDetails
	builder.tradeDetailsFlag = true
	return builder
}

func (builder *ReconciliationReferralAccountPathReqBodyBuilder) Build() (*ReconciliationReferralAccountReqBody, error) {
	req := &ReconciliationReferralAccountReqBody{}
	if builder.startTransTimeFlag {
		req.StartTransTime = &builder.startTransTime
	}
	if builder.endTransTimeFlag {
		req.EndTransTime = &builder.endTransTime
	}
	if builder.tradeDetailsFlag {
		req.TradeDetails = builder.tradeDetails
	}
	return req, nil
}

type ReconciliationReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ReconciliationReferralAccountReqBody
}

func NewReconciliationReferralAccountReqBuilder() *ReconciliationReferralAccountReqBuilder {
	builder := &ReconciliationReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *ReconciliationReferralAccountReqBuilder) Body(body *ReconciliationReferralAccountReqBody) *ReconciliationReferralAccountReqBuilder {
	builder.body = body
	return builder
}

func (builder *ReconciliationReferralAccountReqBuilder) Build() *ReconciliationReferralAccountReq {
	req := &ReconciliationReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type ReconciliationReferralAccountReqBody struct {
	StartTransTime *string `json:"start_trans_time,omitempty"` // 按时间范围进行对账时 时间段的起始交易时间

	EndTransTime *string `json:"end_trans_time,omitempty"` // 按时间范围进行对账时 时间段的截止交易时间

	TradeDetails []*TradeDetail `json:"trade_details,omitempty"` // 交易信息
}

type ReconciliationReferralAccountReq struct {
	apiReq *larkcore.ApiReq
	Body   *ReconciliationReferralAccountReqBody `body:""`
}

type ReconciliationReferralAccountRespData struct {
	CheckFailedList []*CheckFailedAccountInfo `json:"check_failed_list,omitempty"` // 核对失败的信息
}

type ReconciliationReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ReconciliationReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *ReconciliationReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type WithdrawReferralAccountReqBodyBuilder struct {
	withdrawBonusType     []int // 请求提现的奖励类型
	withdrawBonusTypeFlag bool

	externalOrderId     string // 提现单ID，请求时由请求方提供，后续关于本次提现操作的交互都以此提现单ID为标识进行，需要保证唯一,用于保证提现的幂等性，传入重复ID会返回对应提现单提取的金额明细
	externalOrderIdFlag bool
}

func NewWithdrawReferralAccountReqBodyBuilder() *WithdrawReferralAccountReqBodyBuilder {
	builder := &WithdrawReferralAccountReqBodyBuilder{}
	return builder
}

// 请求提现的奖励类型
//
//示例值：
func (builder *WithdrawReferralAccountReqBodyBuilder) WithdrawBonusType(withdrawBonusType []int) *WithdrawReferralAccountReqBodyBuilder {
	builder.withdrawBonusType = withdrawBonusType
	builder.withdrawBonusTypeFlag = true
	return builder
}

// 提现单ID，请求时由请求方提供，后续关于本次提现操作的交互都以此提现单ID为标识进行，需要保证唯一,用于保证提现的幂等性，传入重复ID会返回对应提现单提取的金额明细
//
//示例值：6942778198054125570
func (builder *WithdrawReferralAccountReqBodyBuilder) ExternalOrderId(externalOrderId string) *WithdrawReferralAccountReqBodyBuilder {
	builder.externalOrderId = externalOrderId
	builder.externalOrderIdFlag = true
	return builder
}

func (builder *WithdrawReferralAccountReqBodyBuilder) Build() *WithdrawReferralAccountReqBody {
	req := &WithdrawReferralAccountReqBody{}
	if builder.withdrawBonusTypeFlag {
		req.WithdrawBonusType = builder.withdrawBonusType
	}
	if builder.externalOrderIdFlag {
		req.ExternalOrderId = &builder.externalOrderId
	}
	return req
}

type WithdrawReferralAccountPathReqBodyBuilder struct {
	withdrawBonusType     []int
	withdrawBonusTypeFlag bool
	externalOrderId       string
	externalOrderIdFlag   bool
}

func NewWithdrawReferralAccountPathReqBodyBuilder() *WithdrawReferralAccountPathReqBodyBuilder {
	builder := &WithdrawReferralAccountPathReqBodyBuilder{}
	return builder
}

// 请求提现的奖励类型
//
// 示例值：
func (builder *WithdrawReferralAccountPathReqBodyBuilder) WithdrawBonusType(withdrawBonusType []int) *WithdrawReferralAccountPathReqBodyBuilder {
	builder.withdrawBonusType = withdrawBonusType
	builder.withdrawBonusTypeFlag = true
	return builder
}

// 提现单ID，请求时由请求方提供，后续关于本次提现操作的交互都以此提现单ID为标识进行，需要保证唯一,用于保证提现的幂等性，传入重复ID会返回对应提现单提取的金额明细
//
// 示例值：6942778198054125570
func (builder *WithdrawReferralAccountPathReqBodyBuilder) ExternalOrderId(externalOrderId string) *WithdrawReferralAccountPathReqBodyBuilder {
	builder.externalOrderId = externalOrderId
	builder.externalOrderIdFlag = true
	return builder
}

func (builder *WithdrawReferralAccountPathReqBodyBuilder) Build() (*WithdrawReferralAccountReqBody, error) {
	req := &WithdrawReferralAccountReqBody{}
	if builder.withdrawBonusTypeFlag {
		req.WithdrawBonusType = builder.withdrawBonusType
	}
	if builder.externalOrderIdFlag {
		req.ExternalOrderId = &builder.externalOrderId
	}
	return req, nil
}

type WithdrawReferralAccountReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *WithdrawReferralAccountReqBody
}

func NewWithdrawReferralAccountReqBuilder() *WithdrawReferralAccountReqBuilder {
	builder := &WithdrawReferralAccountReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 账户ID
//
// 示例值：6942778198054125570
func (builder *WithdrawReferralAccountReqBuilder) ReferralAccountId(referralAccountId string) *WithdrawReferralAccountReqBuilder {
	builder.apiReq.PathParams.Set("referral_account_id", fmt.Sprint(referralAccountId))
	return builder
}

//
func (builder *WithdrawReferralAccountReqBuilder) Body(body *WithdrawReferralAccountReqBody) *WithdrawReferralAccountReqBuilder {
	builder.body = body
	return builder
}

func (builder *WithdrawReferralAccountReqBuilder) Build() *WithdrawReferralAccountReq {
	req := &WithdrawReferralAccountReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type WithdrawReferralAccountReqBody struct {
	WithdrawBonusType []int `json:"withdraw_bonus_type,omitempty"` // 请求提现的奖励类型

	ExternalOrderId *string `json:"external_order_id,omitempty"` // 提现单ID，请求时由请求方提供，后续关于本次提现操作的交互都以此提现单ID为标识进行，需要保证唯一,用于保证提现的幂等性，传入重复ID会返回对应提现单提取的金额明细
}

type WithdrawReferralAccountReq struct {
	apiReq *larkcore.ApiReq
	Body   *WithdrawReferralAccountReqBody `body:""`
}

type WithdrawReferralAccountRespData struct {
	ExternalOrderId *string `json:"external_order_id,omitempty"` // 请求时传入的提现单ID

	TransTime *string `json:"trans_time,omitempty"` // 交易时间戳，需要保存，用于统一交易时间，方便对账

	WithdrawalDetails *BonusAmount `json:"withdrawal_details,omitempty"` // 本次提现金额明细
}

type WithdrawReferralAccountResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *WithdrawReferralAccountRespData `json:"data"` // 业务数据
}

func (resp *WithdrawReferralAccountResp) Success() bool {
	return resp.Code == 0
}

type GetReferralWebsiteJobPostReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetReferralWebsiteJobPostReqBuilder() *GetReferralWebsiteJobPostReqBuilder {
	builder := &GetReferralWebsiteJobPostReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 职位广告 ID
//
// 示例值：6701528341100366094
func (builder *GetReferralWebsiteJobPostReqBuilder) JobPostId(jobPostId string) *GetReferralWebsiteJobPostReqBuilder {
	builder.apiReq.PathParams.Set("job_post_id", fmt.Sprint(jobPostId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetReferralWebsiteJobPostReqBuilder) UserIdType(userIdType string) *GetReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetReferralWebsiteJobPostReqBuilder) DepartmentIdType(departmentIdType string) *GetReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetReferralWebsiteJobPostReqBuilder) JobLevelIdType(jobLevelIdType string) *GetReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

func (builder *GetReferralWebsiteJobPostReqBuilder) Build() *GetReferralWebsiteJobPostReq {
	req := &GetReferralWebsiteJobPostReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetReferralWebsiteJobPostReq struct {
	apiReq *larkcore.ApiReq
}

type GetReferralWebsiteJobPostRespData struct {
	JobPost *PortalJobPost `json:"job_post,omitempty"` //
}

type GetReferralWebsiteJobPostResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetReferralWebsiteJobPostRespData `json:"data"` // 业务数据
}

func (resp *GetReferralWebsiteJobPostResp) Success() bool {
	return resp.Code == 0
}

type ListReferralWebsiteJobPostReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListReferralWebsiteJobPostReqBuilder() *ListReferralWebsiteJobPostReqBuilder {
	builder := &ListReferralWebsiteJobPostReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListReferralWebsiteJobPostReqBuilder) Limit(limit int) *ListReferralWebsiteJobPostReqBuilder {
	builder.limit = limit
	return builder
}

// 招聘流程类型
//
// 示例值：1
func (builder *ListReferralWebsiteJobPostReqBuilder) ProcessType(processType int) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("process_type", fmt.Sprint(processType))
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListReferralWebsiteJobPostReqBuilder) PageToken(pageToken string) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListReferralWebsiteJobPostReqBuilder) PageSize(pageSize int) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListReferralWebsiteJobPostReqBuilder) UserIdType(userIdType string) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListReferralWebsiteJobPostReqBuilder) DepartmentIdType(departmentIdType string) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListReferralWebsiteJobPostReqBuilder) JobLevelIdType(jobLevelIdType string) *ListReferralWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

func (builder *ListReferralWebsiteJobPostReqBuilder) Build() *ListReferralWebsiteJobPostReq {
	req := &ListReferralWebsiteJobPostReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListReferralWebsiteJobPostReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListReferralWebsiteJobPostRespData struct {
	Items []*PortalJobPost `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListReferralWebsiteJobPostResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListReferralWebsiteJobPostRespData `json:"data"` // 业务数据
}

func (resp *ListReferralWebsiteJobPostResp) Success() bool {
	return resp.Code == 0
}

type ListRegistrationSchemaReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListRegistrationSchemaReqBuilder() *ListRegistrationSchemaReqBuilder {
	builder := &ListRegistrationSchemaReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListRegistrationSchemaReqBuilder) Limit(limit int) *ListRegistrationSchemaReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：20
func (builder *ListRegistrationSchemaReqBuilder) PageSize(pageSize int) *ListRegistrationSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：6930815272790114324
func (builder *ListRegistrationSchemaReqBuilder) PageToken(pageToken string) *ListRegistrationSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 登记表适用场景；不填表示获取全部类型信息登记表
//
// 示例值：5
func (builder *ListRegistrationSchemaReqBuilder) Scenario(scenario int) *ListRegistrationSchemaReqBuilder {
	builder.apiReq.QueryParams.Set("scenario", fmt.Sprint(scenario))
	return builder
}

func (builder *ListRegistrationSchemaReqBuilder) Build() *ListRegistrationSchemaReq {
	req := &ListRegistrationSchemaReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListRegistrationSchemaReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListRegistrationSchemaRespData struct {
	Items []*RegistrationSchema `json:"items,omitempty"` // 信息登记表列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记

	HasMore *bool `json:"has_more,omitempty"` // 是否仍有数据
}

type ListRegistrationSchemaResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListRegistrationSchemaRespData `json:"data"` // 业务数据
}

func (resp *ListRegistrationSchemaResp) Success() bool {
	return resp.Code == 0
}

type ListResumeSourceReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListResumeSourceReqBuilder() *ListResumeSourceReqBuilder {
	builder := &ListResumeSourceReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListResumeSourceReqBuilder) Limit(limit int) *ListResumeSourceReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *ListResumeSourceReqBuilder) PageSize(pageSize int) *ListResumeSourceReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：1
func (builder *ListResumeSourceReqBuilder) PageToken(pageToken string) *ListResumeSourceReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListResumeSourceReqBuilder) Build() *ListResumeSourceReq {
	req := &ListResumeSourceReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListResumeSourceReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListResumeSourceRespData struct {
	Items []*ResumeSource `json:"items,omitempty"` // 数据

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListResumeSourceResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListResumeSourceRespData `json:"data"` // 业务数据
}

func (resp *ListResumeSourceResp) Success() bool {
	return resp.Code == 0
}

type GetRoleReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetRoleReqBuilder() *GetRoleReqBuilder {
	builder := &GetRoleReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 角色ID
//
// 示例值：
func (builder *GetRoleReqBuilder) RoleId(roleId string) *GetRoleReqBuilder {
	builder.apiReq.PathParams.Set("role_id", fmt.Sprint(roleId))
	return builder
}

func (builder *GetRoleReqBuilder) Build() *GetRoleReq {
	req := &GetRoleReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type GetRoleReq struct {
	apiReq *larkcore.ApiReq
}

type GetRoleRespData struct {
	Role *RoleDetail `json:"role,omitempty"` // 角色详情
}

type GetRoleResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetRoleRespData `json:"data"` // 业务数据
}

func (resp *GetRoleResp) Success() bool {
	return resp.Code == 0
}

type ListRoleReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListRoleReqBuilder() *ListRoleReqBuilder {
	builder := &ListRoleReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListRoleReqBuilder) Limit(limit int) *ListRoleReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListRoleReqBuilder) PageToken(pageToken string) *ListRoleReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量
//
// 示例值：10
func (builder *ListRoleReqBuilder) PageSize(pageSize int) *ListRoleReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListRoleReqBuilder) Build() *ListRoleReq {
	req := &ListRoleReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListRoleReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListRoleRespData struct {
	Items []*Role `json:"items,omitempty"` // 角色列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListRoleResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListRoleRespData `json:"data"` // 业务数据
}

func (resp *ListRoleResp) Success() bool {
	return resp.Code == 0
}

type ListSubjectReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListSubjectReqBuilder() *ListSubjectReqBuilder {
	builder := &ListSubjectReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListSubjectReqBuilder) UserIdType(userIdType string) *ListSubjectReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 项目ID列表
//
// 示例值：
func (builder *ListSubjectReqBuilder) SubjectIds(subjectIds []string) *ListSubjectReqBuilder {
	for _, v := range subjectIds {
		builder.apiReq.QueryParams.Add("subject_ids", fmt.Sprint(v))
	}
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：1231231987
func (builder *ListSubjectReqBuilder) PageToken(pageToken string) *ListSubjectReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListSubjectReqBuilder) PageSize(pageSize int) *ListSubjectReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListSubjectReqBuilder) Build() *ListSubjectReq {
	req := &ListSubjectReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListSubjectReq struct {
	apiReq *larkcore.ApiReq
}

type ListSubjectRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*Subject `json:"items,omitempty"` // 项目列表
}

type ListSubjectResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListSubjectRespData `json:"data"` // 业务数据
}

func (resp *ListSubjectResp) Success() bool {
	return resp.Code == 0
}

type AddToFolderTalentReqBodyBuilder struct {
	talentIdList     []string // 人才 ID 列表
	talentIdListFlag bool

	folderId     string // 文件夹 ID
	folderIdFlag bool
}

func NewAddToFolderTalentReqBodyBuilder() *AddToFolderTalentReqBodyBuilder {
	builder := &AddToFolderTalentReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
//示例值：6039620186502138151
func (builder *AddToFolderTalentReqBodyBuilder) TalentIdList(talentIdList []string) *AddToFolderTalentReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 文件夹 ID
//
//示例值：7039620186502138156
func (builder *AddToFolderTalentReqBodyBuilder) FolderId(folderId string) *AddToFolderTalentReqBodyBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

func (builder *AddToFolderTalentReqBodyBuilder) Build() *AddToFolderTalentReqBody {
	req := &AddToFolderTalentReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId
	}
	return req
}

type AddToFolderTalentPathReqBodyBuilder struct {
	talentIdList     []string
	talentIdListFlag bool
	folderId         string
	folderIdFlag     bool
}

func NewAddToFolderTalentPathReqBodyBuilder() *AddToFolderTalentPathReqBodyBuilder {
	builder := &AddToFolderTalentPathReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
// 示例值：6039620186502138151
func (builder *AddToFolderTalentPathReqBodyBuilder) TalentIdList(talentIdList []string) *AddToFolderTalentPathReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 文件夹 ID
//
// 示例值：7039620186502138156
func (builder *AddToFolderTalentPathReqBodyBuilder) FolderId(folderId string) *AddToFolderTalentPathReqBodyBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

func (builder *AddToFolderTalentPathReqBodyBuilder) Build() (*AddToFolderTalentReqBody, error) {
	req := &AddToFolderTalentReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId
	}
	return req, nil
}

type AddToFolderTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *AddToFolderTalentReqBody
}

func NewAddToFolderTalentReqBuilder() *AddToFolderTalentReqBuilder {
	builder := &AddToFolderTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 将人才加入指定文件夹
func (builder *AddToFolderTalentReqBuilder) Body(body *AddToFolderTalentReqBody) *AddToFolderTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *AddToFolderTalentReqBuilder) Build() *AddToFolderTalentReq {
	req := &AddToFolderTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type AddToFolderTalentReqBody struct {
	TalentIdList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表

	FolderId *string `json:"folder_id,omitempty"` // 文件夹 ID
}

type AddToFolderTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *AddToFolderTalentReqBody `body:""`
}

type AddToFolderTalentRespData struct {
	TalentIdList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表

	FolderId *string `json:"folder_id,omitempty"` // 文件夹 ID
}

type AddToFolderTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *AddToFolderTalentRespData `json:"data"` // 业务数据
}

func (resp *AddToFolderTalentResp) Success() bool {
	return resp.Code == 0
}

type BatchGetIdTalentReqBodyBuilder struct {
	mobileCode     string // 手机国家区号，默认值：86，即中国大陆地区
	mobileCodeFlag bool

	mobileNumberList     []string // 手机号，区号均采用 mobile_code 参数的值，最多 100 个
	mobileNumberListFlag bool

	emailList     []string // 邮箱信息列表，最多 100 个
	emailListFlag bool

	identificationType     int // 证件类型，可参考招聘枚举常量文档下的 IdentificationType 枚举定义
	identificationTypeFlag bool

	identificationNumberList     []string // 证件号
	identificationNumberListFlag bool
}

func NewBatchGetIdTalentReqBodyBuilder() *BatchGetIdTalentReqBodyBuilder {
	builder := &BatchGetIdTalentReqBodyBuilder{}
	return builder
}

// 手机国家区号，默认值：86，即中国大陆地区
//
//示例值：86
func (builder *BatchGetIdTalentReqBodyBuilder) MobileCode(mobileCode string) *BatchGetIdTalentReqBodyBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 手机号，区号均采用 mobile_code 参数的值，最多 100 个
//
//示例值：182900291190
func (builder *BatchGetIdTalentReqBodyBuilder) MobileNumberList(mobileNumberList []string) *BatchGetIdTalentReqBodyBuilder {
	builder.mobileNumberList = mobileNumberList
	builder.mobileNumberListFlag = true
	return builder
}

// 邮箱信息列表，最多 100 个
//
//示例值：foo@bytedance.com
func (builder *BatchGetIdTalentReqBodyBuilder) EmailList(emailList []string) *BatchGetIdTalentReqBodyBuilder {
	builder.emailList = emailList
	builder.emailListFlag = true
	return builder
}

// 证件类型，可参考招聘枚举常量文档下的 IdentificationType 枚举定义
//
//示例值：1
func (builder *BatchGetIdTalentReqBodyBuilder) IdentificationType(identificationType int) *BatchGetIdTalentReqBodyBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
//示例值：130xxxxxxx
func (builder *BatchGetIdTalentReqBodyBuilder) IdentificationNumberList(identificationNumberList []string) *BatchGetIdTalentReqBodyBuilder {
	builder.identificationNumberList = identificationNumberList
	builder.identificationNumberListFlag = true
	return builder
}

func (builder *BatchGetIdTalentReqBodyBuilder) Build() *BatchGetIdTalentReqBody {
	req := &BatchGetIdTalentReqBody{}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode
	}
	if builder.mobileNumberListFlag {
		req.MobileNumberList = builder.mobileNumberList
	}
	if builder.emailListFlag {
		req.EmailList = builder.emailList
	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType
	}
	if builder.identificationNumberListFlag {
		req.IdentificationNumberList = builder.identificationNumberList
	}
	return req
}

type BatchGetIdTalentPathReqBodyBuilder struct {
	mobileCode                   string
	mobileCodeFlag               bool
	mobileNumberList             []string
	mobileNumberListFlag         bool
	emailList                    []string
	emailListFlag                bool
	identificationType           int
	identificationTypeFlag       bool
	identificationNumberList     []string
	identificationNumberListFlag bool
}

func NewBatchGetIdTalentPathReqBodyBuilder() *BatchGetIdTalentPathReqBodyBuilder {
	builder := &BatchGetIdTalentPathReqBodyBuilder{}
	return builder
}

// 手机国家区号，默认值：86，即中国大陆地区
//
// 示例值：86
func (builder *BatchGetIdTalentPathReqBodyBuilder) MobileCode(mobileCode string) *BatchGetIdTalentPathReqBodyBuilder {
	builder.mobileCode = mobileCode
	builder.mobileCodeFlag = true
	return builder
}

// 手机号，区号均采用 mobile_code 参数的值，最多 100 个
//
// 示例值：182900291190
func (builder *BatchGetIdTalentPathReqBodyBuilder) MobileNumberList(mobileNumberList []string) *BatchGetIdTalentPathReqBodyBuilder {
	builder.mobileNumberList = mobileNumberList
	builder.mobileNumberListFlag = true
	return builder
}

// 邮箱信息列表，最多 100 个
//
// 示例值：foo@bytedance.com
func (builder *BatchGetIdTalentPathReqBodyBuilder) EmailList(emailList []string) *BatchGetIdTalentPathReqBodyBuilder {
	builder.emailList = emailList
	builder.emailListFlag = true
	return builder
}

// 证件类型，可参考招聘枚举常量文档下的 IdentificationType 枚举定义
//
// 示例值：1
func (builder *BatchGetIdTalentPathReqBodyBuilder) IdentificationType(identificationType int) *BatchGetIdTalentPathReqBodyBuilder {
	builder.identificationType = identificationType
	builder.identificationTypeFlag = true
	return builder
}

// 证件号
//
// 示例值：130xxxxxxx
func (builder *BatchGetIdTalentPathReqBodyBuilder) IdentificationNumberList(identificationNumberList []string) *BatchGetIdTalentPathReqBodyBuilder {
	builder.identificationNumberList = identificationNumberList
	builder.identificationNumberListFlag = true
	return builder
}

func (builder *BatchGetIdTalentPathReqBodyBuilder) Build() (*BatchGetIdTalentReqBody, error) {
	req := &BatchGetIdTalentReqBody{}
	if builder.mobileCodeFlag {
		req.MobileCode = &builder.mobileCode
	}
	if builder.mobileNumberListFlag {
		req.MobileNumberList = builder.mobileNumberList
	}
	if builder.emailListFlag {
		req.EmailList = builder.emailList
	}
	if builder.identificationTypeFlag {
		req.IdentificationType = &builder.identificationType
	}
	if builder.identificationNumberListFlag {
		req.IdentificationNumberList = builder.identificationNumberList
	}
	return req, nil
}

type BatchGetIdTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchGetIdTalentReqBody
}

func NewBatchGetIdTalentReqBuilder() *BatchGetIdTalentReqBuilder {
	builder := &BatchGetIdTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 通过人才信息获取人才 ID
func (builder *BatchGetIdTalentReqBuilder) Body(body *BatchGetIdTalentReqBody) *BatchGetIdTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchGetIdTalentReqBuilder) Build() *BatchGetIdTalentReq {
	req := &BatchGetIdTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchGetIdTalentReqBody struct {
	MobileCode *string `json:"mobile_code,omitempty"` // 手机国家区号，默认值：86，即中国大陆地区

	MobileNumberList []string `json:"mobile_number_list,omitempty"` // 手机号，区号均采用 mobile_code 参数的值，最多 100 个

	EmailList []string `json:"email_list,omitempty"` // 邮箱信息列表，最多 100 个

	IdentificationType *int `json:"identification_type,omitempty"` // 证件类型，可参考招聘枚举常量文档下的 IdentificationType 枚举定义

	IdentificationNumberList []string `json:"identification_number_list,omitempty"` // 证件号
}

type BatchGetIdTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchGetIdTalentReqBody `body:""`
}

type BatchGetIdTalentRespData struct {
	TalentList []*TalentBatchInfo `json:"talent_list,omitempty"` // 人才信息列表
}

type BatchGetIdTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BatchGetIdTalentRespData `json:"data"` // 业务数据
}

func (resp *BatchGetIdTalentResp) Success() bool {
	return resp.Code == 0
}

type CombinedCreateTalentReqBodyBuilder struct {
	initSourceId     string // 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
	initSourceIdFlag bool

	resumeSourceId     string // 简历来源 ID
	resumeSourceIdFlag bool

	folderIdList     []string // 文件夹 ID 列表
	folderIdListFlag bool

	creatorId     string // 创建人 ID
	creatorIdFlag bool

	creatorAccountType     int // 创建人类型
	creatorAccountTypeFlag bool

	resumeAttachmentId     string // 简历附件 ID
	resumeAttachmentIdFlag bool

	basicInfo     *TalentCombinedBasicInfo // 基础信息
	basicInfoFlag bool

	educationList     []*TalentCombinedEducationInfo // 教育经历
	educationListFlag bool

	careerList     []*TalentCombinedCareerInfo // 工作经历
	careerListFlag bool

	projectList     []*TalentCombinedProjectInfo // 项目经历
	projectListFlag bool

	worksList     []*TalentCombinedWorkInfo // 作品
	worksListFlag bool

	awardList     []*TalentCombinedAwardInfo // 获奖
	awardListFlag bool

	languageList     []*TalentCombinedLanguageInfo // 语言能力
	languageListFlag bool

	snsList     []*TalentCombinedSnsInfo // 社交账号
	snsListFlag bool

	preferredCityCodeList     []string // 意向地点
	preferredCityCodeListFlag bool

	selfEvaluation     *TalentSelfEvaluation // 自我评价
	selfEvaluationFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义模块
	customizedDataFlag bool
}

func NewCombinedCreateTalentReqBodyBuilder() *CombinedCreateTalentReqBodyBuilder {
	builder := &CombinedCreateTalentReqBodyBuilder{}
	return builder
}

// 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
//
//示例值：1
func (builder *CombinedCreateTalentReqBodyBuilder) InitSourceId(initSourceId string) *CombinedCreateTalentReqBodyBuilder {
	builder.initSourceId = initSourceId
	builder.initSourceIdFlag = true
	return builder
}

// 简历来源 ID
//
//示例值：1
func (builder *CombinedCreateTalentReqBodyBuilder) ResumeSourceId(resumeSourceId string) *CombinedCreateTalentReqBodyBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 文件夹 ID 列表
//
//示例值：["7025517823176132908"]
func (builder *CombinedCreateTalentReqBodyBuilder) FolderIdList(folderIdList []string) *CombinedCreateTalentReqBodyBuilder {
	builder.folderIdList = folderIdList
	builder.folderIdListFlag = true
	return builder
}

// 创建人 ID
//
//示例值：ou-xxx
func (builder *CombinedCreateTalentReqBodyBuilder) CreatorId(creatorId string) *CombinedCreateTalentReqBodyBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 创建人类型
//
//示例值：1
func (builder *CombinedCreateTalentReqBodyBuilder) CreatorAccountType(creatorAccountType int) *CombinedCreateTalentReqBodyBuilder {
	builder.creatorAccountType = creatorAccountType
	builder.creatorAccountTypeFlag = true
	return builder
}

// 简历附件 ID
//
//示例值：12345
func (builder *CombinedCreateTalentReqBodyBuilder) ResumeAttachmentId(resumeAttachmentId string) *CombinedCreateTalentReqBodyBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 基础信息
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) BasicInfo(basicInfo *TalentCombinedBasicInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) EducationList(educationList []*TalentCombinedEducationInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) CareerList(careerList []*TalentCombinedCareerInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) ProjectList(projectList []*TalentCombinedProjectInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) WorksList(worksList []*TalentCombinedWorkInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) AwardList(awardList []*TalentCombinedAwardInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言能力
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) LanguageList(languageList []*TalentCombinedLanguageInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// 社交账号
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) SnsList(snsList []*TalentCombinedSnsInfo) *CombinedCreateTalentReqBodyBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 意向地点
//
//示例值：["CT_2"]
func (builder *CombinedCreateTalentReqBodyBuilder) PreferredCityCodeList(preferredCityCodeList []string) *CombinedCreateTalentReqBodyBuilder {
	builder.preferredCityCodeList = preferredCityCodeList
	builder.preferredCityCodeListFlag = true
	return builder
}

// 自我评价
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) SelfEvaluation(selfEvaluation *TalentSelfEvaluation) *CombinedCreateTalentReqBodyBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 自定义模块
//
//示例值：
func (builder *CombinedCreateTalentReqBodyBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *CombinedCreateTalentReqBodyBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *CombinedCreateTalentReqBodyBuilder) Build() *CombinedCreateTalentReqBody {
	req := &CombinedCreateTalentReqBody{}
	if builder.initSourceIdFlag {
		req.InitSourceId = &builder.initSourceId
	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId
	}
	if builder.folderIdListFlag {
		req.FolderIdList = builder.folderIdList
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId
	}
	if builder.creatorAccountTypeFlag {
		req.CreatorAccountType = &builder.creatorAccountType
	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId
	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.preferredCityCodeListFlag {
		req.PreferredCityCodeList = builder.preferredCityCodeList
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = builder.selfEvaluation
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type CombinedCreateTalentPathReqBodyBuilder struct {
	initSourceId              string
	initSourceIdFlag          bool
	resumeSourceId            string
	resumeSourceIdFlag        bool
	folderIdList              []string
	folderIdListFlag          bool
	creatorId                 string
	creatorIdFlag             bool
	creatorAccountType        int
	creatorAccountTypeFlag    bool
	resumeAttachmentId        string
	resumeAttachmentIdFlag    bool
	basicInfo                 *TalentCombinedBasicInfo
	basicInfoFlag             bool
	educationList             []*TalentCombinedEducationInfo
	educationListFlag         bool
	careerList                []*TalentCombinedCareerInfo
	careerListFlag            bool
	projectList               []*TalentCombinedProjectInfo
	projectListFlag           bool
	worksList                 []*TalentCombinedWorkInfo
	worksListFlag             bool
	awardList                 []*TalentCombinedAwardInfo
	awardListFlag             bool
	languageList              []*TalentCombinedLanguageInfo
	languageListFlag          bool
	snsList                   []*TalentCombinedSnsInfo
	snsListFlag               bool
	preferredCityCodeList     []string
	preferredCityCodeListFlag bool
	selfEvaluation            *TalentSelfEvaluation
	selfEvaluationFlag        bool
	customizedData            []*TalentCustomizedDataObjectValue
	customizedDataFlag        bool
}

func NewCombinedCreateTalentPathReqBodyBuilder() *CombinedCreateTalentPathReqBodyBuilder {
	builder := &CombinedCreateTalentPathReqBodyBuilder{}
	return builder
}

// 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
//
// 示例值：1
func (builder *CombinedCreateTalentPathReqBodyBuilder) InitSourceId(initSourceId string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.initSourceId = initSourceId
	builder.initSourceIdFlag = true
	return builder
}

// 简历来源 ID
//
// 示例值：1
func (builder *CombinedCreateTalentPathReqBodyBuilder) ResumeSourceId(resumeSourceId string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.resumeSourceId = resumeSourceId
	builder.resumeSourceIdFlag = true
	return builder
}

// 文件夹 ID 列表
//
// 示例值：["7025517823176132908"]
func (builder *CombinedCreateTalentPathReqBodyBuilder) FolderIdList(folderIdList []string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.folderIdList = folderIdList
	builder.folderIdListFlag = true
	return builder
}

// 创建人 ID
//
// 示例值：ou-xxx
func (builder *CombinedCreateTalentPathReqBodyBuilder) CreatorId(creatorId string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 创建人类型
//
// 示例值：1
func (builder *CombinedCreateTalentPathReqBodyBuilder) CreatorAccountType(creatorAccountType int) *CombinedCreateTalentPathReqBodyBuilder {
	builder.creatorAccountType = creatorAccountType
	builder.creatorAccountTypeFlag = true
	return builder
}

// 简历附件 ID
//
// 示例值：12345
func (builder *CombinedCreateTalentPathReqBodyBuilder) ResumeAttachmentId(resumeAttachmentId string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) BasicInfo(basicInfo *TalentCombinedBasicInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) EducationList(educationList []*TalentCombinedEducationInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) CareerList(careerList []*TalentCombinedCareerInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) ProjectList(projectList []*TalentCombinedProjectInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) WorksList(worksList []*TalentCombinedWorkInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) AwardList(awardList []*TalentCombinedAwardInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言能力
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) LanguageList(languageList []*TalentCombinedLanguageInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// 社交账号
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) SnsList(snsList []*TalentCombinedSnsInfo) *CombinedCreateTalentPathReqBodyBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 意向地点
//
// 示例值：["CT_2"]
func (builder *CombinedCreateTalentPathReqBodyBuilder) PreferredCityCodeList(preferredCityCodeList []string) *CombinedCreateTalentPathReqBodyBuilder {
	builder.preferredCityCodeList = preferredCityCodeList
	builder.preferredCityCodeListFlag = true
	return builder
}

// 自我评价
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) SelfEvaluation(selfEvaluation *TalentSelfEvaluation) *CombinedCreateTalentPathReqBodyBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 自定义模块
//
// 示例值：
func (builder *CombinedCreateTalentPathReqBodyBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *CombinedCreateTalentPathReqBodyBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *CombinedCreateTalentPathReqBodyBuilder) Build() (*CombinedCreateTalentReqBody, error) {
	req := &CombinedCreateTalentReqBody{}
	if builder.initSourceIdFlag {
		req.InitSourceId = &builder.initSourceId
	}
	if builder.resumeSourceIdFlag {
		req.ResumeSourceId = &builder.resumeSourceId
	}
	if builder.folderIdListFlag {
		req.FolderIdList = builder.folderIdList
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId
	}
	if builder.creatorAccountTypeFlag {
		req.CreatorAccountType = &builder.creatorAccountType
	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId
	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.preferredCityCodeListFlag {
		req.PreferredCityCodeList = builder.preferredCityCodeList
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = builder.selfEvaluation
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req, nil
}

type CombinedCreateTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CombinedCreateTalentReqBody
}

func NewCombinedCreateTalentReqBuilder() *CombinedCreateTalentReqBuilder {
	builder := &CombinedCreateTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CombinedCreateTalentReqBuilder) UserIdType(userIdType string) *CombinedCreateTalentReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 用于在企业内创建一个人才。姓名为系统预设的必填字段，邮箱/电话字段请在飞书招聘标准简历模板设置中确认是否必填。可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取自定义字段信息。
func (builder *CombinedCreateTalentReqBuilder) Body(body *CombinedCreateTalentReqBody) *CombinedCreateTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *CombinedCreateTalentReqBuilder) Build() *CombinedCreateTalentReq {
	req := &CombinedCreateTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CombinedCreateTalentReqBody struct {
	InitSourceId *string `json:"init_source_id,omitempty"` // 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询

	ResumeSourceId *string `json:"resume_source_id,omitempty"` // 简历来源 ID

	FolderIdList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表

	CreatorId *string `json:"creator_id,omitempty"` // 创建人 ID

	CreatorAccountType *int `json:"creator_account_type,omitempty"` // 创建人类型

	ResumeAttachmentId *string `json:"resume_attachment_id,omitempty"` // 简历附件 ID

	BasicInfo *TalentCombinedBasicInfo `json:"basic_info,omitempty"` // 基础信息

	EducationList []*TalentCombinedEducationInfo `json:"education_list,omitempty"` // 教育经历

	CareerList []*TalentCombinedCareerInfo `json:"career_list,omitempty"` // 工作经历

	ProjectList []*TalentCombinedProjectInfo `json:"project_list,omitempty"` // 项目经历

	WorksList []*TalentCombinedWorkInfo `json:"works_list,omitempty"` // 作品

	AwardList []*TalentCombinedAwardInfo `json:"award_list,omitempty"` // 获奖

	LanguageList []*TalentCombinedLanguageInfo `json:"language_list,omitempty"` // 语言能力

	SnsList []*TalentCombinedSnsInfo `json:"sns_list,omitempty"` // 社交账号

	PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 意向地点

	SelfEvaluation *TalentSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义模块
}

type CombinedCreateTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *CombinedCreateTalentReqBody `body:""`
}

type CombinedCreateTalentRespData struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	CreatorId *string `json:"creator_id,omitempty"` // 创建人 ID

	CreatorAccountType *int `json:"creator_account_type,omitempty"` // 创建人类型
}

type CombinedCreateTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CombinedCreateTalentRespData `json:"data"` // 业务数据
}

func (resp *CombinedCreateTalentResp) Success() bool {
	return resp.Code == 0
}

type CombinedUpdateTalentReqBodyBuilder struct {
	talentId     string // 人才 ID
	talentIdFlag bool

	initSourceId     string // 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
	initSourceIdFlag bool

	folderIdList     []string // 文件夹 ID 列表
	folderIdListFlag bool

	operatorId     string // 更新人 ID
	operatorIdFlag bool

	operatorAccountType     int // 更新人类型
	operatorAccountTypeFlag bool

	resumeAttachmentId     string // 简历附件id
	resumeAttachmentIdFlag bool

	basicInfo     *TalentCombinedBasicInfo // 基础信息
	basicInfoFlag bool

	educationList     []*TalentCombinedEducationInfo // 教育经历
	educationListFlag bool

	careerList     []*TalentCombinedCareerInfo // 工作经历
	careerListFlag bool

	projectList     []*TalentCombinedProjectInfo // 项目经历
	projectListFlag bool

	worksList     []*TalentCombinedWorkInfo // 作品
	worksListFlag bool

	awardList     []*TalentCombinedAwardInfo // 获奖
	awardListFlag bool

	languageList     []*TalentCombinedLanguageInfo // 语言能力
	languageListFlag bool

	snsList     []*TalentCombinedSnsInfo // 社交账号
	snsListFlag bool

	preferredCityCodeList     []string // 偏好城市
	preferredCityCodeListFlag bool

	selfEvaluation     *TalentSelfEvaluation // 自我评价
	selfEvaluationFlag bool

	customizedData     []*TalentCustomizedDataObjectValue // 自定义模块
	customizedDataFlag bool
}

func NewCombinedUpdateTalentReqBodyBuilder() *CombinedUpdateTalentReqBodyBuilder {
	builder := &CombinedUpdateTalentReqBodyBuilder{}
	return builder
}

// 人才 ID
//
//示例值：1
func (builder *CombinedUpdateTalentReqBodyBuilder) TalentId(talentId string) *CombinedUpdateTalentReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
//
//示例值：1
func (builder *CombinedUpdateTalentReqBodyBuilder) InitSourceId(initSourceId string) *CombinedUpdateTalentReqBodyBuilder {
	builder.initSourceId = initSourceId
	builder.initSourceIdFlag = true
	return builder
}

// 文件夹 ID 列表
//
//示例值：["702551782317613290"]
func (builder *CombinedUpdateTalentReqBodyBuilder) FolderIdList(folderIdList []string) *CombinedUpdateTalentReqBodyBuilder {
	builder.folderIdList = folderIdList
	builder.folderIdListFlag = true
	return builder
}

// 更新人 ID
//
//示例值：ou_xxx
func (builder *CombinedUpdateTalentReqBodyBuilder) OperatorId(operatorId string) *CombinedUpdateTalentReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 更新人类型
//
//示例值：1
func (builder *CombinedUpdateTalentReqBodyBuilder) OperatorAccountType(operatorAccountType int) *CombinedUpdateTalentReqBodyBuilder {
	builder.operatorAccountType = operatorAccountType
	builder.operatorAccountTypeFlag = true
	return builder
}

// 简历附件id
//
//示例值：12345
func (builder *CombinedUpdateTalentReqBodyBuilder) ResumeAttachmentId(resumeAttachmentId string) *CombinedUpdateTalentReqBodyBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 基础信息
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) BasicInfo(basicInfo *TalentCombinedBasicInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) EducationList(educationList []*TalentCombinedEducationInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) CareerList(careerList []*TalentCombinedCareerInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) ProjectList(projectList []*TalentCombinedProjectInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) WorksList(worksList []*TalentCombinedWorkInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) AwardList(awardList []*TalentCombinedAwardInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言能力
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) LanguageList(languageList []*TalentCombinedLanguageInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// 社交账号
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) SnsList(snsList []*TalentCombinedSnsInfo) *CombinedUpdateTalentReqBodyBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 偏好城市
//
//示例值：["CT_2"]
func (builder *CombinedUpdateTalentReqBodyBuilder) PreferredCityCodeList(preferredCityCodeList []string) *CombinedUpdateTalentReqBodyBuilder {
	builder.preferredCityCodeList = preferredCityCodeList
	builder.preferredCityCodeListFlag = true
	return builder
}

// 自我评价
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) SelfEvaluation(selfEvaluation *TalentSelfEvaluation) *CombinedUpdateTalentReqBodyBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 自定义模块
//
//示例值：
func (builder *CombinedUpdateTalentReqBodyBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *CombinedUpdateTalentReqBodyBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *CombinedUpdateTalentReqBodyBuilder) Build() *CombinedUpdateTalentReqBody {
	req := &CombinedUpdateTalentReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.initSourceIdFlag {
		req.InitSourceId = &builder.initSourceId
	}
	if builder.folderIdListFlag {
		req.FolderIdList = builder.folderIdList
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.operatorAccountTypeFlag {
		req.OperatorAccountType = &builder.operatorAccountType
	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId
	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.preferredCityCodeListFlag {
		req.PreferredCityCodeList = builder.preferredCityCodeList
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = builder.selfEvaluation
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req
}

type CombinedUpdateTalentPathReqBodyBuilder struct {
	talentId                  string
	talentIdFlag              bool
	initSourceId              string
	initSourceIdFlag          bool
	folderIdList              []string
	folderIdListFlag          bool
	operatorId                string
	operatorIdFlag            bool
	operatorAccountType       int
	operatorAccountTypeFlag   bool
	resumeAttachmentId        string
	resumeAttachmentIdFlag    bool
	basicInfo                 *TalentCombinedBasicInfo
	basicInfoFlag             bool
	educationList             []*TalentCombinedEducationInfo
	educationListFlag         bool
	careerList                []*TalentCombinedCareerInfo
	careerListFlag            bool
	projectList               []*TalentCombinedProjectInfo
	projectListFlag           bool
	worksList                 []*TalentCombinedWorkInfo
	worksListFlag             bool
	awardList                 []*TalentCombinedAwardInfo
	awardListFlag             bool
	languageList              []*TalentCombinedLanguageInfo
	languageListFlag          bool
	snsList                   []*TalentCombinedSnsInfo
	snsListFlag               bool
	preferredCityCodeList     []string
	preferredCityCodeListFlag bool
	selfEvaluation            *TalentSelfEvaluation
	selfEvaluationFlag        bool
	customizedData            []*TalentCustomizedDataObjectValue
	customizedDataFlag        bool
}

func NewCombinedUpdateTalentPathReqBodyBuilder() *CombinedUpdateTalentPathReqBodyBuilder {
	builder := &CombinedUpdateTalentPathReqBodyBuilder{}
	return builder
}

// 人才 ID
//
// 示例值：1
func (builder *CombinedUpdateTalentPathReqBodyBuilder) TalentId(talentId string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询
//
// 示例值：1
func (builder *CombinedUpdateTalentPathReqBodyBuilder) InitSourceId(initSourceId string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.initSourceId = initSourceId
	builder.initSourceIdFlag = true
	return builder
}

// 文件夹 ID 列表
//
// 示例值：["702551782317613290"]
func (builder *CombinedUpdateTalentPathReqBodyBuilder) FolderIdList(folderIdList []string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.folderIdList = folderIdList
	builder.folderIdListFlag = true
	return builder
}

// 更新人 ID
//
// 示例值：ou_xxx
func (builder *CombinedUpdateTalentPathReqBodyBuilder) OperatorId(operatorId string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.operatorId = operatorId
	builder.operatorIdFlag = true
	return builder
}

// 更新人类型
//
// 示例值：1
func (builder *CombinedUpdateTalentPathReqBodyBuilder) OperatorAccountType(operatorAccountType int) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.operatorAccountType = operatorAccountType
	builder.operatorAccountTypeFlag = true
	return builder
}

// 简历附件id
//
// 示例值：12345
func (builder *CombinedUpdateTalentPathReqBodyBuilder) ResumeAttachmentId(resumeAttachmentId string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.resumeAttachmentId = resumeAttachmentId
	builder.resumeAttachmentIdFlag = true
	return builder
}

// 基础信息
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) BasicInfo(basicInfo *TalentCombinedBasicInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.basicInfo = basicInfo
	builder.basicInfoFlag = true
	return builder
}

// 教育经历
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) EducationList(educationList []*TalentCombinedEducationInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.educationList = educationList
	builder.educationListFlag = true
	return builder
}

// 工作经历
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) CareerList(careerList []*TalentCombinedCareerInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.careerList = careerList
	builder.careerListFlag = true
	return builder
}

// 项目经历
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) ProjectList(projectList []*TalentCombinedProjectInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.projectList = projectList
	builder.projectListFlag = true
	return builder
}

// 作品
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) WorksList(worksList []*TalentCombinedWorkInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.worksList = worksList
	builder.worksListFlag = true
	return builder
}

// 获奖
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) AwardList(awardList []*TalentCombinedAwardInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.awardList = awardList
	builder.awardListFlag = true
	return builder
}

// 语言能力
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) LanguageList(languageList []*TalentCombinedLanguageInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.languageList = languageList
	builder.languageListFlag = true
	return builder
}

// 社交账号
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) SnsList(snsList []*TalentCombinedSnsInfo) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.snsList = snsList
	builder.snsListFlag = true
	return builder
}

// 偏好城市
//
// 示例值：["CT_2"]
func (builder *CombinedUpdateTalentPathReqBodyBuilder) PreferredCityCodeList(preferredCityCodeList []string) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.preferredCityCodeList = preferredCityCodeList
	builder.preferredCityCodeListFlag = true
	return builder
}

// 自我评价
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) SelfEvaluation(selfEvaluation *TalentSelfEvaluation) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.selfEvaluation = selfEvaluation
	builder.selfEvaluationFlag = true
	return builder
}

// 自定义模块
//
// 示例值：
func (builder *CombinedUpdateTalentPathReqBodyBuilder) CustomizedData(customizedData []*TalentCustomizedDataObjectValue) *CombinedUpdateTalentPathReqBodyBuilder {
	builder.customizedData = customizedData
	builder.customizedDataFlag = true
	return builder
}

func (builder *CombinedUpdateTalentPathReqBodyBuilder) Build() (*CombinedUpdateTalentReqBody, error) {
	req := &CombinedUpdateTalentReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.initSourceIdFlag {
		req.InitSourceId = &builder.initSourceId
	}
	if builder.folderIdListFlag {
		req.FolderIdList = builder.folderIdList
	}
	if builder.operatorIdFlag {
		req.OperatorId = &builder.operatorId
	}
	if builder.operatorAccountTypeFlag {
		req.OperatorAccountType = &builder.operatorAccountType
	}
	if builder.resumeAttachmentIdFlag {
		req.ResumeAttachmentId = &builder.resumeAttachmentId
	}
	if builder.basicInfoFlag {
		req.BasicInfo = builder.basicInfo
	}
	if builder.educationListFlag {
		req.EducationList = builder.educationList
	}
	if builder.careerListFlag {
		req.CareerList = builder.careerList
	}
	if builder.projectListFlag {
		req.ProjectList = builder.projectList
	}
	if builder.worksListFlag {
		req.WorksList = builder.worksList
	}
	if builder.awardListFlag {
		req.AwardList = builder.awardList
	}
	if builder.languageListFlag {
		req.LanguageList = builder.languageList
	}
	if builder.snsListFlag {
		req.SnsList = builder.snsList
	}
	if builder.preferredCityCodeListFlag {
		req.PreferredCityCodeList = builder.preferredCityCodeList
	}
	if builder.selfEvaluationFlag {
		req.SelfEvaluation = builder.selfEvaluation
	}
	if builder.customizedDataFlag {
		req.CustomizedData = builder.customizedData
	}
	return req, nil
}

type CombinedUpdateTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CombinedUpdateTalentReqBody
}

func NewCombinedUpdateTalentReqBuilder() *CombinedUpdateTalentReqBuilder {
	builder := &CombinedUpdateTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CombinedUpdateTalentReqBuilder) UserIdType(userIdType string) *CombinedUpdateTalentReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 用于在企业内更新一个人才。姓名为系统预设的必填字段，邮箱/电话字段请在飞书招聘标准简历模板设置中确认是否必填。可配合[获取人才字段](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口获取自定义字段信息。
func (builder *CombinedUpdateTalentReqBuilder) Body(body *CombinedUpdateTalentReqBody) *CombinedUpdateTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *CombinedUpdateTalentReqBuilder) Build() *CombinedUpdateTalentReq {
	req := &CombinedUpdateTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CombinedUpdateTalentReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	InitSourceId *string `json:"init_source_id,omitempty"` // 简历来源 ID，可通过[获取简历来源列表](https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/talent_object/query)接口查询

	FolderIdList []string `json:"folder_id_list,omitempty"` // 文件夹 ID 列表

	OperatorId *string `json:"operator_id,omitempty"` // 更新人 ID

	OperatorAccountType *int `json:"operator_account_type,omitempty"` // 更新人类型

	ResumeAttachmentId *string `json:"resume_attachment_id,omitempty"` // 简历附件id

	BasicInfo *TalentCombinedBasicInfo `json:"basic_info,omitempty"` // 基础信息

	EducationList []*TalentCombinedEducationInfo `json:"education_list,omitempty"` // 教育经历

	CareerList []*TalentCombinedCareerInfo `json:"career_list,omitempty"` // 工作经历

	ProjectList []*TalentCombinedProjectInfo `json:"project_list,omitempty"` // 项目经历

	WorksList []*TalentCombinedWorkInfo `json:"works_list,omitempty"` // 作品

	AwardList []*TalentCombinedAwardInfo `json:"award_list,omitempty"` // 获奖

	LanguageList []*TalentCombinedLanguageInfo `json:"language_list,omitempty"` // 语言能力

	SnsList []*TalentCombinedSnsInfo `json:"sns_list,omitempty"` // 社交账号

	PreferredCityCodeList []string `json:"preferred_city_code_list,omitempty"` // 偏好城市

	SelfEvaluation *TalentSelfEvaluation `json:"self_evaluation,omitempty"` // 自我评价

	CustomizedData []*TalentCustomizedDataObjectValue `json:"customized_data,omitempty"` // 自定义模块
}

type CombinedUpdateTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *CombinedUpdateTalentReqBody `body:""`
}

type CombinedUpdateTalentRespData struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	OperatorId *string `json:"operator_id,omitempty"` // 更新人 ID

	OperatorAccountType *int `json:"operator_account_type,omitempty"` // 更新人类型
}

type CombinedUpdateTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CombinedUpdateTalentRespData `json:"data"` // 业务数据
}

func (resp *CombinedUpdateTalentResp) Success() bool {
	return resp.Code == 0
}

type GetTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetTalentReqBuilder() *GetTalentReqBuilder {
	builder := &GetTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才ID
//
// 示例值：6891560630172518670
func (builder *GetTalentReqBuilder) TalentId(talentId string) *GetTalentReqBuilder {
	builder.apiReq.PathParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetTalentReqBuilder) UserIdType(userIdType string) *GetTalentReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *GetTalentReqBuilder) Build() *GetTalentReq {
	req := &GetTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetTalentReq struct {
	apiReq *larkcore.ApiReq
}

type GetTalentRespData struct {
	Talent *Talent `json:"talent,omitempty"` // 人才信息
}

type GetTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetTalentRespData `json:"data"` // 业务数据
}

func (resp *GetTalentResp) Success() bool {
	return resp.Code == 0
}

type ListTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListTalentReqBuilder() *ListTalentReqBuilder {
	builder := &ListTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 搜索关键词，支持布尔语言（使用 and、or、not 连接关键词）
//
// 示例值：张三 and 产品经理
func (builder *ListTalentReqBuilder) Keyword(keyword string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("keyword", fmt.Sprint(keyword))
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListTalentReqBuilder) UpdateStartTime(updateStartTime string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListTalentReqBuilder) UpdateEndTime(updateEndTime string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

// 分页大小, 不能超过 20
//
// 示例值：10
func (builder *ListTalentReqBuilder) PageSize(pageSize int) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 排序规则
//
// 示例值：1
func (builder *ListTalentReqBuilder) SortBy(sortBy int) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("sort_by", fmt.Sprint(sortBy))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListTalentReqBuilder) PageToken(pageToken string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListTalentReqBuilder) UserIdType(userIdType string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 请求控制参数
//
// 示例值：ignore_empty_error
func (builder *ListTalentReqBuilder) QueryOption(queryOption string) *ListTalentReqBuilder {
	builder.apiReq.QueryParams.Set("query_option", fmt.Sprint(queryOption))
	return builder
}

func (builder *ListTalentReqBuilder) Build() *ListTalentReq {
	req := &ListTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTalentReq struct {
	apiReq *larkcore.ApiReq
}

type ListTalentRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token

	Items []*Talent `json:"items,omitempty"` // 列表
}

type ListTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTalentRespData `json:"data"` // 业务数据
}

func (resp *ListTalentResp) Success() bool {
	return resp.Code == 0
}

type OnboardStatusTalentReqBodyBuilder struct {
	operation     int // 操作类型 1:入职 2:离职
	operationFlag bool

	onboardTime     string // 毫秒时间戳
	onboardTimeFlag bool

	overboardTime     string // 毫秒时间戳
	overboardTimeFlag bool
}

func NewOnboardStatusTalentReqBodyBuilder() *OnboardStatusTalentReqBodyBuilder {
	builder := &OnboardStatusTalentReqBodyBuilder{}
	return builder
}

// 操作类型 1:入职 2:离职
//
//示例值：1
func (builder *OnboardStatusTalentReqBodyBuilder) Operation(operation int) *OnboardStatusTalentReqBodyBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 毫秒时间戳
//
//示例值：1676548784889
func (builder *OnboardStatusTalentReqBodyBuilder) OnboardTime(onboardTime string) *OnboardStatusTalentReqBodyBuilder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 毫秒时间戳
//
//示例值：1676548784890
func (builder *OnboardStatusTalentReqBodyBuilder) OverboardTime(overboardTime string) *OnboardStatusTalentReqBodyBuilder {
	builder.overboardTime = overboardTime
	builder.overboardTimeFlag = true
	return builder
}

func (builder *OnboardStatusTalentReqBodyBuilder) Build() *OnboardStatusTalentReqBody {
	req := &OnboardStatusTalentReqBody{}
	if builder.operationFlag {
		req.Operation = &builder.operation
	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime
	}
	if builder.overboardTimeFlag {
		req.OverboardTime = &builder.overboardTime
	}
	return req
}

type OnboardStatusTalentPathReqBodyBuilder struct {
	operation         int
	operationFlag     bool
	onboardTime       string
	onboardTimeFlag   bool
	overboardTime     string
	overboardTimeFlag bool
}

func NewOnboardStatusTalentPathReqBodyBuilder() *OnboardStatusTalentPathReqBodyBuilder {
	builder := &OnboardStatusTalentPathReqBodyBuilder{}
	return builder
}

// 操作类型 1:入职 2:离职
//
// 示例值：1
func (builder *OnboardStatusTalentPathReqBodyBuilder) Operation(operation int) *OnboardStatusTalentPathReqBodyBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 毫秒时间戳
//
// 示例值：1676548784889
func (builder *OnboardStatusTalentPathReqBodyBuilder) OnboardTime(onboardTime string) *OnboardStatusTalentPathReqBodyBuilder {
	builder.onboardTime = onboardTime
	builder.onboardTimeFlag = true
	return builder
}

// 毫秒时间戳
//
// 示例值：1676548784890
func (builder *OnboardStatusTalentPathReqBodyBuilder) OverboardTime(overboardTime string) *OnboardStatusTalentPathReqBodyBuilder {
	builder.overboardTime = overboardTime
	builder.overboardTimeFlag = true
	return builder
}

func (builder *OnboardStatusTalentPathReqBodyBuilder) Build() (*OnboardStatusTalentReqBody, error) {
	req := &OnboardStatusTalentReqBody{}
	if builder.operationFlag {
		req.Operation = &builder.operation
	}
	if builder.onboardTimeFlag {
		req.OnboardTime = &builder.onboardTime
	}
	if builder.overboardTimeFlag {
		req.OverboardTime = &builder.overboardTime
	}
	return req, nil
}

type OnboardStatusTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *OnboardStatusTalentReqBody
}

func NewOnboardStatusTalentReqBuilder() *OnboardStatusTalentReqBuilder {
	builder := &OnboardStatusTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才ID
//
// 示例值：6960663240925956661
func (builder *OnboardStatusTalentReqBuilder) TalentId(talentId string) *OnboardStatusTalentReqBuilder {
	builder.apiReq.PathParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

//
func (builder *OnboardStatusTalentReqBuilder) Body(body *OnboardStatusTalentReqBody) *OnboardStatusTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *OnboardStatusTalentReqBuilder) Build() *OnboardStatusTalentReq {
	req := &OnboardStatusTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type OnboardStatusTalentReqBody struct {
	Operation *int `json:"operation,omitempty"` // 操作类型 1:入职 2:离职

	OnboardTime *string `json:"onboard_time,omitempty"` // 毫秒时间戳

	OverboardTime *string `json:"overboard_time,omitempty"` // 毫秒时间戳
}

type OnboardStatusTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *OnboardStatusTalentReqBody `body:""`
}

type OnboardStatusTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *OnboardStatusTalentResp) Success() bool {
	return resp.Code == 0
}

type RemoveToFolderTalentReqBodyBuilder struct {
	talentIdList     []string // 人才 ID 列表
	talentIdListFlag bool

	folderId     string // 文件夹 ID
	folderIdFlag bool
}

func NewRemoveToFolderTalentReqBodyBuilder() *RemoveToFolderTalentReqBodyBuilder {
	builder := &RemoveToFolderTalentReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
//示例值：
func (builder *RemoveToFolderTalentReqBodyBuilder) TalentIdList(talentIdList []string) *RemoveToFolderTalentReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 文件夹 ID
//
//示例值：7039620186502138156
func (builder *RemoveToFolderTalentReqBodyBuilder) FolderId(folderId string) *RemoveToFolderTalentReqBodyBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

func (builder *RemoveToFolderTalentReqBodyBuilder) Build() *RemoveToFolderTalentReqBody {
	req := &RemoveToFolderTalentReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId
	}
	return req
}

type RemoveToFolderTalentPathReqBodyBuilder struct {
	talentIdList     []string
	talentIdListFlag bool
	folderId         string
	folderIdFlag     bool
}

func NewRemoveToFolderTalentPathReqBodyBuilder() *RemoveToFolderTalentPathReqBodyBuilder {
	builder := &RemoveToFolderTalentPathReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
// 示例值：
func (builder *RemoveToFolderTalentPathReqBodyBuilder) TalentIdList(talentIdList []string) *RemoveToFolderTalentPathReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 文件夹 ID
//
// 示例值：7039620186502138156
func (builder *RemoveToFolderTalentPathReqBodyBuilder) FolderId(folderId string) *RemoveToFolderTalentPathReqBodyBuilder {
	builder.folderId = folderId
	builder.folderIdFlag = true
	return builder
}

func (builder *RemoveToFolderTalentPathReqBodyBuilder) Build() (*RemoveToFolderTalentReqBody, error) {
	req := &RemoveToFolderTalentReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.folderIdFlag {
		req.FolderId = &builder.folderId
	}
	return req, nil
}

type RemoveToFolderTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *RemoveToFolderTalentReqBody
}

func NewRemoveToFolderTalentReqBuilder() *RemoveToFolderTalentReqBuilder {
	builder := &RemoveToFolderTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *RemoveToFolderTalentReqBuilder) Body(body *RemoveToFolderTalentReqBody) *RemoveToFolderTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *RemoveToFolderTalentReqBuilder) Build() *RemoveToFolderTalentReq {
	req := &RemoveToFolderTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type RemoveToFolderTalentReqBody struct {
	TalentIdList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表

	FolderId *string `json:"folder_id,omitempty"` // 文件夹 ID
}

type RemoveToFolderTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *RemoveToFolderTalentReqBody `body:""`
}

type RemoveToFolderTalentRespData struct {
	TalentIdList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表

	FolderId *string `json:"folder_id,omitempty"` // 文件夹 ID
}

type RemoveToFolderTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *RemoveToFolderTalentRespData `json:"data"` // 业务数据
}

func (resp *RemoveToFolderTalentResp) Success() bool {
	return resp.Code == 0
}

type TagTalentReqBodyBuilder struct {
	operation     int // 操作类型
	operationFlag bool

	tagIdList     []string // 标签 ID 列表
	tagIdListFlag bool
}

func NewTagTalentReqBodyBuilder() *TagTalentReqBodyBuilder {
	builder := &TagTalentReqBodyBuilder{}
	return builder
}

// 操作类型
//
//示例值：1
func (builder *TagTalentReqBodyBuilder) Operation(operation int) *TagTalentReqBodyBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 标签 ID 列表
//
//示例值：
func (builder *TagTalentReqBodyBuilder) TagIdList(tagIdList []string) *TagTalentReqBodyBuilder {
	builder.tagIdList = tagIdList
	builder.tagIdListFlag = true
	return builder
}

func (builder *TagTalentReqBodyBuilder) Build() *TagTalentReqBody {
	req := &TagTalentReqBody{}
	if builder.operationFlag {
		req.Operation = &builder.operation
	}
	if builder.tagIdListFlag {
		req.TagIdList = builder.tagIdList
	}
	return req
}

type TagTalentPathReqBodyBuilder struct {
	operation     int
	operationFlag bool
	tagIdList     []string
	tagIdListFlag bool
}

func NewTagTalentPathReqBodyBuilder() *TagTalentPathReqBodyBuilder {
	builder := &TagTalentPathReqBodyBuilder{}
	return builder
}

// 操作类型
//
// 示例值：1
func (builder *TagTalentPathReqBodyBuilder) Operation(operation int) *TagTalentPathReqBodyBuilder {
	builder.operation = operation
	builder.operationFlag = true
	return builder
}

// 标签 ID 列表
//
// 示例值：
func (builder *TagTalentPathReqBodyBuilder) TagIdList(tagIdList []string) *TagTalentPathReqBodyBuilder {
	builder.tagIdList = tagIdList
	builder.tagIdListFlag = true
	return builder
}

func (builder *TagTalentPathReqBodyBuilder) Build() (*TagTalentReqBody, error) {
	req := &TagTalentReqBody{}
	if builder.operationFlag {
		req.Operation = &builder.operation
	}
	if builder.tagIdListFlag {
		req.TagIdList = builder.tagIdList
	}
	return req, nil
}

type TagTalentReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *TagTalentReqBody
}

func NewTagTalentReqBuilder() *TagTalentReqBuilder {
	builder := &TagTalentReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才 ID
//
// 示例值：6960663240925956661
func (builder *TagTalentReqBuilder) TalentId(talentId string) *TagTalentReqBuilder {
	builder.apiReq.PathParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

//
func (builder *TagTalentReqBuilder) Body(body *TagTalentReqBody) *TagTalentReqBuilder {
	builder.body = body
	return builder
}

func (builder *TagTalentReqBuilder) Build() *TagTalentReq {
	req := &TagTalentReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type TagTalentReqBody struct {
	Operation *int `json:"operation,omitempty"` // 操作类型

	TagIdList []string `json:"tag_id_list,omitempty"` // 标签 ID 列表
}

type TagTalentReq struct {
	apiReq *larkcore.ApiReq
	Body   *TagTalentReqBody `body:""`
}

type TagTalentResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *TagTalentResp) Success() bool {
	return resp.Code == 0
}

type CreateTalentExternalInfoReqBodyBuilder struct {
	externalCreateTime     string // 人才在外部系统创建时间
	externalCreateTimeFlag bool
}

func NewCreateTalentExternalInfoReqBodyBuilder() *CreateTalentExternalInfoReqBodyBuilder {
	builder := &CreateTalentExternalInfoReqBodyBuilder{}
	return builder
}

// 人才在外部系统创建时间
//
//示例值：1639992265035
func (builder *CreateTalentExternalInfoReqBodyBuilder) ExternalCreateTime(externalCreateTime string) *CreateTalentExternalInfoReqBodyBuilder {
	builder.externalCreateTime = externalCreateTime
	builder.externalCreateTimeFlag = true
	return builder
}

func (builder *CreateTalentExternalInfoReqBodyBuilder) Build() *CreateTalentExternalInfoReqBody {
	req := &CreateTalentExternalInfoReqBody{}
	if builder.externalCreateTimeFlag {
		req.ExternalCreateTime = &builder.externalCreateTime
	}
	return req
}

type CreateTalentExternalInfoPathReqBodyBuilder struct {
	externalCreateTime     string
	externalCreateTimeFlag bool
}

func NewCreateTalentExternalInfoPathReqBodyBuilder() *CreateTalentExternalInfoPathReqBodyBuilder {
	builder := &CreateTalentExternalInfoPathReqBodyBuilder{}
	return builder
}

// 人才在外部系统创建时间
//
// 示例值：1639992265035
func (builder *CreateTalentExternalInfoPathReqBodyBuilder) ExternalCreateTime(externalCreateTime string) *CreateTalentExternalInfoPathReqBodyBuilder {
	builder.externalCreateTime = externalCreateTime
	builder.externalCreateTimeFlag = true
	return builder
}

func (builder *CreateTalentExternalInfoPathReqBodyBuilder) Build() (*CreateTalentExternalInfoReqBody, error) {
	req := &CreateTalentExternalInfoReqBody{}
	if builder.externalCreateTimeFlag {
		req.ExternalCreateTime = &builder.externalCreateTime
	}
	return req, nil
}

type CreateTalentExternalInfoReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateTalentExternalInfoReqBody
}

func NewCreateTalentExternalInfoReqBuilder() *CreateTalentExternalInfoReqBuilder {
	builder := &CreateTalentExternalInfoReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才 ID
//
// 示例值：7043758982146345223
func (builder *CreateTalentExternalInfoReqBuilder) TalentId(talentId string) *CreateTalentExternalInfoReqBuilder {
	builder.apiReq.PathParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 创建人才外部信息
func (builder *CreateTalentExternalInfoReqBuilder) Body(body *CreateTalentExternalInfoReqBody) *CreateTalentExternalInfoReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateTalentExternalInfoReqBuilder) Build() *CreateTalentExternalInfoReq {
	req := &CreateTalentExternalInfoReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type CreateTalentExternalInfoReqBody struct {
	ExternalCreateTime *string `json:"external_create_time,omitempty"` // 人才在外部系统创建时间
}

type CreateTalentExternalInfoReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateTalentExternalInfoReqBody `body:""`
}

type CreateTalentExternalInfoRespData struct {
	ExternalInfo *TalentExternalInfo `json:"external_info,omitempty"` // 人才外部信息
}

type CreateTalentExternalInfoResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateTalentExternalInfoRespData `json:"data"` // 业务数据
}

func (resp *CreateTalentExternalInfoResp) Success() bool {
	return resp.Code == 0
}

type UpdateTalentExternalInfoReqBodyBuilder struct {
	externalCreateTime     string // 人才在外部系统创建时间
	externalCreateTimeFlag bool
}

func NewUpdateTalentExternalInfoReqBodyBuilder() *UpdateTalentExternalInfoReqBodyBuilder {
	builder := &UpdateTalentExternalInfoReqBodyBuilder{}
	return builder
}

// 人才在外部系统创建时间
//
//示例值：1639992265035
func (builder *UpdateTalentExternalInfoReqBodyBuilder) ExternalCreateTime(externalCreateTime string) *UpdateTalentExternalInfoReqBodyBuilder {
	builder.externalCreateTime = externalCreateTime
	builder.externalCreateTimeFlag = true
	return builder
}

func (builder *UpdateTalentExternalInfoReqBodyBuilder) Build() *UpdateTalentExternalInfoReqBody {
	req := &UpdateTalentExternalInfoReqBody{}
	if builder.externalCreateTimeFlag {
		req.ExternalCreateTime = &builder.externalCreateTime
	}
	return req
}

type UpdateTalentExternalInfoPathReqBodyBuilder struct {
	externalCreateTime     string
	externalCreateTimeFlag bool
}

func NewUpdateTalentExternalInfoPathReqBodyBuilder() *UpdateTalentExternalInfoPathReqBodyBuilder {
	builder := &UpdateTalentExternalInfoPathReqBodyBuilder{}
	return builder
}

// 人才在外部系统创建时间
//
// 示例值：1639992265035
func (builder *UpdateTalentExternalInfoPathReqBodyBuilder) ExternalCreateTime(externalCreateTime string) *UpdateTalentExternalInfoPathReqBodyBuilder {
	builder.externalCreateTime = externalCreateTime
	builder.externalCreateTimeFlag = true
	return builder
}

func (builder *UpdateTalentExternalInfoPathReqBodyBuilder) Build() (*UpdateTalentExternalInfoReqBody, error) {
	req := &UpdateTalentExternalInfoReqBody{}
	if builder.externalCreateTimeFlag {
		req.ExternalCreateTime = &builder.externalCreateTime
	}
	return req, nil
}

type UpdateTalentExternalInfoReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateTalentExternalInfoReqBody
}

func NewUpdateTalentExternalInfoReqBuilder() *UpdateTalentExternalInfoReqBuilder {
	builder := &UpdateTalentExternalInfoReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才 ID
//
// 示例值：7043758982146345223
func (builder *UpdateTalentExternalInfoReqBuilder) TalentId(talentId string) *UpdateTalentExternalInfoReqBuilder {
	builder.apiReq.PathParams.Set("talent_id", fmt.Sprint(talentId))
	return builder
}

// 更新人才外部信息
func (builder *UpdateTalentExternalInfoReqBuilder) Body(body *UpdateTalentExternalInfoReqBody) *UpdateTalentExternalInfoReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateTalentExternalInfoReqBuilder) Build() *UpdateTalentExternalInfoReq {
	req := &UpdateTalentExternalInfoReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateTalentExternalInfoReqBody struct {
	ExternalCreateTime *string `json:"external_create_time,omitempty"` // 人才在外部系统创建时间
}

type UpdateTalentExternalInfoReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateTalentExternalInfoReqBody `body:""`
}

type UpdateTalentExternalInfoRespData struct {
	ExternalInfo *TalentExternalInfo `json:"external_info,omitempty"` // 人才外部信息
}

type UpdateTalentExternalInfoResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateTalentExternalInfoRespData `json:"data"` // 业务数据
}

func (resp *UpdateTalentExternalInfoResp) Success() bool {
	return resp.Code == 0
}

type ChangeTalentBlockTalentBlocklistReqBodyBuilder struct {
	talentId     string // 人才 ID
	talentIdFlag bool

	option     int // 操作类型
	optionFlag bool

	reason     string // 原因，当执行加入屏蔽名单操作时必填
	reasonFlag bool
}

func NewChangeTalentBlockTalentBlocklistReqBodyBuilder() *ChangeTalentBlockTalentBlocklistReqBodyBuilder {
	builder := &ChangeTalentBlockTalentBlocklistReqBodyBuilder{}
	return builder
}

// 人才 ID
//
//示例值：6930815272790114325
func (builder *ChangeTalentBlockTalentBlocklistReqBodyBuilder) TalentId(talentId string) *ChangeTalentBlockTalentBlocklistReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 操作类型
//
//示例值：
func (builder *ChangeTalentBlockTalentBlocklistReqBodyBuilder) Option(option int) *ChangeTalentBlockTalentBlocklistReqBodyBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 原因，当执行加入屏蔽名单操作时必填
//
//示例值：人才作弊
func (builder *ChangeTalentBlockTalentBlocklistReqBodyBuilder) Reason(reason string) *ChangeTalentBlockTalentBlocklistReqBodyBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

func (builder *ChangeTalentBlockTalentBlocklistReqBodyBuilder) Build() *ChangeTalentBlockTalentBlocklistReqBody {
	req := &ChangeTalentBlockTalentBlocklistReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.optionFlag {
		req.Option = &builder.option
	}
	if builder.reasonFlag {
		req.Reason = &builder.reason
	}
	return req
}

type ChangeTalentBlockTalentBlocklistPathReqBodyBuilder struct {
	talentId     string
	talentIdFlag bool
	option       int
	optionFlag   bool
	reason       string
	reasonFlag   bool
}

func NewChangeTalentBlockTalentBlocklistPathReqBodyBuilder() *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder {
	builder := &ChangeTalentBlockTalentBlocklistPathReqBodyBuilder{}
	return builder
}

// 人才 ID
//
// 示例值：6930815272790114325
func (builder *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder) TalentId(talentId string) *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 操作类型
//
// 示例值：
func (builder *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder) Option(option int) *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder {
	builder.option = option
	builder.optionFlag = true
	return builder
}

// 原因，当执行加入屏蔽名单操作时必填
//
// 示例值：人才作弊
func (builder *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder) Reason(reason string) *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

func (builder *ChangeTalentBlockTalentBlocklistPathReqBodyBuilder) Build() (*ChangeTalentBlockTalentBlocklistReqBody, error) {
	req := &ChangeTalentBlockTalentBlocklistReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.optionFlag {
		req.Option = &builder.option
	}
	if builder.reasonFlag {
		req.Reason = &builder.reason
	}
	return req, nil
}

type ChangeTalentBlockTalentBlocklistReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ChangeTalentBlockTalentBlocklistReqBody
}

func NewChangeTalentBlockTalentBlocklistReqBuilder() *ChangeTalentBlockTalentBlocklistReqBuilder {
	builder := &ChangeTalentBlockTalentBlocklistReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *ChangeTalentBlockTalentBlocklistReqBuilder) Body(body *ChangeTalentBlockTalentBlocklistReqBody) *ChangeTalentBlockTalentBlocklistReqBuilder {
	builder.body = body
	return builder
}

func (builder *ChangeTalentBlockTalentBlocklistReqBuilder) Build() *ChangeTalentBlockTalentBlocklistReq {
	req := &ChangeTalentBlockTalentBlocklistReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type ChangeTalentBlockTalentBlocklistReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	Option *int `json:"option,omitempty"` // 操作类型

	Reason *string `json:"reason,omitempty"` // 原因，当执行加入屏蔽名单操作时必填
}

type ChangeTalentBlockTalentBlocklistReq struct {
	apiReq *larkcore.ApiReq
	Body   *ChangeTalentBlockTalentBlocklistReqBody `body:""`
}

type ChangeTalentBlockTalentBlocklistResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *ChangeTalentBlockTalentBlocklistResp) Success() bool {
	return resp.Code == 0
}

type ListTalentFolderReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListTalentFolderReqBuilder() *ListTalentFolderReqBuilder {
	builder := &ListTalentFolderReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListTalentFolderReqBuilder) Limit(limit int) *ListTalentFolderReqBuilder {
	builder.limit = limit
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的page_token
//
// 示例值：eyJvZmZzZXQiOjEsInRpbWVzdGFtcCI6MTY0MDc2NTYzMjA4OCwiaWQiOm51bGx9
func (builder *ListTalentFolderReqBuilder) PageToken(pageToken string) *ListTalentFolderReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：10
func (builder *ListTalentFolderReqBuilder) PageSize(pageSize int) *ListTalentFolderReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户ID类型
//
// 示例值：open_id
func (builder *ListTalentFolderReqBuilder) UserIdType(userIdType string) *ListTalentFolderReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListTalentFolderReqBuilder) Build() *ListTalentFolderReq {
	req := &ListTalentFolderReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTalentFolderReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListTalentFolderRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页

	PageToken *string `json:"page_token,omitempty"` // 下一页页码

	Items []*TalentFolderForList `json:"items,omitempty"` // 文件夹列表
}

type ListTalentFolderResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTalentFolderRespData `json:"data"` // 业务数据
}

func (resp *ListTalentFolderResp) Success() bool {
	return resp.Code == 0
}

type QueryTalentObjectRespData struct {
	Items []*CommonSchema `json:"items,omitempty"` // 数据列表
}

type QueryTalentObjectResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *QueryTalentObjectRespData `json:"data"` // 业务数据
}

func (resp *QueryTalentObjectResp) Success() bool {
	return resp.Code == 0
}

type SearchTalentOperationLogReqBodyBuilder struct {
	jobIdList     []string // 职位 ID 列表
	jobIdListFlag bool

	operatorIdList     []string // 操作人 ID 列表
	operatorIdListFlag bool

	operationList     []int // 操作类型 ID 列表
	operationListFlag bool
}

func NewSearchTalentOperationLogReqBodyBuilder() *SearchTalentOperationLogReqBodyBuilder {
	builder := &SearchTalentOperationLogReqBodyBuilder{}
	return builder
}

// 职位 ID 列表
//
//示例值：6949805467799537964
func (builder *SearchTalentOperationLogReqBodyBuilder) JobIdList(jobIdList []string) *SearchTalentOperationLogReqBodyBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 操作人 ID 列表
//
//示例值：ou_e6139117c300506837def50545420c6a
func (builder *SearchTalentOperationLogReqBodyBuilder) OperatorIdList(operatorIdList []string) *SearchTalentOperationLogReqBodyBuilder {
	builder.operatorIdList = operatorIdList
	builder.operatorIdListFlag = true
	return builder
}

// 操作类型 ID 列表
//
//示例值："3001"
func (builder *SearchTalentOperationLogReqBodyBuilder) OperationList(operationList []int) *SearchTalentOperationLogReqBodyBuilder {
	builder.operationList = operationList
	builder.operationListFlag = true
	return builder
}

func (builder *SearchTalentOperationLogReqBodyBuilder) Build() *SearchTalentOperationLogReqBody {
	req := &SearchTalentOperationLogReqBody{}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.operatorIdListFlag {
		req.OperatorIdList = builder.operatorIdList
	}
	if builder.operationListFlag {
		req.OperationList = builder.operationList
	}
	return req
}

type SearchTalentOperationLogPathReqBodyBuilder struct {
	jobIdList          []string
	jobIdListFlag      bool
	operatorIdList     []string
	operatorIdListFlag bool
	operationList      []int
	operationListFlag  bool
}

func NewSearchTalentOperationLogPathReqBodyBuilder() *SearchTalentOperationLogPathReqBodyBuilder {
	builder := &SearchTalentOperationLogPathReqBodyBuilder{}
	return builder
}

// 职位 ID 列表
//
// 示例值：6949805467799537964
func (builder *SearchTalentOperationLogPathReqBodyBuilder) JobIdList(jobIdList []string) *SearchTalentOperationLogPathReqBodyBuilder {
	builder.jobIdList = jobIdList
	builder.jobIdListFlag = true
	return builder
}

// 操作人 ID 列表
//
// 示例值：ou_e6139117c300506837def50545420c6a
func (builder *SearchTalentOperationLogPathReqBodyBuilder) OperatorIdList(operatorIdList []string) *SearchTalentOperationLogPathReqBodyBuilder {
	builder.operatorIdList = operatorIdList
	builder.operatorIdListFlag = true
	return builder
}

// 操作类型 ID 列表
//
// 示例值："3001"
func (builder *SearchTalentOperationLogPathReqBodyBuilder) OperationList(operationList []int) *SearchTalentOperationLogPathReqBodyBuilder {
	builder.operationList = operationList
	builder.operationListFlag = true
	return builder
}

func (builder *SearchTalentOperationLogPathReqBodyBuilder) Build() (*SearchTalentOperationLogReqBody, error) {
	req := &SearchTalentOperationLogReqBody{}
	if builder.jobIdListFlag {
		req.JobIdList = builder.jobIdList
	}
	if builder.operatorIdListFlag {
		req.OperatorIdList = builder.operatorIdList
	}
	if builder.operationListFlag {
		req.OperationList = builder.operationList
	}
	return req, nil
}

type SearchTalentOperationLogReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchTalentOperationLogReqBody
}

func NewSearchTalentOperationLogReqBuilder() *SearchTalentOperationLogReqBuilder {
	builder := &SearchTalentOperationLogReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *SearchTalentOperationLogReqBuilder) PageToken(pageToken string) *SearchTalentOperationLogReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：10
func (builder *SearchTalentOperationLogReqBuilder) PageSize(pageSize int) *SearchTalentOperationLogReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：open_id
func (builder *SearchTalentOperationLogReqBuilder) UserIdType(userIdType string) *SearchTalentOperationLogReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 查询操作人对人才的操作记录
func (builder *SearchTalentOperationLogReqBuilder) Body(body *SearchTalentOperationLogReqBody) *SearchTalentOperationLogReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchTalentOperationLogReqBuilder) Build() *SearchTalentOperationLogReq {
	req := &SearchTalentOperationLogReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type SearchTalentOperationLogReqBody struct {
	JobIdList []string `json:"job_id_list,omitempty"` // 职位 ID 列表

	OperatorIdList []string `json:"operator_id_list,omitempty"` // 操作人 ID 列表

	OperationList []int `json:"operation_list,omitempty"` // 操作类型 ID 列表
}

type SearchTalentOperationLogReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchTalentOperationLogReqBody `body:""`
}

type SearchTalentOperationLogRespData struct {
	Items []*TalentOperationLog `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type SearchTalentOperationLogResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchTalentOperationLogRespData `json:"data"` // 业务数据
}

func (resp *SearchTalentOperationLogResp) Success() bool {
	return resp.Code == 0
}

type BatchChangeTalentPoolTalentPoolReqBodyBuilder struct {
	talentIdList     []string // 人才 ID 列表
	talentIdListFlag bool

	optionType     int // 操作类型
	optionTypeFlag bool
}

func NewBatchChangeTalentPoolTalentPoolReqBodyBuilder() *BatchChangeTalentPoolTalentPoolReqBodyBuilder {
	builder := &BatchChangeTalentPoolTalentPoolReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
//示例值：
func (builder *BatchChangeTalentPoolTalentPoolReqBodyBuilder) TalentIdList(talentIdList []string) *BatchChangeTalentPoolTalentPoolReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 操作类型
//
//示例值：
func (builder *BatchChangeTalentPoolTalentPoolReqBodyBuilder) OptionType(optionType int) *BatchChangeTalentPoolTalentPoolReqBodyBuilder {
	builder.optionType = optionType
	builder.optionTypeFlag = true
	return builder
}

func (builder *BatchChangeTalentPoolTalentPoolReqBodyBuilder) Build() *BatchChangeTalentPoolTalentPoolReqBody {
	req := &BatchChangeTalentPoolTalentPoolReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.optionTypeFlag {
		req.OptionType = &builder.optionType
	}
	return req
}

type BatchChangeTalentPoolTalentPoolPathReqBodyBuilder struct {
	talentIdList     []string
	talentIdListFlag bool
	optionType       int
	optionTypeFlag   bool
}

func NewBatchChangeTalentPoolTalentPoolPathReqBodyBuilder() *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder {
	builder := &BatchChangeTalentPoolTalentPoolPathReqBodyBuilder{}
	return builder
}

// 人才 ID 列表
//
// 示例值：
func (builder *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder) TalentIdList(talentIdList []string) *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder {
	builder.talentIdList = talentIdList
	builder.talentIdListFlag = true
	return builder
}

// 操作类型
//
// 示例值：
func (builder *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder) OptionType(optionType int) *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder {
	builder.optionType = optionType
	builder.optionTypeFlag = true
	return builder
}

func (builder *BatchChangeTalentPoolTalentPoolPathReqBodyBuilder) Build() (*BatchChangeTalentPoolTalentPoolReqBody, error) {
	req := &BatchChangeTalentPoolTalentPoolReqBody{}
	if builder.talentIdListFlag {
		req.TalentIdList = builder.talentIdList
	}
	if builder.optionTypeFlag {
		req.OptionType = &builder.optionType
	}
	return req, nil
}

type BatchChangeTalentPoolTalentPoolReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchChangeTalentPoolTalentPoolReqBody
}

func NewBatchChangeTalentPoolTalentPoolReqBuilder() *BatchChangeTalentPoolTalentPoolReqBuilder {
	builder := &BatchChangeTalentPoolTalentPoolReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才库ID
//
// 示例值：6930815272790114325
func (builder *BatchChangeTalentPoolTalentPoolReqBuilder) TalentPoolId(talentPoolId string) *BatchChangeTalentPoolTalentPoolReqBuilder {
	builder.apiReq.PathParams.Set("talent_pool_id", fmt.Sprint(talentPoolId))
	return builder
}

//
func (builder *BatchChangeTalentPoolTalentPoolReqBuilder) Body(body *BatchChangeTalentPoolTalentPoolReqBody) *BatchChangeTalentPoolTalentPoolReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchChangeTalentPoolTalentPoolReqBuilder) Build() *BatchChangeTalentPoolTalentPoolReq {
	req := &BatchChangeTalentPoolTalentPoolReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type BatchChangeTalentPoolTalentPoolReqBody struct {
	TalentIdList []string `json:"talent_id_list,omitempty"` // 人才 ID 列表

	OptionType *int `json:"option_type,omitempty"` // 操作类型
}

type BatchChangeTalentPoolTalentPoolReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchChangeTalentPoolTalentPoolReqBody `body:""`
}

type BatchChangeTalentPoolTalentPoolResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchChangeTalentPoolTalentPoolResp) Success() bool {
	return resp.Code == 0
}

type MoveTalentTalentPoolReqBodyBuilder struct {
	talentId     string // 人才ID
	talentIdFlag bool

	addType     int // 操作类型
	addTypeFlag bool
}

func NewMoveTalentTalentPoolReqBodyBuilder() *MoveTalentTalentPoolReqBodyBuilder {
	builder := &MoveTalentTalentPoolReqBodyBuilder{}
	return builder
}

// 人才ID
//
//示例值：6930815272790114324
func (builder *MoveTalentTalentPoolReqBodyBuilder) TalentId(talentId string) *MoveTalentTalentPoolReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 操作类型
//
//示例值：
func (builder *MoveTalentTalentPoolReqBodyBuilder) AddType(addType int) *MoveTalentTalentPoolReqBodyBuilder {
	builder.addType = addType
	builder.addTypeFlag = true
	return builder
}

func (builder *MoveTalentTalentPoolReqBodyBuilder) Build() *MoveTalentTalentPoolReqBody {
	req := &MoveTalentTalentPoolReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.addTypeFlag {
		req.AddType = &builder.addType
	}
	return req
}

type MoveTalentTalentPoolPathReqBodyBuilder struct {
	talentId     string
	talentIdFlag bool
	addType      int
	addTypeFlag  bool
}

func NewMoveTalentTalentPoolPathReqBodyBuilder() *MoveTalentTalentPoolPathReqBodyBuilder {
	builder := &MoveTalentTalentPoolPathReqBodyBuilder{}
	return builder
}

// 人才ID
//
// 示例值：6930815272790114324
func (builder *MoveTalentTalentPoolPathReqBodyBuilder) TalentId(talentId string) *MoveTalentTalentPoolPathReqBodyBuilder {
	builder.talentId = talentId
	builder.talentIdFlag = true
	return builder
}

// 操作类型
//
// 示例值：
func (builder *MoveTalentTalentPoolPathReqBodyBuilder) AddType(addType int) *MoveTalentTalentPoolPathReqBodyBuilder {
	builder.addType = addType
	builder.addTypeFlag = true
	return builder
}

func (builder *MoveTalentTalentPoolPathReqBodyBuilder) Build() (*MoveTalentTalentPoolReqBody, error) {
	req := &MoveTalentTalentPoolReqBody{}
	if builder.talentIdFlag {
		req.TalentId = &builder.talentId
	}
	if builder.addTypeFlag {
		req.AddType = &builder.addType
	}
	return req, nil
}

type MoveTalentTalentPoolReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *MoveTalentTalentPoolReqBody
}

func NewMoveTalentTalentPoolReqBuilder() *MoveTalentTalentPoolReqBuilder {
	builder := &MoveTalentTalentPoolReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 人才库ID
//
// 示例值：6930815272790114325
func (builder *MoveTalentTalentPoolReqBuilder) TalentPoolId(talentPoolId string) *MoveTalentTalentPoolReqBuilder {
	builder.apiReq.PathParams.Set("talent_pool_id", fmt.Sprint(talentPoolId))
	return builder
}

//
func (builder *MoveTalentTalentPoolReqBuilder) Body(body *MoveTalentTalentPoolReqBody) *MoveTalentTalentPoolReqBuilder {
	builder.body = body
	return builder
}

func (builder *MoveTalentTalentPoolReqBuilder) Build() *MoveTalentTalentPoolReq {
	req := &MoveTalentTalentPoolReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type MoveTalentTalentPoolReqBody struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才ID

	AddType *int `json:"add_type,omitempty"` // 操作类型
}

type MoveTalentTalentPoolReq struct {
	apiReq *larkcore.ApiReq
	Body   *MoveTalentTalentPoolReqBody `body:""`
}

type MoveTalentTalentPoolRespData struct {
	TalentPoolId *string `json:"talent_pool_id,omitempty"` // 人才库ID

	TalentId *string `json:"talent_id,omitempty"` // 人才ID
}

type MoveTalentTalentPoolResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *MoveTalentTalentPoolRespData `json:"data"` // 业务数据
}

func (resp *MoveTalentTalentPoolResp) Success() bool {
	return resp.Code == 0
}

type SearchTalentPoolReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewSearchTalentPoolReqBuilder() *SearchTalentPoolReqBuilder {
	builder := &SearchTalentPoolReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *SearchTalentPoolReqBuilder) Limit(limit int) *SearchTalentPoolReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：100
func (builder *SearchTalentPoolReqBuilder) PageSize(pageSize int) *SearchTalentPoolReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *SearchTalentPoolReqBuilder) PageToken(pageToken string) *SearchTalentPoolReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 人才库ID列表
//
// 示例值：
func (builder *SearchTalentPoolReqBuilder) IdList(idList []string) *SearchTalentPoolReqBuilder {
	for _, v := range idList {
		builder.apiReq.QueryParams.Add("id_list", fmt.Sprint(v))
	}
	return builder
}

func (builder *SearchTalentPoolReqBuilder) Build() *SearchTalentPoolReq {
	req := &SearchTalentPoolReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type SearchTalentPoolReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type SearchTalentPoolRespData struct {
	Items []*TalentPool `json:"items,omitempty"` // 人才库列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记

	HasMore *bool `json:"has_more,omitempty"` // 是否有剩余数据
}

type SearchTalentPoolResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchTalentPoolRespData `json:"data"` // 业务数据
}

func (resp *SearchTalentPoolResp) Success() bool {
	return resp.Code == 0
}

type ListTalentTagReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListTalentTagReqBuilder() *ListTalentTagReqBuilder {
	builder := &ListTalentTagReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListTalentTagReqBuilder) Limit(limit int) *ListTalentTagReqBuilder {
	builder.limit = limit
	return builder
}

// 搜索关键词
//
// 示例值：测试
func (builder *ListTalentTagReqBuilder) Keyword(keyword string) *ListTalentTagReqBuilder {
	builder.apiReq.QueryParams.Set("keyword", fmt.Sprint(keyword))
	return builder
}

// ID 列表
//
// 示例值：
func (builder *ListTalentTagReqBuilder) IdList(idList []string) *ListTalentTagReqBuilder {
	for _, v := range idList {
		builder.apiReq.QueryParams.Add("id_list", fmt.Sprint(v))
	}
	return builder
}

// 标签类型
//
// 示例值：1
func (builder *ListTalentTagReqBuilder) Type(type_ int) *ListTalentTagReqBuilder {
	builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_))
	return builder
}

// 包含停用
//
// 示例值：true
func (builder *ListTalentTagReqBuilder) IncludeInactive(includeInactive bool) *ListTalentTagReqBuilder {
	builder.apiReq.QueryParams.Set("include_inactive", fmt.Sprint(includeInactive))
	return builder
}

// 分页大小
//
// 示例值：20
func (builder *ListTalentTagReqBuilder) PageSize(pageSize int) *ListTalentTagReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListTalentTagReqBuilder) PageToken(pageToken string) *ListTalentTagReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListTalentTagReqBuilder) Build() *ListTalentTagReq {
	req := &ListTalentTagReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTalentTagReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListTalentTagRespData struct {
	Items []*TalentTag `json:"items,omitempty"` // 标签列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有更多项

	PageToken *string `json:"page_token,omitempty"` // 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
}

type ListTalentTagResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTalentTagRespData `json:"data"` // 业务数据
}

func (resp *ListTalentTagResp) Success() bool {
	return resp.Code == 0
}

type ListTerminationReasonReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListTerminationReasonReqBuilder() *ListTerminationReasonReqBuilder {
	builder := &ListTerminationReasonReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListTerminationReasonReqBuilder) Limit(limit int) *ListTerminationReasonReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListTerminationReasonReqBuilder) PageToken(pageToken string) *ListTerminationReasonReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListTerminationReasonReqBuilder) PageSize(pageSize int) *ListTerminationReasonReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListTerminationReasonReqBuilder) Build() *ListTerminationReasonReq {
	req := &ListTerminationReasonReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTerminationReasonReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListTerminationReasonRespData struct {
	Items []*TerminationReason `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListTerminationReasonResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTerminationReasonRespData `json:"data"` // 业务数据
}

func (resp *ListTerminationReasonResp) Success() bool {
	return resp.Code == 0
}

type SearchTestReqBodyBuilder struct {
	applicationIdList     []string // 投递 ID 列表，最多 100 个，默认查询全部投递
	applicationIdListFlag bool

	testStartTimeMin     string // 笔试开始时间晚于等于的时间
	testStartTimeMinFlag bool

	testStartTimeMax     string // 笔试开始时间早于等于的时间
	testStartTimeMaxFlag bool
}

func NewSearchTestReqBodyBuilder() *SearchTestReqBodyBuilder {
	builder := &SearchTestReqBodyBuilder{}
	return builder
}

// 投递 ID 列表，最多 100 个，默认查询全部投递
//
//示例值：7018467800193304840
func (builder *SearchTestReqBodyBuilder) ApplicationIdList(applicationIdList []string) *SearchTestReqBodyBuilder {
	builder.applicationIdList = applicationIdList
	builder.applicationIdListFlag = true
	return builder
}

// 笔试开始时间晚于等于的时间
//
//示例值：1608725989000
func (builder *SearchTestReqBodyBuilder) TestStartTimeMin(testStartTimeMin string) *SearchTestReqBodyBuilder {
	builder.testStartTimeMin = testStartTimeMin
	builder.testStartTimeMinFlag = true
	return builder
}

// 笔试开始时间早于等于的时间
//
//示例值：1608726989000
func (builder *SearchTestReqBodyBuilder) TestStartTimeMax(testStartTimeMax string) *SearchTestReqBodyBuilder {
	builder.testStartTimeMax = testStartTimeMax
	builder.testStartTimeMaxFlag = true
	return builder
}

func (builder *SearchTestReqBodyBuilder) Build() *SearchTestReqBody {
	req := &SearchTestReqBody{}
	if builder.applicationIdListFlag {
		req.ApplicationIdList = builder.applicationIdList
	}
	if builder.testStartTimeMinFlag {
		req.TestStartTimeMin = &builder.testStartTimeMin
	}
	if builder.testStartTimeMaxFlag {
		req.TestStartTimeMax = &builder.testStartTimeMax
	}
	return req
}

type SearchTestPathReqBodyBuilder struct {
	applicationIdList     []string
	applicationIdListFlag bool
	testStartTimeMin      string
	testStartTimeMinFlag  bool
	testStartTimeMax      string
	testStartTimeMaxFlag  bool
}

func NewSearchTestPathReqBodyBuilder() *SearchTestPathReqBodyBuilder {
	builder := &SearchTestPathReqBodyBuilder{}
	return builder
}

// 投递 ID 列表，最多 100 个，默认查询全部投递
//
// 示例值：7018467800193304840
func (builder *SearchTestPathReqBodyBuilder) ApplicationIdList(applicationIdList []string) *SearchTestPathReqBodyBuilder {
	builder.applicationIdList = applicationIdList
	builder.applicationIdListFlag = true
	return builder
}

// 笔试开始时间晚于等于的时间
//
// 示例值：1608725989000
func (builder *SearchTestPathReqBodyBuilder) TestStartTimeMin(testStartTimeMin string) *SearchTestPathReqBodyBuilder {
	builder.testStartTimeMin = testStartTimeMin
	builder.testStartTimeMinFlag = true
	return builder
}

// 笔试开始时间早于等于的时间
//
// 示例值：1608726989000
func (builder *SearchTestPathReqBodyBuilder) TestStartTimeMax(testStartTimeMax string) *SearchTestPathReqBodyBuilder {
	builder.testStartTimeMax = testStartTimeMax
	builder.testStartTimeMaxFlag = true
	return builder
}

func (builder *SearchTestPathReqBodyBuilder) Build() (*SearchTestReqBody, error) {
	req := &SearchTestReqBody{}
	if builder.applicationIdListFlag {
		req.ApplicationIdList = builder.applicationIdList
	}
	if builder.testStartTimeMinFlag {
		req.TestStartTimeMin = &builder.testStartTimeMin
	}
	if builder.testStartTimeMaxFlag {
		req.TestStartTimeMax = &builder.testStartTimeMax
	}
	return req, nil
}

type SearchTestReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchTestReqBody
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewSearchTestReqBuilder() *SearchTestReqBuilder {
	builder := &SearchTestReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *SearchTestReqBuilder) Limit(limit int) *SearchTestReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *SearchTestReqBuilder) PageToken(pageToken string) *SearchTestReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：10
func (builder *SearchTestReqBuilder) PageSize(pageSize int) *SearchTestReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *SearchTestReqBuilder) UserIdType(userIdType string) *SearchTestReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 批量获取人才在某投递流程中的笔试信息，如作答状态、笔试得分等。（目前仅支持获取 1w 条数据，若数据量较大，可通过控制 test_start_time 查询条件分批次获取全量数据）
func (builder *SearchTestReqBuilder) Body(body *SearchTestReqBody) *SearchTestReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchTestReqBuilder) Build() *SearchTestReq {
	req := &SearchTestReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type SearchTestReqBody struct {
	ApplicationIdList []string `json:"application_id_list,omitempty"` // 投递 ID 列表，最多 100 个，默认查询全部投递

	TestStartTimeMin *string `json:"test_start_time_min,omitempty"` // 笔试开始时间晚于等于的时间

	TestStartTimeMax *string `json:"test_start_time_max,omitempty"` // 笔试开始时间早于等于的时间
}

type SearchTestReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchTestReqBody `body:""`
	Limit  int                // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type SearchTestRespData struct {
	Items []*Test `json:"items,omitempty"` // 笔试列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type SearchTestResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchTestRespData `json:"data"` // 业务数据
}

func (resp *SearchTestResp) Success() bool {
	return resp.Code == 0
}

type ListTodoReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListTodoReqBuilder() *ListTodoReqBuilder {
	builder := &ListTodoReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListTodoReqBuilder) Limit(limit int) *ListTodoReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListTodoReqBuilder) PageToken(pageToken string) *ListTodoReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大100
//
// 示例值：100
func (builder *ListTodoReqBuilder) PageSize(pageSize string) *ListTodoReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID，当 token 为租户 token 时，必须传入该字段，当 token 为用户 token 时，不传该字段
//
// 示例值：ou_xxx
func (builder *ListTodoReqBuilder) UserId(userId string) *ListTodoReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListTodoReqBuilder) UserIdType(userIdType string) *ListTodoReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 待办类型
//
// 示例值：interview
func (builder *ListTodoReqBuilder) Type(type_ string) *ListTodoReqBuilder {
	builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_))
	return builder
}

func (builder *ListTodoReqBuilder) Build() *ListTodoReq {
	req := &ListTodoReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTodoReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListTodoRespData struct {
	Items []*Todo `json:"items,omitempty"` // 待办信息

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListTodoResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTodoRespData `json:"data"` // 业务数据
}

func (resp *ListTodoResp) Success() bool {
	return resp.Code == 0
}

type CreateTripartiteAgreementReqBuilder struct {
	apiReq                  *larkcore.ApiReq
	tripartiteAgreementInfo *TripartiteAgreementInfo
}

func NewCreateTripartiteAgreementReqBuilder() *CreateTripartiteAgreementReqBuilder {
	builder := &CreateTripartiteAgreementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *CreateTripartiteAgreementReqBuilder) TripartiteAgreementInfo(tripartiteAgreementInfo *TripartiteAgreementInfo) *CreateTripartiteAgreementReqBuilder {
	builder.tripartiteAgreementInfo = tripartiteAgreementInfo
	return builder
}

func (builder *CreateTripartiteAgreementReqBuilder) Build() *CreateTripartiteAgreementReq {
	req := &CreateTripartiteAgreementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.tripartiteAgreementInfo
	return req
}

type CreateTripartiteAgreementReq struct {
	apiReq                  *larkcore.ApiReq
	TripartiteAgreementInfo *TripartiteAgreementInfo `body:""`
}

type CreateTripartiteAgreementRespData struct {
	Id *string `json:"id,omitempty"` // 创建的三方协议的 id
}

type CreateTripartiteAgreementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateTripartiteAgreementRespData `json:"data"` // 业务数据
}

func (resp *CreateTripartiteAgreementResp) Success() bool {
	return resp.Code == 0
}

type DeleteTripartiteAgreementReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteTripartiteAgreementReqBuilder() *DeleteTripartiteAgreementReqBuilder {
	builder := &DeleteTripartiteAgreementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
//
// 示例值：
func (builder *DeleteTripartiteAgreementReqBuilder) TripartiteAgreementId(tripartiteAgreementId string) *DeleteTripartiteAgreementReqBuilder {
	builder.apiReq.PathParams.Set("tripartite_agreement_id", fmt.Sprint(tripartiteAgreementId))
	return builder
}

func (builder *DeleteTripartiteAgreementReqBuilder) Build() *DeleteTripartiteAgreementReq {
	req := &DeleteTripartiteAgreementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteTripartiteAgreementReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteTripartiteAgreementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteTripartiteAgreementResp) Success() bool {
	return resp.Code == 0
}

type ListTripartiteAgreementReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListTripartiteAgreementReqBuilder() *ListTripartiteAgreementReqBuilder {
	builder := &ListTripartiteAgreementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListTripartiteAgreementReqBuilder) Limit(limit int) *ListTripartiteAgreementReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：
func (builder *ListTripartiteAgreementReqBuilder) PageSize(pageSize int) *ListTripartiteAgreementReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：
func (builder *ListTripartiteAgreementReqBuilder) PageToken(pageToken string) *ListTripartiteAgreementReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 投递 ID，必填投递 id 与三方协议 ID 其中之一
//
// 示例值：6930815272790114324
func (builder *ListTripartiteAgreementReqBuilder) ApplicationId(applicationId string) *ListTripartiteAgreementReqBuilder {
	builder.apiReq.QueryParams.Set("application_id", fmt.Sprint(applicationId))
	return builder
}

// 三方协议 ID，必填投递 id 与三方协议 ID 其中之一
//
// 示例值：6930815272790114325
func (builder *ListTripartiteAgreementReqBuilder) TripartiteAgreementId(tripartiteAgreementId string) *ListTripartiteAgreementReqBuilder {
	builder.apiReq.QueryParams.Set("tripartite_agreement_id", fmt.Sprint(tripartiteAgreementId))
	return builder
}

func (builder *ListTripartiteAgreementReqBuilder) Build() *ListTripartiteAgreementReq {
	req := &ListTripartiteAgreementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListTripartiteAgreementReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListTripartiteAgreementRespData struct {
	Items []*TripartiteAgreementInfo `json:"items,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	HasMore *bool `json:"has_more,omitempty"` //
}

type ListTripartiteAgreementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListTripartiteAgreementRespData `json:"data"` // 业务数据
}

func (resp *ListTripartiteAgreementResp) Success() bool {
	return resp.Code == 0
}

type UpdateTripartiteAgreementReqBuilder struct {
	apiReq                  *larkcore.ApiReq
	tripartiteAgreementInfo *TripartiteAgreementInfo
}

func NewUpdateTripartiteAgreementReqBuilder() *UpdateTripartiteAgreementReqBuilder {
	builder := &UpdateTripartiteAgreementReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 三方协议的 id
//
// 示例值：7084008015948283905
func (builder *UpdateTripartiteAgreementReqBuilder) TripartiteAgreementId(tripartiteAgreementId string) *UpdateTripartiteAgreementReqBuilder {
	builder.apiReq.PathParams.Set("tripartite_agreement_id", fmt.Sprint(tripartiteAgreementId))
	return builder
}

//
func (builder *UpdateTripartiteAgreementReqBuilder) TripartiteAgreementInfo(tripartiteAgreementInfo *TripartiteAgreementInfo) *UpdateTripartiteAgreementReqBuilder {
	builder.tripartiteAgreementInfo = tripartiteAgreementInfo
	return builder
}

func (builder *UpdateTripartiteAgreementReqBuilder) Build() *UpdateTripartiteAgreementReq {
	req := &UpdateTripartiteAgreementReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.tripartiteAgreementInfo
	return req
}

type UpdateTripartiteAgreementReq struct {
	apiReq                  *larkcore.ApiReq
	TripartiteAgreementInfo *TripartiteAgreementInfo `body:""`
}

type UpdateTripartiteAgreementResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateTripartiteAgreementResp) Success() bool {
	return resp.Code == 0
}

type ListUserRoleReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListUserRoleReqBuilder() *ListUserRoleReqBuilder {
	builder := &ListUserRoleReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListUserRoleReqBuilder) Limit(limit int) *ListUserRoleReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListUserRoleReqBuilder) PageToken(pageToken string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListUserRoleReqBuilder) PageSize(pageSize int) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID
//
// 示例值：ou_xxxx
func (builder *ListUserRoleReqBuilder) UserId(userId string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 角色 ID
//
// 示例值：101
func (builder *ListUserRoleReqBuilder) RoleId(roleId string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("role_id", fmt.Sprint(roleId))
	return builder
}

// 最早更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListUserRoleReqBuilder) UpdateStartTime(updateStartTime string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间，毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListUserRoleReqBuilder) UpdateEndTime(updateEndTime string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListUserRoleReqBuilder) UserIdType(userIdType string) *ListUserRoleReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

func (builder *ListUserRoleReqBuilder) Build() *ListUserRoleReq {
	req := &ListUserRoleReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListUserRoleReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListUserRoleRespData struct {
	Items []*UserRole `json:"items,omitempty"` // 用户角色列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListUserRoleResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListUserRoleRespData `json:"data"` // 业务数据
}

func (resp *ListUserRoleResp) Success() bool {
	return resp.Code == 0
}

type ListWebsiteReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListWebsiteReqBuilder() *ListWebsiteReqBuilder {
	builder := &ListWebsiteReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListWebsiteReqBuilder) Limit(limit int) *ListWebsiteReqBuilder {
	builder.limit = limit
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListWebsiteReqBuilder) PageToken(pageToken string) *ListWebsiteReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListWebsiteReqBuilder) PageSize(pageSize int) *ListWebsiteReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

func (builder *ListWebsiteReqBuilder) Build() *ListWebsiteReq {
	req := &ListWebsiteReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListWebsiteReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListWebsiteRespData struct {
	Items []*Website `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListWebsiteResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListWebsiteRespData `json:"data"` // 业务数据
}

func (resp *ListWebsiteResp) Success() bool {
	return resp.Code == 0
}

type CreateWebsiteChannelReqBodyBuilder struct {
	channelName     string // 推广渠道名称
	channelNameFlag bool
}

func NewCreateWebsiteChannelReqBodyBuilder() *CreateWebsiteChannelReqBodyBuilder {
	builder := &CreateWebsiteChannelReqBodyBuilder{}
	return builder
}

// 推广渠道名称
//
//示例值：小爱侧推广渠道
func (builder *CreateWebsiteChannelReqBodyBuilder) ChannelName(channelName string) *CreateWebsiteChannelReqBodyBuilder {
	builder.channelName = channelName
	builder.channelNameFlag = true
	return builder
}

func (builder *CreateWebsiteChannelReqBodyBuilder) Build() *CreateWebsiteChannelReqBody {
	req := &CreateWebsiteChannelReqBody{}
	if builder.channelNameFlag {
		req.ChannelName = &builder.channelName
	}
	return req
}

type CreateWebsiteChannelPathReqBodyBuilder struct {
	channelName     string
	channelNameFlag bool
}

func NewCreateWebsiteChannelPathReqBodyBuilder() *CreateWebsiteChannelPathReqBodyBuilder {
	builder := &CreateWebsiteChannelPathReqBodyBuilder{}
	return builder
}

// 推广渠道名称
//
// 示例值：小爱侧推广渠道
func (builder *CreateWebsiteChannelPathReqBodyBuilder) ChannelName(channelName string) *CreateWebsiteChannelPathReqBodyBuilder {
	builder.channelName = channelName
	builder.channelNameFlag = true
	return builder
}

func (builder *CreateWebsiteChannelPathReqBodyBuilder) Build() (*CreateWebsiteChannelReqBody, error) {
	req := &CreateWebsiteChannelReqBody{}
	if builder.channelNameFlag {
		req.ChannelName = &builder.channelName
	}
	return req, nil
}

type CreateWebsiteChannelReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateWebsiteChannelReqBody
}

func NewCreateWebsiteChannelReqBuilder() *CreateWebsiteChannelReqBuilder {
	builder := &CreateWebsiteChannelReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：1618209327096
func (builder *CreateWebsiteChannelReqBuilder) WebsiteId(websiteId string) *CreateWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 根据官网 ID 和推广渠道名称创建官网推广渠道
func (builder *CreateWebsiteChannelReqBuilder) Body(body *CreateWebsiteChannelReqBody) *CreateWebsiteChannelReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateWebsiteChannelReqBuilder) Build() *CreateWebsiteChannelReq {
	req := &CreateWebsiteChannelReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type CreateWebsiteChannelReqBody struct {
	ChannelName *string `json:"channel_name,omitempty"` // 推广渠道名称
}

type CreateWebsiteChannelReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateWebsiteChannelReqBody `body:""`
}

type CreateWebsiteChannelRespData struct {
	Id *string `json:"id,omitempty"` // 推广渠道 ID

	Name *string `json:"name,omitempty"` // 推广渠道名称

	Link *string `json:"link,omitempty"` // 推广渠道链接

	Code *string `json:"code,omitempty"` // 推广渠道推广码
}

type CreateWebsiteChannelResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateWebsiteChannelRespData `json:"data"` // 业务数据
}

func (resp *CreateWebsiteChannelResp) Success() bool {
	return resp.Code == 0
}

type DeleteWebsiteChannelReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteWebsiteChannelReqBuilder() *DeleteWebsiteChannelReqBuilder {
	builder := &DeleteWebsiteChannelReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：1618209327096
func (builder *DeleteWebsiteChannelReqBuilder) WebsiteId(websiteId string) *DeleteWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 推广渠道 ID
//
// 示例值：7085989097067563300
func (builder *DeleteWebsiteChannelReqBuilder) ChannelId(channelId string) *DeleteWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("channel_id", fmt.Sprint(channelId))
	return builder
}

func (builder *DeleteWebsiteChannelReqBuilder) Build() *DeleteWebsiteChannelReq {
	req := &DeleteWebsiteChannelReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteWebsiteChannelReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteWebsiteChannelResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteWebsiteChannelResp) Success() bool {
	return resp.Code == 0
}

type ListWebsiteChannelReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListWebsiteChannelReqBuilder() *ListWebsiteChannelReqBuilder {
	builder := &ListWebsiteChannelReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：1618209327096
func (builder *ListWebsiteChannelReqBuilder) WebsiteId(websiteId string) *ListWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 每页获取记录最大数量，最大100
//
// 示例值：100
func (builder *ListWebsiteChannelReqBuilder) PageSize(pageSize string) *ListWebsiteChannelReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 页码标识，获取第一页传空，每次查询会返回下一页的 page_token
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1NTUyMjM2NzIsImlkIjpudWxsfQ
func (builder *ListWebsiteChannelReqBuilder) PageToken(pageToken string) *ListWebsiteChannelReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

func (builder *ListWebsiteChannelReqBuilder) Build() *ListWebsiteChannelReq {
	req := &ListWebsiteChannelReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListWebsiteChannelReq struct {
	apiReq *larkcore.ApiReq
}

type ListWebsiteChannelRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有更多数据

	PageToken *string `json:"page_token,omitempty"` // 分页 token

	WebsiteChannelList []*WebsiteChannelInfo `json:"website_channel_list,omitempty"` // 官网推广渠道列表
}

type ListWebsiteChannelResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListWebsiteChannelRespData `json:"data"` // 业务数据
}

func (resp *ListWebsiteChannelResp) Success() bool {
	return resp.Code == 0
}

type UpdateWebsiteChannelReqBodyBuilder struct {
	channelName     string // 推广渠道名称
	channelNameFlag bool
}

func NewUpdateWebsiteChannelReqBodyBuilder() *UpdateWebsiteChannelReqBodyBuilder {
	builder := &UpdateWebsiteChannelReqBodyBuilder{}
	return builder
}

// 推广渠道名称
//
//示例值：小爱侧推广渠道
func (builder *UpdateWebsiteChannelReqBodyBuilder) ChannelName(channelName string) *UpdateWebsiteChannelReqBodyBuilder {
	builder.channelName = channelName
	builder.channelNameFlag = true
	return builder
}

func (builder *UpdateWebsiteChannelReqBodyBuilder) Build() *UpdateWebsiteChannelReqBody {
	req := &UpdateWebsiteChannelReqBody{}
	if builder.channelNameFlag {
		req.ChannelName = &builder.channelName
	}
	return req
}

type UpdateWebsiteChannelPathReqBodyBuilder struct {
	channelName     string
	channelNameFlag bool
}

func NewUpdateWebsiteChannelPathReqBodyBuilder() *UpdateWebsiteChannelPathReqBodyBuilder {
	builder := &UpdateWebsiteChannelPathReqBodyBuilder{}
	return builder
}

// 推广渠道名称
//
// 示例值：小爱侧推广渠道
func (builder *UpdateWebsiteChannelPathReqBodyBuilder) ChannelName(channelName string) *UpdateWebsiteChannelPathReqBodyBuilder {
	builder.channelName = channelName
	builder.channelNameFlag = true
	return builder
}

func (builder *UpdateWebsiteChannelPathReqBodyBuilder) Build() (*UpdateWebsiteChannelReqBody, error) {
	req := &UpdateWebsiteChannelReqBody{}
	if builder.channelNameFlag {
		req.ChannelName = &builder.channelName
	}
	return req, nil
}

type UpdateWebsiteChannelReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateWebsiteChannelReqBody
}

func NewUpdateWebsiteChannelReqBuilder() *UpdateWebsiteChannelReqBuilder {
	builder := &UpdateWebsiteChannelReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：1618209327096
func (builder *UpdateWebsiteChannelReqBuilder) WebsiteId(websiteId string) *UpdateWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 推广渠道 ID
//
// 示例值：7085989097067563300
func (builder *UpdateWebsiteChannelReqBuilder) ChannelId(channelId string) *UpdateWebsiteChannelReqBuilder {
	builder.apiReq.PathParams.Set("channel_id", fmt.Sprint(channelId))
	return builder
}

// 根据官网 ID 和推广渠道 ID 更改推广渠道名称
func (builder *UpdateWebsiteChannelReqBuilder) Body(body *UpdateWebsiteChannelReqBody) *UpdateWebsiteChannelReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateWebsiteChannelReqBuilder) Build() *UpdateWebsiteChannelReq {
	req := &UpdateWebsiteChannelReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateWebsiteChannelReqBody struct {
	ChannelName *string `json:"channel_name,omitempty"` // 推广渠道名称
}

type UpdateWebsiteChannelReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateWebsiteChannelReqBody `body:""`
}

type UpdateWebsiteChannelRespData struct {
	Id *string `json:"id,omitempty"` // 推广渠道 ID

	Name *string `json:"name,omitempty"` // 推广渠道名称

	Link *string `json:"link,omitempty"` // 推广渠道链接

	Code *string `json:"code,omitempty"` // 推广渠道推广码
}

type UpdateWebsiteChannelResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateWebsiteChannelRespData `json:"data"` // 业务数据
}

func (resp *UpdateWebsiteChannelResp) Success() bool {
	return resp.Code == 0
}

type CreateByAttachmentWebsiteDeliveryReqBuilder struct {
	apiReq                    *larkcore.ApiReq
	websiteDeliveryAttachment *WebsiteDeliveryAttachment
}

func NewCreateByAttachmentWebsiteDeliveryReqBuilder() *CreateByAttachmentWebsiteDeliveryReqBuilder {
	builder := &CreateByAttachmentWebsiteDeliveryReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：7047318856652261676
func (builder *CreateByAttachmentWebsiteDeliveryReqBuilder) WebsiteId(websiteId string) *CreateByAttachmentWebsiteDeliveryReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 根据简历附件解析创建官网投递
func (builder *CreateByAttachmentWebsiteDeliveryReqBuilder) WebsiteDeliveryAttachment(websiteDeliveryAttachment *WebsiteDeliveryAttachment) *CreateByAttachmentWebsiteDeliveryReqBuilder {
	builder.websiteDeliveryAttachment = websiteDeliveryAttachment
	return builder
}

func (builder *CreateByAttachmentWebsiteDeliveryReqBuilder) Build() *CreateByAttachmentWebsiteDeliveryReq {
	req := &CreateByAttachmentWebsiteDeliveryReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.websiteDeliveryAttachment
	return req
}

type CreateByAttachmentWebsiteDeliveryReq struct {
	apiReq                    *larkcore.ApiReq
	WebsiteDeliveryAttachment *WebsiteDeliveryAttachment `body:""`
}

type CreateByAttachmentWebsiteDeliveryRespData struct {
	TaskId *string `json:"task_id,omitempty"` // 异步任务 ID
}

type CreateByAttachmentWebsiteDeliveryResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateByAttachmentWebsiteDeliveryRespData `json:"data"` // 业务数据
}

func (resp *CreateByAttachmentWebsiteDeliveryResp) Success() bool {
	return resp.Code == 0
}

type CreateByResumeWebsiteDeliveryReqBuilder struct {
	apiReq          *larkcore.ApiReq
	websiteDelivery *WebsiteDelivery
}

func NewCreateByResumeWebsiteDeliveryReqBuilder() *CreateByResumeWebsiteDeliveryReqBuilder {
	builder := &CreateByResumeWebsiteDeliveryReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：1618209327096
func (builder *CreateByResumeWebsiteDeliveryReqBuilder) WebsiteId(websiteId string) *CreateByResumeWebsiteDeliveryReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *CreateByResumeWebsiteDeliveryReqBuilder) UserIdType(userIdType string) *CreateByResumeWebsiteDeliveryReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 创建官网投递。
func (builder *CreateByResumeWebsiteDeliveryReqBuilder) WebsiteDelivery(websiteDelivery *WebsiteDelivery) *CreateByResumeWebsiteDeliveryReqBuilder {
	builder.websiteDelivery = websiteDelivery
	return builder
}

func (builder *CreateByResumeWebsiteDeliveryReqBuilder) Build() *CreateByResumeWebsiteDeliveryReq {
	req := &CreateByResumeWebsiteDeliveryReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.websiteDelivery
	return req
}

type CreateByResumeWebsiteDeliveryReq struct {
	apiReq          *larkcore.ApiReq
	WebsiteDelivery *WebsiteDelivery `body:""`
}

type CreateByResumeWebsiteDeliveryRespData struct {
	Delivery *WebsiteDeliveryDto `json:"delivery,omitempty"` // 官网投递信息
}

type CreateByResumeWebsiteDeliveryResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateByResumeWebsiteDeliveryRespData `json:"data"` // 业务数据
}

func (resp *CreateByResumeWebsiteDeliveryResp) Success() bool {
	return resp.Code == 0
}

type GetWebsiteDeliveryTaskReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetWebsiteDeliveryTaskReqBuilder() *GetWebsiteDeliveryTaskReqBuilder {
	builder := &GetWebsiteDeliveryTaskReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：7047318856652261676
func (builder *GetWebsiteDeliveryTaskReqBuilder) WebsiteId(websiteId string) *GetWebsiteDeliveryTaskReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 投递任务 ID
//
// 示例值：f1c2a0f138ec492d99d7ab73594158ad
func (builder *GetWebsiteDeliveryTaskReqBuilder) DeliveryTaskId(deliveryTaskId string) *GetWebsiteDeliveryTaskReqBuilder {
	builder.apiReq.PathParams.Set("delivery_task_id", fmt.Sprint(deliveryTaskId))
	return builder
}

func (builder *GetWebsiteDeliveryTaskReqBuilder) Build() *GetWebsiteDeliveryTaskReq {
	req := &GetWebsiteDeliveryTaskReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type GetWebsiteDeliveryTaskReq struct {
	apiReq *larkcore.ApiReq
}

type GetWebsiteDeliveryTaskRespData struct {
	Status *int `json:"status,omitempty"` // 任务状态

	Delivery *WebsiteDeliveryDto `json:"delivery,omitempty"` // 官网投递信息

	StatusMsg *string `json:"status_msg,omitempty"` // 状态信息，仅 status 为 3 时返回

	ExtraInfo *string `json:"extra_info,omitempty"` // 附加信息，当前返回投递 ID，仅当 status 为 3 且 status_msg 标识为重复投递时，将返回重复投递的 ID
}

type GetWebsiteDeliveryTaskResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetWebsiteDeliveryTaskRespData `json:"data"` // 业务数据
}

func (resp *GetWebsiteDeliveryTaskResp) Success() bool {
	return resp.Code == 0
}

type GetWebsiteJobPostReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetWebsiteJobPostReqBuilder() *GetWebsiteJobPostReqBuilder {
	builder := &GetWebsiteJobPostReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID
//
// 示例值：111
func (builder *GetWebsiteJobPostReqBuilder) WebsiteId(websiteId string) *GetWebsiteJobPostReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 职位广告 ID
//
// 示例值：111
func (builder *GetWebsiteJobPostReqBuilder) JobPostId(jobPostId string) *GetWebsiteJobPostReqBuilder {
	builder.apiReq.PathParams.Set("job_post_id", fmt.Sprint(jobPostId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetWebsiteJobPostReqBuilder) UserIdType(userIdType string) *GetWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *GetWebsiteJobPostReqBuilder) DepartmentIdType(departmentIdType string) *GetWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *GetWebsiteJobPostReqBuilder) JobLevelIdType(jobLevelIdType string) *GetWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

func (builder *GetWebsiteJobPostReqBuilder) Build() *GetWebsiteJobPostReq {
	req := &GetWebsiteJobPostReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetWebsiteJobPostReq struct {
	apiReq *larkcore.ApiReq
}

type GetWebsiteJobPostRespData struct {
	JobPost *WebsiteJobPost `json:"job_post,omitempty"` // 职位广告信息
}

type GetWebsiteJobPostResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetWebsiteJobPostRespData `json:"data"` // 业务数据
}

func (resp *GetWebsiteJobPostResp) Success() bool {
	return resp.Code == 0
}

type ListWebsiteJobPostReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListWebsiteJobPostReqBuilder() *ListWebsiteJobPostReqBuilder {
	builder := &ListWebsiteJobPostReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListWebsiteJobPostReqBuilder) Limit(limit int) *ListWebsiteJobPostReqBuilder {
	builder.limit = limit
	return builder
}

// 官网 ID
//
// 示例值：111
func (builder *ListWebsiteJobPostReqBuilder) WebsiteId(websiteId string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *ListWebsiteJobPostReqBuilder) PageToken(pageToken string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *ListWebsiteJobPostReqBuilder) PageSize(pageSize int) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListWebsiteJobPostReqBuilder) UserIdType(userIdType string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *ListWebsiteJobPostReqBuilder) DepartmentIdType(departmentIdType string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *ListWebsiteJobPostReqBuilder) JobLevelIdType(jobLevelIdType string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 最早更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListWebsiteJobPostReqBuilder) UpdateStartTime(updateStartTime string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("update_start_time", fmt.Sprint(updateStartTime))
	return builder
}

// 最晚更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListWebsiteJobPostReqBuilder) UpdateEndTime(updateEndTime string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("update_end_time", fmt.Sprint(updateEndTime))
	return builder
}

// 最早创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListWebsiteJobPostReqBuilder) CreateStartTime(createStartTime string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("create_start_time", fmt.Sprint(createStartTime))
	return builder
}

// 最晚创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *ListWebsiteJobPostReqBuilder) CreateEndTime(createEndTime string) *ListWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("create_end_time", fmt.Sprint(createEndTime))
	return builder
}

func (builder *ListWebsiteJobPostReqBuilder) Build() *ListWebsiteJobPostReq {
	req := &ListWebsiteJobPostReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListWebsiteJobPostReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListWebsiteJobPostRespData struct {
	Items []*WebsiteJobPost `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type ListWebsiteJobPostResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListWebsiteJobPostRespData `json:"data"` // 业务数据
}

func (resp *ListWebsiteJobPostResp) Success() bool {
	return resp.Code == 0
}

type SearchWebsiteJobPostReqBodyBuilder struct {
	jobTypeIdList     []string // 职位类型列表
	jobTypeIdListFlag bool

	cityCodeList     []string // 职位城市列表
	cityCodeListFlag bool

	jobFunctionIdList     []string // 职能分类列表
	jobFunctionIdListFlag bool

	subjectIdList     []string // 职位项目列表
	subjectIdListFlag bool

	keyword     string // 关键字
	keywordFlag bool

	updateStartTime     string // 最早更新时间,毫秒级时间戳
	updateStartTimeFlag bool

	updateEndTime     string // 最晚更新时间,毫秒级时间戳
	updateEndTimeFlag bool

	createStartTime     string // 最早创建时间,毫秒级时间戳
	createStartTimeFlag bool

	createEndTime     string // 最晚创建时间,毫秒级时间戳
	createEndTimeFlag bool
}

func NewSearchWebsiteJobPostReqBodyBuilder() *SearchWebsiteJobPostReqBodyBuilder {
	builder := &SearchWebsiteJobPostReqBodyBuilder{}
	return builder
}

// 职位类型列表
//
//示例值：6916472453069883661
func (builder *SearchWebsiteJobPostReqBodyBuilder) JobTypeIdList(jobTypeIdList []string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.jobTypeIdList = jobTypeIdList
	builder.jobTypeIdListFlag = true
	return builder
}

// 职位城市列表
//
//示例值：CT_1
func (builder *SearchWebsiteJobPostReqBodyBuilder) CityCodeList(cityCodeList []string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.cityCodeList = cityCodeList
	builder.cityCodeListFlag = true
	return builder
}

// 职能分类列表
//
//示例值：6916472453069883661
func (builder *SearchWebsiteJobPostReqBodyBuilder) JobFunctionIdList(jobFunctionIdList []string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.jobFunctionIdList = jobFunctionIdList
	builder.jobFunctionIdListFlag = true
	return builder
}

// 职位项目列表
//
//示例值：6916472453069883661
func (builder *SearchWebsiteJobPostReqBodyBuilder) SubjectIdList(subjectIdList []string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.subjectIdList = subjectIdList
	builder.subjectIdListFlag = true
	return builder
}

// 关键字
//
//示例值：HR
func (builder *SearchWebsiteJobPostReqBodyBuilder) Keyword(keyword string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 最早更新时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *SearchWebsiteJobPostReqBodyBuilder) UpdateStartTime(updateStartTime string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.updateStartTime = updateStartTime
	builder.updateStartTimeFlag = true
	return builder
}

// 最晚更新时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *SearchWebsiteJobPostReqBodyBuilder) UpdateEndTime(updateEndTime string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.updateEndTime = updateEndTime
	builder.updateEndTimeFlag = true
	return builder
}

// 最早创建时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *SearchWebsiteJobPostReqBodyBuilder) CreateStartTime(createStartTime string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.createStartTime = createStartTime
	builder.createStartTimeFlag = true
	return builder
}

// 最晚创建时间,毫秒级时间戳
//
//示例值：1618500278663
func (builder *SearchWebsiteJobPostReqBodyBuilder) CreateEndTime(createEndTime string) *SearchWebsiteJobPostReqBodyBuilder {
	builder.createEndTime = createEndTime
	builder.createEndTimeFlag = true
	return builder
}

func (builder *SearchWebsiteJobPostReqBodyBuilder) Build() *SearchWebsiteJobPostReqBody {
	req := &SearchWebsiteJobPostReqBody{}
	if builder.jobTypeIdListFlag {
		req.JobTypeIdList = builder.jobTypeIdList
	}
	if builder.cityCodeListFlag {
		req.CityCodeList = builder.cityCodeList
	}
	if builder.jobFunctionIdListFlag {
		req.JobFunctionIdList = builder.jobFunctionIdList
	}
	if builder.subjectIdListFlag {
		req.SubjectIdList = builder.subjectIdList
	}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword
	}
	if builder.updateStartTimeFlag {
		req.UpdateStartTime = &builder.updateStartTime
	}
	if builder.updateEndTimeFlag {
		req.UpdateEndTime = &builder.updateEndTime
	}
	if builder.createStartTimeFlag {
		req.CreateStartTime = &builder.createStartTime
	}
	if builder.createEndTimeFlag {
		req.CreateEndTime = &builder.createEndTime
	}
	return req
}

type SearchWebsiteJobPostPathReqBodyBuilder struct {
	jobTypeIdList         []string
	jobTypeIdListFlag     bool
	cityCodeList          []string
	cityCodeListFlag      bool
	jobFunctionIdList     []string
	jobFunctionIdListFlag bool
	subjectIdList         []string
	subjectIdListFlag     bool
	keyword               string
	keywordFlag           bool
	updateStartTime       string
	updateStartTimeFlag   bool
	updateEndTime         string
	updateEndTimeFlag     bool
	createStartTime       string
	createStartTimeFlag   bool
	createEndTime         string
	createEndTimeFlag     bool
}

func NewSearchWebsiteJobPostPathReqBodyBuilder() *SearchWebsiteJobPostPathReqBodyBuilder {
	builder := &SearchWebsiteJobPostPathReqBodyBuilder{}
	return builder
}

// 职位类型列表
//
// 示例值：6916472453069883661
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) JobTypeIdList(jobTypeIdList []string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.jobTypeIdList = jobTypeIdList
	builder.jobTypeIdListFlag = true
	return builder
}

// 职位城市列表
//
// 示例值：CT_1
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) CityCodeList(cityCodeList []string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.cityCodeList = cityCodeList
	builder.cityCodeListFlag = true
	return builder
}

// 职能分类列表
//
// 示例值：6916472453069883661
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) JobFunctionIdList(jobFunctionIdList []string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.jobFunctionIdList = jobFunctionIdList
	builder.jobFunctionIdListFlag = true
	return builder
}

// 职位项目列表
//
// 示例值：6916472453069883661
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) SubjectIdList(subjectIdList []string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.subjectIdList = subjectIdList
	builder.subjectIdListFlag = true
	return builder
}

// 关键字
//
// 示例值：HR
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) Keyword(keyword string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 最早更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) UpdateStartTime(updateStartTime string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.updateStartTime = updateStartTime
	builder.updateStartTimeFlag = true
	return builder
}

// 最晚更新时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) UpdateEndTime(updateEndTime string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.updateEndTime = updateEndTime
	builder.updateEndTimeFlag = true
	return builder
}

// 最早创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) CreateStartTime(createStartTime string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.createStartTime = createStartTime
	builder.createStartTimeFlag = true
	return builder
}

// 最晚创建时间,毫秒级时间戳
//
// 示例值：1618500278663
func (builder *SearchWebsiteJobPostPathReqBodyBuilder) CreateEndTime(createEndTime string) *SearchWebsiteJobPostPathReqBodyBuilder {
	builder.createEndTime = createEndTime
	builder.createEndTimeFlag = true
	return builder
}

func (builder *SearchWebsiteJobPostPathReqBodyBuilder) Build() (*SearchWebsiteJobPostReqBody, error) {
	req := &SearchWebsiteJobPostReqBody{}
	if builder.jobTypeIdListFlag {
		req.JobTypeIdList = builder.jobTypeIdList
	}
	if builder.cityCodeListFlag {
		req.CityCodeList = builder.cityCodeList
	}
	if builder.jobFunctionIdListFlag {
		req.JobFunctionIdList = builder.jobFunctionIdList
	}
	if builder.subjectIdListFlag {
		req.SubjectIdList = builder.subjectIdList
	}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword
	}
	if builder.updateStartTimeFlag {
		req.UpdateStartTime = &builder.updateStartTime
	}
	if builder.updateEndTimeFlag {
		req.UpdateEndTime = &builder.updateEndTime
	}
	if builder.createStartTimeFlag {
		req.CreateStartTime = &builder.createStartTime
	}
	if builder.createEndTimeFlag {
		req.CreateEndTime = &builder.createEndTime
	}
	return req, nil
}

type SearchWebsiteJobPostReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *SearchWebsiteJobPostReqBody
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewSearchWebsiteJobPostReqBuilder() *SearchWebsiteJobPostReqBuilder {
	builder := &SearchWebsiteJobPostReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *SearchWebsiteJobPostReqBuilder) Limit(limit int) *SearchWebsiteJobPostReqBuilder {
	builder.limit = limit
	return builder
}

// 官网 ID
//
// 示例值：111
func (builder *SearchWebsiteJobPostReqBuilder) WebsiteId(websiteId string) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 下一页页码
//
// 示例值：eyJvZmZzZXQiOjEwLCJ0aW1lc3RhbXAiOjE2Mjc1NTUyMjM2NzIsImlkIjpudWxsfQ==
func (builder *SearchWebsiteJobPostReqBuilder) PageToken(pageToken string) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 每页获取记录数量，最大10
//
// 示例值：10
func (builder *SearchWebsiteJobPostReqBuilder) PageSize(pageSize int) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *SearchWebsiteJobPostReqBuilder) UserIdType(userIdType string) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门 ID 的类型
//
// 示例值：
func (builder *SearchWebsiteJobPostReqBuilder) DepartmentIdType(departmentIdType string) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 此次调用中使用的「职级 ID」的类型
//
// 示例值：
func (builder *SearchWebsiteJobPostReqBuilder) JobLevelIdType(jobLevelIdType string) *SearchWebsiteJobPostReqBuilder {
	builder.apiReq.QueryParams.Set("job_level_id_type", fmt.Sprint(jobLevelIdType))
	return builder
}

// 搜索自定义官网下的职位列表
func (builder *SearchWebsiteJobPostReqBuilder) Body(body *SearchWebsiteJobPostReqBody) *SearchWebsiteJobPostReqBuilder {
	builder.body = body
	return builder
}

func (builder *SearchWebsiteJobPostReqBuilder) Build() *SearchWebsiteJobPostReq {
	req := &SearchWebsiteJobPostReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type SearchWebsiteJobPostReqBody struct {
	JobTypeIdList []string `json:"job_type_id_list,omitempty"` // 职位类型列表

	CityCodeList []string `json:"city_code_list,omitempty"` // 职位城市列表

	JobFunctionIdList []string `json:"job_function_id_list,omitempty"` // 职能分类列表

	SubjectIdList []string `json:"subject_id_list,omitempty"` // 职位项目列表

	Keyword *string `json:"keyword,omitempty"` // 关键字

	UpdateStartTime *string `json:"update_start_time,omitempty"` // 最早更新时间,毫秒级时间戳

	UpdateEndTime *string `json:"update_end_time,omitempty"` // 最晚更新时间,毫秒级时间戳

	CreateStartTime *string `json:"create_start_time,omitempty"` // 最早创建时间,毫秒级时间戳

	CreateEndTime *string `json:"create_end_time,omitempty"` // 最晚创建时间,毫秒级时间戳
}

type SearchWebsiteJobPostReq struct {
	apiReq *larkcore.ApiReq
	Body   *SearchWebsiteJobPostReqBody `body:""`
	Limit  int                          // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type SearchWebsiteJobPostRespData struct {
	Items []*WebsiteJobPost `json:"items,omitempty"` // 列表

	HasMore *bool `json:"has_more,omitempty"` // 是否还有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页页码
}

type SearchWebsiteJobPostResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *SearchWebsiteJobPostRespData `json:"data"` // 业务数据
}

func (resp *SearchWebsiteJobPostResp) Success() bool {
	return resp.Code == 0
}

type CreateWebsiteSiteUserReqBuilder struct {
	apiReq      *larkcore.ApiReq
	websiteUser *WebsiteUser
}

func NewCreateWebsiteSiteUserReqBuilder() *CreateWebsiteSiteUserReqBuilder {
	builder := &CreateWebsiteSiteUserReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 官网 ID，可从「获取官网自定义列表」获取
//
// 示例值：1618209327096
func (builder *CreateWebsiteSiteUserReqBuilder) WebsiteId(websiteId string) *CreateWebsiteSiteUserReqBuilder {
	builder.apiReq.PathParams.Set("website_id", fmt.Sprint(websiteId))
	return builder
}

// 创建官网用户
func (builder *CreateWebsiteSiteUserReqBuilder) WebsiteUser(websiteUser *WebsiteUser) *CreateWebsiteSiteUserReqBuilder {
	builder.websiteUser = websiteUser
	return builder
}

func (builder *CreateWebsiteSiteUserReqBuilder) Build() *CreateWebsiteSiteUserReq {
	req := &CreateWebsiteSiteUserReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.websiteUser
	return req
}

type CreateWebsiteSiteUserReq struct {
	apiReq      *larkcore.ApiReq
	WebsiteUser *WebsiteUser `body:""`
}

type CreateWebsiteSiteUserRespData struct {
	SiteUser *WebsiteUser `json:"site_user,omitempty"` // 官网用户信息
}

type CreateWebsiteSiteUserResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateWebsiteSiteUserRespData `json:"data"` // 业务数据
}

func (resp *CreateWebsiteSiteUserResp) Success() bool {
	return resp.Code == 0
}

type P2ApplicationDeletedV1Data struct {
	ApplicationIds []string `json:"application_ids,omitempty"` // 投递 ID 列表
}

type P2ApplicationDeletedV1 struct {
	*larkevent.EventV2Base                             // 事件基础数据
	*larkevent.EventReq                                // 请求原生数据
	Event                  *P2ApplicationDeletedV1Data `json:"event"` // 事件内容
}

func (m *P2ApplicationDeletedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2ApplicationStageChangedV1Data struct {
	ApplicationId *string `json:"application_id,omitempty"` //

	OriginStageId *string `json:"origin_stage_id,omitempty"` //

	TargetStageId *string `json:"target_stage_id,omitempty"` //

	UpdateTime *int64 `json:"update_time,omitempty"` //
}

type P2ApplicationStageChangedV1 struct {
	*larkevent.EventV2Base                                  // 事件基础数据
	*larkevent.EventReq                                     // 请求原生数据
	Event                  *P2ApplicationStageChangedV1Data `json:"event"` // 事件内容
}

func (m *P2ApplicationStageChangedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EcoAccountCreatedV1Data struct {
	Scope *int `json:"scope,omitempty"` // 账号类型

	AccountId *string `json:"account_id,omitempty"` // 账号 ID，招聘系统内唯一

	AccountName *string `json:"account_name,omitempty"` // 账号名称

	UsageList []int `json:"usage_list,omitempty"` // 账号适用范围，1-社招，2-校招

	CustomFieldList []*EcoAccountCustomFieldEventData `json:"custom_field_list,omitempty"` // 自定义字段键值对
}

type P2EcoAccountCreatedV1 struct {
	*larkevent.EventV2Base                            // 事件基础数据
	*larkevent.EventReq                               // 请求原生数据
	Event                  *P2EcoAccountCreatedV1Data `json:"event"` // 事件内容
}

func (m *P2EcoAccountCreatedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EcoBackgroundCheckCanceledV1Data struct {
	BackgroundCheckId *string `json:"background_check_id,omitempty"` // 背调 ID，招聘系统内唯一

	TerminationReason *string `json:"termination_reason,omitempty"` // 终止原因
}

type P2EcoBackgroundCheckCanceledV1 struct {
	*larkevent.EventV2Base                                     // 事件基础数据
	*larkevent.EventReq                                        // 请求原生数据
	Event                  *P2EcoBackgroundCheckCanceledV1Data `json:"event"` // 事件内容
}

func (m *P2EcoBackgroundCheckCanceledV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EcoBackgroundCheckCreatedV1Data struct {
	BackgroundCheckId *string `json:"background_check_id,omitempty"` // 背调 ID，招聘系统内唯一

	AccountId *string `json:"account_id,omitempty"` // 账号 ID，招聘系统内唯一

	PackageId *string `json:"package_id,omitempty"` // 套餐 ID

	AdditionalItemIdList []string `json:"additional_item_id_list,omitempty"` // 附件调查项 ID 列表

	Comment *string `json:"comment,omitempty"` // 备注

	CandidateInfo *EcoBackgroundCheckCreateEventCandidateInfo `json:"candidate_info,omitempty"` // 候选人信息

	ClientContactInfo *EcoBackgroundCheckCreateEventContactInfo `json:"client_contact_info,omitempty"` // 联系人（委托人）信息

	CustomFieldList []*EcoBackgroundCheckCreateEventCustomKv `json:"custom_field_list,omitempty"` // 自定义字段键值对
}

type P2EcoBackgroundCheckCreatedV1 struct {
	*larkevent.EventV2Base                                    // 事件基础数据
	*larkevent.EventReq                                       // 请求原生数据
	Event                  *P2EcoBackgroundCheckCreatedV1Data `json:"event"` // 事件内容
}

func (m *P2EcoBackgroundCheckCreatedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EcoExamCreatedV1Data struct {
	ExamId *string `json:"exam_id,omitempty"` // 笔试 ID，招聘系统内唯一

	AccountId *string `json:"account_id,omitempty"` // 账号 ID，招聘系统内唯一

	PaperId *string `json:"paper_id,omitempty"` // 试卷 ID

	CandidateInfo *EcoExamCreateEventCandidateInfo `json:"candidate_info,omitempty"` // 候选人信息
}

type P2EcoExamCreatedV1 struct {
	*larkevent.EventV2Base                         // 事件基础数据
	*larkevent.EventReq                            // 请求原生数据
	Event                  *P2EcoExamCreatedV1Data `json:"event"` // 事件内容
}

func (m *P2EcoExamCreatedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EhrImportTaskImportedV1Data struct {
	TaskId *string `json:"task_id,omitempty"` // 导入任务 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	EhrDepartmentId *string `json:"ehr_department_id,omitempty"` // 导入部门 ID

	EhrRequirementId *string `json:"ehr_requirement_id,omitempty"` // 招聘需求 ID

	OperatorId *string `json:"operator_id,omitempty"` // 操作人的飞书招聘 user_id

	OperatorUserId *UserId `json:"operator_user_id,omitempty"` // 操作人的飞书 user_id

	EhrDepartment *DepartmentId `json:"ehr_department,omitempty"` // 部门ID
}

type P2EhrImportTaskImportedV1 struct {
	*larkevent.EventV2Base                                // 事件基础数据
	*larkevent.EventReq                                   // 请求原生数据
	Event                  *P2EhrImportTaskImportedV1Data `json:"event"` // 事件内容
}

func (m *P2EhrImportTaskImportedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2EhrImportTaskForInternshipOfferImportedV1Data struct {
	TaskId *string `json:"task_id,omitempty"` // 导入任务 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	OfferId *string `json:"offer_id,omitempty"` // Offer ID

	PreOnboardId *string `json:"pre_onboard_id,omitempty"` // 实习 ID

	EhrDepartmentId *string `json:"ehr_department_id,omitempty"` // 导入部门 ID

	OperatorId *string `json:"operator_id,omitempty"` // 操作人的飞书招聘 user_id

	OperatorUserId *UserId `json:"operator_user_id,omitempty"` // 操作人的飞书 user_id

	EhrDepartment *DepartmentId `json:"ehr_department,omitempty"` // 部门ID
}

type P2EhrImportTaskForInternshipOfferImportedV1 struct {
	*larkevent.EventV2Base                                                  // 事件基础数据
	*larkevent.EventReq                                                     // 请求原生数据
	Event                  *P2EhrImportTaskForInternshipOfferImportedV1Data `json:"event"` // 事件内容
}

func (m *P2EhrImportTaskForInternshipOfferImportedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2OfferStatusChangedV1Data struct {
	OfferId *string `json:"offer_id,omitempty"` // 发生状态变更的 OfferID

	OfferStatus *int `json:"offer_status,omitempty"` // Offer 状态
}

type P2OfferStatusChangedV1 struct {
	*larkevent.EventV2Base                             // 事件基础数据
	*larkevent.EventReq                                // 请求原生数据
	Event                  *P2OfferStatusChangedV1Data `json:"event"` // 事件内容
}

func (m *P2OfferStatusChangedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2ReferralAccountAssetsUpdateV1Data struct {
	AccountId *string `json:"account_id,omitempty"` // 账户ID， 同一用户在同一租户同一应用中账户唯一

	Assets *Assets `json:"assets,omitempty"` // 账户余额信息

	ModifyTime *string `json:"modify_time,omitempty"` // 变更时间
}

type P2ReferralAccountAssetsUpdateV1 struct {
	*larkevent.EventV2Base                                      // 事件基础数据
	*larkevent.EventReq                                         // 请求原生数据
	Event                  *P2ReferralAccountAssetsUpdateV1Data `json:"event"` // 事件内容
}

func (m *P2ReferralAccountAssetsUpdateV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2TalentDeletedV1Data struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID
}

type P2TalentDeletedV1 struct {
	*larkevent.EventV2Base                        // 事件基础数据
	*larkevent.EventReq                           // 请求原生数据
	Event                  *P2TalentDeletedV1Data `json:"event"` // 事件内容
}

func (m *P2TalentDeletedV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type P2TalentTagSubscriptionV1Data struct {
	TalentId *string `json:"talent_id,omitempty"` // 人才 ID

	ApplicationId *string `json:"application_id,omitempty"` // 投递 ID

	Type *int `json:"type,omitempty"` // 变更类型

	Tag *TalentTag `json:"tag,omitempty"` // 标签

	LockStatus *int `json:"lock_status,omitempty"` // 锁定状态

	ApplicationStage *ApplicationStageInfo `json:"application_stage,omitempty"` // 投递阶段
}

type P2TalentTagSubscriptionV1 struct {
	*larkevent.EventV2Base                                // 事件基础数据
	*larkevent.EventReq                                   // 请求原生数据
	Event                  *P2TalentTagSubscriptionV1Data `json:"event"` // 事件内容
}

func (m *P2TalentTagSubscriptionV1) RawReq(req *larkevent.EventReq) {
	m.EventReq = req
}

type ListEvaluationIterator struct {
	nextPageToken *string
	items         []*Evaluation
	index         int
	limit         int
	ctx           context.Context
	req           *ListEvaluationReq
	listFunc      func(ctx context.Context, req *ListEvaluationReq, options ...larkcore.RequestOptionFunc) (*ListEvaluationResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListEvaluationIterator) Next() (bool, *Evaluation, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListEvaluationIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListEvaluationTaskIterator struct {
	nextPageToken *string
	items         []*EvaluationTask
	index         int
	limit         int
	ctx           context.Context
	req           *ListEvaluationTaskReq
	listFunc      func(ctx context.Context, req *ListEvaluationTaskReq, options ...larkcore.RequestOptionFunc) (*ListEvaluationTaskResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListEvaluationTaskIterator) Next() (bool, *EvaluationTask, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListEvaluationTaskIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListExamMarkingTaskIterator struct {
	nextPageToken *string
	items         []*ExamMarkingTask
	index         int
	limit         int
	ctx           context.Context
	req           *ListExamMarkingTaskReq
	listFunc      func(ctx context.Context, req *ListExamMarkingTaskReq, options ...larkcore.RequestOptionFunc) (*ListExamMarkingTaskResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListExamMarkingTaskIterator) Next() (bool, *ExamMarkingTask, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListExamMarkingTaskIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListExternalApplicationIterator struct {
	nextPageToken *string
	items         []*ExternalApplication
	index         int
	limit         int
	ctx           context.Context
	req           *ListExternalApplicationReq
	listFunc      func(ctx context.Context, req *ListExternalApplicationReq, options ...larkcore.RequestOptionFunc) (*ListExternalApplicationResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListExternalApplicationIterator) Next() (bool, *ExternalApplication, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListExternalApplicationIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type BatchQueryExternalBackgroundCheckIterator struct {
	nextPageToken *string
	items         []*ExternalBackgroundCheck
	index         int
	limit         int
	ctx           context.Context
	req           *BatchQueryExternalBackgroundCheckReq
	listFunc      func(ctx context.Context, req *BatchQueryExternalBackgroundCheckReq, options ...larkcore.RequestOptionFunc) (*BatchQueryExternalBackgroundCheckResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *BatchQueryExternalBackgroundCheckIterator) Next() (bool, *ExternalBackgroundCheck, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *BatchQueryExternalBackgroundCheckIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type BatchQueryExternalInterviewIterator struct {
	nextPageToken *string
	items         []*ExternalInterview
	index         int
	limit         int
	ctx           context.Context
	req           *BatchQueryExternalInterviewReq
	listFunc      func(ctx context.Context, req *BatchQueryExternalInterviewReq, options ...larkcore.RequestOptionFunc) (*BatchQueryExternalInterviewResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *BatchQueryExternalInterviewIterator) Next() (bool, *ExternalInterview, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *BatchQueryExternalInterviewIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type BatchQueryExternalOfferIterator struct {
	nextPageToken *string
	items         []*ExternalOffer
	index         int
	limit         int
	ctx           context.Context
	req           *BatchQueryExternalOfferReq
	listFunc      func(ctx context.Context, req *BatchQueryExternalOfferReq, options ...larkcore.RequestOptionFunc) (*BatchQueryExternalOfferResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *BatchQueryExternalOfferIterator) Next() (bool, *ExternalOffer, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *BatchQueryExternalOfferIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListInterviewFeedbackFormIterator struct {
	nextPageToken *string
	items         []*InterviewFeedbackForm
	index         int
	limit         int
	ctx           context.Context
	req           *ListInterviewFeedbackFormReq
	listFunc      func(ctx context.Context, req *ListInterviewFeedbackFormReq, options ...larkcore.RequestOptionFunc) (*ListInterviewFeedbackFormResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListInterviewFeedbackFormIterator) Next() (bool, *InterviewFeedbackForm, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListInterviewFeedbackFormIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListInterviewRecordIterator struct {
	nextPageToken *string
	items         []*InterviewRecord
	index         int
	limit         int
	ctx           context.Context
	req           *ListInterviewRecordReq
	listFunc      func(ctx context.Context, req *ListInterviewRecordReq, options ...larkcore.RequestOptionFunc) (*ListInterviewRecordResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListInterviewRecordIterator) Next() (bool, *InterviewRecord, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListInterviewRecordIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListInterviewRegistrationSchemaIterator struct {
	nextPageToken *string
	items         []*InterviewRegistrationSchema
	index         int
	limit         int
	ctx           context.Context
	req           *ListInterviewRegistrationSchemaReq
	listFunc      func(ctx context.Context, req *ListInterviewRegistrationSchemaReq, options ...larkcore.RequestOptionFunc) (*ListInterviewRegistrationSchemaResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListInterviewRegistrationSchemaIterator) Next() (bool, *InterviewRegistrationSchema, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListInterviewRegistrationSchemaIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListInterviewTaskIterator struct {
	nextPageToken *string
	items         []*InterviewTask
	index         int
	limit         int
	ctx           context.Context
	req           *ListInterviewTaskReq
	listFunc      func(ctx context.Context, req *ListInterviewTaskReq, options ...larkcore.RequestOptionFunc) (*ListInterviewTaskResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListInterviewTaskIterator) Next() (bool, *InterviewTask, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListInterviewTaskIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListInterviewerIterator struct {
	nextPageToken *string
	items         []*Interviewer
	index         int
	limit         int
	ctx           context.Context
	req           *ListInterviewerReq
	listFunc      func(ctx context.Context, req *ListInterviewerReq, options ...larkcore.RequestOptionFunc) (*ListInterviewerResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListInterviewerIterator) Next() (bool, *Interviewer, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListInterviewerIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListJobFunctionIterator struct {
	nextPageToken *string
	items         []*JobFunction
	index         int
	limit         int
	ctx           context.Context
	req           *ListJobFunctionReq
	listFunc      func(ctx context.Context, req *ListJobFunctionReq, options ...larkcore.RequestOptionFunc) (*ListJobFunctionResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListJobFunctionIterator) Next() (bool, *JobFunction, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListJobFunctionIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListJobTypeIterator struct {
	nextPageToken *string
	items         []*JobTypeInfo
	index         int
	limit         int
	ctx           context.Context
	req           *ListJobTypeReq
	listFunc      func(ctx context.Context, req *ListJobTypeReq, options ...larkcore.RequestOptionFunc) (*ListJobTypeResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListJobTypeIterator) Next() (bool, *JobTypeInfo, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListJobTypeIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListLocationIterator struct {
	nextPageToken *string
	items         []*Location
	index         int
	limit         int
	ctx           context.Context
	req           *ListLocationReq
	listFunc      func(ctx context.Context, req *ListLocationReq, options ...larkcore.RequestOptionFunc) (*ListLocationResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListLocationIterator) Next() (bool, *Location, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListLocationIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListPortalApplySchemaIterator struct {
	nextPageToken *string
	items         []*RegistrationSchema
	index         int
	limit         int
	ctx           context.Context
	req           *ListPortalApplySchemaReq
	listFunc      func(ctx context.Context, req *ListPortalApplySchemaReq, options ...larkcore.RequestOptionFunc) (*ListPortalApplySchemaResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListPortalApplySchemaIterator) Next() (bool, *RegistrationSchema, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListPortalApplySchemaIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListReferralWebsiteJobPostIterator struct {
	nextPageToken *string
	items         []*PortalJobPost
	index         int
	limit         int
	ctx           context.Context
	req           *ListReferralWebsiteJobPostReq
	listFunc      func(ctx context.Context, req *ListReferralWebsiteJobPostReq, options ...larkcore.RequestOptionFunc) (*ListReferralWebsiteJobPostResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListReferralWebsiteJobPostIterator) Next() (bool, *PortalJobPost, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListReferralWebsiteJobPostIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListRegistrationSchemaIterator struct {
	nextPageToken *string
	items         []*RegistrationSchema
	index         int
	limit         int
	ctx           context.Context
	req           *ListRegistrationSchemaReq
	listFunc      func(ctx context.Context, req *ListRegistrationSchemaReq, options ...larkcore.RequestOptionFunc) (*ListRegistrationSchemaResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListRegistrationSchemaIterator) Next() (bool, *RegistrationSchema, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListRegistrationSchemaIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListResumeSourceIterator struct {
	nextPageToken *string
	items         []*ResumeSource
	index         int
	limit         int
	ctx           context.Context
	req           *ListResumeSourceReq
	listFunc      func(ctx context.Context, req *ListResumeSourceReq, options ...larkcore.RequestOptionFunc) (*ListResumeSourceResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListResumeSourceIterator) Next() (bool, *ResumeSource, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListResumeSourceIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListRoleIterator struct {
	nextPageToken *string
	items         []*Role
	index         int
	limit         int
	ctx           context.Context
	req           *ListRoleReq
	listFunc      func(ctx context.Context, req *ListRoleReq, options ...larkcore.RequestOptionFunc) (*ListRoleResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListRoleIterator) Next() (bool, *Role, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListRoleIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListTalentFolderIterator struct {
	nextPageToken *string
	items         []*TalentFolderForList
	index         int
	limit         int
	ctx           context.Context
	req           *ListTalentFolderReq
	listFunc      func(ctx context.Context, req *ListTalentFolderReq, options ...larkcore.RequestOptionFunc) (*ListTalentFolderResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListTalentFolderIterator) Next() (bool, *TalentFolderForList, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListTalentFolderIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type SearchTalentPoolIterator struct {
	nextPageToken *string
	items         []*TalentPool
	index         int
	limit         int
	ctx           context.Context
	req           *SearchTalentPoolReq
	listFunc      func(ctx context.Context, req *SearchTalentPoolReq, options ...larkcore.RequestOptionFunc) (*SearchTalentPoolResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *SearchTalentPoolIterator) Next() (bool, *TalentPool, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *SearchTalentPoolIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListTalentTagIterator struct {
	nextPageToken *string
	items         []*TalentTag
	index         int
	limit         int
	ctx           context.Context
	req           *ListTalentTagReq
	listFunc      func(ctx context.Context, req *ListTalentTagReq, options ...larkcore.RequestOptionFunc) (*ListTalentTagResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListTalentTagIterator) Next() (bool, *TalentTag, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListTalentTagIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListTerminationReasonIterator struct {
	nextPageToken *string
	items         []*TerminationReason
	index         int
	limit         int
	ctx           context.Context
	req           *ListTerminationReasonReq
	listFunc      func(ctx context.Context, req *ListTerminationReasonReq, options ...larkcore.RequestOptionFunc) (*ListTerminationReasonResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListTerminationReasonIterator) Next() (bool, *TerminationReason, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListTerminationReasonIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type SearchTestIterator struct {
	nextPageToken *string
	items         []*Test
	index         int
	limit         int
	ctx           context.Context
	req           *SearchTestReq
	listFunc      func(ctx context.Context, req *SearchTestReq, options ...larkcore.RequestOptionFunc) (*SearchTestResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *SearchTestIterator) Next() (bool, *Test, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *SearchTestIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListTodoIterator struct {
	nextPageToken *string
	items         []*Todo
	index         int
	limit         int
	ctx           context.Context
	req           *ListTodoReq
	listFunc      func(ctx context.Context, req *ListTodoReq, options ...larkcore.RequestOptionFunc) (*ListTodoResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListTodoIterator) Next() (bool, *Todo, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListTodoIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListTripartiteAgreementIterator struct {
	nextPageToken *string
	items         []*TripartiteAgreementInfo
	index         int
	limit         int
	ctx           context.Context
	req           *ListTripartiteAgreementReq
	listFunc      func(ctx context.Context, req *ListTripartiteAgreementReq, options ...larkcore.RequestOptionFunc) (*ListTripartiteAgreementResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListTripartiteAgreementIterator) Next() (bool, *TripartiteAgreementInfo, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListTripartiteAgreementIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListUserRoleIterator struct {
	nextPageToken *string
	items         []*UserRole
	index         int
	limit         int
	ctx           context.Context
	req           *ListUserRoleReq
	listFunc      func(ctx context.Context, req *ListUserRoleReq, options ...larkcore.RequestOptionFunc) (*ListUserRoleResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListUserRoleIterator) Next() (bool, *UserRole, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListUserRoleIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListWebsiteIterator struct {
	nextPageToken *string
	items         []*Website
	index         int
	limit         int
	ctx           context.Context
	req           *ListWebsiteReq
	listFunc      func(ctx context.Context, req *ListWebsiteReq, options ...larkcore.RequestOptionFunc) (*ListWebsiteResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListWebsiteIterator) Next() (bool, *Website, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListWebsiteIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListWebsiteJobPostIterator struct {
	nextPageToken *string
	items         []*WebsiteJobPost
	index         int
	limit         int
	ctx           context.Context
	req           *ListWebsiteJobPostReq
	listFunc      func(ctx context.Context, req *ListWebsiteJobPostReq, options ...larkcore.RequestOptionFunc) (*ListWebsiteJobPostResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListWebsiteJobPostIterator) Next() (bool, *WebsiteJobPost, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListWebsiteJobPostIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type SearchWebsiteJobPostIterator struct {
	nextPageToken *string
	items         []*WebsiteJobPost
	index         int
	limit         int
	ctx           context.Context
	req           *SearchWebsiteJobPostReq
	listFunc      func(ctx context.Context, req *SearchWebsiteJobPostReq, options ...larkcore.RequestOptionFunc) (*SearchWebsiteJobPostResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *SearchWebsiteJobPostIterator) Next() (bool, *WebsiteJobPost, error) {
	// 达到最大量，则返回
	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
		return false, nil, nil
	}

	// 为0则拉取数据
	if iterator.index == 0 || iterator.index >= len(iterator.items) {
		if iterator.index != 0 && iterator.nextPageToken == nil {
			return false, nil, nil
		}
		if iterator.nextPageToken != nil {
			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
		}
		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
		if err != nil {
			return false, nil, err
		}

		if resp.Code != 0 {
			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
		}

		if len(resp.Data.Items) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Items
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *SearchWebsiteJobPostIterator) NextPageToken() *string {
	return iterator.nextPageToken
}
