// Package admin 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 larkadmin

import (
	"io"

	"bytes"

	"fmt"

	"context"
	"errors"

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

const (
	ApiMGetDepartmentDailyStatisticsDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	ApiMGetDepartmentDailyStatisticsDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	ApiMGetUserDailyStatisticsUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	ApiMGetUserDailyStatisticsUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	ApiMGetUserDailyStatisticsUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	ApiMGetUserDailyStatisticsDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	ApiMGetUserDailyStatisticsDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	GetAuditInfoListUserIDTypeUserId  = "user_id"  // 以user_id来识别用户
	GetAuditInfoListUserIDTypeUnionId = "union_id" // 以union_id来识别用户
	GetAuditInfoListUserIDTypeOpenId  = "open_id"  // 以open_id来识别用户
)

const (
	GetAuditInfoListOperatorTypeUser = "user" // 以user_id来识别用户
	GetAuditInfoListOperatorTypeBot  = "bot"  // [已废弃] 以bot_id来识别用户
)

const (
	GetAuditInfoListUserTypeAll          = 0 // 互联网上的任何人
	GetAuditInfoListUserTypeNormalUser   = 1 // 组织内成员
	GetAuditInfoListUserTypeExternalUser = 2 // 组织外成员

)

const (
	GrantGrantTypeManual   = 0 // 手动选择有效期
	GrantGrantTypeJoinTime = 1 // 匹配系统入职时间

)

const (
	CreateGrantUserIDTypeOpenId  = "open_id"  // 用户的open_id
	CreateGrantUserIDTypeUnionId = "union_id" // 用户的union_id
	CreateGrantUserIDTypeUserId  = "user_id"  // 用户的user_id
)

const (
	CreateGrantDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	CreateGrantDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	GetGrantUserIDTypeOpenId  = "open_id"  // 用户的open_id
	GetGrantUserIDTypeUnionId = "union_id" // 用户的union_id
	GetGrantUserIDTypeUserId  = "user_id"  // 用户的user_id
)

const (
	GetGrantDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	GetGrantDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	ScanGrantsUserIDTypeOpenId  = "open_id"  // 用户的open_id
	ScanGrantsUserIDTypeUnionId = "union_id" // 用户的union_id
	ScanGrantsUserIDTypeUserId  = "user_id"  // 用户的user_id
)

const (
	ScanGrantsDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	ScanGrantsDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	GrantGrantTypeUpdateBadgeGrantManual   = 0 // 手动选择有效期
	GrantGrantTypeUpdateBadgeGrantJoinTime = 1 // 匹配系统入职时间

)

const (
	UpdateGrantUserIDTypeOpenId  = "open_id"  // 用户的open_id
	UpdateGrantUserIDTypeUnionId = "union_id" // 用户的union_id
	UpdateGrantUserIDTypeUserId  = "user_id"  // 用户的user_id
)

const (
	UpdateGrantDepartmentIDTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
	UpdateGrantDepartmentIDTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
)

const (
	UploadBadgeImageImageTypeDetail = 1 // 勋章详情图
	UploadBadgeImageImageTypeShow   = 2 // 勋章挂饰图

)

const (
	ResetPasswordOapiUserIDTypeOpenId  = "open_id"  // open_id
	ResetPasswordOapiUserIDTypeUnionId = "union_id" // union_id
	ResetPasswordOapiUserIDTypeUserId  = "user_id"  // user_id
)

type AdminDeptExtContactStat struct {
	Date *string `json:"date,omitempty"` // 日期

	DepartmentId *string `json:"department_id,omitempty"` // 部门ID

	DepartmentName *string `json:"department_name,omitempty"` // 部门名

	HasRefContactUcnt *string `json:"has_ref_contact_ucnt,omitempty"` // 拥有外部联系人的成员数

	RefContactUcnt *string `json:"ref_contact_ucnt,omitempty"` // 外部联系人总数

	RefContactTcnt *string `json:"ref_contact_tcnt,omitempty"` // 外部联系人所属租户数
}

type AdminDeptExtContactStatBuilder struct {
	date     string // 日期
	dateFlag bool

	departmentId     string // 部门ID
	departmentIdFlag bool

	departmentName     string // 部门名
	departmentNameFlag bool

	hasRefContactUcnt     string // 拥有外部联系人的成员数
	hasRefContactUcntFlag bool

	refContactUcnt     string // 外部联系人总数
	refContactUcntFlag bool

	refContactTcnt     string // 外部联系人所属租户数
	refContactTcntFlag bool
}

func NewAdminDeptExtContactStatBuilder() *AdminDeptExtContactStatBuilder {
	builder := &AdminDeptExtContactStatBuilder{}
	return builder
}

// 日期
//
// 示例值：2024-08-15
func (builder *AdminDeptExtContactStatBuilder) Date(date string) *AdminDeptExtContactStatBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

// 部门ID
//
// 示例值：od-382e2793cfc9471f892e8a672987654c
func (builder *AdminDeptExtContactStatBuilder) DepartmentId(departmentId string) *AdminDeptExtContactStatBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 部门名
//
// 示例值：部门A
func (builder *AdminDeptExtContactStatBuilder) DepartmentName(departmentName string) *AdminDeptExtContactStatBuilder {
	builder.departmentName = departmentName
	builder.departmentNameFlag = true
	return builder
}

// 拥有外部联系人的成员数
//
// 示例值：100
func (builder *AdminDeptExtContactStatBuilder) HasRefContactUcnt(hasRefContactUcnt string) *AdminDeptExtContactStatBuilder {
	builder.hasRefContactUcnt = hasRefContactUcnt
	builder.hasRefContactUcntFlag = true
	return builder
}

// 外部联系人总数
//
// 示例值：200
func (builder *AdminDeptExtContactStatBuilder) RefContactUcnt(refContactUcnt string) *AdminDeptExtContactStatBuilder {
	builder.refContactUcnt = refContactUcnt
	builder.refContactUcntFlag = true
	return builder
}

// 外部联系人所属租户数
//
// 示例值：10
func (builder *AdminDeptExtContactStatBuilder) RefContactTcnt(refContactTcnt string) *AdminDeptExtContactStatBuilder {
	builder.refContactTcnt = refContactTcnt
	builder.refContactTcntFlag = true
	return builder
}

func (builder *AdminDeptExtContactStatBuilder) Build() *AdminDeptExtContactStat {
	req := &AdminDeptExtContactStat{}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.departmentNameFlag {
		req.DepartmentName = &builder.departmentName

	}
	if builder.hasRefContactUcntFlag {
		req.HasRefContactUcnt = &builder.hasRefContactUcnt

	}
	if builder.refContactUcntFlag {
		req.RefContactUcnt = &builder.refContactUcnt

	}
	if builder.refContactTcntFlag {
		req.RefContactTcnt = &builder.refContactTcnt

	}
	return req
}

type AdminDeptStat struct {
	Date *string `json:"date,omitempty"` // 日期

	DepartmentId *string `json:"department_id,omitempty"` // 部门的department_id 或者open_department_id

	DepartmentName *string `json:"department_name,omitempty"` // 部门名字

	DepartmentPath *string `json:"department_path,omitempty"` // 部门路径

	TotalUserNum *int `json:"total_user_num,omitempty"` // 部门总人数

	ActiveUserNum *int `json:"active_user_num,omitempty"` // 激活人数

	ActiveUserRate *string `json:"active_user_rate,omitempty"` // 激活率

	SuiteDau *int `json:"suite_dau,omitempty"` // 活跃人数

	SuiteActiveRate *string `json:"suite_active_rate,omitempty"` // 活跃率

	NewUserNum *int `json:"new_user_num,omitempty"` // 新用户数

	NewActiveNum *int `json:"new_active_num,omitempty"` // 新激活数

	ResignUserNum *int `json:"resign_user_num,omitempty"` // 离职人数

	ImDau *int `json:"im_dau,omitempty"` // 消息活跃人数

	SendMessengerUserNum *int `json:"send_messenger_user_num,omitempty"` // 发送消息人数

	SendMessengerNum *int `json:"send_messenger_num,omitempty"` // 发送消息数

	AvgSendMessengerNum *string `json:"avg_send_messenger_num,omitempty"` // 人均发送消息数

	DocsDau *int `json:"docs_dau,omitempty"` // 云文档活跃人数

	CreateDocsUserNum *int `json:"create_docs_user_num,omitempty"` // 创建文件人数

	CreateDocsNum *int `json:"create_docs_num,omitempty"` // 创建文件数

	AvgCreateDocsNum *string `json:"avg_create_docs_num,omitempty"` // 人均创建文件数

	CalDau *int `json:"cal_dau,omitempty"` // 日历活跃人数

	CreateCalUserNum *int `json:"create_cal_user_num,omitempty"` // 创建日程人数

	CreateCalNum *int `json:"create_cal_num,omitempty"` // 创建日程数

	AvgCreateCalNum *string `json:"avg_create_cal_num,omitempty"` // 人均创建日程数

	VcDau *int `json:"vc_dau,omitempty"` // 音视频会议活跃人数

	VcDuration *int `json:"vc_duration,omitempty"` // 会议时长：企业内员工参与通话与会议的总时长（分钟）

	AvgVcDuration *string `json:"avg_vc_duration,omitempty"` // 人均会议时长（分钟）

	AvgDuration *string `json:"avg_duration,omitempty"` // 人均飞书使用时长（分钟）

	TaskDau *int `json:"task_dau,omitempty"` // 任务活跃人数

	CreateTaskUserNum *int `json:"create_task_user_num,omitempty"` // 创建任务人数

	CreateTaskNum *int `json:"create_task_num,omitempty"` // 创建任务数

	AvgCreateTaskNum *string `json:"avg_create_task_num,omitempty"` // 人均创建任务数

	EmailSendCount *string `json:"email_send_count,omitempty"` // 邮件总发件量

	EmailReceiveCount *string `json:"email_receive_count,omitempty"` // 邮件总收件量

	EmailSendExtCount *string `json:"email_send_ext_count,omitempty"` // 对外发件数

	EmailReceiveExtCount *string `json:"email_receive_ext_count,omitempty"` // 来自外部收件数

	EmailSendInCount *string `json:"email_send_in_count,omitempty"` // 对内发件数

	EmailReceiveInCount *string `json:"email_receive_in_count,omitempty"` // 来自内部收件数

	SearchActiveDau *string `json:"search_active_dau,omitempty"` // 大搜搜索活跃人数

	TotalSearchCount *string `json:"total_search_count,omitempty"` // 总搜索次数

	QuickSearchCount *string `json:"quick_search_count,omitempty"` // 综搜次数

	TabSearchCount *string `json:"tab_search_count,omitempty"` // 垂搜次数

	ProductVersion *string `json:"product_version,omitempty"` // 产品版本名称
}

type AdminDeptStatBuilder struct {
	date     string // 日期
	dateFlag bool

	departmentId     string // 部门的department_id 或者open_department_id
	departmentIdFlag bool

	departmentName     string // 部门名字
	departmentNameFlag bool

	departmentPath     string // 部门路径
	departmentPathFlag bool

	totalUserNum     int // 部门总人数
	totalUserNumFlag bool

	activeUserNum     int // 激活人数
	activeUserNumFlag bool

	activeUserRate     string // 激活率
	activeUserRateFlag bool

	suiteDau     int // 活跃人数
	suiteDauFlag bool

	suiteActiveRate     string // 活跃率
	suiteActiveRateFlag bool

	newUserNum     int // 新用户数
	newUserNumFlag bool

	newActiveNum     int // 新激活数
	newActiveNumFlag bool

	resignUserNum     int // 离职人数
	resignUserNumFlag bool

	imDau     int // 消息活跃人数
	imDauFlag bool

	sendMessengerUserNum     int // 发送消息人数
	sendMessengerUserNumFlag bool

	sendMessengerNum     int // 发送消息数
	sendMessengerNumFlag bool

	avgSendMessengerNum     string // 人均发送消息数
	avgSendMessengerNumFlag bool

	docsDau     int // 云文档活跃人数
	docsDauFlag bool

	createDocsUserNum     int // 创建文件人数
	createDocsUserNumFlag bool

	createDocsNum     int // 创建文件数
	createDocsNumFlag bool

	avgCreateDocsNum     string // 人均创建文件数
	avgCreateDocsNumFlag bool

	calDau     int // 日历活跃人数
	calDauFlag bool

	createCalUserNum     int // 创建日程人数
	createCalUserNumFlag bool

	createCalNum     int // 创建日程数
	createCalNumFlag bool

	avgCreateCalNum     string // 人均创建日程数
	avgCreateCalNumFlag bool

	vcDau     int // 音视频会议活跃人数
	vcDauFlag bool

	vcDuration     int // 会议时长：企业内员工参与通话与会议的总时长（分钟）
	vcDurationFlag bool

	avgVcDuration     string // 人均会议时长（分钟）
	avgVcDurationFlag bool

	avgDuration     string // 人均飞书使用时长（分钟）
	avgDurationFlag bool

	taskDau     int // 任务活跃人数
	taskDauFlag bool

	createTaskUserNum     int // 创建任务人数
	createTaskUserNumFlag bool

	createTaskNum     int // 创建任务数
	createTaskNumFlag bool

	avgCreateTaskNum     string // 人均创建任务数
	avgCreateTaskNumFlag bool

	emailSendCount     string // 邮件总发件量
	emailSendCountFlag bool

	emailReceiveCount     string // 邮件总收件量
	emailReceiveCountFlag bool

	emailSendExtCount     string // 对外发件数
	emailSendExtCountFlag bool

	emailReceiveExtCount     string // 来自外部收件数
	emailReceiveExtCountFlag bool

	emailSendInCount     string // 对内发件数
	emailSendInCountFlag bool

	emailReceiveInCount     string // 来自内部收件数
	emailReceiveInCountFlag bool

	searchActiveDau     string // 大搜搜索活跃人数
	searchActiveDauFlag bool

	totalSearchCount     string // 总搜索次数
	totalSearchCountFlag bool

	quickSearchCount     string // 综搜次数
	quickSearchCountFlag bool

	tabSearchCount     string // 垂搜次数
	tabSearchCountFlag bool

	productVersion     string // 产品版本名称
	productVersionFlag bool
}

func NewAdminDeptStatBuilder() *AdminDeptStatBuilder {
	builder := &AdminDeptStatBuilder{}
	return builder
}

// 日期
//
// 示例值：2020-02-15
func (builder *AdminDeptStatBuilder) Date(date string) *AdminDeptStatBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

// 部门的department_id 或者open_department_id
//
// 示例值：od-382e2793cfc9471f892e8a672987654c
func (builder *AdminDeptStatBuilder) DepartmentId(departmentId string) *AdminDeptStatBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

// 部门名字
//
// 示例值：subtestkkk
func (builder *AdminDeptStatBuilder) DepartmentName(departmentName string) *AdminDeptStatBuilder {
	builder.departmentName = departmentName
	builder.departmentNameFlag = true
	return builder
}

// 部门路径
//
// 示例值：testkkk/subtestkkk
func (builder *AdminDeptStatBuilder) DepartmentPath(departmentPath string) *AdminDeptStatBuilder {
	builder.departmentPath = departmentPath
	builder.departmentPathFlag = true
	return builder
}

// 部门总人数
//
// 示例值：2
func (builder *AdminDeptStatBuilder) TotalUserNum(totalUserNum int) *AdminDeptStatBuilder {
	builder.totalUserNum = totalUserNum
	builder.totalUserNumFlag = true
	return builder
}

// 激活人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) ActiveUserNum(activeUserNum int) *AdminDeptStatBuilder {
	builder.activeUserNum = activeUserNum
	builder.activeUserNumFlag = true
	return builder
}

// 激活率
//
// 示例值：1.00
func (builder *AdminDeptStatBuilder) ActiveUserRate(activeUserRate string) *AdminDeptStatBuilder {
	builder.activeUserRate = activeUserRate
	builder.activeUserRateFlag = true
	return builder
}

// 活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) SuiteDau(suiteDau int) *AdminDeptStatBuilder {
	builder.suiteDau = suiteDau
	builder.suiteDauFlag = true
	return builder
}

// 活跃率
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) SuiteActiveRate(suiteActiveRate string) *AdminDeptStatBuilder {
	builder.suiteActiveRate = suiteActiveRate
	builder.suiteActiveRateFlag = true
	return builder
}

// 新用户数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) NewUserNum(newUserNum int) *AdminDeptStatBuilder {
	builder.newUserNum = newUserNum
	builder.newUserNumFlag = true
	return builder
}

// 新激活数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) NewActiveNum(newActiveNum int) *AdminDeptStatBuilder {
	builder.newActiveNum = newActiveNum
	builder.newActiveNumFlag = true
	return builder
}

// 离职人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) ResignUserNum(resignUserNum int) *AdminDeptStatBuilder {
	builder.resignUserNum = resignUserNum
	builder.resignUserNumFlag = true
	return builder
}

// 消息活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) ImDau(imDau int) *AdminDeptStatBuilder {
	builder.imDau = imDau
	builder.imDauFlag = true
	return builder
}

// 发送消息人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) SendMessengerUserNum(sendMessengerUserNum int) *AdminDeptStatBuilder {
	builder.sendMessengerUserNum = sendMessengerUserNum
	builder.sendMessengerUserNumFlag = true
	return builder
}

// 发送消息数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) SendMessengerNum(sendMessengerNum int) *AdminDeptStatBuilder {
	builder.sendMessengerNum = sendMessengerNum
	builder.sendMessengerNumFlag = true
	return builder
}

// 人均发送消息数
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgSendMessengerNum(avgSendMessengerNum string) *AdminDeptStatBuilder {
	builder.avgSendMessengerNum = avgSendMessengerNum
	builder.avgSendMessengerNumFlag = true
	return builder
}

// 云文档活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) DocsDau(docsDau int) *AdminDeptStatBuilder {
	builder.docsDau = docsDau
	builder.docsDauFlag = true
	return builder
}

// 创建文件人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateDocsUserNum(createDocsUserNum int) *AdminDeptStatBuilder {
	builder.createDocsUserNum = createDocsUserNum
	builder.createDocsUserNumFlag = true
	return builder
}

// 创建文件数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateDocsNum(createDocsNum int) *AdminDeptStatBuilder {
	builder.createDocsNum = createDocsNum
	builder.createDocsNumFlag = true
	return builder
}

// 人均创建文件数
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgCreateDocsNum(avgCreateDocsNum string) *AdminDeptStatBuilder {
	builder.avgCreateDocsNum = avgCreateDocsNum
	builder.avgCreateDocsNumFlag = true
	return builder
}

// 日历活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CalDau(calDau int) *AdminDeptStatBuilder {
	builder.calDau = calDau
	builder.calDauFlag = true
	return builder
}

// 创建日程人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateCalUserNum(createCalUserNum int) *AdminDeptStatBuilder {
	builder.createCalUserNum = createCalUserNum
	builder.createCalUserNumFlag = true
	return builder
}

// 创建日程数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateCalNum(createCalNum int) *AdminDeptStatBuilder {
	builder.createCalNum = createCalNum
	builder.createCalNumFlag = true
	return builder
}

// 人均创建日程数
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgCreateCalNum(avgCreateCalNum string) *AdminDeptStatBuilder {
	builder.avgCreateCalNum = avgCreateCalNum
	builder.avgCreateCalNumFlag = true
	return builder
}

// 音视频会议活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) VcDau(vcDau int) *AdminDeptStatBuilder {
	builder.vcDau = vcDau
	builder.vcDauFlag = true
	return builder
}

// 会议时长：企业内员工参与通话与会议的总时长（分钟）
//
// 示例值：0
func (builder *AdminDeptStatBuilder) VcDuration(vcDuration int) *AdminDeptStatBuilder {
	builder.vcDuration = vcDuration
	builder.vcDurationFlag = true
	return builder
}

// 人均会议时长（分钟）
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgVcDuration(avgVcDuration string) *AdminDeptStatBuilder {
	builder.avgVcDuration = avgVcDuration
	builder.avgVcDurationFlag = true
	return builder
}

// 人均飞书使用时长（分钟）
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgDuration(avgDuration string) *AdminDeptStatBuilder {
	builder.avgDuration = avgDuration
	builder.avgDurationFlag = true
	return builder
}

// 任务活跃人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) TaskDau(taskDau int) *AdminDeptStatBuilder {
	builder.taskDau = taskDau
	builder.taskDauFlag = true
	return builder
}

// 创建任务人数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateTaskUserNum(createTaskUserNum int) *AdminDeptStatBuilder {
	builder.createTaskUserNum = createTaskUserNum
	builder.createTaskUserNumFlag = true
	return builder
}

// 创建任务数
//
// 示例值：0
func (builder *AdminDeptStatBuilder) CreateTaskNum(createTaskNum int) *AdminDeptStatBuilder {
	builder.createTaskNum = createTaskNum
	builder.createTaskNumFlag = true
	return builder
}

// 人均创建任务数
//
// 示例值：0.00
func (builder *AdminDeptStatBuilder) AvgCreateTaskNum(avgCreateTaskNum string) *AdminDeptStatBuilder {
	builder.avgCreateTaskNum = avgCreateTaskNum
	builder.avgCreateTaskNumFlag = true
	return builder
}

// 邮件总发件量
//
// 示例值：2
func (builder *AdminDeptStatBuilder) EmailSendCount(emailSendCount string) *AdminDeptStatBuilder {
	builder.emailSendCount = emailSendCount
	builder.emailSendCountFlag = true
	return builder
}

// 邮件总收件量
//
// 示例值：3
func (builder *AdminDeptStatBuilder) EmailReceiveCount(emailReceiveCount string) *AdminDeptStatBuilder {
	builder.emailReceiveCount = emailReceiveCount
	builder.emailReceiveCountFlag = true
	return builder
}

// 对外发件数
//
// 示例值：4
func (builder *AdminDeptStatBuilder) EmailSendExtCount(emailSendExtCount string) *AdminDeptStatBuilder {
	builder.emailSendExtCount = emailSendExtCount
	builder.emailSendExtCountFlag = true
	return builder
}

// 来自外部收件数
//
// 示例值：5
func (builder *AdminDeptStatBuilder) EmailReceiveExtCount(emailReceiveExtCount string) *AdminDeptStatBuilder {
	builder.emailReceiveExtCount = emailReceiveExtCount
	builder.emailReceiveExtCountFlag = true
	return builder
}

// 对内发件数
//
// 示例值：6
func (builder *AdminDeptStatBuilder) EmailSendInCount(emailSendInCount string) *AdminDeptStatBuilder {
	builder.emailSendInCount = emailSendInCount
	builder.emailSendInCountFlag = true
	return builder
}

// 来自内部收件数
//
// 示例值：7
func (builder *AdminDeptStatBuilder) EmailReceiveInCount(emailReceiveInCount string) *AdminDeptStatBuilder {
	builder.emailReceiveInCount = emailReceiveInCount
	builder.emailReceiveInCountFlag = true
	return builder
}

// 大搜搜索活跃人数
//
// 示例值：7
func (builder *AdminDeptStatBuilder) SearchActiveDau(searchActiveDau string) *AdminDeptStatBuilder {
	builder.searchActiveDau = searchActiveDau
	builder.searchActiveDauFlag = true
	return builder
}

// 总搜索次数
//
// 示例值：7
func (builder *AdminDeptStatBuilder) TotalSearchCount(totalSearchCount string) *AdminDeptStatBuilder {
	builder.totalSearchCount = totalSearchCount
	builder.totalSearchCountFlag = true
	return builder
}

// 综搜次数
//
// 示例值：7
func (builder *AdminDeptStatBuilder) QuickSearchCount(quickSearchCount string) *AdminDeptStatBuilder {
	builder.quickSearchCount = quickSearchCount
	builder.quickSearchCountFlag = true
	return builder
}

// 垂搜次数
//
// 示例值：7
func (builder *AdminDeptStatBuilder) TabSearchCount(tabSearchCount string) *AdminDeptStatBuilder {
	builder.tabSearchCount = tabSearchCount
	builder.tabSearchCountFlag = true
	return builder
}

// 产品版本名称
//
// 示例值：全部产品版本
func (builder *AdminDeptStatBuilder) ProductVersion(productVersion string) *AdminDeptStatBuilder {
	builder.productVersion = productVersion
	builder.productVersionFlag = true
	return builder
}

func (builder *AdminDeptStatBuilder) Build() *AdminDeptStat {
	req := &AdminDeptStat{}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.departmentNameFlag {
		req.DepartmentName = &builder.departmentName

	}
	if builder.departmentPathFlag {
		req.DepartmentPath = &builder.departmentPath

	}
	if builder.totalUserNumFlag {
		req.TotalUserNum = &builder.totalUserNum

	}
	if builder.activeUserNumFlag {
		req.ActiveUserNum = &builder.activeUserNum

	}
	if builder.activeUserRateFlag {
		req.ActiveUserRate = &builder.activeUserRate

	}
	if builder.suiteDauFlag {
		req.SuiteDau = &builder.suiteDau

	}
	if builder.suiteActiveRateFlag {
		req.SuiteActiveRate = &builder.suiteActiveRate

	}
	if builder.newUserNumFlag {
		req.NewUserNum = &builder.newUserNum

	}
	if builder.newActiveNumFlag {
		req.NewActiveNum = &builder.newActiveNum

	}
	if builder.resignUserNumFlag {
		req.ResignUserNum = &builder.resignUserNum

	}
	if builder.imDauFlag {
		req.ImDau = &builder.imDau

	}
	if builder.sendMessengerUserNumFlag {
		req.SendMessengerUserNum = &builder.sendMessengerUserNum

	}
	if builder.sendMessengerNumFlag {
		req.SendMessengerNum = &builder.sendMessengerNum

	}
	if builder.avgSendMessengerNumFlag {
		req.AvgSendMessengerNum = &builder.avgSendMessengerNum

	}
	if builder.docsDauFlag {
		req.DocsDau = &builder.docsDau

	}
	if builder.createDocsUserNumFlag {
		req.CreateDocsUserNum = &builder.createDocsUserNum

	}
	if builder.createDocsNumFlag {
		req.CreateDocsNum = &builder.createDocsNum

	}
	if builder.avgCreateDocsNumFlag {
		req.AvgCreateDocsNum = &builder.avgCreateDocsNum

	}
	if builder.calDauFlag {
		req.CalDau = &builder.calDau

	}
	if builder.createCalUserNumFlag {
		req.CreateCalUserNum = &builder.createCalUserNum

	}
	if builder.createCalNumFlag {
		req.CreateCalNum = &builder.createCalNum

	}
	if builder.avgCreateCalNumFlag {
		req.AvgCreateCalNum = &builder.avgCreateCalNum

	}
	if builder.vcDauFlag {
		req.VcDau = &builder.vcDau

	}
	if builder.vcDurationFlag {
		req.VcDuration = &builder.vcDuration

	}
	if builder.avgVcDurationFlag {
		req.AvgVcDuration = &builder.avgVcDuration

	}
	if builder.avgDurationFlag {
		req.AvgDuration = &builder.avgDuration

	}
	if builder.taskDauFlag {
		req.TaskDau = &builder.taskDau

	}
	if builder.createTaskUserNumFlag {
		req.CreateTaskUserNum = &builder.createTaskUserNum

	}
	if builder.createTaskNumFlag {
		req.CreateTaskNum = &builder.createTaskNum

	}
	if builder.avgCreateTaskNumFlag {
		req.AvgCreateTaskNum = &builder.avgCreateTaskNum

	}
	if builder.emailSendCountFlag {
		req.EmailSendCount = &builder.emailSendCount

	}
	if builder.emailReceiveCountFlag {
		req.EmailReceiveCount = &builder.emailReceiveCount

	}
	if builder.emailSendExtCountFlag {
		req.EmailSendExtCount = &builder.emailSendExtCount

	}
	if builder.emailReceiveExtCountFlag {
		req.EmailReceiveExtCount = &builder.emailReceiveExtCount

	}
	if builder.emailSendInCountFlag {
		req.EmailSendInCount = &builder.emailSendInCount

	}
	if builder.emailReceiveInCountFlag {
		req.EmailReceiveInCount = &builder.emailReceiveInCount

	}
	if builder.searchActiveDauFlag {
		req.SearchActiveDau = &builder.searchActiveDau

	}
	if builder.totalSearchCountFlag {
		req.TotalSearchCount = &builder.totalSearchCount

	}
	if builder.quickSearchCountFlag {
		req.QuickSearchCount = &builder.quickSearchCount

	}
	if builder.tabSearchCountFlag {
		req.TabSearchCount = &builder.tabSearchCount

	}
	if builder.productVersionFlag {
		req.ProductVersion = &builder.productVersion

	}
	return req
}

type AdminUserExtContactStat struct {
	Date *string `json:"date,omitempty"` // 日期

	UserId *string `json:"user_id,omitempty"` // 用户ID

	UserName *string `json:"user_name,omitempty"` // 成员姓名

	DepartmentName *string `json:"department_name,omitempty"` // 部门名

	RefContactUcnt *string `json:"ref_contact_ucnt,omitempty"` // 外部联系人数量

	RefContactTcnt *string `json:"ref_contact_tcnt,omitempty"` // 外部联系人所属企业数量
}

type AdminUserExtContactStatBuilder struct {
	date     string // 日期
	dateFlag bool

	userId     string // 用户ID
	userIdFlag bool

	userName     string // 成员姓名
	userNameFlag bool

	departmentName     string // 部门名
	departmentNameFlag bool

	refContactUcnt     string // 外部联系人数量
	refContactUcntFlag bool

	refContactTcnt     string // 外部联系人所属企业数量
	refContactTcntFlag bool
}

func NewAdminUserExtContactStatBuilder() *AdminUserExtContactStatBuilder {
	builder := &AdminUserExtContactStatBuilder{}
	return builder
}

// 日期
//
// 示例值：2024-08-15
func (builder *AdminUserExtContactStatBuilder) Date(date string) *AdminUserExtContactStatBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

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

// 成员姓名
//
// 示例值：路人甲A
func (builder *AdminUserExtContactStatBuilder) UserName(userName string) *AdminUserExtContactStatBuilder {
	builder.userName = userName
	builder.userNameFlag = true
	return builder
}

// 部门名
//
// 示例值：部门A
func (builder *AdminUserExtContactStatBuilder) DepartmentName(departmentName string) *AdminUserExtContactStatBuilder {
	builder.departmentName = departmentName
	builder.departmentNameFlag = true
	return builder
}

// 外部联系人数量
//
// 示例值：200
func (builder *AdminUserExtContactStatBuilder) RefContactUcnt(refContactUcnt string) *AdminUserExtContactStatBuilder {
	builder.refContactUcnt = refContactUcnt
	builder.refContactUcntFlag = true
	return builder
}

// 外部联系人所属企业数量
//
// 示例值：10
func (builder *AdminUserExtContactStatBuilder) RefContactTcnt(refContactTcnt string) *AdminUserExtContactStatBuilder {
	builder.refContactTcnt = refContactTcnt
	builder.refContactTcntFlag = true
	return builder
}

func (builder *AdminUserExtContactStatBuilder) Build() *AdminUserExtContactStat {
	req := &AdminUserExtContactStat{}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.userNameFlag {
		req.UserName = &builder.userName

	}
	if builder.departmentNameFlag {
		req.DepartmentName = &builder.departmentName

	}
	if builder.refContactUcntFlag {
		req.RefContactUcnt = &builder.refContactUcnt

	}
	if builder.refContactTcntFlag {
		req.RefContactTcnt = &builder.refContactTcnt

	}
	return req
}

type AdminUserStat struct {
	Date *string `json:"date,omitempty"` // 日期

	UserId *string `json:"user_id,omitempty"` // 用户ID

	UserName *string `json:"user_name,omitempty"` // 用户名

	DepartmentName *string `json:"department_name,omitempty"` // 部门名

	DepartmentPath *string `json:"department_path,omitempty"` // 部门路径

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

	UserActiveFlag *int `json:"user_active_flag,omitempty"` // 用户激活状态

	RegisterTime *string `json:"register_time,omitempty"` // 激活时间

	SuiteActiveFlag *int `json:"suite_active_flag,omitempty"` // 用户活跃状态，用户在飞书套件任意应用登陆，即为活跃。包括飞书即时消息，文档，日历，会议，开放平台等

	LastActiveTime *string `json:"last_active_time,omitempty"` // 最近活跃时间

	ImActiveFlag *int `json:"im_active_flag,omitempty"` // 用户消息活跃状态，发生过如下事件，则认为该用户消息活跃：;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等

	SendMessengerNum *int `json:"send_messenger_num,omitempty"` // 发送消息数

	DocsActiveFlag *int `json:"docs_active_flag,omitempty"` // 用户云文档活跃状态，"发生过如下事件，则认为该用户云文档活跃： ;事件1：文档/文件打开;事件2：进入docs相关页面：如文档详情页，space的各个页面"

	CreateDocsNum *int `json:"create_docs_num,omitempty"` // 创建文件数

	CalActiveFlag *int `json:"cal_active_flag,omitempty"` // 用户日历活跃状态，发生过如下事件，则认为用户日历活跃，包含进入日历、创建日程、收到日程邀请等

	CreateCalNum *int `json:"create_cal_num,omitempty"` // 创建日程数

	VcActiveFlag *int `json:"vc_active_flag,omitempty"` // 用户音视频会议活跃状态，用户进入会中状态（不包含妙计和直播）即为活跃

	VcDuration *int `json:"vc_duration,omitempty"` // 会议时长（分钟）

	ActiveOs *string `json:"active_os,omitempty"` // 活跃设备

	CreateTaskNum *int `json:"create_task_num,omitempty"` // 创建任务数

	VcNum *int `json:"vc_num,omitempty"` // 会议数

	AppPackageType *string `json:"app_package_type,omitempty"` // 飞书的应用类型名称

	OsName *string `json:"os_name,omitempty"` // 操作系统名称

	EmailSendCount *string `json:"email_send_count,omitempty"` // 邮件总发件量

	EmailReceiveCount *string `json:"email_receive_count,omitempty"` // 邮件总收件量

	EmailSendExtCount *string `json:"email_send_ext_count,omitempty"` // 对外发件数

	EmailReceiveExtCount *string `json:"email_receive_ext_count,omitempty"` // 来自外部收件数

	EmailSendInCount *string `json:"email_send_in_count,omitempty"` // 对内发件数

	EmailReceiveInCount *string `json:"email_receive_in_count,omitempty"` // 来自内部收件数

	SearchActiveFlag *int `json:"search_active_flag,omitempty"` // 是否使用了大搜

	TotalSearchCount *string `json:"total_search_count,omitempty"` // 总搜索次数

	QuickSearchCount *string `json:"quick_search_count,omitempty"` // 综搜次数

	TabSearchCount *string `json:"tab_search_count,omitempty"` // 垂搜次数
}

type AdminUserStatBuilder struct {
	date     string // 日期
	dateFlag bool

	userId     string // 用户ID
	userIdFlag bool

	userName     string // 用户名
	userNameFlag bool

	departmentName     string // 部门名
	departmentNameFlag bool

	departmentPath     string // 部门路径
	departmentPathFlag bool

	createTime     string // 账号创建时间
	createTimeFlag bool

	userActiveFlag     int // 用户激活状态
	userActiveFlagFlag bool

	registerTime     string // 激活时间
	registerTimeFlag bool

	suiteActiveFlag     int // 用户活跃状态，用户在飞书套件任意应用登陆，即为活跃。包括飞书即时消息，文档，日历，会议，开放平台等
	suiteActiveFlagFlag bool

	lastActiveTime     string // 最近活跃时间
	lastActiveTimeFlag bool

	imActiveFlag     int // 用户消息活跃状态，发生过如下事件，则认为该用户消息活跃：;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等
	imActiveFlagFlag bool

	sendMessengerNum     int // 发送消息数
	sendMessengerNumFlag bool

	docsActiveFlag     int // 用户云文档活跃状态，"发生过如下事件，则认为该用户云文档活跃： ;事件1：文档/文件打开;事件2：进入docs相关页面：如文档详情页，space的各个页面"
	docsActiveFlagFlag bool

	createDocsNum     int // 创建文件数
	createDocsNumFlag bool

	calActiveFlag     int // 用户日历活跃状态，发生过如下事件，则认为用户日历活跃，包含进入日历、创建日程、收到日程邀请等
	calActiveFlagFlag bool

	createCalNum     int // 创建日程数
	createCalNumFlag bool

	vcActiveFlag     int // 用户音视频会议活跃状态，用户进入会中状态（不包含妙计和直播）即为活跃
	vcActiveFlagFlag bool

	vcDuration     int // 会议时长（分钟）
	vcDurationFlag bool

	activeOs     string // 活跃设备
	activeOsFlag bool

	createTaskNum     int // 创建任务数
	createTaskNumFlag bool

	vcNum     int // 会议数
	vcNumFlag bool

	appPackageType     string // 飞书的应用类型名称
	appPackageTypeFlag bool

	osName     string // 操作系统名称
	osNameFlag bool

	emailSendCount     string // 邮件总发件量
	emailSendCountFlag bool

	emailReceiveCount     string // 邮件总收件量
	emailReceiveCountFlag bool

	emailSendExtCount     string // 对外发件数
	emailSendExtCountFlag bool

	emailReceiveExtCount     string // 来自外部收件数
	emailReceiveExtCountFlag bool

	emailSendInCount     string // 对内发件数
	emailSendInCountFlag bool

	emailReceiveInCount     string // 来自内部收件数
	emailReceiveInCountFlag bool

	searchActiveFlag     int // 是否使用了大搜
	searchActiveFlagFlag bool

	totalSearchCount     string // 总搜索次数
	totalSearchCountFlag bool

	quickSearchCount     string // 综搜次数
	quickSearchCountFlag bool

	tabSearchCount     string // 垂搜次数
	tabSearchCountFlag bool
}

func NewAdminUserStatBuilder() *AdminUserStatBuilder {
	builder := &AdminUserStatBuilder{}
	return builder
}

// 日期
//
// 示例值：2020-02-15
func (builder *AdminUserStatBuilder) Date(date string) *AdminUserStatBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

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

// 用户名
//
// 示例值：Zhang San
func (builder *AdminUserStatBuilder) UserName(userName string) *AdminUserStatBuilder {
	builder.userName = userName
	builder.userNameFlag = true
	return builder
}

// 部门名
//
// 示例值：testcqlbfaaasdasdasd
func (builder *AdminUserStatBuilder) DepartmentName(departmentName string) *AdminUserStatBuilder {
	builder.departmentName = departmentName
	builder.departmentNameFlag = true
	return builder
}

// 部门路径
//
// 示例值：testkkk/testcqlbfaaasdasdasd
func (builder *AdminUserStatBuilder) DepartmentPath(departmentPath string) *AdminUserStatBuilder {
	builder.departmentPath = departmentPath
	builder.departmentPathFlag = true
	return builder
}

// 账号创建时间
//
// 示例值：2020-09-04 11:17:55
func (builder *AdminUserStatBuilder) CreateTime(createTime string) *AdminUserStatBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 用户激活状态
//
// 示例值：1
func (builder *AdminUserStatBuilder) UserActiveFlag(userActiveFlag int) *AdminUserStatBuilder {
	builder.userActiveFlag = userActiveFlag
	builder.userActiveFlagFlag = true
	return builder
}

// 激活时间
//
// 示例值：2020-09-04 11:18:32
func (builder *AdminUserStatBuilder) RegisterTime(registerTime string) *AdminUserStatBuilder {
	builder.registerTime = registerTime
	builder.registerTimeFlag = true
	return builder
}

// 用户活跃状态，用户在飞书套件任意应用登陆，即为活跃。包括飞书即时消息，文档，日历，会议，开放平台等
//
// 示例值：1
func (builder *AdminUserStatBuilder) SuiteActiveFlag(suiteActiveFlag int) *AdminUserStatBuilder {
	builder.suiteActiveFlag = suiteActiveFlag
	builder.suiteActiveFlagFlag = true
	return builder
}

// 最近活跃时间
//
// 示例值：2020-12-21 22:21:28
func (builder *AdminUserStatBuilder) LastActiveTime(lastActiveTime string) *AdminUserStatBuilder {
	builder.lastActiveTime = lastActiveTime
	builder.lastActiveTimeFlag = true
	return builder
}

// 用户消息活跃状态，发生过如下事件，则认为该用户消息活跃：;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等
//
// 示例值：1
func (builder *AdminUserStatBuilder) ImActiveFlag(imActiveFlag int) *AdminUserStatBuilder {
	builder.imActiveFlag = imActiveFlag
	builder.imActiveFlagFlag = true
	return builder
}

// 发送消息数
//
// 示例值：0
func (builder *AdminUserStatBuilder) SendMessengerNum(sendMessengerNum int) *AdminUserStatBuilder {
	builder.sendMessengerNum = sendMessengerNum
	builder.sendMessengerNumFlag = true
	return builder
}

// 用户云文档活跃状态，"发生过如下事件，则认为该用户云文档活跃： ;事件1：文档/文件打开;事件2：进入docs相关页面：如文档详情页，space的各个页面"
//
// 示例值：1
func (builder *AdminUserStatBuilder) DocsActiveFlag(docsActiveFlag int) *AdminUserStatBuilder {
	builder.docsActiveFlag = docsActiveFlag
	builder.docsActiveFlagFlag = true
	return builder
}

// 创建文件数
//
// 示例值：1
func (builder *AdminUserStatBuilder) CreateDocsNum(createDocsNum int) *AdminUserStatBuilder {
	builder.createDocsNum = createDocsNum
	builder.createDocsNumFlag = true
	return builder
}

// 用户日历活跃状态，发生过如下事件，则认为用户日历活跃，包含进入日历、创建日程、收到日程邀请等
//
// 示例值：1
func (builder *AdminUserStatBuilder) CalActiveFlag(calActiveFlag int) *AdminUserStatBuilder {
	builder.calActiveFlag = calActiveFlag
	builder.calActiveFlagFlag = true
	return builder
}

// 创建日程数
//
// 示例值：0
func (builder *AdminUserStatBuilder) CreateCalNum(createCalNum int) *AdminUserStatBuilder {
	builder.createCalNum = createCalNum
	builder.createCalNumFlag = true
	return builder
}

// 用户音视频会议活跃状态，用户进入会中状态（不包含妙计和直播）即为活跃
//
// 示例值：1
func (builder *AdminUserStatBuilder) VcActiveFlag(vcActiveFlag int) *AdminUserStatBuilder {
	builder.vcActiveFlag = vcActiveFlag
	builder.vcActiveFlagFlag = true
	return builder
}

// 会议时长（分钟）
//
// 示例值：0
func (builder *AdminUserStatBuilder) VcDuration(vcDuration int) *AdminUserStatBuilder {
	builder.vcDuration = vcDuration
	builder.vcDurationFlag = true
	return builder
}

// 活跃设备
//
// 示例值：'ios 14.2,-','ios 14.2,feishu 3.40.0-alpha'
func (builder *AdminUserStatBuilder) ActiveOs(activeOs string) *AdminUserStatBuilder {
	builder.activeOs = activeOs
	builder.activeOsFlag = true
	return builder
}

// 创建任务数
//
// 示例值：0
func (builder *AdminUserStatBuilder) CreateTaskNum(createTaskNum int) *AdminUserStatBuilder {
	builder.createTaskNum = createTaskNum
	builder.createTaskNumFlag = true
	return builder
}

// 会议数
//
// 示例值：0
func (builder *AdminUserStatBuilder) VcNum(vcNum int) *AdminUserStatBuilder {
	builder.vcNum = vcNum
	builder.vcNumFlag = true
	return builder
}

// 飞书的应用类型名称
//
// 示例值：Feishu，Lark
func (builder *AdminUserStatBuilder) AppPackageType(appPackageType string) *AdminUserStatBuilder {
	builder.appPackageType = appPackageType
	builder.appPackageTypeFlag = true
	return builder
}

// 操作系统名称
//
// 示例值：iOS,Andorid,Windows
func (builder *AdminUserStatBuilder) OsName(osName string) *AdminUserStatBuilder {
	builder.osName = osName
	builder.osNameFlag = true
	return builder
}

// 邮件总发件量
//
// 示例值：2
func (builder *AdminUserStatBuilder) EmailSendCount(emailSendCount string) *AdminUserStatBuilder {
	builder.emailSendCount = emailSendCount
	builder.emailSendCountFlag = true
	return builder
}

// 邮件总收件量
//
// 示例值：3
func (builder *AdminUserStatBuilder) EmailReceiveCount(emailReceiveCount string) *AdminUserStatBuilder {
	builder.emailReceiveCount = emailReceiveCount
	builder.emailReceiveCountFlag = true
	return builder
}

// 对外发件数
//
// 示例值：4
func (builder *AdminUserStatBuilder) EmailSendExtCount(emailSendExtCount string) *AdminUserStatBuilder {
	builder.emailSendExtCount = emailSendExtCount
	builder.emailSendExtCountFlag = true
	return builder
}

// 来自外部收件数
//
// 示例值：5
func (builder *AdminUserStatBuilder) EmailReceiveExtCount(emailReceiveExtCount string) *AdminUserStatBuilder {
	builder.emailReceiveExtCount = emailReceiveExtCount
	builder.emailReceiveExtCountFlag = true
	return builder
}

// 对内发件数
//
// 示例值：6
func (builder *AdminUserStatBuilder) EmailSendInCount(emailSendInCount string) *AdminUserStatBuilder {
	builder.emailSendInCount = emailSendInCount
	builder.emailSendInCountFlag = true
	return builder
}

// 来自内部收件数
//
// 示例值：7
func (builder *AdminUserStatBuilder) EmailReceiveInCount(emailReceiveInCount string) *AdminUserStatBuilder {
	builder.emailReceiveInCount = emailReceiveInCount
	builder.emailReceiveInCountFlag = true
	return builder
}

// 是否使用了大搜
//
// 示例值：1
func (builder *AdminUserStatBuilder) SearchActiveFlag(searchActiveFlag int) *AdminUserStatBuilder {
	builder.searchActiveFlag = searchActiveFlag
	builder.searchActiveFlagFlag = true
	return builder
}

// 总搜索次数
//
// 示例值：7
func (builder *AdminUserStatBuilder) TotalSearchCount(totalSearchCount string) *AdminUserStatBuilder {
	builder.totalSearchCount = totalSearchCount
	builder.totalSearchCountFlag = true
	return builder
}

// 综搜次数
//
// 示例值：7
func (builder *AdminUserStatBuilder) QuickSearchCount(quickSearchCount string) *AdminUserStatBuilder {
	builder.quickSearchCount = quickSearchCount
	builder.quickSearchCountFlag = true
	return builder
}

// 垂搜次数
//
// 示例值：7
func (builder *AdminUserStatBuilder) TabSearchCount(tabSearchCount string) *AdminUserStatBuilder {
	builder.tabSearchCount = tabSearchCount
	builder.tabSearchCountFlag = true
	return builder
}

func (builder *AdminUserStatBuilder) Build() *AdminUserStat {
	req := &AdminUserStat{}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.userNameFlag {
		req.UserName = &builder.userName

	}
	if builder.departmentNameFlag {
		req.DepartmentName = &builder.departmentName

	}
	if builder.departmentPathFlag {
		req.DepartmentPath = &builder.departmentPath

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

	}
	if builder.userActiveFlagFlag {
		req.UserActiveFlag = &builder.userActiveFlag

	}
	if builder.registerTimeFlag {
		req.RegisterTime = &builder.registerTime

	}
	if builder.suiteActiveFlagFlag {
		req.SuiteActiveFlag = &builder.suiteActiveFlag

	}
	if builder.lastActiveTimeFlag {
		req.LastActiveTime = &builder.lastActiveTime

	}
	if builder.imActiveFlagFlag {
		req.ImActiveFlag = &builder.imActiveFlag

	}
	if builder.sendMessengerNumFlag {
		req.SendMessengerNum = &builder.sendMessengerNum

	}
	if builder.docsActiveFlagFlag {
		req.DocsActiveFlag = &builder.docsActiveFlag

	}
	if builder.createDocsNumFlag {
		req.CreateDocsNum = &builder.createDocsNum

	}
	if builder.calActiveFlagFlag {
		req.CalActiveFlag = &builder.calActiveFlag

	}
	if builder.createCalNumFlag {
		req.CreateCalNum = &builder.createCalNum

	}
	if builder.vcActiveFlagFlag {
		req.VcActiveFlag = &builder.vcActiveFlag

	}
	if builder.vcDurationFlag {
		req.VcDuration = &builder.vcDuration

	}
	if builder.activeOsFlag {
		req.ActiveOs = &builder.activeOs

	}
	if builder.createTaskNumFlag {
		req.CreateTaskNum = &builder.createTaskNum

	}
	if builder.vcNumFlag {
		req.VcNum = &builder.vcNum

	}
	if builder.appPackageTypeFlag {
		req.AppPackageType = &builder.appPackageType

	}
	if builder.osNameFlag {
		req.OsName = &builder.osName

	}
	if builder.emailSendCountFlag {
		req.EmailSendCount = &builder.emailSendCount

	}
	if builder.emailReceiveCountFlag {
		req.EmailReceiveCount = &builder.emailReceiveCount

	}
	if builder.emailSendExtCountFlag {
		req.EmailSendExtCount = &builder.emailSendExtCount

	}
	if builder.emailReceiveExtCountFlag {
		req.EmailReceiveExtCount = &builder.emailReceiveExtCount

	}
	if builder.emailSendInCountFlag {
		req.EmailSendInCount = &builder.emailSendInCount

	}
	if builder.emailReceiveInCountFlag {
		req.EmailReceiveInCount = &builder.emailReceiveInCount

	}
	if builder.searchActiveFlagFlag {
		req.SearchActiveFlag = &builder.searchActiveFlag

	}
	if builder.totalSearchCountFlag {
		req.TotalSearchCount = &builder.totalSearchCount

	}
	if builder.quickSearchCountFlag {
		req.QuickSearchCount = &builder.quickSearchCount

	}
	if builder.tabSearchCountFlag {
		req.TabSearchCount = &builder.tabSearchCount

	}
	return req
}

type Administrator struct {
	UserId *string `json:"user_id,omitempty"` //

	IsSuperAdministrator *bool `json:"is_super_administrator,omitempty"` // 用户是否是超级管理员

	IsAdministrator *bool `json:"is_administrator,omitempty"` // 用户是否是管理员
}

type AdministratorBuilder struct {
	userId     string //
	userIdFlag bool

	isSuperAdministrator     bool // 用户是否是超级管理员
	isSuperAdministratorFlag bool

	isAdministrator     bool // 用户是否是管理员
	isAdministratorFlag bool
}

func NewAdministratorBuilder() *AdministratorBuilder {
	builder := &AdministratorBuilder{}
	return builder
}

//
//
// 示例值：
func (builder *AdministratorBuilder) UserId(userId string) *AdministratorBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 用户是否是超级管理员
//
// 示例值：
func (builder *AdministratorBuilder) IsSuperAdministrator(isSuperAdministrator bool) *AdministratorBuilder {
	builder.isSuperAdministrator = isSuperAdministrator
	builder.isSuperAdministratorFlag = true
	return builder
}

// 用户是否是管理员
//
// 示例值：
func (builder *AdministratorBuilder) IsAdministrator(isAdministrator bool) *AdministratorBuilder {
	builder.isAdministrator = isAdministrator
	builder.isAdministratorFlag = true
	return builder
}

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

	}
	if builder.isSuperAdministratorFlag {
		req.IsSuperAdministrator = &builder.isSuperAdministrator

	}
	if builder.isAdministratorFlag {
		req.IsAdministrator = &builder.isAdministrator

	}
	return req
}

type AnnualBaseTopAi struct {
	NameCn *string `json:"name_cn,omitempty"` // 2025年用户多维表格文档使用最多的AI功能名称(中文)

	NameEn *string `json:"name_en,omitempty"` // 2025年用户多维表格文档使用最多的AI功能名称(英文)

	NameCnList *string `json:"name_cn_list,omitempty"` // 2025年用户多维表格文档使用的Top5 AI功能名称(中文)

	NameEnList *string `json:"name_en_list,omitempty"` // 2025年用户多维表格文档使用的Top5 AI功能名称(英文)
}

type AnnualBaseTopAiBuilder struct {
	nameCn     string // 2025年用户多维表格文档使用最多的AI功能名称(中文)
	nameCnFlag bool

	nameEn     string // 2025年用户多维表格文档使用最多的AI功能名称(英文)
	nameEnFlag bool

	nameCnList     string // 2025年用户多维表格文档使用的Top5 AI功能名称(中文)
	nameCnListFlag bool

	nameEnList     string // 2025年用户多维表格文档使用的Top5 AI功能名称(英文)
	nameEnListFlag bool
}

func NewAnnualBaseTopAiBuilder() *AnnualBaseTopAiBuilder {
	builder := &AnnualBaseTopAiBuilder{}
	return builder
}

// 2025年用户多维表格文档使用最多的AI功能名称(中文)
//
// 示例值：AI 字段捷径
func (builder *AnnualBaseTopAiBuilder) NameCn(nameCn string) *AnnualBaseTopAiBuilder {
	builder.nameCn = nameCn
	builder.nameCnFlag = true
	return builder
}

// 2025年用户多维表格文档使用最多的AI功能名称(英文)
//
// 示例值：AI field shortcuts
func (builder *AnnualBaseTopAiBuilder) NameEn(nameEn string) *AnnualBaseTopAiBuilder {
	builder.nameEn = nameEn
	builder.nameEnFlag = true
	return builder
}

// 2025年用户多维表格文档使用的Top5 AI功能名称(中文)
//
// 示例值：AI 侧边栏,工作流 AI Agent 节点,AI 字段捷径,AI 生成公式,AI  浮窗工具栏
func (builder *AnnualBaseTopAiBuilder) NameCnList(nameCnList string) *AnnualBaseTopAiBuilder {
	builder.nameCnList = nameCnList
	builder.nameCnListFlag = true
	return builder
}

// 2025年用户多维表格文档使用的Top5 AI功能名称(英文)
//
// 示例值：AI sidebar,Workflow AI Agent node,AI field shortcuts,AI-generated formulas,AI smart toolbar
func (builder *AnnualBaseTopAiBuilder) NameEnList(nameEnList string) *AnnualBaseTopAiBuilder {
	builder.nameEnList = nameEnList
	builder.nameEnListFlag = true
	return builder
}

func (builder *AnnualBaseTopAiBuilder) Build() *AnnualBaseTopAi {
	req := &AnnualBaseTopAi{}
	if builder.nameCnFlag {
		req.NameCn = &builder.nameCn

	}
	if builder.nameEnFlag {
		req.NameEn = &builder.nameEn

	}
	if builder.nameCnListFlag {
		req.NameCnList = &builder.nameCnList

	}
	if builder.nameEnListFlag {
		req.NameEnList = &builder.nameEnList

	}
	return req
}

type AnnualReportMapFloat struct {
	Year *string `json:"year,omitempty"` // 年份

	Num *float64 `json:"num,omitempty"` // float64类型数据
}

type AnnualReportMapFloatBuilder struct {
	year     string // 年份
	yearFlag bool

	num     float64 // float64类型数据
	numFlag bool
}

func NewAnnualReportMapFloatBuilder() *AnnualReportMapFloatBuilder {
	builder := &AnnualReportMapFloatBuilder{}
	return builder
}

// 年份
//
// 示例值：2024
func (builder *AnnualReportMapFloatBuilder) Year(year string) *AnnualReportMapFloatBuilder {
	builder.year = year
	builder.yearFlag = true
	return builder
}

// float64类型数据
//
// 示例值：88.88
func (builder *AnnualReportMapFloatBuilder) Num(num float64) *AnnualReportMapFloatBuilder {
	builder.num = num
	builder.numFlag = true
	return builder
}

func (builder *AnnualReportMapFloatBuilder) Build() *AnnualReportMapFloat {
	req := &AnnualReportMapFloat{}
	if builder.yearFlag {
		req.Year = &builder.year

	}
	if builder.numFlag {
		req.Num = &builder.num

	}
	return req
}

type AnnualReportMapInt struct {
	Year *string `json:"year,omitempty"` // 年份

	Count *string `json:"count,omitempty"` // int64类型数据
}

type AnnualReportMapIntBuilder struct {
	year     string // 年份
	yearFlag bool

	count     string // int64类型数据
	countFlag bool
}

func NewAnnualReportMapIntBuilder() *AnnualReportMapIntBuilder {
	builder := &AnnualReportMapIntBuilder{}
	return builder
}

// 年份
//
// 示例值：2024
func (builder *AnnualReportMapIntBuilder) Year(year string) *AnnualReportMapIntBuilder {
	builder.year = year
	builder.yearFlag = true
	return builder
}

// int64类型数据
//
// 示例值：88
func (builder *AnnualReportMapIntBuilder) Count(count string) *AnnualReportMapIntBuilder {
	builder.count = count
	builder.countFlag = true
	return builder
}

func (builder *AnnualReportMapIntBuilder) Build() *AnnualReportMapInt {
	req := &AnnualReportMapInt{}
	if builder.yearFlag {
		req.Year = &builder.year

	}
	if builder.countFlag {
		req.Count = &builder.count

	}
	return req
}

type AnnualVcOrgCnt struct {
	OrganizedMeetingCnt *string `json:"organized_meeting_cnt,omitempty"` // 2025年用户组织的会议数

	OrganizedCalMeetingCnt *string `json:"organized_cal_meeting_cnt,omitempty"` // 2025年用户组织日程会议数

	OrganizedInstantMeetingCnt *string `json:"organized_instant_meeting_cnt,omitempty"` // 2025年用户组织即时会议数
}

type AnnualVcOrgCntBuilder struct {
	organizedMeetingCnt     string // 2025年用户组织的会议数
	organizedMeetingCntFlag bool

	organizedCalMeetingCnt     string // 2025年用户组织日程会议数
	organizedCalMeetingCntFlag bool

	organizedInstantMeetingCnt     string // 2025年用户组织即时会议数
	organizedInstantMeetingCntFlag bool
}

func NewAnnualVcOrgCntBuilder() *AnnualVcOrgCntBuilder {
	builder := &AnnualVcOrgCntBuilder{}
	return builder
}

// 2025年用户组织的会议数
//
// 示例值：66
func (builder *AnnualVcOrgCntBuilder) OrganizedMeetingCnt(organizedMeetingCnt string) *AnnualVcOrgCntBuilder {
	builder.organizedMeetingCnt = organizedMeetingCnt
	builder.organizedMeetingCntFlag = true
	return builder
}

// 2025年用户组织日程会议数
//
// 示例值：88
func (builder *AnnualVcOrgCntBuilder) OrganizedCalMeetingCnt(organizedCalMeetingCnt string) *AnnualVcOrgCntBuilder {
	builder.organizedCalMeetingCnt = organizedCalMeetingCnt
	builder.organizedCalMeetingCntFlag = true
	return builder
}

// 2025年用户组织即时会议数
//
// 示例值：99
func (builder *AnnualVcOrgCntBuilder) OrganizedInstantMeetingCnt(organizedInstantMeetingCnt string) *AnnualVcOrgCntBuilder {
	builder.organizedInstantMeetingCnt = organizedInstantMeetingCnt
	builder.organizedInstantMeetingCntFlag = true
	return builder
}

func (builder *AnnualVcOrgCntBuilder) Build() *AnnualVcOrgCnt {
	req := &AnnualVcOrgCnt{}
	if builder.organizedMeetingCntFlag {
		req.OrganizedMeetingCnt = &builder.organizedMeetingCnt

	}
	if builder.organizedCalMeetingCntFlag {
		req.OrganizedCalMeetingCnt = &builder.organizedCalMeetingCnt

	}
	if builder.organizedInstantMeetingCntFlag {
		req.OrganizedInstantMeetingCnt = &builder.organizedInstantMeetingCnt

	}
	return req
}

type ApiAuditCommonDrawers struct {
	CommonDrawInfoList []*ApiAuditDrawerInfo `json:"common_draw_info_list,omitempty"` // 扩展字段信息
}

type ApiAuditCommonDrawersBuilder struct {
	commonDrawInfoList     []*ApiAuditDrawerInfo // 扩展字段信息
	commonDrawInfoListFlag bool
}

func NewApiAuditCommonDrawersBuilder() *ApiAuditCommonDrawersBuilder {
	builder := &ApiAuditCommonDrawersBuilder{}
	return builder
}

// 扩展字段信息
//
// 示例值：
func (builder *ApiAuditCommonDrawersBuilder) CommonDrawInfoList(commonDrawInfoList []*ApiAuditDrawerInfo) *ApiAuditCommonDrawersBuilder {
	builder.commonDrawInfoList = commonDrawInfoList
	builder.commonDrawInfoListFlag = true
	return builder
}

func (builder *ApiAuditCommonDrawersBuilder) Build() *ApiAuditCommonDrawers {
	req := &ApiAuditCommonDrawers{}
	if builder.commonDrawInfoListFlag {
		req.CommonDrawInfoList = builder.commonDrawInfoList
	}
	return req
}

type ApiAuditDrawerInfo struct {
	InfoKey *string `json:"info_key,omitempty"` // key信息

	InfoVal *string `json:"info_val,omitempty"` // val值

	KeyI18nKey *string `json:"key_i18n_key,omitempty"` // key对应的i18nkey

	ValType *string `json:"val_type,omitempty"` // val类型

	ValI18nKey *string `json:"val_i18n_key,omitempty"` // val对应的i18nkey
}

type ApiAuditDrawerInfoBuilder struct {
	infoKey     string // key信息
	infoKeyFlag bool

	infoVal     string // val值
	infoValFlag bool

	keyI18nKey     string // key对应的i18nkey
	keyI18nKeyFlag bool

	valType     string // val类型
	valTypeFlag bool

	valI18nKey     string // val对应的i18nkey
	valI18nKeyFlag bool
}

func NewApiAuditDrawerInfoBuilder() *ApiAuditDrawerInfoBuilder {
	builder := &ApiAuditDrawerInfoBuilder{}
	return builder
}

// key信息
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) InfoKey(infoKey string) *ApiAuditDrawerInfoBuilder {
	builder.infoKey = infoKey
	builder.infoKeyFlag = true
	return builder
}

// val值
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) InfoVal(infoVal string) *ApiAuditDrawerInfoBuilder {
	builder.infoVal = infoVal
	builder.infoValFlag = true
	return builder
}

// key对应的i18nkey
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) KeyI18nKey(keyI18nKey string) *ApiAuditDrawerInfoBuilder {
	builder.keyI18nKey = keyI18nKey
	builder.keyI18nKeyFlag = true
	return builder
}

// val类型
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) ValType(valType string) *ApiAuditDrawerInfoBuilder {
	builder.valType = valType
	builder.valTypeFlag = true
	return builder
}

// val对应的i18nkey
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) ValI18nKey(valI18nKey string) *ApiAuditDrawerInfoBuilder {
	builder.valI18nKey = valI18nKey
	builder.valI18nKeyFlag = true
	return builder
}

func (builder *ApiAuditDrawerInfoBuilder) Build() *ApiAuditDrawerInfo {
	req := &ApiAuditDrawerInfo{}
	if builder.infoKeyFlag {
		req.InfoKey = &builder.infoKey

	}
	if builder.infoValFlag {
		req.InfoVal = &builder.infoVal

	}
	if builder.keyI18nKeyFlag {
		req.KeyI18nKey = &builder.keyI18nKey

	}
	if builder.valTypeFlag {
		req.ValType = &builder.valType

	}
	if builder.valI18nKeyFlag {
		req.ValI18nKey = &builder.valI18nKey

	}
	return req
}

type AuditAndroidContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Region *string `json:"region,omitempty"` // 设备语言

	IdI *string `json:"id_i,omitempty"` // 安卓版本号

	IdR *string `json:"id_r,omitempty"` // 安卓版本

	HwBrand *string `json:"hw_brand,omitempty"` // Brand

	HwManuf *string `json:"hw_manuf,omitempty"` // 制造商

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	RouteIip *string `json:"route_iip,omitempty"` // 路由IP

	RouteGip *string `json:"route_gip,omitempty"` // 路由网关IP

	EnvSu *string `json:"env_su,omitempty"` // 表示当前是否root

	EnvTz *string `json:"env_tz,omitempty"` // 手机系统时区

	EnvMl *string `json:"env_ml,omitempty"` // 手机系统语言

	Location *string `json:"location,omitempty"` // GPS经纬度

	ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip

	ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型

	CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditAndroidContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	region     string // 设备语言
	regionFlag bool

	idI     string // 安卓版本号
	idIFlag bool

	idR     string // 安卓版本
	idRFlag bool

	hwBrand     string // Brand
	hwBrandFlag bool

	hwManuf     string // 制造商
	hwManufFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	routeIip     string // 路由IP
	routeIipFlag bool

	routeGip     string // 路由网关IP
	routeGipFlag bool

	envSu     string // 表示当前是否root
	envSuFlag bool

	envTz     string // 手机系统时区
	envTzFlag bool

	envMl     string // 手机系统语言
	envMlFlag bool

	location     string // GPS经纬度
	locationFlag bool

	activeIp     string // 当前设备活跃ip
	activeIpFlag bool

	activeIpDetail     string // 当前设备活跃ip对应网卡类型
	activeIpDetailFlag bool

	cellBaseStation     string // 基站信息
	cellBaseStationFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditAndroidContextBuilder() *AuditAndroidContextBuilder {
	builder := &AuditAndroidContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Udid(udid string) *AuditAndroidContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Did(did string) *AuditAndroidContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：
func (builder *AuditAndroidContextBuilder) AppVer(appVer string) *AuditAndroidContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Ver(ver string) *AuditAndroidContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 设备语言
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Region(region string) *AuditAndroidContextBuilder {
	builder.region = region
	builder.regionFlag = true
	return builder
}

// 安卓版本号
//
// 示例值：
func (builder *AuditAndroidContextBuilder) IdI(idI string) *AuditAndroidContextBuilder {
	builder.idI = idI
	builder.idIFlag = true
	return builder
}

// 安卓版本
//
// 示例值：
func (builder *AuditAndroidContextBuilder) IdR(idR string) *AuditAndroidContextBuilder {
	builder.idR = idR
	builder.idRFlag = true
	return builder
}

// Brand
//
// 示例值：
func (builder *AuditAndroidContextBuilder) HwBrand(hwBrand string) *AuditAndroidContextBuilder {
	builder.hwBrand = hwBrand
	builder.hwBrandFlag = true
	return builder
}

// 制造商
//
// 示例值：
func (builder *AuditAndroidContextBuilder) HwManuf(hwManuf string) *AuditAndroidContextBuilder {
	builder.hwManuf = hwManuf
	builder.hwManufFlag = true
	return builder
}

// wifi ip
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Wifip(wifip string) *AuditAndroidContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// 路由IP
//
// 示例值：
func (builder *AuditAndroidContextBuilder) RouteIip(routeIip string) *AuditAndroidContextBuilder {
	builder.routeIip = routeIip
	builder.routeIipFlag = true
	return builder
}

// 路由网关IP
//
// 示例值：
func (builder *AuditAndroidContextBuilder) RouteGip(routeGip string) *AuditAndroidContextBuilder {
	builder.routeGip = routeGip
	builder.routeGipFlag = true
	return builder
}

// 表示当前是否root
//
// 示例值：
func (builder *AuditAndroidContextBuilder) EnvSu(envSu string) *AuditAndroidContextBuilder {
	builder.envSu = envSu
	builder.envSuFlag = true
	return builder
}

// 手机系统时区
//
// 示例值：
func (builder *AuditAndroidContextBuilder) EnvTz(envTz string) *AuditAndroidContextBuilder {
	builder.envTz = envTz
	builder.envTzFlag = true
	return builder
}

// 手机系统语言
//
// 示例值：
func (builder *AuditAndroidContextBuilder) EnvMl(envMl string) *AuditAndroidContextBuilder {
	builder.envMl = envMl
	builder.envMlFlag = true
	return builder
}

// GPS经纬度
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Location(location string) *AuditAndroidContextBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 当前设备活跃ip
//
// 示例值：
func (builder *AuditAndroidContextBuilder) ActiveIp(activeIp string) *AuditAndroidContextBuilder {
	builder.activeIp = activeIp
	builder.activeIpFlag = true
	return builder
}

// 当前设备活跃ip对应网卡类型
//
// 示例值：
func (builder *AuditAndroidContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditAndroidContextBuilder {
	builder.activeIpDetail = activeIpDetail
	builder.activeIpDetailFlag = true
	return builder
}

// 基站信息
//
// 示例值：
func (builder *AuditAndroidContextBuilder) CellBaseStation(cellBaseStation string) *AuditAndroidContextBuilder {
	builder.cellBaseStation = cellBaseStation
	builder.cellBaseStationFlag = true
	return builder
}

// 公网ip
//
// 示例值：
func (builder *AuditAndroidContextBuilder) IP(iP string) *AuditAndroidContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditAndroidContextBuilder) Build() *AuditAndroidContext {
	req := &AuditAndroidContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.regionFlag {
		req.Region = &builder.region

	}
	if builder.idIFlag {
		req.IdI = &builder.idI

	}
	if builder.idRFlag {
		req.IdR = &builder.idR

	}
	if builder.hwBrandFlag {
		req.HwBrand = &builder.hwBrand

	}
	if builder.hwManufFlag {
		req.HwManuf = &builder.hwManuf

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.routeIipFlag {
		req.RouteIip = &builder.routeIip

	}
	if builder.routeGipFlag {
		req.RouteGip = &builder.routeGip

	}
	if builder.envSuFlag {
		req.EnvSu = &builder.envSu

	}
	if builder.envTzFlag {
		req.EnvTz = &builder.envTz

	}
	if builder.envMlFlag {
		req.EnvMl = &builder.envMl

	}
	if builder.locationFlag {
		req.Location = &builder.location

	}
	if builder.activeIpFlag {
		req.ActiveIp = &builder.activeIp

	}
	if builder.activeIpDetailFlag {
		req.ActiveIpDetail = &builder.activeIpDetail

	}
	if builder.cellBaseStationFlag {
		req.CellBaseStation = &builder.cellBaseStation

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditContext struct {
	TerminalType *int `json:"terminal_type,omitempty"` // 终端类型

	IosContext *AuditIosContext `json:"ios_context,omitempty"` // ios的环境信息

	PcContext *AuditPcContext `json:"pc_context,omitempty"` // pc的环境信息

	WebContext *AuditWebContext `json:"web_context,omitempty"` // web的环境信息

	AndroidContext *AuditAndroidContext `json:"android_context,omitempty"` // android的环境信息
}

type AuditContextBuilder struct {
	terminalType     int // 终端类型
	terminalTypeFlag bool

	iosContext     *AuditIosContext // ios的环境信息
	iosContextFlag bool

	pcContext     *AuditPcContext // pc的环境信息
	pcContextFlag bool

	webContext     *AuditWebContext // web的环境信息
	webContextFlag bool

	androidContext     *AuditAndroidContext // android的环境信息
	androidContextFlag bool
}

func NewAuditContextBuilder() *AuditContextBuilder {
	builder := &AuditContextBuilder{}
	return builder
}

// 终端类型
//
// 示例值：
func (builder *AuditContextBuilder) TerminalType(terminalType int) *AuditContextBuilder {
	builder.terminalType = terminalType
	builder.terminalTypeFlag = true
	return builder
}

// ios的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) IosContext(iosContext *AuditIosContext) *AuditContextBuilder {
	builder.iosContext = iosContext
	builder.iosContextFlag = true
	return builder
}

// pc的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) PcContext(pcContext *AuditPcContext) *AuditContextBuilder {
	builder.pcContext = pcContext
	builder.pcContextFlag = true
	return builder
}

// web的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) WebContext(webContext *AuditWebContext) *AuditContextBuilder {
	builder.webContext = webContext
	builder.webContextFlag = true
	return builder
}

// android的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) AndroidContext(androidContext *AuditAndroidContext) *AuditContextBuilder {
	builder.androidContext = androidContext
	builder.androidContextFlag = true
	return builder
}

func (builder *AuditContextBuilder) Build() *AuditContext {
	req := &AuditContext{}
	if builder.terminalTypeFlag {
		req.TerminalType = &builder.terminalType

	}
	if builder.iosContextFlag {
		req.IosContext = builder.iosContext
	}
	if builder.pcContextFlag {
		req.PcContext = builder.pcContext
	}
	if builder.webContextFlag {
		req.WebContext = builder.webContext
	}
	if builder.androidContextFlag {
		req.AndroidContext = builder.androidContext
	}
	return req
}

type AuditDetail struct {
	Mc *string `json:"mc,omitempty"` // mac地址

	DeviceModel *string `json:"device_model,omitempty"` // 设备模型

	Os *string `json:"os,omitempty"` // 操作系统

	City *string `json:"city,omitempty"` // ip属地
}

type AuditDetailBuilder struct {
	mc     string // mac地址
	mcFlag bool

	deviceModel     string // 设备模型
	deviceModelFlag bool

	os     string // 操作系统
	osFlag bool

	city     string // ip属地
	cityFlag bool
}

func NewAuditDetailBuilder() *AuditDetailBuilder {
	builder := &AuditDetailBuilder{}
	return builder
}

// mac地址
//
// 示例值：08:00:20:0A:8C:6D
func (builder *AuditDetailBuilder) Mc(mc string) *AuditDetailBuilder {
	builder.mc = mc
	builder.mcFlag = true
	return builder
}

// 设备模型
//
// 示例值：iphone14
func (builder *AuditDetailBuilder) DeviceModel(deviceModel string) *AuditDetailBuilder {
	builder.deviceModel = deviceModel
	builder.deviceModelFlag = true
	return builder
}

// 操作系统
//
// 示例值：mac os
func (builder *AuditDetailBuilder) Os(os string) *AuditDetailBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// ip属地
//
// 示例值：北京
func (builder *AuditDetailBuilder) City(city string) *AuditDetailBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

func (builder *AuditDetailBuilder) Build() *AuditDetail {
	req := &AuditDetail{}
	if builder.mcFlag {
		req.Mc = &builder.mc

	}
	if builder.deviceModelFlag {
		req.DeviceModel = &builder.deviceModel

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.cityFlag {
		req.City = &builder.city

	}
	return req
}

type AuditEventExtend struct {
	CommentType *string `json:"comment_type,omitempty"` // 评论类型

	AppDetail *string `json:"app_detail,omitempty"` // app信息

	TwoStepValidation *bool `json:"two_step_validation,omitempty"` // 是否两步验证

	LoginMethod *string `json:"login_method,omitempty"` // 登录方式

	NewPeopleNumInVideo *int `json:"new_people_num_in_video,omitempty"` // 创建新的{x}人会议/通话

	ExternalPeopleNumInVideo *int `json:"external_people_num_in_video,omitempty"` // 将{x}名外部用户加入/退出通话

	ExternalPeopleNumInChat *int `json:"external_people_num_in_chat,omitempty"` // 将{x}名外部用户加入/退出群组

	JoinGroup *int `json:"join_group,omitempty"` // 创建{x}人数的群组

	QuitGroup *int `json:"quit_group,omitempty"` // 解散{x}人数的群组

	ExternalPeopleNumInDocShare *int `json:"external_people_num_in_doc_share,omitempty"` // 分享文档给{x}名外部用户
}

type AuditEventExtendBuilder struct {
	commentType     string // 评论类型
	commentTypeFlag bool

	appDetail     string // app信息
	appDetailFlag bool

	twoStepValidation     bool // 是否两步验证
	twoStepValidationFlag bool

	loginMethod     string // 登录方式
	loginMethodFlag bool

	newPeopleNumInVideo     int // 创建新的{x}人会议/通话
	newPeopleNumInVideoFlag bool

	externalPeopleNumInVideo     int // 将{x}名外部用户加入/退出通话
	externalPeopleNumInVideoFlag bool

	externalPeopleNumInChat     int // 将{x}名外部用户加入/退出群组
	externalPeopleNumInChatFlag bool

	joinGroup     int // 创建{x}人数的群组
	joinGroupFlag bool

	quitGroup     int // 解散{x}人数的群组
	quitGroupFlag bool

	externalPeopleNumInDocShare     int // 分享文档给{x}名外部用户
	externalPeopleNumInDocShareFlag bool
}

func NewAuditEventExtendBuilder() *AuditEventExtendBuilder {
	builder := &AuditEventExtendBuilder{}
	return builder
}

// 评论类型
//
// 示例值：
func (builder *AuditEventExtendBuilder) CommentType(commentType string) *AuditEventExtendBuilder {
	builder.commentType = commentType
	builder.commentTypeFlag = true
	return builder
}

// app信息
//
// 示例值：
func (builder *AuditEventExtendBuilder) AppDetail(appDetail string) *AuditEventExtendBuilder {
	builder.appDetail = appDetail
	builder.appDetailFlag = true
	return builder
}

// 是否两步验证
//
// 示例值：
func (builder *AuditEventExtendBuilder) TwoStepValidation(twoStepValidation bool) *AuditEventExtendBuilder {
	builder.twoStepValidation = twoStepValidation
	builder.twoStepValidationFlag = true
	return builder
}

// 登录方式
//
// 示例值：
func (builder *AuditEventExtendBuilder) LoginMethod(loginMethod string) *AuditEventExtendBuilder {
	builder.loginMethod = loginMethod
	builder.loginMethodFlag = true
	return builder
}

// 创建新的{x}人会议/通话
//
// 示例值：
func (builder *AuditEventExtendBuilder) NewPeopleNumInVideo(newPeopleNumInVideo int) *AuditEventExtendBuilder {
	builder.newPeopleNumInVideo = newPeopleNumInVideo
	builder.newPeopleNumInVideoFlag = true
	return builder
}

// 将{x}名外部用户加入/退出通话
//
// 示例值：
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInVideo(externalPeopleNumInVideo int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInVideo = externalPeopleNumInVideo
	builder.externalPeopleNumInVideoFlag = true
	return builder
}

// 将{x}名外部用户加入/退出群组
//
// 示例值：
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInChat(externalPeopleNumInChat int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInChat = externalPeopleNumInChat
	builder.externalPeopleNumInChatFlag = true
	return builder
}

// 创建{x}人数的群组
//
// 示例值：
func (builder *AuditEventExtendBuilder) JoinGroup(joinGroup int) *AuditEventExtendBuilder {
	builder.joinGroup = joinGroup
	builder.joinGroupFlag = true
	return builder
}

// 解散{x}人数的群组
//
// 示例值：
func (builder *AuditEventExtendBuilder) QuitGroup(quitGroup int) *AuditEventExtendBuilder {
	builder.quitGroup = quitGroup
	builder.quitGroupFlag = true
	return builder
}

// 分享文档给{x}名外部用户
//
// 示例值：
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInDocShare(externalPeopleNumInDocShare int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInDocShare = externalPeopleNumInDocShare
	builder.externalPeopleNumInDocShareFlag = true
	return builder
}

func (builder *AuditEventExtendBuilder) Build() *AuditEventExtend {
	req := &AuditEventExtend{}
	if builder.commentTypeFlag {
		req.CommentType = &builder.commentType

	}
	if builder.appDetailFlag {
		req.AppDetail = &builder.appDetail

	}
	if builder.twoStepValidationFlag {
		req.TwoStepValidation = &builder.twoStepValidation

	}
	if builder.loginMethodFlag {
		req.LoginMethod = &builder.loginMethod

	}
	if builder.newPeopleNumInVideoFlag {
		req.NewPeopleNumInVideo = &builder.newPeopleNumInVideo

	}
	if builder.externalPeopleNumInVideoFlag {
		req.ExternalPeopleNumInVideo = &builder.externalPeopleNumInVideo

	}
	if builder.externalPeopleNumInChatFlag {
		req.ExternalPeopleNumInChat = &builder.externalPeopleNumInChat

	}
	if builder.joinGroupFlag {
		req.JoinGroup = &builder.joinGroup

	}
	if builder.quitGroupFlag {
		req.QuitGroup = &builder.quitGroup

	}
	if builder.externalPeopleNumInDocShareFlag {
		req.ExternalPeopleNumInDocShare = &builder.externalPeopleNumInDocShare

	}
	return req
}

type AuditInfo struct {
	EventId *string `json:"event_id,omitempty"` // 事件id

	UniqueId *string `json:"unique_id,omitempty"` // 唯一id

	EventName *string `json:"event_name,omitempty"` // 事件名称

	DepartmentIds []string `json:"department_ids,omitempty"` // 用户所属部门的ID列表

	EventModule *int `json:"event_module,omitempty"` // 模块

	OperatorType *int `json:"operator_type,omitempty"` // 操作人类型

	OperatorValue *string `json:"operator_value,omitempty"` // 操作人id

	Objects []*AuditObjectEntity `json:"objects,omitempty"` // 操作对象列表

	Recipients []*AuditRecipientEntity `json:"recipients,omitempty"` // 接收者对象列表

	EventTime *int `json:"event_time,omitempty"` // 事件时间

	Ip *string `json:"ip,omitempty"` // ip信息

	OperatorApp *string `json:"operator_app,omitempty"` // 第三方isvID

	AuditContext *AuditContext `json:"audit_context,omitempty"` // 环境信息

	Extend *AuditEventExtend `json:"extend,omitempty"` // 事件级别的扩展

	OperatorAppName *string `json:"operator_app_name,omitempty"` // 第三方isv名称

	CommonDrawers *ApiAuditCommonDrawers `json:"common_drawers,omitempty"` // 扩展字段信息

	AuditDetail *AuditDetail `json:"audit_detail,omitempty"` // 日志扩展信息

	OperatorTenant *string `json:"operator_tenant,omitempty"` // 操作人企业编号

	OperatorDetail *OperatorDetail `json:"operator_detail,omitempty"` // 操作人详情
}

type AuditInfoBuilder struct {
	eventId     string // 事件id
	eventIdFlag bool

	uniqueId     string // 唯一id
	uniqueIdFlag bool

	eventName     string // 事件名称
	eventNameFlag bool

	departmentIds     []string // 用户所属部门的ID列表
	departmentIdsFlag bool

	eventModule     int // 模块
	eventModuleFlag bool

	operatorType     int // 操作人类型
	operatorTypeFlag bool

	operatorValue     string // 操作人id
	operatorValueFlag bool

	objects     []*AuditObjectEntity // 操作对象列表
	objectsFlag bool

	recipients     []*AuditRecipientEntity // 接收者对象列表
	recipientsFlag bool

	eventTime     int // 事件时间
	eventTimeFlag bool

	ip     string // ip信息
	ipFlag bool

	operatorApp     string // 第三方isvID
	operatorAppFlag bool

	auditContext     *AuditContext // 环境信息
	auditContextFlag bool

	extend     *AuditEventExtend // 事件级别的扩展
	extendFlag bool

	operatorAppName     string // 第三方isv名称
	operatorAppNameFlag bool

	commonDrawers     *ApiAuditCommonDrawers // 扩展字段信息
	commonDrawersFlag bool

	auditDetail     *AuditDetail // 日志扩展信息
	auditDetailFlag bool

	operatorTenant     string // 操作人企业编号
	operatorTenantFlag bool

	operatorDetail     *OperatorDetail // 操作人详情
	operatorDetailFlag bool
}

func NewAuditInfoBuilder() *AuditInfoBuilder {
	builder := &AuditInfoBuilder{}
	return builder
}

// 事件id
//
// 示例值：7126195947859656705
func (builder *AuditInfoBuilder) EventId(eventId string) *AuditInfoBuilder {
	builder.eventId = eventId
	builder.eventIdFlag = true
	return builder
}

// 唯一id
//
// 示例值：7126195947859656705
func (builder *AuditInfoBuilder) UniqueId(uniqueId string) *AuditInfoBuilder {
	builder.uniqueId = uniqueId
	builder.uniqueIdFlag = true
	return builder
}

// 事件名称
//
// 示例值：space_read_doc
func (builder *AuditInfoBuilder) EventName(eventName string) *AuditInfoBuilder {
	builder.eventName = eventName
	builder.eventNameFlag = true
	return builder
}

// 用户所属部门的ID列表
//
// 示例值：
func (builder *AuditInfoBuilder) DepartmentIds(departmentIds []string) *AuditInfoBuilder {
	builder.departmentIds = departmentIds
	builder.departmentIdsFlag = true
	return builder
}

// 模块
//
// 示例值：1
func (builder *AuditInfoBuilder) EventModule(eventModule int) *AuditInfoBuilder {
	builder.eventModule = eventModule
	builder.eventModuleFlag = true
	return builder
}

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

// 操作人id
//
// 示例值：4a3b8541
func (builder *AuditInfoBuilder) OperatorValue(operatorValue string) *AuditInfoBuilder {
	builder.operatorValue = operatorValue
	builder.operatorValueFlag = true
	return builder
}

// 操作对象列表
//
// 示例值：
func (builder *AuditInfoBuilder) Objects(objects []*AuditObjectEntity) *AuditInfoBuilder {
	builder.objects = objects
	builder.objectsFlag = true
	return builder
}

// 接收者对象列表
//
// 示例值：
func (builder *AuditInfoBuilder) Recipients(recipients []*AuditRecipientEntity) *AuditInfoBuilder {
	builder.recipients = recipients
	builder.recipientsFlag = true
	return builder
}

// 事件时间
//
// 示例值：1669046400
func (builder *AuditInfoBuilder) EventTime(eventTime int) *AuditInfoBuilder {
	builder.eventTime = eventTime
	builder.eventTimeFlag = true
	return builder
}

// ip信息
//
// 示例值：192.168.168.1
func (builder *AuditInfoBuilder) Ip(ip string) *AuditInfoBuilder {
	builder.ip = ip
	builder.ipFlag = true
	return builder
}

// 第三方isvID
//
// 示例值：example_value
func (builder *AuditInfoBuilder) OperatorApp(operatorApp string) *AuditInfoBuilder {
	builder.operatorApp = operatorApp
	builder.operatorAppFlag = true
	return builder
}

// 环境信息
//
// 示例值：
func (builder *AuditInfoBuilder) AuditContext(auditContext *AuditContext) *AuditInfoBuilder {
	builder.auditContext = auditContext
	builder.auditContextFlag = true
	return builder
}

// 事件级别的扩展
//
// 示例值：
func (builder *AuditInfoBuilder) Extend(extend *AuditEventExtend) *AuditInfoBuilder {
	builder.extend = extend
	builder.extendFlag = true
	return builder
}

// 第三方isv名称
//
// 示例值：example_value
func (builder *AuditInfoBuilder) OperatorAppName(operatorAppName string) *AuditInfoBuilder {
	builder.operatorAppName = operatorAppName
	builder.operatorAppNameFlag = true
	return builder
}

// 扩展字段信息
//
// 示例值：
func (builder *AuditInfoBuilder) CommonDrawers(commonDrawers *ApiAuditCommonDrawers) *AuditInfoBuilder {
	builder.commonDrawers = commonDrawers
	builder.commonDrawersFlag = true
	return builder
}

// 日志扩展信息
//
// 示例值：
func (builder *AuditInfoBuilder) AuditDetail(auditDetail *AuditDetail) *AuditInfoBuilder {
	builder.auditDetail = auditDetail
	builder.auditDetailFlag = true
	return builder
}

// 操作人企业编号
//
// 示例值：F2823442
func (builder *AuditInfoBuilder) OperatorTenant(operatorTenant string) *AuditInfoBuilder {
	builder.operatorTenant = operatorTenant
	builder.operatorTenantFlag = true
	return builder
}

// 操作人详情
//
// 示例值：
func (builder *AuditInfoBuilder) OperatorDetail(operatorDetail *OperatorDetail) *AuditInfoBuilder {
	builder.operatorDetail = operatorDetail
	builder.operatorDetailFlag = true
	return builder
}

func (builder *AuditInfoBuilder) Build() *AuditInfo {
	req := &AuditInfo{}
	if builder.eventIdFlag {
		req.EventId = &builder.eventId

	}
	if builder.uniqueIdFlag {
		req.UniqueId = &builder.uniqueId

	}
	if builder.eventNameFlag {
		req.EventName = &builder.eventName

	}
	if builder.departmentIdsFlag {
		req.DepartmentIds = builder.departmentIds
	}
	if builder.eventModuleFlag {
		req.EventModule = &builder.eventModule

	}
	if builder.operatorTypeFlag {
		req.OperatorType = &builder.operatorType

	}
	if builder.operatorValueFlag {
		req.OperatorValue = &builder.operatorValue

	}
	if builder.objectsFlag {
		req.Objects = builder.objects
	}
	if builder.recipientsFlag {
		req.Recipients = builder.recipients
	}
	if builder.eventTimeFlag {
		req.EventTime = &builder.eventTime

	}
	if builder.ipFlag {
		req.Ip = &builder.ip

	}
	if builder.operatorAppFlag {
		req.OperatorApp = &builder.operatorApp

	}
	if builder.auditContextFlag {
		req.AuditContext = builder.auditContext
	}
	if builder.extendFlag {
		req.Extend = builder.extend
	}
	if builder.operatorAppNameFlag {
		req.OperatorAppName = &builder.operatorAppName

	}
	if builder.commonDrawersFlag {
		req.CommonDrawers = builder.commonDrawers
	}
	if builder.auditDetailFlag {
		req.AuditDetail = builder.auditDetail
	}
	if builder.operatorTenantFlag {
		req.OperatorTenant = &builder.operatorTenant

	}
	if builder.operatorDetailFlag {
		req.OperatorDetail = builder.operatorDetail
	}
	return req
}

type AuditIosContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Os *string `json:"os,omitempty"` // 系统类型及版本

	STZone *string `json:"STZone,omitempty"` // 系统时区

	ML *string `json:"ML,omitempty"` // 当前语言

	Sjd *string `json:"sjd,omitempty"` // 是否越狱

	Proxyip *string `json:"proxyip,omitempty"` // 代理ip

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	Location *string `json:"location,omitempty"` // GPS经纬度

	ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip

	ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型

	CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditIosContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	os     string // 系统类型及版本
	osFlag bool

	sTZone     string // 系统时区
	sTZoneFlag bool

	mL     string // 当前语言
	mLFlag bool

	sjd     string // 是否越狱
	sjdFlag bool

	proxyip     string // 代理ip
	proxyipFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	location     string // GPS经纬度
	locationFlag bool

	activeIp     string // 当前设备活跃ip
	activeIpFlag bool

	activeIpDetail     string // 当前设备活跃ip对应网卡类型
	activeIpDetailFlag bool

	cellBaseStation     string // 基站信息
	cellBaseStationFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditIosContextBuilder() *AuditIosContextBuilder {
	builder := &AuditIosContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditIosContextBuilder) Udid(udid string) *AuditIosContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：
func (builder *AuditIosContextBuilder) Did(did string) *AuditIosContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：
func (builder *AuditIosContextBuilder) AppVer(appVer string) *AuditIosContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：
func (builder *AuditIosContextBuilder) Ver(ver string) *AuditIosContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 系统类型及版本
//
// 示例值：
func (builder *AuditIosContextBuilder) Os(os string) *AuditIosContextBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// 系统时区
//
// 示例值：
func (builder *AuditIosContextBuilder) STZone(sTZone string) *AuditIosContextBuilder {
	builder.sTZone = sTZone
	builder.sTZoneFlag = true
	return builder
}

// 当前语言
//
// 示例值：
func (builder *AuditIosContextBuilder) ML(mL string) *AuditIosContextBuilder {
	builder.mL = mL
	builder.mLFlag = true
	return builder
}

// 是否越狱
//
// 示例值：
func (builder *AuditIosContextBuilder) Sjd(sjd string) *AuditIosContextBuilder {
	builder.sjd = sjd
	builder.sjdFlag = true
	return builder
}

// 代理ip
//
// 示例值：
func (builder *AuditIosContextBuilder) Proxyip(proxyip string) *AuditIosContextBuilder {
	builder.proxyip = proxyip
	builder.proxyipFlag = true
	return builder
}

// wifi ip
//
// 示例值：
func (builder *AuditIosContextBuilder) Wifip(wifip string) *AuditIosContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// GPS经纬度
//
// 示例值：
func (builder *AuditIosContextBuilder) Location(location string) *AuditIosContextBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 当前设备活跃ip
//
// 示例值：
func (builder *AuditIosContextBuilder) ActiveIp(activeIp string) *AuditIosContextBuilder {
	builder.activeIp = activeIp
	builder.activeIpFlag = true
	return builder
}

// 当前设备活跃ip对应网卡类型
//
// 示例值：
func (builder *AuditIosContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditIosContextBuilder {
	builder.activeIpDetail = activeIpDetail
	builder.activeIpDetailFlag = true
	return builder
}

// 基站信息
//
// 示例值：
func (builder *AuditIosContextBuilder) CellBaseStation(cellBaseStation string) *AuditIosContextBuilder {
	builder.cellBaseStation = cellBaseStation
	builder.cellBaseStationFlag = true
	return builder
}

// 公网ip
//
// 示例值：
func (builder *AuditIosContextBuilder) IP(iP string) *AuditIosContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditIosContextBuilder) Build() *AuditIosContext {
	req := &AuditIosContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.sTZoneFlag {
		req.STZone = &builder.sTZone

	}
	if builder.mLFlag {
		req.ML = &builder.mL

	}
	if builder.sjdFlag {
		req.Sjd = &builder.sjd

	}
	if builder.proxyipFlag {
		req.Proxyip = &builder.proxyip

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.locationFlag {
		req.Location = &builder.location

	}
	if builder.activeIpFlag {
		req.ActiveIp = &builder.activeIp

	}
	if builder.activeIpDetailFlag {
		req.ActiveIpDetail = &builder.activeIpDetail

	}
	if builder.cellBaseStationFlag {
		req.CellBaseStation = &builder.cellBaseStation

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditObjectDetail struct {
	CloneSource *string `json:"clone_source,omitempty"` // 克隆来源

	TextDetail *string `json:"text_detail,omitempty"` // 其他文本

	FileName *string `json:"file_name,omitempty"` // 文件名称

	ThirdPartyAppID *string `json:"third_party_appID,omitempty"` // 第三方APPID

	ContainFileNum *int `json:"contain_file_num,omitempty"` // 文件或文件夹数量

	PermissionSettingType *string `json:"permission_setting_type,omitempty"` // 链接分享设置

	PermissionExternalAccessType *bool `json:"permission_external_access_Type,omitempty"` // 是否开启外部访问设置

	PermissionShareType *string `json:"permission_share_type,omitempty"` // 分享设置

	FileServiceSource *string `json:"file_service_source,omitempty"` // file上传业务来源

	OkrDownloadContent *string `json:"okr_download_content,omitempty"` // 下载OKR时的内容范围

	ContainerType *string `json:"container_type,omitempty"` // 容器类型，标识是否wiki

	ContainerId *string `json:"container_id,omitempty"` // 容器id，wiki标识字段

	CurrentPage *string `json:"current_page,omitempty"` // 截屏、录制的开始页面
}

type AuditObjectDetailBuilder struct {
	cloneSource     string // 克隆来源
	cloneSourceFlag bool

	textDetail     string // 其他文本
	textDetailFlag bool

	fileName     string // 文件名称
	fileNameFlag bool

	thirdPartyAppID     string // 第三方APPID
	thirdPartyAppIDFlag bool

	containFileNum     int // 文件或文件夹数量
	containFileNumFlag bool

	permissionSettingType     string // 链接分享设置
	permissionSettingTypeFlag bool

	permissionExternalAccessType     bool // 是否开启外部访问设置
	permissionExternalAccessTypeFlag bool

	permissionShareType     string // 分享设置
	permissionShareTypeFlag bool

	fileServiceSource     string // file上传业务来源
	fileServiceSourceFlag bool

	okrDownloadContent     string // 下载OKR时的内容范围
	okrDownloadContentFlag bool

	containerType     string // 容器类型，标识是否wiki
	containerTypeFlag bool

	containerId     string // 容器id，wiki标识字段
	containerIdFlag bool

	currentPage     string // 截屏、录制的开始页面
	currentPageFlag bool
}

func NewAuditObjectDetailBuilder() *AuditObjectDetailBuilder {
	builder := &AuditObjectDetailBuilder{}
	return builder
}

// 克隆来源
//
// 示例值：
func (builder *AuditObjectDetailBuilder) CloneSource(cloneSource string) *AuditObjectDetailBuilder {
	builder.cloneSource = cloneSource
	builder.cloneSourceFlag = true
	return builder
}

// 其他文本
//
// 示例值：
func (builder *AuditObjectDetailBuilder) TextDetail(textDetail string) *AuditObjectDetailBuilder {
	builder.textDetail = textDetail
	builder.textDetailFlag = true
	return builder
}

// 文件名称
//
// 示例值：
func (builder *AuditObjectDetailBuilder) FileName(fileName string) *AuditObjectDetailBuilder {
	builder.fileName = fileName
	builder.fileNameFlag = true
	return builder
}

// 第三方APPID
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ThirdPartyAppID(thirdPartyAppID string) *AuditObjectDetailBuilder {
	builder.thirdPartyAppID = thirdPartyAppID
	builder.thirdPartyAppIDFlag = true
	return builder
}

// 文件或文件夹数量
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ContainFileNum(containFileNum int) *AuditObjectDetailBuilder {
	builder.containFileNum = containFileNum
	builder.containFileNumFlag = true
	return builder
}

// 链接分享设置
//
// 示例值：
func (builder *AuditObjectDetailBuilder) PermissionSettingType(permissionSettingType string) *AuditObjectDetailBuilder {
	builder.permissionSettingType = permissionSettingType
	builder.permissionSettingTypeFlag = true
	return builder
}

// 是否开启外部访问设置
//
// 示例值：
func (builder *AuditObjectDetailBuilder) PermissionExternalAccessType(permissionExternalAccessType bool) *AuditObjectDetailBuilder {
	builder.permissionExternalAccessType = permissionExternalAccessType
	builder.permissionExternalAccessTypeFlag = true
	return builder
}

// 分享设置
//
// 示例值：
func (builder *AuditObjectDetailBuilder) PermissionShareType(permissionShareType string) *AuditObjectDetailBuilder {
	builder.permissionShareType = permissionShareType
	builder.permissionShareTypeFlag = true
	return builder
}

// file上传业务来源
//
// 示例值：
func (builder *AuditObjectDetailBuilder) FileServiceSource(fileServiceSource string) *AuditObjectDetailBuilder {
	builder.fileServiceSource = fileServiceSource
	builder.fileServiceSourceFlag = true
	return builder
}

// 下载OKR时的内容范围
//
// 示例值：
func (builder *AuditObjectDetailBuilder) OkrDownloadContent(okrDownloadContent string) *AuditObjectDetailBuilder {
	builder.okrDownloadContent = okrDownloadContent
	builder.okrDownloadContentFlag = true
	return builder
}

// 容器类型，标识是否wiki
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ContainerType(containerType string) *AuditObjectDetailBuilder {
	builder.containerType = containerType
	builder.containerTypeFlag = true
	return builder
}

// 容器id，wiki标识字段
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ContainerId(containerId string) *AuditObjectDetailBuilder {
	builder.containerId = containerId
	builder.containerIdFlag = true
	return builder
}

// 截屏、录制的开始页面
//
// 示例值：
func (builder *AuditObjectDetailBuilder) CurrentPage(currentPage string) *AuditObjectDetailBuilder {
	builder.currentPage = currentPage
	builder.currentPageFlag = true
	return builder
}

func (builder *AuditObjectDetailBuilder) Build() *AuditObjectDetail {
	req := &AuditObjectDetail{}
	if builder.cloneSourceFlag {
		req.CloneSource = &builder.cloneSource

	}
	if builder.textDetailFlag {
		req.TextDetail = &builder.textDetail

	}
	if builder.fileNameFlag {
		req.FileName = &builder.fileName

	}
	if builder.thirdPartyAppIDFlag {
		req.ThirdPartyAppID = &builder.thirdPartyAppID

	}
	if builder.containFileNumFlag {
		req.ContainFileNum = &builder.containFileNum

	}
	if builder.permissionSettingTypeFlag {
		req.PermissionSettingType = &builder.permissionSettingType

	}
	if builder.permissionExternalAccessTypeFlag {
		req.PermissionExternalAccessType = &builder.permissionExternalAccessType

	}
	if builder.permissionShareTypeFlag {
		req.PermissionShareType = &builder.permissionShareType

	}
	if builder.fileServiceSourceFlag {
		req.FileServiceSource = &builder.fileServiceSource

	}
	if builder.okrDownloadContentFlag {
		req.OkrDownloadContent = &builder.okrDownloadContent

	}
	if builder.containerTypeFlag {
		req.ContainerType = &builder.containerType

	}
	if builder.containerIdFlag {
		req.ContainerId = &builder.containerId

	}
	if builder.currentPageFlag {
		req.CurrentPage = &builder.currentPage

	}
	return req
}

type AuditObjectEntity struct {
	ObjectType *string `json:"object_type,omitempty"` // 操作对象类型

	ObjectValue *string `json:"object_value,omitempty"` // 操作对象值，可能存在department_id、user_id等，需要进行lark_id的转换

	ObjectName *string `json:"object_name,omitempty"` // 操作对象名称，如会话名、文档名等

	ObjectOwner *string `json:"object_owner,omitempty"` // 操作对象的所有者

	ObjectDetail *AuditObjectDetail `json:"object_detail,omitempty"` // object 详情
}

type AuditObjectEntityBuilder struct {
	objectType     string // 操作对象类型
	objectTypeFlag bool

	objectValue     string // 操作对象值，可能存在department_id、user_id等，需要进行lark_id的转换
	objectValueFlag bool

	objectName     string // 操作对象名称，如会话名、文档名等
	objectNameFlag bool

	objectOwner     string // 操作对象的所有者
	objectOwnerFlag bool

	objectDetail     *AuditObjectDetail // object 详情
	objectDetailFlag bool
}

func NewAuditObjectEntityBuilder() *AuditObjectEntityBuilder {
	builder := &AuditObjectEntityBuilder{}
	return builder
}

// 操作对象类型
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectType(objectType string) *AuditObjectEntityBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 操作对象值，可能存在department_id、user_id等，需要进行lark_id的转换
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectValue(objectValue string) *AuditObjectEntityBuilder {
	builder.objectValue = objectValue
	builder.objectValueFlag = true
	return builder
}

// 操作对象名称，如会话名、文档名等
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectName(objectName string) *AuditObjectEntityBuilder {
	builder.objectName = objectName
	builder.objectNameFlag = true
	return builder
}

// 操作对象的所有者
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectOwner(objectOwner string) *AuditObjectEntityBuilder {
	builder.objectOwner = objectOwner
	builder.objectOwnerFlag = true
	return builder
}

// object 详情
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectDetail(objectDetail *AuditObjectDetail) *AuditObjectEntityBuilder {
	builder.objectDetail = objectDetail
	builder.objectDetailFlag = true
	return builder
}

func (builder *AuditObjectEntityBuilder) Build() *AuditObjectEntity {
	req := &AuditObjectEntity{}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.objectValueFlag {
		req.ObjectValue = &builder.objectValue

	}
	if builder.objectNameFlag {
		req.ObjectName = &builder.objectName

	}
	if builder.objectOwnerFlag {
		req.ObjectOwner = &builder.objectOwner

	}
	if builder.objectDetailFlag {
		req.ObjectDetail = builder.objectDetail
	}
	return req
}

type AuditPcContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Os *string `json:"os,omitempty"` // 客户端类型

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	Region *string `json:"region,omitempty"` // 设备区域

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditPcContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	os     string // 客户端类型
	osFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	region     string // 设备区域
	regionFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditPcContextBuilder() *AuditPcContextBuilder {
	builder := &AuditPcContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditPcContextBuilder) Udid(udid string) *AuditPcContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：
func (builder *AuditPcContextBuilder) Did(did string) *AuditPcContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：
func (builder *AuditPcContextBuilder) AppVer(appVer string) *AuditPcContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：
func (builder *AuditPcContextBuilder) Ver(ver string) *AuditPcContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 客户端类型
//
// 示例值：
func (builder *AuditPcContextBuilder) Os(os string) *AuditPcContextBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// wifi ip
//
// 示例值：
func (builder *AuditPcContextBuilder) Wifip(wifip string) *AuditPcContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// 设备区域
//
// 示例值：
func (builder *AuditPcContextBuilder) Region(region string) *AuditPcContextBuilder {
	builder.region = region
	builder.regionFlag = true
	return builder
}

// 公网ip
//
// 示例值：
func (builder *AuditPcContextBuilder) IP(iP string) *AuditPcContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditPcContextBuilder) Build() *AuditPcContext {
	req := &AuditPcContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.regionFlag {
		req.Region = &builder.region

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditRecipientDetail struct {
	PermissionActionType *string `json:"permission_action_type,omitempty"` // 修改权限协作者

	ChatId *string `json:"chat_id,omitempty"` // 会话 id

	ChatName *string `json:"chat_name,omitempty"` // 会话名称

	ChatType *int `json:"chat_type,omitempty"` // 聊天类型，1 单聊，2 群聊，3 话题群

	ExternalFlag *bool `json:"external_flag,omitempty"` // 外部用户标识，false 内部、true 外部
}

type AuditRecipientDetailBuilder struct {
	permissionActionType     string // 修改权限协作者
	permissionActionTypeFlag bool

	chatId     string // 会话 id
	chatIdFlag bool

	chatName     string // 会话名称
	chatNameFlag bool

	chatType     int // 聊天类型，1 单聊，2 群聊，3 话题群
	chatTypeFlag bool

	externalFlag     bool // 外部用户标识，false 内部、true 外部
	externalFlagFlag bool
}

func NewAuditRecipientDetailBuilder() *AuditRecipientDetailBuilder {
	builder := &AuditRecipientDetailBuilder{}
	return builder
}

// 修改权限协作者
//
// 示例值：1
func (builder *AuditRecipientDetailBuilder) PermissionActionType(permissionActionType string) *AuditRecipientDetailBuilder {
	builder.permissionActionType = permissionActionType
	builder.permissionActionTypeFlag = true
	return builder
}

// 会话 id
//
// 示例值：oc_xxxx
func (builder *AuditRecipientDetailBuilder) ChatId(chatId string) *AuditRecipientDetailBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 会话名称
//
// 示例值：test
func (builder *AuditRecipientDetailBuilder) ChatName(chatName string) *AuditRecipientDetailBuilder {
	builder.chatName = chatName
	builder.chatNameFlag = true
	return builder
}

// 聊天类型，1 单聊，2 群聊，3 话题群
//
// 示例值：1
func (builder *AuditRecipientDetailBuilder) ChatType(chatType int) *AuditRecipientDetailBuilder {
	builder.chatType = chatType
	builder.chatTypeFlag = true
	return builder
}

// 外部用户标识，false 内部、true 外部
//
// 示例值：false
func (builder *AuditRecipientDetailBuilder) ExternalFlag(externalFlag bool) *AuditRecipientDetailBuilder {
	builder.externalFlag = externalFlag
	builder.externalFlagFlag = true
	return builder
}

func (builder *AuditRecipientDetailBuilder) Build() *AuditRecipientDetail {
	req := &AuditRecipientDetail{}
	if builder.permissionActionTypeFlag {
		req.PermissionActionType = &builder.permissionActionType

	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId

	}
	if builder.chatNameFlag {
		req.ChatName = &builder.chatName

	}
	if builder.chatTypeFlag {
		req.ChatType = &builder.chatType

	}
	if builder.externalFlagFlag {
		req.ExternalFlag = &builder.externalFlag

	}
	return req
}

type AuditRecipientEntity struct {
	RecipientType *string `json:"recipient_type,omitempty"` // 接收者对象类型

	RecipientValue *string `json:"recipient_value,omitempty"` // 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换

	RecipientDetail *AuditRecipientDetail `json:"recipient_detail,omitempty"` // recipient 详情
}

type AuditRecipientEntityBuilder struct {
	recipientType     string // 接收者对象类型
	recipientTypeFlag bool

	recipientValue     string // 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换
	recipientValueFlag bool

	recipientDetail     *AuditRecipientDetail // recipient 详情
	recipientDetailFlag bool
}

func NewAuditRecipientEntityBuilder() *AuditRecipientEntityBuilder {
	builder := &AuditRecipientEntityBuilder{}
	return builder
}

// 接收者对象类型
//
// 示例值：
func (builder *AuditRecipientEntityBuilder) RecipientType(recipientType string) *AuditRecipientEntityBuilder {
	builder.recipientType = recipientType
	builder.recipientTypeFlag = true
	return builder
}

// 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换
//
// 示例值：
func (builder *AuditRecipientEntityBuilder) RecipientValue(recipientValue string) *AuditRecipientEntityBuilder {
	builder.recipientValue = recipientValue
	builder.recipientValueFlag = true
	return builder
}

// recipient 详情
//
// 示例值：
func (builder *AuditRecipientEntityBuilder) RecipientDetail(recipientDetail *AuditRecipientDetail) *AuditRecipientEntityBuilder {
	builder.recipientDetail = recipientDetail
	builder.recipientDetailFlag = true
	return builder
}

func (builder *AuditRecipientEntityBuilder) Build() *AuditRecipientEntity {
	req := &AuditRecipientEntity{}
	if builder.recipientTypeFlag {
		req.RecipientType = &builder.recipientType

	}
	if builder.recipientValueFlag {
		req.RecipientValue = &builder.recipientValue

	}
	if builder.recipientDetailFlag {
		req.RecipientDetail = builder.recipientDetail
	}
	return req
}

type AuditWebContext struct {
	UserAgent *string `json:"user_agent,omitempty"` // UA信息

	IP *string `json:"IP,omitempty"` // 本机IP
}

type AuditWebContextBuilder struct {
	userAgent     string // UA信息
	userAgentFlag bool

	iP     string // 本机IP
	iPFlag bool
}

func NewAuditWebContextBuilder() *AuditWebContextBuilder {
	builder := &AuditWebContextBuilder{}
	return builder
}

// UA信息
//
// 示例值：
func (builder *AuditWebContextBuilder) UserAgent(userAgent string) *AuditWebContextBuilder {
	builder.userAgent = userAgent
	builder.userAgentFlag = true
	return builder
}

// 本机IP
//
// 示例值：
func (builder *AuditWebContextBuilder) IP(iP string) *AuditWebContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditWebContextBuilder) Build() *AuditWebContext {
	req := &AuditWebContext{}
	if builder.userAgentFlag {
		req.UserAgent = &builder.userAgent

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type Badge struct {
	Id *string `json:"id,omitempty"` // 租户内勋章的唯一标识，该值由系统随机生成。

	Name *string `json:"name,omitempty"` // 租户内唯一的勋章名称，最多30个字符。

	Explanation *string `json:"explanation,omitempty"` // 勋章的描述文案，最多100个字符。

	DetailImage *string `json:"detail_image,omitempty"` // 企业勋章的详情图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。

	ShowImage *string `json:"show_image,omitempty"` // 企业勋章的头像挂饰图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。

	I18nName *I18n `json:"i18n_name,omitempty"` // 勋章的多语言名称，同name字段限制，最多30个字符。

	I18nExplanation *I18n `json:"i18n_explanation,omitempty"` // 勋章的多语言描述文案，同explanation字段限制，最多100个字符。
}

type BadgeBuilder struct {
	id     string // 租户内勋章的唯一标识，该值由系统随机生成。
	idFlag bool

	name     string // 租户内唯一的勋章名称，最多30个字符。
	nameFlag bool

	explanation     string // 勋章的描述文案，最多100个字符。
	explanationFlag bool

	detailImage     string // 企业勋章的详情图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。
	detailImageFlag bool

	showImage     string // 企业勋章的头像挂饰图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。
	showImageFlag bool

	i18nName     *I18n // 勋章的多语言名称，同name字段限制，最多30个字符。
	i18nNameFlag bool

	i18nExplanation     *I18n // 勋章的多语言描述文案，同explanation字段限制，最多100个字符。
	i18nExplanationFlag bool
}

func NewBadgeBuilder() *BadgeBuilder {
	builder := &BadgeBuilder{}
	return builder
}

// 租户内勋章的唯一标识，该值由系统随机生成。
//
// 示例值：m_MzfKDM
func (builder *BadgeBuilder) Id(id string) *BadgeBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 租户内唯一的勋章名称，最多30个字符。
//
// 示例值：激励勋章
func (builder *BadgeBuilder) Name(name string) *BadgeBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 勋章的描述文案，最多100个字符。
//
// 示例值：这枚勋章为了激励员工颁发。
func (builder *BadgeBuilder) Explanation(explanation string) *BadgeBuilder {
	builder.explanation = explanation
	builder.explanationFlag = true
	return builder
}

// 企业勋章的详情图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。
//
// 示例值：75a1949f-d9df-4b46-bc88-dacc51e88f3j
func (builder *BadgeBuilder) DetailImage(detailImage string) *BadgeBuilder {
	builder.detailImage = detailImage
	builder.detailImageFlag = true
	return builder
}

// 企业勋章的头像挂饰图Key。1.权限校验：非本租户上传的图片key，不能直接使用；2.时效校验：创建勋章，或者修改勋章图片key时，需使用1h内上传的图片key。
//
// 示例值：03daa74a-159f-49e9-963e-b6c4d76103fj
func (builder *BadgeBuilder) ShowImage(showImage string) *BadgeBuilder {
	builder.showImage = showImage
	builder.showImageFlag = true
	return builder
}

// 勋章的多语言名称，同name字段限制，最多30个字符。
//
// 示例值：{		 "zh_cn": "激励勋章",		 "en_us": "Incentive Medal",		 "ja_jp": "奨励メダル"	 }
func (builder *BadgeBuilder) I18nName(i18nName *I18n) *BadgeBuilder {
	builder.i18nName = i18nName
	builder.i18nNameFlag = true
	return builder
}

// 勋章的多语言描述文案，同explanation字段限制，最多100个字符。
//
// 示例值：{		 "zh_cn": "这枚勋章为了激励员工颁发。",		 "en_us": "This medal is awarded to motivate employees.",		 "ja_jp": "このメダルは、従業員のモチベーションを高めるために授与されます。"	 }
func (builder *BadgeBuilder) I18nExplanation(i18nExplanation *I18n) *BadgeBuilder {
	builder.i18nExplanation = i18nExplanation
	builder.i18nExplanationFlag = true
	return builder
}

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

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

	}
	if builder.explanationFlag {
		req.Explanation = &builder.explanation

	}
	if builder.detailImageFlag {
		req.DetailImage = &builder.detailImage

	}
	if builder.showImageFlag {
		req.ShowImage = &builder.showImage

	}
	if builder.i18nNameFlag {
		req.I18nName = builder.i18nName
	}
	if builder.i18nExplanationFlag {
		req.I18nExplanation = builder.i18nExplanation
	}
	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 File struct {
	Title *string `json:"title,omitempty"` // 文档标题

	Type *string `json:"type,omitempty"` // 文档类型

	Owner *User `json:"owner,omitempty"` // 文档所有者

	Size *string `json:"size,omitempty"` // 文档大小

	LastOpTime *string `json:"last_op_time,omitempty"` // 更新时间

	Status *string `json:"status,omitempty"` // 文档状态

	Token *string `json:"token,omitempty"` // 文档token
}

type FileBuilder struct {
	title     string // 文档标题
	titleFlag bool

	type_    string // 文档类型
	typeFlag bool

	owner     *User // 文档所有者
	ownerFlag bool

	size     string // 文档大小
	sizeFlag bool

	lastOpTime     string // 更新时间
	lastOpTimeFlag bool

	status     string // 文档状态
	statusFlag bool

	token     string // 文档token
	tokenFlag bool
}

func NewFileBuilder() *FileBuilder {
	builder := &FileBuilder{}
	return builder
}

// 文档标题
//
// 示例值：文件管理综述
func (builder *FileBuilder) Title(title string) *FileBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 文档类型
//
// 示例值：doc
func (builder *FileBuilder) Type(type_ string) *FileBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 文档所有者
//
// 示例值：
func (builder *FileBuilder) Owner(owner *User) *FileBuilder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

// 文档大小
//
// 示例值：1024
func (builder *FileBuilder) Size(size string) *FileBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1649419092
func (builder *FileBuilder) LastOpTime(lastOpTime string) *FileBuilder {
	builder.lastOpTime = lastOpTime
	builder.lastOpTimeFlag = true
	return builder
}

// 文档状态
//
// 示例值：1
func (builder *FileBuilder) Status(status string) *FileBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 文档token
//
// 示例值：doxbcOIyUhrRBWSKpBGfzefQgHe
func (builder *FileBuilder) Token(token string) *FileBuilder {
	builder.token = token
	builder.tokenFlag = true
	return builder
}

func (builder *FileBuilder) Build() *File {
	req := &File{}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.ownerFlag {
		req.Owner = builder.owner
	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	if builder.lastOpTimeFlag {
		req.LastOpTime = &builder.lastOpTime

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

	}
	if builder.tokenFlag {
		req.Token = &builder.token

	}
	return req
}

type FileList struct {
	Files []*File `json:"files,omitempty"` // 文档token
}

type FileListBuilder struct {
	files     []*File // 文档token
	filesFlag bool
}

func NewFileListBuilder() *FileListBuilder {
	builder := &FileListBuilder{}
	return builder
}

// 文档token
//
// 示例值：
func (builder *FileListBuilder) Files(files []*File) *FileListBuilder {
	builder.files = files
	builder.filesFlag = true
	return builder
}

func (builder *FileListBuilder) Build() *FileList {
	req := &FileList{}
	if builder.filesFlag {
		req.Files = builder.files
	}
	return req
}

type Grant struct {
	Id *string `json:"id,omitempty"` // 租户内授予名单的唯一标识，该值由系统随机生成。

	BadgeId *string `json:"badge_id,omitempty"` // 企业勋章的唯一ID

	Name *string `json:"name,omitempty"` // 勋章下唯一的授予事项，最多100个字符。

	GrantType *int `json:"grant_type,omitempty"` // 授予名单类型

	TimeZone *string `json:"time_zone,omitempty"` // 授予名单的生效时间对应的时区，用于检查RuleDetail的时间戳的取值是否规范，取值范围为TZ database name

	RuleDetail *RuleDetail `json:"rule_detail,omitempty"` // 规则详情

	IsGrantAll *bool `json:"is_grant_all,omitempty"` // 是否授予给全员。1.为false时，需要关联1~500个用户群体。2.为true时，不可关联用户、用户组、部门。

	UserIds []string `json:"user_ids,omitempty"` // 授予的用户ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回

	DepartmentIds []string `json:"department_ids,omitempty"` // 授予的部门ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回

	GroupIds []string `json:"group_ids,omitempty"` // 授予的用户组ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
}

type GrantBuilder struct {
	id     string // 租户内授予名单的唯一标识，该值由系统随机生成。
	idFlag bool

	badgeId     string // 企业勋章的唯一ID
	badgeIdFlag bool

	name     string // 勋章下唯一的授予事项，最多100个字符。
	nameFlag bool

	grantType     int // 授予名单类型
	grantTypeFlag bool

	timeZone     string // 授予名单的生效时间对应的时区，用于检查RuleDetail的时间戳的取值是否规范，取值范围为TZ database name
	timeZoneFlag bool

	ruleDetail     *RuleDetail // 规则详情
	ruleDetailFlag bool

	isGrantAll     bool // 是否授予给全员。1.为false时，需要关联1~500个用户群体。2.为true时，不可关联用户、用户组、部门。
	isGrantAllFlag bool

	userIds     []string // 授予的用户ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
	userIdsFlag bool

	departmentIds     []string // 授予的部门ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
	departmentIdsFlag bool

	groupIds     []string // 授予的用户组ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
	groupIdsFlag bool
}

func NewGrantBuilder() *GrantBuilder {
	builder := &GrantBuilder{}
	return builder
}

// 租户内授予名单的唯一标识，该值由系统随机生成。
//
// 示例值：g_49Z7CQ
func (builder *GrantBuilder) Id(id string) *GrantBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 企业勋章的唯一ID
//
// 示例值：m_qTR2HM
func (builder *GrantBuilder) BadgeId(badgeId string) *GrantBuilder {
	builder.badgeId = badgeId
	builder.badgeIdFlag = true
	return builder
}

// 勋章下唯一的授予事项，最多100个字符。
//
// 示例值：激励勋章的授予名单
func (builder *GrantBuilder) Name(name string) *GrantBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 授予名单类型
//
// 示例值：0
func (builder *GrantBuilder) GrantType(grantType int) *GrantBuilder {
	builder.grantType = grantType
	builder.grantTypeFlag = true
	return builder
}

// 授予名单的生效时间对应的时区，用于检查RuleDetail的时间戳的取值是否规范，取值范围为TZ database name
//
// 示例值：Asia/Shanghai
func (builder *GrantBuilder) TimeZone(timeZone string) *GrantBuilder {
	builder.timeZone = timeZone
	builder.timeZoneFlag = true
	return builder
}

// 规则详情
//
// 示例值：
func (builder *GrantBuilder) RuleDetail(ruleDetail *RuleDetail) *GrantBuilder {
	builder.ruleDetail = ruleDetail
	builder.ruleDetailFlag = true
	return builder
}

// 是否授予给全员。1.为false时，需要关联1~500个用户群体。2.为true时，不可关联用户、用户组、部门。
//
// 示例值：false
func (builder *GrantBuilder) IsGrantAll(isGrantAll bool) *GrantBuilder {
	builder.isGrantAll = isGrantAll
	builder.isGrantAllFlag = true
	return builder
}

// 授予的用户ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
//
// 示例值：[u273y71]
func (builder *GrantBuilder) UserIds(userIds []string) *GrantBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

// 授予的部门ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
//
// 示例值：[h121921]
func (builder *GrantBuilder) DepartmentIds(departmentIds []string) *GrantBuilder {
	builder.departmentIds = departmentIds
	builder.departmentIdsFlag = true
	return builder
}

// 授予的用户组ID列表，授予名单列表接口返回结果中不返回该字段，只在详情接口返回
//
// 示例值：[g122817]
func (builder *GrantBuilder) GroupIds(groupIds []string) *GrantBuilder {
	builder.groupIds = groupIds
	builder.groupIdsFlag = true
	return builder
}

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

	}
	if builder.badgeIdFlag {
		req.BadgeId = &builder.badgeId

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

	}
	if builder.grantTypeFlag {
		req.GrantType = &builder.grantType

	}
	if builder.timeZoneFlag {
		req.TimeZone = &builder.timeZone

	}
	if builder.ruleDetailFlag {
		req.RuleDetail = builder.ruleDetail
	}
	if builder.isGrantAllFlag {
		req.IsGrantAll = &builder.isGrantAll

	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	if builder.departmentIdsFlag {
		req.DepartmentIds = builder.departmentIds
	}
	if builder.groupIdsFlag {
		req.GroupIds = builder.groupIds
	}
	return req
}

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

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

	JaJp *string `json:"ja_jp,omitempty"` // 日文文案
}

type I18nBuilder struct {
	zhCn     string // 中文文案
	zhCnFlag bool

	enUs     string // 英文文案
	enUsFlag bool

	jaJp     string // 日文文案
	jaJpFlag bool
}

func NewI18nBuilder() *I18nBuilder {
	builder := &I18nBuilder{}
	return builder
}

// 中文文案
//
// 示例值：激励勋章
func (builder *I18nBuilder) ZhCn(zhCn string) *I18nBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文文案
//
// 示例值：Incentive Medal
func (builder *I18nBuilder) EnUs(enUs string) *I18nBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

// 日文文案
//
// 示例值：奨励メダル
func (builder *I18nBuilder) JaJp(jaJp string) *I18nBuilder {
	builder.jaJp = jaJp
	builder.jaJpFlag = true
	return builder
}

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

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

	}
	if builder.jaJpFlag {
		req.JaJp = &builder.jaJp

	}
	return req
}

type OperatorDetail struct {
	OperatorName *OperatorName `json:"operator_name,omitempty"` // 操作人名字信息

	TenantName *string `json:"tenant_name,omitempty"` // 操作人租户名
}

type OperatorDetailBuilder struct {
	operatorName     *OperatorName // 操作人名字信息
	operatorNameFlag bool

	tenantName     string // 操作人租户名
	tenantNameFlag bool
}

func NewOperatorDetailBuilder() *OperatorDetailBuilder {
	builder := &OperatorDetailBuilder{}
	return builder
}

// 操作人名字信息
//
// 示例值：
func (builder *OperatorDetailBuilder) OperatorName(operatorName *OperatorName) *OperatorDetailBuilder {
	builder.operatorName = operatorName
	builder.operatorNameFlag = true
	return builder
}

// 操作人租户名
//
// 示例值：明日头条
func (builder *OperatorDetailBuilder) TenantName(tenantName string) *OperatorDetailBuilder {
	builder.tenantName = tenantName
	builder.tenantNameFlag = true
	return builder
}

func (builder *OperatorDetailBuilder) Build() *OperatorDetail {
	req := &OperatorDetail{}
	if builder.operatorNameFlag {
		req.OperatorName = builder.operatorName
	}
	if builder.tenantNameFlag {
		req.TenantName = &builder.tenantName

	}
	return req
}

type OperatorName struct {
	DefaultName *string `json:"default_name,omitempty"` // 操作人默认名

	I18nValue *I18n `json:"i18n_value,omitempty"` // 操作人 i18n 名字 map
}

type OperatorNameBuilder struct {
	defaultName     string // 操作人默认名
	defaultNameFlag bool

	i18nValue     *I18n // 操作人 i18n 名字 map
	i18nValueFlag bool
}

func NewOperatorNameBuilder() *OperatorNameBuilder {
	builder := &OperatorNameBuilder{}
	return builder
}

// 操作人默认名
//
// 示例值：11
func (builder *OperatorNameBuilder) DefaultName(defaultName string) *OperatorNameBuilder {
	builder.defaultName = defaultName
	builder.defaultNameFlag = true
	return builder
}

// 操作人 i18n 名字 map
//
// 示例值：
func (builder *OperatorNameBuilder) I18nValue(i18nValue *I18n) *OperatorNameBuilder {
	builder.i18nValue = i18nValue
	builder.i18nValueFlag = true
	return builder
}

func (builder *OperatorNameBuilder) Build() *OperatorName {
	req := &OperatorName{}
	if builder.defaultNameFlag {
		req.DefaultName = &builder.defaultName

	}
	if builder.i18nValueFlag {
		req.I18nValue = builder.i18nValue
	}
	return req
}

type Password struct {
	EntEmailPassword *string `json:"ent_email_password,omitempty"` // 企业邮箱密码
}

type PasswordBuilder struct {
	entEmailPassword     string // 企业邮箱密码
	entEmailPasswordFlag bool
}

func NewPasswordBuilder() *PasswordBuilder {
	builder := &PasswordBuilder{}
	return builder
}

// 企业邮箱密码
//
// 示例值：abcd*efg
func (builder *PasswordBuilder) EntEmailPassword(entEmailPassword string) *PasswordBuilder {
	builder.entEmailPassword = entEmailPassword
	builder.entEmailPasswordFlag = true
	return builder
}

func (builder *PasswordBuilder) Build() *Password {
	req := &Password{}
	if builder.entEmailPasswordFlag {
		req.EntEmailPassword = &builder.entEmailPassword

	}
	return req
}

type RuleDetail struct {
	EffectiveTime *string `json:"effective_time,omitempty"` // 开始生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.时间戳必须是所在时区当天的零点时间戳，如时区为Asia/Shanghai时区时的1649606400

	ExpirationTime *string `json:"expiration_time,omitempty"` // 结束生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.最大值：不得超过effective_time+100 年；3.非永久有效：时间戳必须是所在时区当天的23:59:59时间戳，如时区为Asia/Shanghai时区时的1649692799；4.永久有效：传值为0即可

	Anniversary *int `json:"anniversary,omitempty"` // 入职周年日。根据入职时间发放类型勋章，需要配置该字段。

	EffectivePeriod *int `json:"effective_period,omitempty"` // 有效期限。根据入职时间发放类型勋章，需要配置该字段。
}

type RuleDetailBuilder struct {
	effectiveTime     string // 开始生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.时间戳必须是所在时区当天的零点时间戳，如时区为Asia/Shanghai时区时的1649606400
	effectiveTimeFlag bool

	expirationTime     string // 结束生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.最大值：不得超过effective_time+100 年；3.非永久有效：时间戳必须是所在时区当天的23:59:59时间戳，如时区为Asia/Shanghai时区时的1649692799；4.永久有效：传值为0即可
	expirationTimeFlag bool

	anniversary     int // 入职周年日。根据入职时间发放类型勋章，需要配置该字段。
	anniversaryFlag bool

	effectivePeriod     int // 有效期限。根据入职时间发放类型勋章，需要配置该字段。
	effectivePeriodFlag bool
}

func NewRuleDetailBuilder() *RuleDetailBuilder {
	builder := &RuleDetailBuilder{}
	return builder
}

// 开始生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.时间戳必须是所在时区当天的零点时间戳，如时区为Asia/Shanghai时区时的1649606400
//
// 示例值：1649606400
func (builder *RuleDetailBuilder) EffectiveTime(effectiveTime string) *RuleDetailBuilder {
	builder.effectiveTime = effectiveTime
	builder.effectiveTimeFlag = true
	return builder
}

// 结束生效的时间戳。1.手动设置有效期类型勋章，配置有效期限需要配置该字段；2.最大值：不得超过effective_time+100 年；3.非永久有效：时间戳必须是所在时区当天的23:59:59时间戳，如时区为Asia/Shanghai时区时的1649692799；4.永久有效：传值为0即可
//
// 示例值：1649692799
func (builder *RuleDetailBuilder) ExpirationTime(expirationTime string) *RuleDetailBuilder {
	builder.expirationTime = expirationTime
	builder.expirationTimeFlag = true
	return builder
}

// 入职周年日。根据入职时间发放类型勋章，需要配置该字段。
//
// 示例值：1
func (builder *RuleDetailBuilder) Anniversary(anniversary int) *RuleDetailBuilder {
	builder.anniversary = anniversary
	builder.anniversaryFlag = true
	return builder
}

// 有效期限。根据入职时间发放类型勋章，需要配置该字段。
//
// 示例值：1
func (builder *RuleDetailBuilder) EffectivePeriod(effectivePeriod int) *RuleDetailBuilder {
	builder.effectivePeriod = effectivePeriod
	builder.effectivePeriodFlag = true
	return builder
}

func (builder *RuleDetailBuilder) Build() *RuleDetail {
	req := &RuleDetail{}
	if builder.effectiveTimeFlag {
		req.EffectiveTime = &builder.effectiveTime

	}
	if builder.expirationTimeFlag {
		req.ExpirationTime = &builder.expirationTime

	}
	if builder.anniversaryFlag {
		req.Anniversary = &builder.anniversary

	}
	if builder.effectivePeriodFlag {
		req.EffectivePeriod = &builder.effectivePeriod

	}
	return req
}

type SplashPageStat struct {
	Date *string `json:"date,omitempty"` // 日期

	SplashId *string `json:"splash_id,omitempty"` // 开屏素材id

	ImpressionCount *int `json:"impression_count,omitempty"` // 曝光数

	ClickCount *int `json:"click_count,omitempty"` // 点击数

	SkipCount *int `json:"skip_count,omitempty"` // 点击跳过数

	ImpressionCountAccumulate *int `json:"impression_count_accumulate,omitempty"` // 累计曝光

	ClickCountAccumulate *int `json:"click_count_accumulate,omitempty"` // 累计点击

	SkipCountAccumulate *int `json:"skip_count_accumulate,omitempty"` // 累积点击跳过数
}

type SplashPageStatBuilder struct {
	date     string // 日期
	dateFlag bool

	splashId     string // 开屏素材id
	splashIdFlag bool

	impressionCount     int // 曝光数
	impressionCountFlag bool

	clickCount     int // 点击数
	clickCountFlag bool

	skipCount     int // 点击跳过数
	skipCountFlag bool

	impressionCountAccumulate     int // 累计曝光
	impressionCountAccumulateFlag bool

	clickCountAccumulate     int // 累计点击
	clickCountAccumulateFlag bool

	skipCountAccumulate     int // 累积点击跳过数
	skipCountAccumulateFlag bool
}

func NewSplashPageStatBuilder() *SplashPageStatBuilder {
	builder := &SplashPageStatBuilder{}
	return builder
}

// 日期
//
// 示例值：
func (builder *SplashPageStatBuilder) Date(date string) *SplashPageStatBuilder {
	builder.date = date
	builder.dateFlag = true
	return builder
}

// 开屏素材id
//
// 示例值：
func (builder *SplashPageStatBuilder) SplashId(splashId string) *SplashPageStatBuilder {
	builder.splashId = splashId
	builder.splashIdFlag = true
	return builder
}

// 曝光数
//
// 示例值：
func (builder *SplashPageStatBuilder) ImpressionCount(impressionCount int) *SplashPageStatBuilder {
	builder.impressionCount = impressionCount
	builder.impressionCountFlag = true
	return builder
}

// 点击数
//
// 示例值：
func (builder *SplashPageStatBuilder) ClickCount(clickCount int) *SplashPageStatBuilder {
	builder.clickCount = clickCount
	builder.clickCountFlag = true
	return builder
}

// 点击跳过数
//
// 示例值：
func (builder *SplashPageStatBuilder) SkipCount(skipCount int) *SplashPageStatBuilder {
	builder.skipCount = skipCount
	builder.skipCountFlag = true
	return builder
}

// 累计曝光
//
// 示例值：
func (builder *SplashPageStatBuilder) ImpressionCountAccumulate(impressionCountAccumulate int) *SplashPageStatBuilder {
	builder.impressionCountAccumulate = impressionCountAccumulate
	builder.impressionCountAccumulateFlag = true
	return builder
}

// 累计点击
//
// 示例值：
func (builder *SplashPageStatBuilder) ClickCountAccumulate(clickCountAccumulate int) *SplashPageStatBuilder {
	builder.clickCountAccumulate = clickCountAccumulate
	builder.clickCountAccumulateFlag = true
	return builder
}

// 累积点击跳过数
//
// 示例值：
func (builder *SplashPageStatBuilder) SkipCountAccumulate(skipCountAccumulate int) *SplashPageStatBuilder {
	builder.skipCountAccumulate = skipCountAccumulate
	builder.skipCountAccumulateFlag = true
	return builder
}

func (builder *SplashPageStatBuilder) Build() *SplashPageStat {
	req := &SplashPageStat{}
	if builder.dateFlag {
		req.Date = &builder.date

	}
	if builder.splashIdFlag {
		req.SplashId = &builder.splashId

	}
	if builder.impressionCountFlag {
		req.ImpressionCount = &builder.impressionCount

	}
	if builder.clickCountFlag {
		req.ClickCount = &builder.clickCount

	}
	if builder.skipCountFlag {
		req.SkipCount = &builder.skipCount

	}
	if builder.impressionCountAccumulateFlag {
		req.ImpressionCountAccumulate = &builder.impressionCountAccumulate

	}
	if builder.clickCountAccumulateFlag {
		req.ClickCountAccumulate = &builder.clickCountAccumulate

	}
	if builder.skipCountAccumulateFlag {
		req.SkipCountAccumulate = &builder.skipCountAccumulate

	}
	return req
}

type Task struct {
	OriginalUserId *string `json:"original_user_id,omitempty"` // 文档原所有者ID

	TargetOwnerId *string `json:"target_owner_id,omitempty"` // 目标用户ID

	FileList []*File `json:"file_list,omitempty"` // 恢复文件列表

	TaskId *string `json:"task_id,omitempty"` // 任务id

	Status *int `json:"status,omitempty"` // 任务状态

	OriginalUserEmail *string `json:"original_user_email,omitempty"` // 文档原所有者邮箱

	TargetOwnerEmail *string `json:"target_owner_email,omitempty"` // 文档新所有者邮箱

	Type *int `json:"type,omitempty"` // 任务类型
}

type TaskBuilder struct {
	originalUserId     string // 文档原所有者ID
	originalUserIdFlag bool

	targetOwnerId     string // 目标用户ID
	targetOwnerIdFlag bool

	fileList     []*File // 恢复文件列表
	fileListFlag bool

	taskId     string // 任务id
	taskIdFlag bool

	status     int // 任务状态
	statusFlag bool

	originalUserEmail     string // 文档原所有者邮箱
	originalUserEmailFlag bool

	targetOwnerEmail     string // 文档新所有者邮箱
	targetOwnerEmailFlag bool

	type_    int // 任务类型
	typeFlag bool
}

func NewTaskBuilder() *TaskBuilder {
	builder := &TaskBuilder{}
	return builder
}

// 文档原所有者ID
//
// 示例值：1
func (builder *TaskBuilder) OriginalUserId(originalUserId string) *TaskBuilder {
	builder.originalUserId = originalUserId
	builder.originalUserIdFlag = true
	return builder
}

// 目标用户ID
//
// 示例值：2
func (builder *TaskBuilder) TargetOwnerId(targetOwnerId string) *TaskBuilder {
	builder.targetOwnerId = targetOwnerId
	builder.targetOwnerIdFlag = true
	return builder
}

// 恢复文件列表
//
// 示例值：
func (builder *TaskBuilder) FileList(fileList []*File) *TaskBuilder {
	builder.fileList = fileList
	builder.fileListFlag = true
	return builder
}

// 任务id
//
// 示例值：123
func (builder *TaskBuilder) TaskId(taskId string) *TaskBuilder {
	builder.taskId = taskId
	builder.taskIdFlag = true
	return builder
}

// 任务状态
//
// 示例值：1,2
func (builder *TaskBuilder) Status(status int) *TaskBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 文档原所有者邮箱
//
// 示例值：xxx
func (builder *TaskBuilder) OriginalUserEmail(originalUserEmail string) *TaskBuilder {
	builder.originalUserEmail = originalUserEmail
	builder.originalUserEmailFlag = true
	return builder
}

// 文档新所有者邮箱
//
// 示例值：xxx
func (builder *TaskBuilder) TargetOwnerEmail(targetOwnerEmail string) *TaskBuilder {
	builder.targetOwnerEmail = targetOwnerEmail
	builder.targetOwnerEmailFlag = true
	return builder
}

// 任务类型
//
// 示例值：1,2
func (builder *TaskBuilder) Type(type_ int) *TaskBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

func (builder *TaskBuilder) Build() *Task {
	req := &Task{}
	if builder.originalUserIdFlag {
		req.OriginalUserId = &builder.originalUserId

	}
	if builder.targetOwnerIdFlag {
		req.TargetOwnerId = &builder.targetOwnerId

	}
	if builder.fileListFlag {
		req.FileList = builder.fileList
	}
	if builder.taskIdFlag {
		req.TaskId = &builder.taskId

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

	}
	if builder.originalUserEmailFlag {
		req.OriginalUserEmail = &builder.originalUserEmail

	}
	if builder.targetOwnerEmailFlag {
		req.TargetOwnerEmail = &builder.targetOwnerEmail

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	return req
}

type User struct {
	Name *string `json:"name,omitempty"` // 用户名称

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

	Id *string `json:"id,omitempty"` // 用户ID
}

type UserBuilder struct {
	name     string // 用户名称
	nameFlag bool

	avatar     string // 用户头像
	avatarFlag bool

	id     string // 用户ID
	idFlag bool
}

func NewUserBuilder() *UserBuilder {
	builder := &UserBuilder{}
	return builder
}

// 用户名称
//
// 示例值：张三
func (builder *UserBuilder) Name(name string) *UserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 用户头像
//
// 示例值：https://internal-api-lark-file.feishu-boe.cn/static-resource/v1/d50ddc01-5ddb-4431-950e-452637e4a09j~?image_size=72x72&cut_type=default-face&quality=&format=png&sticker_format=.webp
func (builder *UserBuilder) Avatar(avatar string) *UserBuilder {
	builder.avatar = avatar
	builder.avatarFlag = true
	return builder
}

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

func (builder *UserBuilder) Build() *User {
	req := &User{}
	if builder.nameFlag {
		req.Name = &builder.name

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

	}
	if builder.idFlag {
		req.Id = &builder.id

	}
	return req
}

type UserAnnualReport struct {
	Year2021 *UserReport2021 `json:"year_2021,omitempty"` // 2021用户年度报告

	Year2022 *UserReport2022 `json:"year_2022,omitempty"` // 2022用户年度报告

	Year2023 *UserReport2023 `json:"year_2023,omitempty"` // 2023用户年度报告

	Year2024 *UserReport2024 `json:"year_2024,omitempty"` // 2024用户年度报告

	Year2025 *UserReport2025 `json:"year_2025,omitempty"` // 2025用户年度报告
}

type UserAnnualReportBuilder struct {
	year2021     *UserReport2021 // 2021用户年度报告
	year2021Flag bool

	year2022     *UserReport2022 // 2022用户年度报告
	year2022Flag bool

	year2023     *UserReport2023 // 2023用户年度报告
	year2023Flag bool

	year2024     *UserReport2024 // 2024用户年度报告
	year2024Flag bool

	year2025     *UserReport2025 // 2025用户年度报告
	year2025Flag bool
}

func NewUserAnnualReportBuilder() *UserAnnualReportBuilder {
	builder := &UserAnnualReportBuilder{}
	return builder
}

// 2021用户年度报告
//
// 示例值：
func (builder *UserAnnualReportBuilder) Year2021(year2021 *UserReport2021) *UserAnnualReportBuilder {
	builder.year2021 = year2021
	builder.year2021Flag = true
	return builder
}

// 2022用户年度报告
//
// 示例值：
func (builder *UserAnnualReportBuilder) Year2022(year2022 *UserReport2022) *UserAnnualReportBuilder {
	builder.year2022 = year2022
	builder.year2022Flag = true
	return builder
}

// 2023用户年度报告
//
// 示例值：
func (builder *UserAnnualReportBuilder) Year2023(year2023 *UserReport2023) *UserAnnualReportBuilder {
	builder.year2023 = year2023
	builder.year2023Flag = true
	return builder
}

// 2024用户年度报告
//
// 示例值：
func (builder *UserAnnualReportBuilder) Year2024(year2024 *UserReport2024) *UserAnnualReportBuilder {
	builder.year2024 = year2024
	builder.year2024Flag = true
	return builder
}

// 2025用户年度报告
//
// 示例值：
func (builder *UserAnnualReportBuilder) Year2025(year2025 *UserReport2025) *UserAnnualReportBuilder {
	builder.year2025 = year2025
	builder.year2025Flag = true
	return builder
}

func (builder *UserAnnualReportBuilder) Build() *UserAnnualReport {
	req := &UserAnnualReport{}
	if builder.year2021Flag {
		req.Year2021 = builder.year2021
	}
	if builder.year2022Flag {
		req.Year2022 = builder.year2022
	}
	if builder.year2023Flag {
		req.Year2023 = builder.year2023
	}
	if builder.year2024Flag {
		req.Year2024 = builder.year2024
	}
	if builder.year2025Flag {
		req.Year2025 = builder.year2025
	}
	return req
}

type UserReport2021 struct {
	ActiveDayCount *int `json:"active_day_count,omitempty"` // 活跃时长> 0的天数

	BusyWeek *string `json:"busy_week,omitempty"` // 工作日平均活跃最长的一周，「2021W10」格式

	P2pChatCount *string `json:"p2p_chat_count,omitempty"` // 单聊过的人数（仅限普通单聊，不包括bot等，不限本人是否有过发送消息）

	TalkedChatCount *string `json:"talked_chat_count,omitempty"` // 发过言的群数

	FavoriteEmoji *string `json:"favorite_emoji,omitempty"` // 任何场景下发的表情次数最多的一个表情

	ReactionCount *string `json:"reaction_count,omitempty"` // 本人使用快捷表情的次数

	ConferenceCreateCount *string `json:"conference_create_count,omitempty"` // 创建了日程并发起了视频会议的次数

	TotalPartiCount *string `json:"total_parti_count,omitempty"` // 创建日程中涉及到的总人次

	MinutesObjectCount *string `json:"minutes_object_count,omitempty"` // 录制了多少篇妙记

	MinutesDuration *float64 `json:"minutes_duration,omitempty"` // 录制妙记累积时长（分钟）

	CreateEditFileCount *string `json:"create_edit_file_count,omitempty"` // 创建及参与协作的文档篇数

	CreateFileCount *string `json:"create_file_count,omitempty"` // 创建文档数

	CooperateEditFileCount *string `json:"cooperate_edit_file_count,omitempty"` // 参与协作文档数

	LikeRecordCount *string `json:"like_record_count,omitempty"` // 所属的文档共获得多少个点赞

	OkrCumOCount *string `json:"okr_cum_o_count,omitempty"` // 填写过的O的数量

	OkrCumKrCount *string `json:"okr_cum_kr_count,omitempty"` // 填写过的KR的数量

	OkrAlignedUserRankfirst *string `json:"okr_aligned_user_rankfirst,omitempty"` // 被对齐次数最多的用户

	ApprovalStartCount *string `json:"approval_start_count,omitempty"` // 发起的审批流程数

	ApprovalExecuteCount *string `json:"approval_execute_count,omitempty"` // 处理的审批流程数

	ApprovalRelationUserRankfirst *string `json:"approval_relation_user_rankfirst,omitempty"` // 审批协作次数最多的用户（在同一个审批实例中出现过即算为审批协作）

	UserId *string `json:"user_id,omitempty"` // 用户id

	BusyWeekSumDuration *string `json:"busy_week_sum_duration,omitempty"` // 工作日平均活跃最长的一周 的总活跃时长（分钟）

	BusyWeekMdate *string `json:"busy_week_mdate,omitempty"` // 工作日平均活跃最长的一周 的最早工作日

	BusyWeekActDays *int `json:"busy_week_act_days,omitempty"` // 工作日平均活跃最长的一周 有活跃的工作日天数

	CreateReadUserCount *string `json:"create_read_user_count,omitempty"` // 创建的文档被XXX人阅读过
}

type UserReport2021Builder struct {
	activeDayCount     int // 活跃时长> 0的天数
	activeDayCountFlag bool

	busyWeek     string // 工作日平均活跃最长的一周，「2021W10」格式
	busyWeekFlag bool

	p2pChatCount     string // 单聊过的人数（仅限普通单聊，不包括bot等，不限本人是否有过发送消息）
	p2pChatCountFlag bool

	talkedChatCount     string // 发过言的群数
	talkedChatCountFlag bool

	favoriteEmoji     string // 任何场景下发的表情次数最多的一个表情
	favoriteEmojiFlag bool

	reactionCount     string // 本人使用快捷表情的次数
	reactionCountFlag bool

	conferenceCreateCount     string // 创建了日程并发起了视频会议的次数
	conferenceCreateCountFlag bool

	totalPartiCount     string // 创建日程中涉及到的总人次
	totalPartiCountFlag bool

	minutesObjectCount     string // 录制了多少篇妙记
	minutesObjectCountFlag bool

	minutesDuration     float64 // 录制妙记累积时长（分钟）
	minutesDurationFlag bool

	createEditFileCount     string // 创建及参与协作的文档篇数
	createEditFileCountFlag bool

	createFileCount     string // 创建文档数
	createFileCountFlag bool

	cooperateEditFileCount     string // 参与协作文档数
	cooperateEditFileCountFlag bool

	likeRecordCount     string // 所属的文档共获得多少个点赞
	likeRecordCountFlag bool

	okrCumOCount     string // 填写过的O的数量
	okrCumOCountFlag bool

	okrCumKrCount     string // 填写过的KR的数量
	okrCumKrCountFlag bool

	okrAlignedUserRankfirst     string // 被对齐次数最多的用户
	okrAlignedUserRankfirstFlag bool

	approvalStartCount     string // 发起的审批流程数
	approvalStartCountFlag bool

	approvalExecuteCount     string // 处理的审批流程数
	approvalExecuteCountFlag bool

	approvalRelationUserRankfirst     string // 审批协作次数最多的用户（在同一个审批实例中出现过即算为审批协作）
	approvalRelationUserRankfirstFlag bool

	userId     string // 用户id
	userIdFlag bool

	busyWeekSumDuration     string // 工作日平均活跃最长的一周 的总活跃时长（分钟）
	busyWeekSumDurationFlag bool

	busyWeekMdate     string // 工作日平均活跃最长的一周 的最早工作日
	busyWeekMdateFlag bool

	busyWeekActDays     int // 工作日平均活跃最长的一周 有活跃的工作日天数
	busyWeekActDaysFlag bool

	createReadUserCount     string // 创建的文档被XXX人阅读过
	createReadUserCountFlag bool
}

func NewUserReport2021Builder() *UserReport2021Builder {
	builder := &UserReport2021Builder{}
	return builder
}

// 活跃时长> 0的天数
//
// 示例值：111
func (builder *UserReport2021Builder) ActiveDayCount(activeDayCount int) *UserReport2021Builder {
	builder.activeDayCount = activeDayCount
	builder.activeDayCountFlag = true
	return builder
}

// 工作日平均活跃最长的一周，「2021W10」格式
//
// 示例值：2021W33
func (builder *UserReport2021Builder) BusyWeek(busyWeek string) *UserReport2021Builder {
	builder.busyWeek = busyWeek
	builder.busyWeekFlag = true
	return builder
}

// 单聊过的人数（仅限普通单聊，不包括bot等，不限本人是否有过发送消息）
//
// 示例值：3
func (builder *UserReport2021Builder) P2pChatCount(p2pChatCount string) *UserReport2021Builder {
	builder.p2pChatCount = p2pChatCount
	builder.p2pChatCountFlag = true
	return builder
}

// 发过言的群数
//
// 示例值：4
func (builder *UserReport2021Builder) TalkedChatCount(talkedChatCount string) *UserReport2021Builder {
	builder.talkedChatCount = talkedChatCount
	builder.talkedChatCountFlag = true
	return builder
}

// 任何场景下发的表情次数最多的一个表情
//
// 示例值：MUSCLE
func (builder *UserReport2021Builder) FavoriteEmoji(favoriteEmoji string) *UserReport2021Builder {
	builder.favoriteEmoji = favoriteEmoji
	builder.favoriteEmojiFlag = true
	return builder
}

// 本人使用快捷表情的次数
//
// 示例值：341
func (builder *UserReport2021Builder) ReactionCount(reactionCount string) *UserReport2021Builder {
	builder.reactionCount = reactionCount
	builder.reactionCountFlag = true
	return builder
}

// 创建了日程并发起了视频会议的次数
//
// 示例值：78
func (builder *UserReport2021Builder) ConferenceCreateCount(conferenceCreateCount string) *UserReport2021Builder {
	builder.conferenceCreateCount = conferenceCreateCount
	builder.conferenceCreateCountFlag = true
	return builder
}

// 创建日程中涉及到的总人次
//
// 示例值：1
func (builder *UserReport2021Builder) TotalPartiCount(totalPartiCount string) *UserReport2021Builder {
	builder.totalPartiCount = totalPartiCount
	builder.totalPartiCountFlag = true
	return builder
}

// 录制了多少篇妙记
//
// 示例值：0
func (builder *UserReport2021Builder) MinutesObjectCount(minutesObjectCount string) *UserReport2021Builder {
	builder.minutesObjectCount = minutesObjectCount
	builder.minutesObjectCountFlag = true
	return builder
}

// 录制妙记累积时长（分钟）
//
// 示例值：0
func (builder *UserReport2021Builder) MinutesDuration(minutesDuration float64) *UserReport2021Builder {
	builder.minutesDuration = minutesDuration
	builder.minutesDurationFlag = true
	return builder
}

// 创建及参与协作的文档篇数
//
// 示例值：0
func (builder *UserReport2021Builder) CreateEditFileCount(createEditFileCount string) *UserReport2021Builder {
	builder.createEditFileCount = createEditFileCount
	builder.createEditFileCountFlag = true
	return builder
}

// 创建文档数
//
// 示例值：0
func (builder *UserReport2021Builder) CreateFileCount(createFileCount string) *UserReport2021Builder {
	builder.createFileCount = createFileCount
	builder.createFileCountFlag = true
	return builder
}

// 参与协作文档数
//
// 示例值：0
func (builder *UserReport2021Builder) CooperateEditFileCount(cooperateEditFileCount string) *UserReport2021Builder {
	builder.cooperateEditFileCount = cooperateEditFileCount
	builder.cooperateEditFileCountFlag = true
	return builder
}

// 所属的文档共获得多少个点赞
//
// 示例值：0
func (builder *UserReport2021Builder) LikeRecordCount(likeRecordCount string) *UserReport2021Builder {
	builder.likeRecordCount = likeRecordCount
	builder.likeRecordCountFlag = true
	return builder
}

// 填写过的O的数量
//
// 示例值：0
func (builder *UserReport2021Builder) OkrCumOCount(okrCumOCount string) *UserReport2021Builder {
	builder.okrCumOCount = okrCumOCount
	builder.okrCumOCountFlag = true
	return builder
}

// 填写过的KR的数量
//
// 示例值：0
func (builder *UserReport2021Builder) OkrCumKrCount(okrCumKrCount string) *UserReport2021Builder {
	builder.okrCumKrCount = okrCumKrCount
	builder.okrCumKrCountFlag = true
	return builder
}

// 被对齐次数最多的用户
//
// 示例值：ou_XXXXXXX
func (builder *UserReport2021Builder) OkrAlignedUserRankfirst(okrAlignedUserRankfirst string) *UserReport2021Builder {
	builder.okrAlignedUserRankfirst = okrAlignedUserRankfirst
	builder.okrAlignedUserRankfirstFlag = true
	return builder
}

// 发起的审批流程数
//
// 示例值：0
func (builder *UserReport2021Builder) ApprovalStartCount(approvalStartCount string) *UserReport2021Builder {
	builder.approvalStartCount = approvalStartCount
	builder.approvalStartCountFlag = true
	return builder
}

// 处理的审批流程数
//
// 示例值：0
func (builder *UserReport2021Builder) ApprovalExecuteCount(approvalExecuteCount string) *UserReport2021Builder {
	builder.approvalExecuteCount = approvalExecuteCount
	builder.approvalExecuteCountFlag = true
	return builder
}

// 审批协作次数最多的用户（在同一个审批实例中出现过即算为审批协作）
//
// 示例值：ou_XXXXXXX
func (builder *UserReport2021Builder) ApprovalRelationUserRankfirst(approvalRelationUserRankfirst string) *UserReport2021Builder {
	builder.approvalRelationUserRankfirst = approvalRelationUserRankfirst
	builder.approvalRelationUserRankfirstFlag = true
	return builder
}

// 用户id
//
// 示例值：ou_XXXXXXX
func (builder *UserReport2021Builder) UserId(userId string) *UserReport2021Builder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 工作日平均活跃最长的一周 的总活跃时长（分钟）
//
// 示例值：1816
func (builder *UserReport2021Builder) BusyWeekSumDuration(busyWeekSumDuration string) *UserReport2021Builder {
	builder.busyWeekSumDuration = busyWeekSumDuration
	builder.busyWeekSumDurationFlag = true
	return builder
}

// 工作日平均活跃最长的一周 的最早工作日
//
// 示例值：20210816
func (builder *UserReport2021Builder) BusyWeekMdate(busyWeekMdate string) *UserReport2021Builder {
	builder.busyWeekMdate = busyWeekMdate
	builder.busyWeekMdateFlag = true
	return builder
}

// 工作日平均活跃最长的一周 有活跃的工作日天数
//
// 示例值：4
func (builder *UserReport2021Builder) BusyWeekActDays(busyWeekActDays int) *UserReport2021Builder {
	builder.busyWeekActDays = busyWeekActDays
	builder.busyWeekActDaysFlag = true
	return builder
}

// 创建的文档被XXX人阅读过
//
// 示例值：10
func (builder *UserReport2021Builder) CreateReadUserCount(createReadUserCount string) *UserReport2021Builder {
	builder.createReadUserCount = createReadUserCount
	builder.createReadUserCountFlag = true
	return builder
}

func (builder *UserReport2021Builder) Build() *UserReport2021 {
	req := &UserReport2021{}
	if builder.activeDayCountFlag {
		req.ActiveDayCount = &builder.activeDayCount

	}
	if builder.busyWeekFlag {
		req.BusyWeek = &builder.busyWeek

	}
	if builder.p2pChatCountFlag {
		req.P2pChatCount = &builder.p2pChatCount

	}
	if builder.talkedChatCountFlag {
		req.TalkedChatCount = &builder.talkedChatCount

	}
	if builder.favoriteEmojiFlag {
		req.FavoriteEmoji = &builder.favoriteEmoji

	}
	if builder.reactionCountFlag {
		req.ReactionCount = &builder.reactionCount

	}
	if builder.conferenceCreateCountFlag {
		req.ConferenceCreateCount = &builder.conferenceCreateCount

	}
	if builder.totalPartiCountFlag {
		req.TotalPartiCount = &builder.totalPartiCount

	}
	if builder.minutesObjectCountFlag {
		req.MinutesObjectCount = &builder.minutesObjectCount

	}
	if builder.minutesDurationFlag {
		req.MinutesDuration = &builder.minutesDuration

	}
	if builder.createEditFileCountFlag {
		req.CreateEditFileCount = &builder.createEditFileCount

	}
	if builder.createFileCountFlag {
		req.CreateFileCount = &builder.createFileCount

	}
	if builder.cooperateEditFileCountFlag {
		req.CooperateEditFileCount = &builder.cooperateEditFileCount

	}
	if builder.likeRecordCountFlag {
		req.LikeRecordCount = &builder.likeRecordCount

	}
	if builder.okrCumOCountFlag {
		req.OkrCumOCount = &builder.okrCumOCount

	}
	if builder.okrCumKrCountFlag {
		req.OkrCumKrCount = &builder.okrCumKrCount

	}
	if builder.okrAlignedUserRankfirstFlag {
		req.OkrAlignedUserRankfirst = &builder.okrAlignedUserRankfirst

	}
	if builder.approvalStartCountFlag {
		req.ApprovalStartCount = &builder.approvalStartCount

	}
	if builder.approvalExecuteCountFlag {
		req.ApprovalExecuteCount = &builder.approvalExecuteCount

	}
	if builder.approvalRelationUserRankfirstFlag {
		req.ApprovalRelationUserRankfirst = &builder.approvalRelationUserRankfirst

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.busyWeekSumDurationFlag {
		req.BusyWeekSumDuration = &builder.busyWeekSumDuration

	}
	if builder.busyWeekMdateFlag {
		req.BusyWeekMdate = &builder.busyWeekMdate

	}
	if builder.busyWeekActDaysFlag {
		req.BusyWeekActDays = &builder.busyWeekActDays

	}
	if builder.createReadUserCountFlag {
		req.CreateReadUserCount = &builder.createReadUserCount

	}
	return req
}

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

	UserRegisterDate *string `json:"user_register_date,omitempty"` // 用户的飞书激活日期，yyyyMMdd格式（201909之前的用户可能是空

	ActiveDayCount *int `json:"active_day_count,omitempty"` // 用户2022年内在飞书有活跃的天数

	MsgBusyDate *string `json:"msg_busy_date,omitempty"` // 2022全年用户发出消息条数最多的一天，yyyyMMdd格式

	MsgBusyDateSendMsgCount *string `json:"msg_busy_date_send_msg_count,omitempty"` // 全年发消息最多一天，发出的消息数

	P2pChatCount *string `json:"p2p_chat_count,omitempty"` // 2022全年与此用户有过单聊的人数（双方任意一人发出过消息即计入）

	TalkedChatCount *string `json:"talked_chat_count,omitempty"` // 2022全年用户有过发言的飞书群的数量

	PositiveReactionCount *string `json:"positive_reaction_count,omitempty"` // 2022全年用户所发消息，收到点赞、送心、碰拳等正面表情回复的总次数

	FirstPositiveReaction *string `json:"first_positive_reaction,omitempty"` // 用户所收到的正向表情回复，排第1的表情

	SecondPositiveReaction *string `json:"second_positive_reaction,omitempty"` // 用户所收到的正向表情回复，排第2的表情

	ThirdPositiveReaction *string `json:"third_positive_reaction,omitempty"` // 用户所收到的正向表情回复，排第3的表情

	FourthPositiveReaction *string `json:"fourth_positive_reaction,omitempty"` // 用户所收到的正向表情回复，排第4的表情

	FifthPositiveReaction *string `json:"fifth_positive_reaction,omitempty"` // 用户所收到的正向表情回复，排第5的表情

	CreateFileCount *string `json:"create_file_count,omitempty"` // 2022全年用户本人创建过的飞书文档数量

	CreatedFileViewCount *string `json:"created_file_view_count,omitempty"` // 此用户2022年创建的飞书文档的总阅读人数（含自己）

	CommentFileCount *string `json:"comment_file_count,omitempty"` // 2022全年用户发表过评论的飞书文档数量

	AttendEventCount *string `json:"attend_event_count,omitempty"` // 2022全年用户的日程总数（主日历日程，排除被删除的日程及用户拒绝、移除的日程，包括全天日程和重复日程，重复日程在周期内计算为多次）

	EventBusyDate *string `json:"event_busy_date,omitempty"` // 2022全年用户日程数量最多的一天，yyyyMMdd格式

	EventBusyDateEventCount *string `json:"event_busy_date_event_count,omitempty"` // 日程最多一天的日程数量

	EventStartTimeRange1 *string `json:"event_start_time_range1,omitempty"` // 2022全年，此用户最经常的日程开始时间，精确到分钟，HH:mm格式

	ConferenceCreateCount *string `json:"conference_create_count,omitempty"` // 2022全年，基于此用户所创建的日程，发起了视频会议的次数

	TotalPartiCount *string `json:"total_parti_count,omitempty"` // 2022全年，基于此用户所创建的日程发起的视频会议，涉及的参会总人次

	OkrCumOCount *string `json:"okr_cum_o_count,omitempty"` // 2022全年此用户写过的O的数量（未删除）

	OkrCumKrCount *string `json:"okr_cum_kr_count,omitempty"` // 2022全年此用户写过的KR的数量（未删除）

	OkrAlignedUserCount *string `json:"okr_aligned_user_count,omitempty"` // 2022全年用户所写的OKR对齐过的去重人数（未删除）

	PeopleInterviewNum *string `json:"people_interview_num,omitempty"` // 2022全年用户在飞书招聘上进行的面试总场次（候选人是海外账号的未参与计算）

	SendEmailCount *string `json:"send_email_count,omitempty"` // 2022全年此用户发出邮件数量

	ReceiveEmailCount *string `json:"receive_email_count,omitempty"` // 2022全年此用户收到邮件数量
}

type UserReport2022Builder struct {
	userId     string // 用户id
	userIdFlag bool

	userRegisterDate     string // 用户的飞书激活日期，yyyyMMdd格式（201909之前的用户可能是空
	userRegisterDateFlag bool

	activeDayCount     int // 用户2022年内在飞书有活跃的天数
	activeDayCountFlag bool

	msgBusyDate     string // 2022全年用户发出消息条数最多的一天，yyyyMMdd格式
	msgBusyDateFlag bool

	msgBusyDateSendMsgCount     string // 全年发消息最多一天，发出的消息数
	msgBusyDateSendMsgCountFlag bool

	p2pChatCount     string // 2022全年与此用户有过单聊的人数（双方任意一人发出过消息即计入）
	p2pChatCountFlag bool

	talkedChatCount     string // 2022全年用户有过发言的飞书群的数量
	talkedChatCountFlag bool

	positiveReactionCount     string // 2022全年用户所发消息，收到点赞、送心、碰拳等正面表情回复的总次数
	positiveReactionCountFlag bool

	firstPositiveReaction     string // 用户所收到的正向表情回复，排第1的表情
	firstPositiveReactionFlag bool

	secondPositiveReaction     string // 用户所收到的正向表情回复，排第2的表情
	secondPositiveReactionFlag bool

	thirdPositiveReaction     string // 用户所收到的正向表情回复，排第3的表情
	thirdPositiveReactionFlag bool

	fourthPositiveReaction     string // 用户所收到的正向表情回复，排第4的表情
	fourthPositiveReactionFlag bool

	fifthPositiveReaction     string // 用户所收到的正向表情回复，排第5的表情
	fifthPositiveReactionFlag bool

	createFileCount     string // 2022全年用户本人创建过的飞书文档数量
	createFileCountFlag bool

	createdFileViewCount     string // 此用户2022年创建的飞书文档的总阅读人数（含自己）
	createdFileViewCountFlag bool

	commentFileCount     string // 2022全年用户发表过评论的飞书文档数量
	commentFileCountFlag bool

	attendEventCount     string // 2022全年用户的日程总数（主日历日程，排除被删除的日程及用户拒绝、移除的日程，包括全天日程和重复日程，重复日程在周期内计算为多次）
	attendEventCountFlag bool

	eventBusyDate     string // 2022全年用户日程数量最多的一天，yyyyMMdd格式
	eventBusyDateFlag bool

	eventBusyDateEventCount     string // 日程最多一天的日程数量
	eventBusyDateEventCountFlag bool

	eventStartTimeRange1     string // 2022全年，此用户最经常的日程开始时间，精确到分钟，HH:mm格式
	eventStartTimeRange1Flag bool

	conferenceCreateCount     string // 2022全年，基于此用户所创建的日程，发起了视频会议的次数
	conferenceCreateCountFlag bool

	totalPartiCount     string // 2022全年，基于此用户所创建的日程发起的视频会议，涉及的参会总人次
	totalPartiCountFlag bool

	okrCumOCount     string // 2022全年此用户写过的O的数量（未删除）
	okrCumOCountFlag bool

	okrCumKrCount     string // 2022全年此用户写过的KR的数量（未删除）
	okrCumKrCountFlag bool

	okrAlignedUserCount     string // 2022全年用户所写的OKR对齐过的去重人数（未删除）
	okrAlignedUserCountFlag bool

	peopleInterviewNum     string // 2022全年用户在飞书招聘上进行的面试总场次（候选人是海外账号的未参与计算）
	peopleInterviewNumFlag bool

	sendEmailCount     string // 2022全年此用户发出邮件数量
	sendEmailCountFlag bool

	receiveEmailCount     string // 2022全年此用户收到邮件数量
	receiveEmailCountFlag bool
}

func NewUserReport2022Builder() *UserReport2022Builder {
	builder := &UserReport2022Builder{}
	return builder
}

// 用户id
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *UserReport2022Builder) UserId(userId string) *UserReport2022Builder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 用户的飞书激活日期，yyyyMMdd格式（201909之前的用户可能是空
//
// 示例值：20220726
func (builder *UserReport2022Builder) UserRegisterDate(userRegisterDate string) *UserReport2022Builder {
	builder.userRegisterDate = userRegisterDate
	builder.userRegisterDateFlag = true
	return builder
}

// 用户2022年内在飞书有活跃的天数
//
// 示例值：120
func (builder *UserReport2022Builder) ActiveDayCount(activeDayCount int) *UserReport2022Builder {
	builder.activeDayCount = activeDayCount
	builder.activeDayCountFlag = true
	return builder
}

// 2022全年用户发出消息条数最多的一天，yyyyMMdd格式
//
// 示例值：20220817
func (builder *UserReport2022Builder) MsgBusyDate(msgBusyDate string) *UserReport2022Builder {
	builder.msgBusyDate = msgBusyDate
	builder.msgBusyDateFlag = true
	return builder
}

// 全年发消息最多一天，发出的消息数
//
// 示例值：588
func (builder *UserReport2022Builder) MsgBusyDateSendMsgCount(msgBusyDateSendMsgCount string) *UserReport2022Builder {
	builder.msgBusyDateSendMsgCount = msgBusyDateSendMsgCount
	builder.msgBusyDateSendMsgCountFlag = true
	return builder
}

// 2022全年与此用户有过单聊的人数（双方任意一人发出过消息即计入）
//
// 示例值：22
func (builder *UserReport2022Builder) P2pChatCount(p2pChatCount string) *UserReport2022Builder {
	builder.p2pChatCount = p2pChatCount
	builder.p2pChatCountFlag = true
	return builder
}

// 2022全年用户有过发言的飞书群的数量
//
// 示例值：18
func (builder *UserReport2022Builder) TalkedChatCount(talkedChatCount string) *UserReport2022Builder {
	builder.talkedChatCount = talkedChatCount
	builder.talkedChatCountFlag = true
	return builder
}

// 2022全年用户所发消息，收到点赞、送心、碰拳等正面表情回复的总次数
//
// 示例值：100
func (builder *UserReport2022Builder) PositiveReactionCount(positiveReactionCount string) *UserReport2022Builder {
	builder.positiveReactionCount = positiveReactionCount
	builder.positiveReactionCountFlag = true
	return builder
}

// 用户所收到的正向表情回复，排第1的表情
//
// 示例值：thumbsup
func (builder *UserReport2022Builder) FirstPositiveReaction(firstPositiveReaction string) *UserReport2022Builder {
	builder.firstPositiveReaction = firstPositiveReaction
	builder.firstPositiveReactionFlag = true
	return builder
}

// 用户所收到的正向表情回复，排第2的表情
//
// 示例值：muscle
func (builder *UserReport2022Builder) SecondPositiveReaction(secondPositiveReaction string) *UserReport2022Builder {
	builder.secondPositiveReaction = secondPositiveReaction
	builder.secondPositiveReactionFlag = true
	return builder
}

// 用户所收到的正向表情回复，排第3的表情
//
// 示例值：fingerheart
func (builder *UserReport2022Builder) ThirdPositiveReaction(thirdPositiveReaction string) *UserReport2022Builder {
	builder.thirdPositiveReaction = thirdPositiveReaction
	builder.thirdPositiveReactionFlag = true
	return builder
}

// 用户所收到的正向表情回复，排第4的表情
//
// 示例值：applaud
func (builder *UserReport2022Builder) FourthPositiveReaction(fourthPositiveReaction string) *UserReport2022Builder {
	builder.fourthPositiveReaction = fourthPositiveReaction
	builder.fourthPositiveReactionFlag = true
	return builder
}

// 用户所收到的正向表情回复，排第5的表情
//
// 示例值：fistbump
func (builder *UserReport2022Builder) FifthPositiveReaction(fifthPositiveReaction string) *UserReport2022Builder {
	builder.fifthPositiveReaction = fifthPositiveReaction
	builder.fifthPositiveReactionFlag = true
	return builder
}

// 2022全年用户本人创建过的飞书文档数量
//
// 示例值：12
func (builder *UserReport2022Builder) CreateFileCount(createFileCount string) *UserReport2022Builder {
	builder.createFileCount = createFileCount
	builder.createFileCountFlag = true
	return builder
}

// 此用户2022年创建的飞书文档的总阅读人数（含自己）
//
// 示例值：11
func (builder *UserReport2022Builder) CreatedFileViewCount(createdFileViewCount string) *UserReport2022Builder {
	builder.createdFileViewCount = createdFileViewCount
	builder.createdFileViewCountFlag = true
	return builder
}

// 2022全年用户发表过评论的飞书文档数量
//
// 示例值：11
func (builder *UserReport2022Builder) CommentFileCount(commentFileCount string) *UserReport2022Builder {
	builder.commentFileCount = commentFileCount
	builder.commentFileCountFlag = true
	return builder
}

// 2022全年用户的日程总数（主日历日程，排除被删除的日程及用户拒绝、移除的日程，包括全天日程和重复日程，重复日程在周期内计算为多次）
//
// 示例值：123
func (builder *UserReport2022Builder) AttendEventCount(attendEventCount string) *UserReport2022Builder {
	builder.attendEventCount = attendEventCount
	builder.attendEventCountFlag = true
	return builder
}

// 2022全年用户日程数量最多的一天，yyyyMMdd格式
//
// 示例值：20220801
func (builder *UserReport2022Builder) EventBusyDate(eventBusyDate string) *UserReport2022Builder {
	builder.eventBusyDate = eventBusyDate
	builder.eventBusyDateFlag = true
	return builder
}

// 日程最多一天的日程数量
//
// 示例值：123
func (builder *UserReport2022Builder) EventBusyDateEventCount(eventBusyDateEventCount string) *UserReport2022Builder {
	builder.eventBusyDateEventCount = eventBusyDateEventCount
	builder.eventBusyDateEventCountFlag = true
	return builder
}

// 2022全年，此用户最经常的日程开始时间，精确到分钟，HH:mm格式
//
// 示例值：10:00
func (builder *UserReport2022Builder) EventStartTimeRange1(eventStartTimeRange1 string) *UserReport2022Builder {
	builder.eventStartTimeRange1 = eventStartTimeRange1
	builder.eventStartTimeRange1Flag = true
	return builder
}

// 2022全年，基于此用户所创建的日程，发起了视频会议的次数
//
// 示例值：123
func (builder *UserReport2022Builder) ConferenceCreateCount(conferenceCreateCount string) *UserReport2022Builder {
	builder.conferenceCreateCount = conferenceCreateCount
	builder.conferenceCreateCountFlag = true
	return builder
}

// 2022全年，基于此用户所创建的日程发起的视频会议，涉及的参会总人次
//
// 示例值：123
func (builder *UserReport2022Builder) TotalPartiCount(totalPartiCount string) *UserReport2022Builder {
	builder.totalPartiCount = totalPartiCount
	builder.totalPartiCountFlag = true
	return builder
}

// 2022全年此用户写过的O的数量（未删除）
//
// 示例值：123
func (builder *UserReport2022Builder) OkrCumOCount(okrCumOCount string) *UserReport2022Builder {
	builder.okrCumOCount = okrCumOCount
	builder.okrCumOCountFlag = true
	return builder
}

// 2022全年此用户写过的KR的数量（未删除）
//
// 示例值：123
func (builder *UserReport2022Builder) OkrCumKrCount(okrCumKrCount string) *UserReport2022Builder {
	builder.okrCumKrCount = okrCumKrCount
	builder.okrCumKrCountFlag = true
	return builder
}

// 2022全年用户所写的OKR对齐过的去重人数（未删除）
//
// 示例值：123
func (builder *UserReport2022Builder) OkrAlignedUserCount(okrAlignedUserCount string) *UserReport2022Builder {
	builder.okrAlignedUserCount = okrAlignedUserCount
	builder.okrAlignedUserCountFlag = true
	return builder
}

// 2022全年用户在飞书招聘上进行的面试总场次（候选人是海外账号的未参与计算）
//
// 示例值：123
func (builder *UserReport2022Builder) PeopleInterviewNum(peopleInterviewNum string) *UserReport2022Builder {
	builder.peopleInterviewNum = peopleInterviewNum
	builder.peopleInterviewNumFlag = true
	return builder
}

// 2022全年此用户发出邮件数量
//
// 示例值：123
func (builder *UserReport2022Builder) SendEmailCount(sendEmailCount string) *UserReport2022Builder {
	builder.sendEmailCount = sendEmailCount
	builder.sendEmailCountFlag = true
	return builder
}

// 2022全年此用户收到邮件数量
//
// 示例值：123
func (builder *UserReport2022Builder) ReceiveEmailCount(receiveEmailCount string) *UserReport2022Builder {
	builder.receiveEmailCount = receiveEmailCount
	builder.receiveEmailCountFlag = true
	return builder
}

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

	}
	if builder.userRegisterDateFlag {
		req.UserRegisterDate = &builder.userRegisterDate

	}
	if builder.activeDayCountFlag {
		req.ActiveDayCount = &builder.activeDayCount

	}
	if builder.msgBusyDateFlag {
		req.MsgBusyDate = &builder.msgBusyDate

	}
	if builder.msgBusyDateSendMsgCountFlag {
		req.MsgBusyDateSendMsgCount = &builder.msgBusyDateSendMsgCount

	}
	if builder.p2pChatCountFlag {
		req.P2pChatCount = &builder.p2pChatCount

	}
	if builder.talkedChatCountFlag {
		req.TalkedChatCount = &builder.talkedChatCount

	}
	if builder.positiveReactionCountFlag {
		req.PositiveReactionCount = &builder.positiveReactionCount

	}
	if builder.firstPositiveReactionFlag {
		req.FirstPositiveReaction = &builder.firstPositiveReaction

	}
	if builder.secondPositiveReactionFlag {
		req.SecondPositiveReaction = &builder.secondPositiveReaction

	}
	if builder.thirdPositiveReactionFlag {
		req.ThirdPositiveReaction = &builder.thirdPositiveReaction

	}
	if builder.fourthPositiveReactionFlag {
		req.FourthPositiveReaction = &builder.fourthPositiveReaction

	}
	if builder.fifthPositiveReactionFlag {
		req.FifthPositiveReaction = &builder.fifthPositiveReaction

	}
	if builder.createFileCountFlag {
		req.CreateFileCount = &builder.createFileCount

	}
	if builder.createdFileViewCountFlag {
		req.CreatedFileViewCount = &builder.createdFileViewCount

	}
	if builder.commentFileCountFlag {
		req.CommentFileCount = &builder.commentFileCount

	}
	if builder.attendEventCountFlag {
		req.AttendEventCount = &builder.attendEventCount

	}
	if builder.eventBusyDateFlag {
		req.EventBusyDate = &builder.eventBusyDate

	}
	if builder.eventBusyDateEventCountFlag {
		req.EventBusyDateEventCount = &builder.eventBusyDateEventCount

	}
	if builder.eventStartTimeRange1Flag {
		req.EventStartTimeRange1 = &builder.eventStartTimeRange1

	}
	if builder.conferenceCreateCountFlag {
		req.ConferenceCreateCount = &builder.conferenceCreateCount

	}
	if builder.totalPartiCountFlag {
		req.TotalPartiCount = &builder.totalPartiCount

	}
	if builder.okrCumOCountFlag {
		req.OkrCumOCount = &builder.okrCumOCount

	}
	if builder.okrCumKrCountFlag {
		req.OkrCumKrCount = &builder.okrCumKrCount

	}
	if builder.okrAlignedUserCountFlag {
		req.OkrAlignedUserCount = &builder.okrAlignedUserCount

	}
	if builder.peopleInterviewNumFlag {
		req.PeopleInterviewNum = &builder.peopleInterviewNum

	}
	if builder.sendEmailCountFlag {
		req.SendEmailCount = &builder.sendEmailCount

	}
	if builder.receiveEmailCountFlag {
		req.ReceiveEmailCount = &builder.receiveEmailCount

	}
	return req
}

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

	TenantAllCnt *int `json:"tenant_all_cnt,omitempty"` // 所在租户目前的总人数,已激活、未离职

	UserRegisterDate *string `json:"user_register_date,omitempty"` // 用户的飞书激活日期,yyyyMMdd格式(201909之前的用户可能是空)

	AllDayCnt *int `json:"all_day_cnt,omitempty"` // 用户激活至今的天数

	ActiveDayCnt *int `json:"active_day_cnt,omitempty"` // 用户2023年内活跃时长> 0的天数

	DurationCnt2 []*AnnualReportMapFloat `json:"duration_cnt_2,omitempty"` // 用户2022-2023使用总时长(格式0.01h),共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}

	DurationCntRank *string `json:"duration_cnt_rank,omitempty"` // 2023年全年活跃时长的排名。

	BusyMonth *string `json:"busy_month,omitempty"` // 用户2023年最忙碌一个月。最忙碌一个月的定义:所有自然月中,飞书在线时长最长的一个月。

	BusyMonthSumDuration *float64 `json:"busy_month_sum_duration,omitempty"` // 用户2023年最忙碌一个月的活跃时长(格式0.01h)

	BusyMonthSendMsgCnt *int `json:"busy_month_send_msg_cnt,omitempty"` // 用户2023年最忙碌一个月的发消息数

	BusyMonthMeetingCnt *int `json:"busy_month_meeting_cnt,omitempty"` // 用户2023年最忙碌一个月的参会数(指本人发起的会议+受邀参与的会议)

	BusyMonthLastMeetingTime *string `json:"busy_month_last_meeting_time,omitempty"` // 用户2023年最忙碌一个月的会议结束最晚的时间(格式 : 【20230507 23:59】)。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。

	BusyMonthCreateEditFileCnt *int `json:"busy_month_create_edit_file_cnt,omitempty"` // 用户2023年最忙碌一个月的创建+编辑评论文档

	ImSendMsgCnt2 []*AnnualReportMapInt `json:"im_send_msg_cnt_2,omitempty"` // 用户2022-2023发消息数，共2组键值对，表示2年各自的数据。举例:[{"year":"2022","count":"33”},{"year":"2023","count":"55"}]

	ImSendMsgCntRank *string `json:"im_send_msg_cnt_rank,omitempty"` // 用户2023年发出消息数,在租户内的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	ImBusyDate *string `json:"im_busy_date,omitempty"` // 用户2023年发消息最多的一天

	ImBusyDateSendMsgCnt *int `json:"im_busy_date_send_msg_cnt,omitempty"` // 用户2023年发消息最多的一天发消息条数

	ImLastSendMsgTime *string `json:"im_last_send_msg_time,omitempty"` // 用户2023年发出时间最晚的一条消息的时间,时间格式, 【20230507 23:59】。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。

	ImTalkedChatCnt *int `json:"im_talked_chat_cnt,omitempty"` // 用户2023年发过言的群数

	ImPrivateChatCnt *int `json:"im_private_chat_cnt,omitempty"` // 用户2023年私聊过的人数

	ImEmojiTop1 *string `json:"im_emoji_top1,omitempty"` // 用户2023年使用最多的表情1

	ImEmojiTop1Cnt *string `json:"im_emoji_top1_cnt,omitempty"` // 用户2023年使用最多的表情1次数

	ImEmojiTop2 *string `json:"im_emoji_top2,omitempty"` // 用户2023年使用最多的表情2

	ImEmojiTop2Cnt *string `json:"im_emoji_top2_cnt,omitempty"` // 用户2023年使用最多的表情2次数

	ImEmojiTop3 *string `json:"im_emoji_top3,omitempty"` // 用户2023年使用最多的表情3

	ImEmojiTop3Cnt *string `json:"im_emoji_top3_cnt,omitempty"` // 用户2023年使用最多的表情3次数

	ImPositiveReactionCnt2 []*AnnualReportMapInt `json:"im_positive_reaction_cnt_2,omitempty"` // 用户2022-2023收到正向reaction次数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	ImPositiveReactionCntRank *string `json:"im_positive_reaction_cnt_rank,omitempty"` // 2023年收到表情数量排名

	CcmCreateCnt2 []*AnnualReportMapInt `json:"ccm_create_cnt_2,omitempty"` // 用户2022-2023创建文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	CcmCreateCntRank *string `json:"ccm_create_cnt_rank,omitempty"` // 用户2023年创建文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	CcmCreateBusyMonth *string `json:"ccm_create_busy_month,omitempty"` // 用户2023年创建文档数最多的月份

	CcmCreateBusyMonthCnt *int `json:"ccm_create_busy_month_cnt,omitempty"` // 用户2023年创建文档数最多的月份的文档数

	CcmCreateViewedUcnt *int `json:"ccm_create_viewed_ucnt,omitempty"` // 用户本人创建的文档在2023年全年的浏览人数。注意:仅限制浏览时间是2023年,不限制文档的创建时间。

	CcmCreateLikedCnt *int `json:"ccm_create_liked_cnt,omitempty"` // 用户本人创建的文档在2023年收到的点赞数,仅指文档底部的大拇指点赞。注意:仅限制点赞时间是2023年,不限制文档的创建时间。

	CcmCreateLikedCntRank *string `json:"ccm_create_liked_cnt_rank,omitempty"` // 用户2023年由本人创建的文档的点赞数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	CcmEditCommentFcnt2 []*AnnualReportMapInt `json:"ccm_edit_comment_fcnt_2,omitempty"` // 用户2022-2023参与编辑、评论他人的文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	CcmEditCommentFcntRank *string `json:"ccm_edit_comment_fcnt_rank,omitempty"` // 用户2023年参与编辑、评论他人的文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	CcmViewOtherFcnt *int `json:"ccm_view_other_fcnt,omitempty"` // 用户2023年点击浏览过的他人文档数

	CcmViewOtherFcntRank *string `json:"ccm_view_other_fcnt_rank,omitempty"` // 用户2023年点击浏览过的他人文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	VcSentMeetingCnt2 []*AnnualReportMapInt `json:"vc_sent_meeting_cnt_2,omitempty"` // 用户2022-2023本人发起的线上视频会议的数量(循环会议算多次,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	VcSentMeetingCntRank *string `json:"vc_sent_meeting_cnt_rank,omitempty"` // 用户2023年本人发起的线上视频会议的数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	VcSentMeetingUcnt *int `json:"vc_sent_meeting_ucnt,omitempty"` // 用户2023年本人发起会议邀请参会的人次

	VcJoinMeetingCnt2 []*AnnualReportMapInt `json:"vc_join_meeting_cnt_2,omitempty"` // 用户2022-2023本人受邀参与的会议数(循环会议算多次),共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	VcJoinMeetingCntRank *string `json:"vc_join_meeting_cnt_rank,omitempty"` // 用户2023年本人受邀参与的会议数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	VcAllMeetingCnt *int `json:"vc_all_meeting_cnt,omitempty"` // 用户2023年本人的总参会次数(包含自己发起和被邀请)

	VcAllMeetingCntRank *string `json:"vc_all_meeting_cnt_rank,omitempty"` // 用户2023年本人的总参会次数(包含自己发起和被邀请)的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量

	VcAllMeetingDuration2 []*AnnualReportMapFloat `json:"vc_all_meeting_duration_2,omitempty"` // 用户2022-2023本人总参会的时长(包含自己发起和被邀请),格式0.01h,共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}

	CalCommentCalTime *string `json:"cal_comment_cal_time,omitempty"` // 用户2023年中最常开始日程的时间,精确到分钟,格式:【23:59】

	PeopleProfileViewCnt *string `json:"people_profile_view_cnt,omitempty"` // 2023年查看同事profile的人次

	PeopleInterviewNum2 []*AnnualReportMapInt `json:"people_interview_num_2,omitempty"` // 用户2022-2023面试了多少场,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	PeopleInterviewNumRank *string `json:"people_interview_num_rank,omitempty"` // people用户2023年面试总场次的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	PeopleInterviewOfferNum2 []*AnnualReportMapInt `json:"people_interview_offer_num_2,omitempty"` // 用户2022-2023本人面试之后,发出offer数量,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}

	PeopleInterviewOfferNumRank *string `json:"people_interview_offer_num_rank,omitempty"` // 2023年由本人面试之后,发出offer数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。

	EmailSendEmailCount *int `json:"email_send_email_count,omitempty"` // 用户2023年发邮件数

	EmailReceiveEmailCount *int `json:"email_receive_email_count,omitempty"` // 用户2023年收邮件数
}

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

	tenantAllCnt     int // 所在租户目前的总人数,已激活、未离职
	tenantAllCntFlag bool

	userRegisterDate     string // 用户的飞书激活日期,yyyyMMdd格式(201909之前的用户可能是空)
	userRegisterDateFlag bool

	allDayCnt     int // 用户激活至今的天数
	allDayCntFlag bool

	activeDayCnt     int // 用户2023年内活跃时长> 0的天数
	activeDayCntFlag bool

	durationCnt2     []*AnnualReportMapFloat // 用户2022-2023使用总时长(格式0.01h),共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}
	durationCnt2Flag bool

	durationCntRank     string // 2023年全年活跃时长的排名。
	durationCntRankFlag bool

	busyMonth     string // 用户2023年最忙碌一个月。最忙碌一个月的定义:所有自然月中,飞书在线时长最长的一个月。
	busyMonthFlag bool

	busyMonthSumDuration     float64 // 用户2023年最忙碌一个月的活跃时长(格式0.01h)
	busyMonthSumDurationFlag bool

	busyMonthSendMsgCnt     int // 用户2023年最忙碌一个月的发消息数
	busyMonthSendMsgCntFlag bool

	busyMonthMeetingCnt     int // 用户2023年最忙碌一个月的参会数(指本人发起的会议+受邀参与的会议)
	busyMonthMeetingCntFlag bool

	busyMonthLastMeetingTime     string // 用户2023年最忙碌一个月的会议结束最晚的时间(格式 : 【20230507 23:59】)。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。
	busyMonthLastMeetingTimeFlag bool

	busyMonthCreateEditFileCnt     int // 用户2023年最忙碌一个月的创建+编辑评论文档
	busyMonthCreateEditFileCntFlag bool

	imSendMsgCnt2     []*AnnualReportMapInt // 用户2022-2023发消息数，共2组键值对，表示2年各自的数据。举例:[{"year":"2022","count":"33”},{"year":"2023","count":"55"}]
	imSendMsgCnt2Flag bool

	imSendMsgCntRank     string // 用户2023年发出消息数,在租户内的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	imSendMsgCntRankFlag bool

	imBusyDate     string // 用户2023年发消息最多的一天
	imBusyDateFlag bool

	imBusyDateSendMsgCnt     int // 用户2023年发消息最多的一天发消息条数
	imBusyDateSendMsgCntFlag bool

	imLastSendMsgTime     string // 用户2023年发出时间最晚的一条消息的时间,时间格式, 【20230507 23:59】。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。
	imLastSendMsgTimeFlag bool

	imTalkedChatCnt     int // 用户2023年发过言的群数
	imTalkedChatCntFlag bool

	imPrivateChatCnt     int // 用户2023年私聊过的人数
	imPrivateChatCntFlag bool

	imEmojiTop1     string // 用户2023年使用最多的表情1
	imEmojiTop1Flag bool

	imEmojiTop1Cnt     string // 用户2023年使用最多的表情1次数
	imEmojiTop1CntFlag bool

	imEmojiTop2     string // 用户2023年使用最多的表情2
	imEmojiTop2Flag bool

	imEmojiTop2Cnt     string // 用户2023年使用最多的表情2次数
	imEmojiTop2CntFlag bool

	imEmojiTop3     string // 用户2023年使用最多的表情3
	imEmojiTop3Flag bool

	imEmojiTop3Cnt     string // 用户2023年使用最多的表情3次数
	imEmojiTop3CntFlag bool

	imPositiveReactionCnt2     []*AnnualReportMapInt // 用户2022-2023收到正向reaction次数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	imPositiveReactionCnt2Flag bool

	imPositiveReactionCntRank     string // 2023年收到表情数量排名
	imPositiveReactionCntRankFlag bool

	ccmCreateCnt2     []*AnnualReportMapInt // 用户2022-2023创建文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	ccmCreateCnt2Flag bool

	ccmCreateCntRank     string // 用户2023年创建文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	ccmCreateCntRankFlag bool

	ccmCreateBusyMonth     string // 用户2023年创建文档数最多的月份
	ccmCreateBusyMonthFlag bool

	ccmCreateBusyMonthCnt     int // 用户2023年创建文档数最多的月份的文档数
	ccmCreateBusyMonthCntFlag bool

	ccmCreateViewedUcnt     int // 用户本人创建的文档在2023年全年的浏览人数。注意:仅限制浏览时间是2023年,不限制文档的创建时间。
	ccmCreateViewedUcntFlag bool

	ccmCreateLikedCnt     int // 用户本人创建的文档在2023年收到的点赞数,仅指文档底部的大拇指点赞。注意:仅限制点赞时间是2023年,不限制文档的创建时间。
	ccmCreateLikedCntFlag bool

	ccmCreateLikedCntRank     string // 用户2023年由本人创建的文档的点赞数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	ccmCreateLikedCntRankFlag bool

	ccmEditCommentFcnt2     []*AnnualReportMapInt // 用户2022-2023参与编辑、评论他人的文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	ccmEditCommentFcnt2Flag bool

	ccmEditCommentFcntRank     string // 用户2023年参与编辑、评论他人的文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	ccmEditCommentFcntRankFlag bool

	ccmViewOtherFcnt     int // 用户2023年点击浏览过的他人文档数
	ccmViewOtherFcntFlag bool

	ccmViewOtherFcntRank     string // 用户2023年点击浏览过的他人文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	ccmViewOtherFcntRankFlag bool

	vcSentMeetingCnt2     []*AnnualReportMapInt // 用户2022-2023本人发起的线上视频会议的数量(循环会议算多次,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	vcSentMeetingCnt2Flag bool

	vcSentMeetingCntRank     string // 用户2023年本人发起的线上视频会议的数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	vcSentMeetingCntRankFlag bool

	vcSentMeetingUcnt     int // 用户2023年本人发起会议邀请参会的人次
	vcSentMeetingUcntFlag bool

	vcJoinMeetingCnt2     []*AnnualReportMapInt // 用户2022-2023本人受邀参与的会议数(循环会议算多次),共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	vcJoinMeetingCnt2Flag bool

	vcJoinMeetingCntRank     string // 用户2023年本人受邀参与的会议数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	vcJoinMeetingCntRankFlag bool

	vcAllMeetingCnt     int // 用户2023年本人的总参会次数(包含自己发起和被邀请)
	vcAllMeetingCntFlag bool

	vcAllMeetingCntRank     string // 用户2023年本人的总参会次数(包含自己发起和被邀请)的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量
	vcAllMeetingCntRankFlag bool

	vcAllMeetingDuration2     []*AnnualReportMapFloat // 用户2022-2023本人总参会的时长(包含自己发起和被邀请),格式0.01h,共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}
	vcAllMeetingDuration2Flag bool

	calCommentCalTime     string // 用户2023年中最常开始日程的时间,精确到分钟,格式:【23:59】
	calCommentCalTimeFlag bool

	peopleProfileViewCnt     string // 2023年查看同事profile的人次
	peopleProfileViewCntFlag bool

	peopleInterviewNum2     []*AnnualReportMapInt // 用户2022-2023面试了多少场,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	peopleInterviewNum2Flag bool

	peopleInterviewNumRank     string // people用户2023年面试总场次的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	peopleInterviewNumRankFlag bool

	peopleInterviewOfferNum2     []*AnnualReportMapInt // 用户2022-2023本人面试之后,发出offer数量,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
	peopleInterviewOfferNum2Flag bool

	peopleInterviewOfferNumRank     string // 2023年由本人面试之后,发出offer数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
	peopleInterviewOfferNumRankFlag bool

	emailSendEmailCount     int // 用户2023年发邮件数
	emailSendEmailCountFlag bool

	emailReceiveEmailCount     int // 用户2023年收邮件数
	emailReceiveEmailCountFlag bool
}

func NewUserReport2023Builder() *UserReport2023Builder {
	builder := &UserReport2023Builder{}
	return builder
}

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

// 所在租户目前的总人数,已激活、未离职
//
// 示例值：171434
func (builder *UserReport2023Builder) TenantAllCnt(tenantAllCnt int) *UserReport2023Builder {
	builder.tenantAllCnt = tenantAllCnt
	builder.tenantAllCntFlag = true
	return builder
}

// 用户的飞书激活日期,yyyyMMdd格式(201909之前的用户可能是空)
//
// 示例值：20200720
func (builder *UserReport2023Builder) UserRegisterDate(userRegisterDate string) *UserReport2023Builder {
	builder.userRegisterDate = userRegisterDate
	builder.userRegisterDateFlag = true
	return builder
}

// 用户激活至今的天数
//
// 示例值：1245
func (builder *UserReport2023Builder) AllDayCnt(allDayCnt int) *UserReport2023Builder {
	builder.allDayCnt = allDayCnt
	builder.allDayCntFlag = true
	return builder
}

// 用户2023年内活跃时长> 0的天数
//
// 示例值：365
func (builder *UserReport2023Builder) ActiveDayCnt(activeDayCnt int) *UserReport2023Builder {
	builder.activeDayCnt = activeDayCnt
	builder.activeDayCntFlag = true
	return builder
}

// 用户2022-2023使用总时长(格式0.01h),共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}
//
// 示例值：
func (builder *UserReport2023Builder) DurationCnt2(durationCnt2 []*AnnualReportMapFloat) *UserReport2023Builder {
	builder.durationCnt2 = durationCnt2
	builder.durationCnt2Flag = true
	return builder
}

// 2023年全年活跃时长的排名。
//
// 示例值：21338
func (builder *UserReport2023Builder) DurationCntRank(durationCntRank string) *UserReport2023Builder {
	builder.durationCntRank = durationCntRank
	builder.durationCntRankFlag = true
	return builder
}

// 用户2023年最忙碌一个月。最忙碌一个月的定义:所有自然月中,飞书在线时长最长的一个月。
//
// 示例值：7
func (builder *UserReport2023Builder) BusyMonth(busyMonth string) *UserReport2023Builder {
	builder.busyMonth = busyMonth
	builder.busyMonthFlag = true
	return builder
}

// 用户2023年最忙碌一个月的活跃时长(格式0.01h)
//
// 示例值：5702
func (builder *UserReport2023Builder) BusyMonthSumDuration(busyMonthSumDuration float64) *UserReport2023Builder {
	builder.busyMonthSumDuration = busyMonthSumDuration
	builder.busyMonthSumDurationFlag = true
	return builder
}

// 用户2023年最忙碌一个月的发消息数
//
// 示例值：78169
func (builder *UserReport2023Builder) BusyMonthSendMsgCnt(busyMonthSendMsgCnt int) *UserReport2023Builder {
	builder.busyMonthSendMsgCnt = busyMonthSendMsgCnt
	builder.busyMonthSendMsgCntFlag = true
	return builder
}

// 用户2023年最忙碌一个月的参会数(指本人发起的会议+受邀参与的会议)
//
// 示例值：5702
func (builder *UserReport2023Builder) BusyMonthMeetingCnt(busyMonthMeetingCnt int) *UserReport2023Builder {
	builder.busyMonthMeetingCnt = busyMonthMeetingCnt
	builder.busyMonthMeetingCntFlag = true
	return builder
}

// 用户2023年最忙碌一个月的会议结束最晚的时间(格式 : 【20230507 23:59】)。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。
//
// 示例值：2:25
func (builder *UserReport2023Builder) BusyMonthLastMeetingTime(busyMonthLastMeetingTime string) *UserReport2023Builder {
	builder.busyMonthLastMeetingTime = busyMonthLastMeetingTime
	builder.busyMonthLastMeetingTimeFlag = true
	return builder
}

// 用户2023年最忙碌一个月的创建+编辑评论文档
//
// 示例值：5702
func (builder *UserReport2023Builder) BusyMonthCreateEditFileCnt(busyMonthCreateEditFileCnt int) *UserReport2023Builder {
	builder.busyMonthCreateEditFileCnt = busyMonthCreateEditFileCnt
	builder.busyMonthCreateEditFileCntFlag = true
	return builder
}

// 用户2022-2023发消息数，共2组键值对，表示2年各自的数据。举例:[{"year":"2022","count":"33”},{"year":"2023","count":"55"}]
//
// 示例值：
func (builder *UserReport2023Builder) ImSendMsgCnt2(imSendMsgCnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.imSendMsgCnt2 = imSendMsgCnt2
	builder.imSendMsgCnt2Flag = true
	return builder
}

// 用户2023年发出消息数,在租户内的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) ImSendMsgCntRank(imSendMsgCntRank string) *UserReport2023Builder {
	builder.imSendMsgCntRank = imSendMsgCntRank
	builder.imSendMsgCntRankFlag = true
	return builder
}

// 用户2023年发消息最多的一天
//
// 示例值：20230916
func (builder *UserReport2023Builder) ImBusyDate(imBusyDate string) *UserReport2023Builder {
	builder.imBusyDate = imBusyDate
	builder.imBusyDateFlag = true
	return builder
}

// 用户2023年发消息最多的一天发消息条数
//
// 示例值：89
func (builder *UserReport2023Builder) ImBusyDateSendMsgCnt(imBusyDateSendMsgCnt int) *UserReport2023Builder {
	builder.imBusyDateSendMsgCnt = imBusyDateSendMsgCnt
	builder.imBusyDateSendMsgCntFlag = true
	return builder
}

// 用户2023年发出时间最晚的一条消息的时间,时间格式, 【20230507 23:59】。最晚时间的定义:将每天凌晨5点之前计入前一天来计算最晚时间点。
//
// 示例值：3:11
func (builder *UserReport2023Builder) ImLastSendMsgTime(imLastSendMsgTime string) *UserReport2023Builder {
	builder.imLastSendMsgTime = imLastSendMsgTime
	builder.imLastSendMsgTimeFlag = true
	return builder
}

// 用户2023年发过言的群数
//
// 示例值：21338
func (builder *UserReport2023Builder) ImTalkedChatCnt(imTalkedChatCnt int) *UserReport2023Builder {
	builder.imTalkedChatCnt = imTalkedChatCnt
	builder.imTalkedChatCntFlag = true
	return builder
}

// 用户2023年私聊过的人数
//
// 示例值：21338
func (builder *UserReport2023Builder) ImPrivateChatCnt(imPrivateChatCnt int) *UserReport2023Builder {
	builder.imPrivateChatCnt = imPrivateChatCnt
	builder.imPrivateChatCntFlag = true
	return builder
}

// 用户2023年使用最多的表情1
//
// 示例值：thumbsup
func (builder *UserReport2023Builder) ImEmojiTop1(imEmojiTop1 string) *UserReport2023Builder {
	builder.imEmojiTop1 = imEmojiTop1
	builder.imEmojiTop1Flag = true
	return builder
}

// 用户2023年使用最多的表情1次数
//
// 示例值：21338
func (builder *UserReport2023Builder) ImEmojiTop1Cnt(imEmojiTop1Cnt string) *UserReport2023Builder {
	builder.imEmojiTop1Cnt = imEmojiTop1Cnt
	builder.imEmojiTop1CntFlag = true
	return builder
}

// 用户2023年使用最多的表情2
//
// 示例值：jiayi
func (builder *UserReport2023Builder) ImEmojiTop2(imEmojiTop2 string) *UserReport2023Builder {
	builder.imEmojiTop2 = imEmojiTop2
	builder.imEmojiTop2Flag = true
	return builder
}

// 用户2023年使用最多的表情2次数
//
// 示例值：21338
func (builder *UserReport2023Builder) ImEmojiTop2Cnt(imEmojiTop2Cnt string) *UserReport2023Builder {
	builder.imEmojiTop2Cnt = imEmojiTop2Cnt
	builder.imEmojiTop2CntFlag = true
	return builder
}

// 用户2023年使用最多的表情3
//
// 示例值：love
func (builder *UserReport2023Builder) ImEmojiTop3(imEmojiTop3 string) *UserReport2023Builder {
	builder.imEmojiTop3 = imEmojiTop3
	builder.imEmojiTop3Flag = true
	return builder
}

// 用户2023年使用最多的表情3次数
//
// 示例值：21338
func (builder *UserReport2023Builder) ImEmojiTop3Cnt(imEmojiTop3Cnt string) *UserReport2023Builder {
	builder.imEmojiTop3Cnt = imEmojiTop3Cnt
	builder.imEmojiTop3CntFlag = true
	return builder
}

// 用户2022-2023收到正向reaction次数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) ImPositiveReactionCnt2(imPositiveReactionCnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.imPositiveReactionCnt2 = imPositiveReactionCnt2
	builder.imPositiveReactionCnt2Flag = true
	return builder
}

// 2023年收到表情数量排名
//
// 示例值：21338
func (builder *UserReport2023Builder) ImPositiveReactionCntRank(imPositiveReactionCntRank string) *UserReport2023Builder {
	builder.imPositiveReactionCntRank = imPositiveReactionCntRank
	builder.imPositiveReactionCntRankFlag = true
	return builder
}

// 用户2022-2023创建文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) CcmCreateCnt2(ccmCreateCnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.ccmCreateCnt2 = ccmCreateCnt2
	builder.ccmCreateCnt2Flag = true
	return builder
}

// 用户2023年创建文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) CcmCreateCntRank(ccmCreateCntRank string) *UserReport2023Builder {
	builder.ccmCreateCntRank = ccmCreateCntRank
	builder.ccmCreateCntRankFlag = true
	return builder
}

// 用户2023年创建文档数最多的月份
//
// 示例值：9
func (builder *UserReport2023Builder) CcmCreateBusyMonth(ccmCreateBusyMonth string) *UserReport2023Builder {
	builder.ccmCreateBusyMonth = ccmCreateBusyMonth
	builder.ccmCreateBusyMonthFlag = true
	return builder
}

// 用户2023年创建文档数最多的月份的文档数
//
// 示例值：5702
func (builder *UserReport2023Builder) CcmCreateBusyMonthCnt(ccmCreateBusyMonthCnt int) *UserReport2023Builder {
	builder.ccmCreateBusyMonthCnt = ccmCreateBusyMonthCnt
	builder.ccmCreateBusyMonthCntFlag = true
	return builder
}

// 用户本人创建的文档在2023年全年的浏览人数。注意:仅限制浏览时间是2023年,不限制文档的创建时间。
//
// 示例值：21338
func (builder *UserReport2023Builder) CcmCreateViewedUcnt(ccmCreateViewedUcnt int) *UserReport2023Builder {
	builder.ccmCreateViewedUcnt = ccmCreateViewedUcnt
	builder.ccmCreateViewedUcntFlag = true
	return builder
}

// 用户本人创建的文档在2023年收到的点赞数,仅指文档底部的大拇指点赞。注意:仅限制点赞时间是2023年,不限制文档的创建时间。
//
// 示例值：21338
func (builder *UserReport2023Builder) CcmCreateLikedCnt(ccmCreateLikedCnt int) *UserReport2023Builder {
	builder.ccmCreateLikedCnt = ccmCreateLikedCnt
	builder.ccmCreateLikedCntFlag = true
	return builder
}

// 用户2023年由本人创建的文档的点赞数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) CcmCreateLikedCntRank(ccmCreateLikedCntRank string) *UserReport2023Builder {
	builder.ccmCreateLikedCntRank = ccmCreateLikedCntRank
	builder.ccmCreateLikedCntRankFlag = true
	return builder
}

// 用户2022-2023参与编辑、评论他人的文档数,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) CcmEditCommentFcnt2(ccmEditCommentFcnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.ccmEditCommentFcnt2 = ccmEditCommentFcnt2
	builder.ccmEditCommentFcnt2Flag = true
	return builder
}

// 用户2023年参与编辑、评论他人的文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) CcmEditCommentFcntRank(ccmEditCommentFcntRank string) *UserReport2023Builder {
	builder.ccmEditCommentFcntRank = ccmEditCommentFcntRank
	builder.ccmEditCommentFcntRankFlag = true
	return builder
}

// 用户2023年点击浏览过的他人文档数
//
// 示例值：21338
func (builder *UserReport2023Builder) CcmViewOtherFcnt(ccmViewOtherFcnt int) *UserReport2023Builder {
	builder.ccmViewOtherFcnt = ccmViewOtherFcnt
	builder.ccmViewOtherFcntFlag = true
	return builder
}

// 用户2023年点击浏览过的他人文档数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) CcmViewOtherFcntRank(ccmViewOtherFcntRank string) *UserReport2023Builder {
	builder.ccmViewOtherFcntRank = ccmViewOtherFcntRank
	builder.ccmViewOtherFcntRankFlag = true
	return builder
}

// 用户2022-2023本人发起的线上视频会议的数量(循环会议算多次,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) VcSentMeetingCnt2(vcSentMeetingCnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.vcSentMeetingCnt2 = vcSentMeetingCnt2
	builder.vcSentMeetingCnt2Flag = true
	return builder
}

// 用户2023年本人发起的线上视频会议的数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) VcSentMeetingCntRank(vcSentMeetingCntRank string) *UserReport2023Builder {
	builder.vcSentMeetingCntRank = vcSentMeetingCntRank
	builder.vcSentMeetingCntRankFlag = true
	return builder
}

// 用户2023年本人发起会议邀请参会的人次
//
// 示例值：21338
func (builder *UserReport2023Builder) VcSentMeetingUcnt(vcSentMeetingUcnt int) *UserReport2023Builder {
	builder.vcSentMeetingUcnt = vcSentMeetingUcnt
	builder.vcSentMeetingUcntFlag = true
	return builder
}

// 用户2022-2023本人受邀参与的会议数(循环会议算多次),共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) VcJoinMeetingCnt2(vcJoinMeetingCnt2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.vcJoinMeetingCnt2 = vcJoinMeetingCnt2
	builder.vcJoinMeetingCnt2Flag = true
	return builder
}

// 用户2023年本人受邀参与的会议数排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) VcJoinMeetingCntRank(vcJoinMeetingCntRank string) *UserReport2023Builder {
	builder.vcJoinMeetingCntRank = vcJoinMeetingCntRank
	builder.vcJoinMeetingCntRankFlag = true
	return builder
}

// 用户2023年本人的总参会次数(包含自己发起和被邀请)
//
// 示例值：21338
func (builder *UserReport2023Builder) VcAllMeetingCnt(vcAllMeetingCnt int) *UserReport2023Builder {
	builder.vcAllMeetingCnt = vcAllMeetingCnt
	builder.vcAllMeetingCntFlag = true
	return builder
}

// 用户2023年本人的总参会次数(包含自己发起和被邀请)的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量
//
// 示例值：10
func (builder *UserReport2023Builder) VcAllMeetingCntRank(vcAllMeetingCntRank string) *UserReport2023Builder {
	builder.vcAllMeetingCntRank = vcAllMeetingCntRank
	builder.vcAllMeetingCntRankFlag = true
	return builder
}

// 用户2022-2023本人总参会的时长(包含自己发起和被邀请),格式0.01h,共2组键值对,表示2年各自的数据。举例:{"2022":"33.33","2023":"55.55"}
//
// 示例值：
func (builder *UserReport2023Builder) VcAllMeetingDuration2(vcAllMeetingDuration2 []*AnnualReportMapFloat) *UserReport2023Builder {
	builder.vcAllMeetingDuration2 = vcAllMeetingDuration2
	builder.vcAllMeetingDuration2Flag = true
	return builder
}

// 用户2023年中最常开始日程的时间,精确到分钟,格式:【23:59】
//
// 示例值：12:35
func (builder *UserReport2023Builder) CalCommentCalTime(calCommentCalTime string) *UserReport2023Builder {
	builder.calCommentCalTime = calCommentCalTime
	builder.calCommentCalTimeFlag = true
	return builder
}

// 2023年查看同事profile的人次
//
// 示例值：21338
func (builder *UserReport2023Builder) PeopleProfileViewCnt(peopleProfileViewCnt string) *UserReport2023Builder {
	builder.peopleProfileViewCnt = peopleProfileViewCnt
	builder.peopleProfileViewCntFlag = true
	return builder
}

// 用户2022-2023面试了多少场,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) PeopleInterviewNum2(peopleInterviewNum2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.peopleInterviewNum2 = peopleInterviewNum2
	builder.peopleInterviewNum2Flag = true
	return builder
}

// people用户2023年面试总场次的排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) PeopleInterviewNumRank(peopleInterviewNumRank string) *UserReport2023Builder {
	builder.peopleInterviewNumRank = peopleInterviewNumRank
	builder.peopleInterviewNumRankFlag = true
	return builder
}

// 用户2022-2023本人面试之后,发出offer数量,共2组键值对,表示2年各自的数据。举例:{"2022":"33","2023":"55"}
//
// 示例值：
func (builder *UserReport2023Builder) PeopleInterviewOfferNum2(peopleInterviewOfferNum2 []*AnnualReportMapInt) *UserReport2023Builder {
	builder.peopleInterviewOfferNum2 = peopleInterviewOfferNum2
	builder.peopleInterviewOfferNum2Flag = true
	return builder
}

// 2023年由本人面试之后,发出offer数量排名。排名的统一定义:在同一租户内,此指标大于本人的用户数量。
//
// 示例值：4852
func (builder *UserReport2023Builder) PeopleInterviewOfferNumRank(peopleInterviewOfferNumRank string) *UserReport2023Builder {
	builder.peopleInterviewOfferNumRank = peopleInterviewOfferNumRank
	builder.peopleInterviewOfferNumRankFlag = true
	return builder
}

// 用户2023年发邮件数
//
// 示例值：4852
func (builder *UserReport2023Builder) EmailSendEmailCount(emailSendEmailCount int) *UserReport2023Builder {
	builder.emailSendEmailCount = emailSendEmailCount
	builder.emailSendEmailCountFlag = true
	return builder
}

// 用户2023年收邮件数
//
// 示例值：7045
func (builder *UserReport2023Builder) EmailReceiveEmailCount(emailReceiveEmailCount int) *UserReport2023Builder {
	builder.emailReceiveEmailCount = emailReceiveEmailCount
	builder.emailReceiveEmailCountFlag = true
	return builder
}

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

	}
	if builder.tenantAllCntFlag {
		req.TenantAllCnt = &builder.tenantAllCnt

	}
	if builder.userRegisterDateFlag {
		req.UserRegisterDate = &builder.userRegisterDate

	}
	if builder.allDayCntFlag {
		req.AllDayCnt = &builder.allDayCnt

	}
	if builder.activeDayCntFlag {
		req.ActiveDayCnt = &builder.activeDayCnt

	}
	if builder.durationCnt2Flag {
		req.DurationCnt2 = builder.durationCnt2
	}
	if builder.durationCntRankFlag {
		req.DurationCntRank = &builder.durationCntRank

	}
	if builder.busyMonthFlag {
		req.BusyMonth = &builder.busyMonth

	}
	if builder.busyMonthSumDurationFlag {
		req.BusyMonthSumDuration = &builder.busyMonthSumDuration

	}
	if builder.busyMonthSendMsgCntFlag {
		req.BusyMonthSendMsgCnt = &builder.busyMonthSendMsgCnt

	}
	if builder.busyMonthMeetingCntFlag {
		req.BusyMonthMeetingCnt = &builder.busyMonthMeetingCnt

	}
	if builder.busyMonthLastMeetingTimeFlag {
		req.BusyMonthLastMeetingTime = &builder.busyMonthLastMeetingTime

	}
	if builder.busyMonthCreateEditFileCntFlag {
		req.BusyMonthCreateEditFileCnt = &builder.busyMonthCreateEditFileCnt

	}
	if builder.imSendMsgCnt2Flag {
		req.ImSendMsgCnt2 = builder.imSendMsgCnt2
	}
	if builder.imSendMsgCntRankFlag {
		req.ImSendMsgCntRank = &builder.imSendMsgCntRank

	}
	if builder.imBusyDateFlag {
		req.ImBusyDate = &builder.imBusyDate

	}
	if builder.imBusyDateSendMsgCntFlag {
		req.ImBusyDateSendMsgCnt = &builder.imBusyDateSendMsgCnt

	}
	if builder.imLastSendMsgTimeFlag {
		req.ImLastSendMsgTime = &builder.imLastSendMsgTime

	}
	if builder.imTalkedChatCntFlag {
		req.ImTalkedChatCnt = &builder.imTalkedChatCnt

	}
	if builder.imPrivateChatCntFlag {
		req.ImPrivateChatCnt = &builder.imPrivateChatCnt

	}
	if builder.imEmojiTop1Flag {
		req.ImEmojiTop1 = &builder.imEmojiTop1

	}
	if builder.imEmojiTop1CntFlag {
		req.ImEmojiTop1Cnt = &builder.imEmojiTop1Cnt

	}
	if builder.imEmojiTop2Flag {
		req.ImEmojiTop2 = &builder.imEmojiTop2

	}
	if builder.imEmojiTop2CntFlag {
		req.ImEmojiTop2Cnt = &builder.imEmojiTop2Cnt

	}
	if builder.imEmojiTop3Flag {
		req.ImEmojiTop3 = &builder.imEmojiTop3

	}
	if builder.imEmojiTop3CntFlag {
		req.ImEmojiTop3Cnt = &builder.imEmojiTop3Cnt

	}
	if builder.imPositiveReactionCnt2Flag {
		req.ImPositiveReactionCnt2 = builder.imPositiveReactionCnt2
	}
	if builder.imPositiveReactionCntRankFlag {
		req.ImPositiveReactionCntRank = &builder.imPositiveReactionCntRank

	}
	if builder.ccmCreateCnt2Flag {
		req.CcmCreateCnt2 = builder.ccmCreateCnt2
	}
	if builder.ccmCreateCntRankFlag {
		req.CcmCreateCntRank = &builder.ccmCreateCntRank

	}
	if builder.ccmCreateBusyMonthFlag {
		req.CcmCreateBusyMonth = &builder.ccmCreateBusyMonth

	}
	if builder.ccmCreateBusyMonthCntFlag {
		req.CcmCreateBusyMonthCnt = &builder.ccmCreateBusyMonthCnt

	}
	if builder.ccmCreateViewedUcntFlag {
		req.CcmCreateViewedUcnt = &builder.ccmCreateViewedUcnt

	}
	if builder.ccmCreateLikedCntFlag {
		req.CcmCreateLikedCnt = &builder.ccmCreateLikedCnt

	}
	if builder.ccmCreateLikedCntRankFlag {
		req.CcmCreateLikedCntRank = &builder.ccmCreateLikedCntRank

	}
	if builder.ccmEditCommentFcnt2Flag {
		req.CcmEditCommentFcnt2 = builder.ccmEditCommentFcnt2
	}
	if builder.ccmEditCommentFcntRankFlag {
		req.CcmEditCommentFcntRank = &builder.ccmEditCommentFcntRank

	}
	if builder.ccmViewOtherFcntFlag {
		req.CcmViewOtherFcnt = &builder.ccmViewOtherFcnt

	}
	if builder.ccmViewOtherFcntRankFlag {
		req.CcmViewOtherFcntRank = &builder.ccmViewOtherFcntRank

	}
	if builder.vcSentMeetingCnt2Flag {
		req.VcSentMeetingCnt2 = builder.vcSentMeetingCnt2
	}
	if builder.vcSentMeetingCntRankFlag {
		req.VcSentMeetingCntRank = &builder.vcSentMeetingCntRank

	}
	if builder.vcSentMeetingUcntFlag {
		req.VcSentMeetingUcnt = &builder.vcSentMeetingUcnt

	}
	if builder.vcJoinMeetingCnt2Flag {
		req.VcJoinMeetingCnt2 = builder.vcJoinMeetingCnt2
	}
	if builder.vcJoinMeetingCntRankFlag {
		req.VcJoinMeetingCntRank = &builder.vcJoinMeetingCntRank

	}
	if builder.vcAllMeetingCntFlag {
		req.VcAllMeetingCnt = &builder.vcAllMeetingCnt

	}
	if builder.vcAllMeetingCntRankFlag {
		req.VcAllMeetingCntRank = &builder.vcAllMeetingCntRank

	}
	if builder.vcAllMeetingDuration2Flag {
		req.VcAllMeetingDuration2 = builder.vcAllMeetingDuration2
	}
	if builder.calCommentCalTimeFlag {
		req.CalCommentCalTime = &builder.calCommentCalTime

	}
	if builder.peopleProfileViewCntFlag {
		req.PeopleProfileViewCnt = &builder.peopleProfileViewCnt

	}
	if builder.peopleInterviewNum2Flag {
		req.PeopleInterviewNum2 = builder.peopleInterviewNum2
	}
	if builder.peopleInterviewNumRankFlag {
		req.PeopleInterviewNumRank = &builder.peopleInterviewNumRank

	}
	if builder.peopleInterviewOfferNum2Flag {
		req.PeopleInterviewOfferNum2 = builder.peopleInterviewOfferNum2
	}
	if builder.peopleInterviewOfferNumRankFlag {
		req.PeopleInterviewOfferNumRank = &builder.peopleInterviewOfferNumRank

	}
	if builder.emailSendEmailCountFlag {
		req.EmailSendEmailCount = &builder.emailSendEmailCount

	}
	if builder.emailReceiveEmailCountFlag {
		req.EmailReceiveEmailCount = &builder.emailReceiveEmailCount

	}
	return req
}

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

	TenantAllCnt *string `json:"tenant_all_cnt,omitempty"` // 所在租户目前的总人数(已激活、未离职)

	UserRegisterDate *string `json:"user_register_date,omitempty"` // 用户的飞书激活日期(yyyyMMdd,201909之前的用户可能是空)

	FeishuDayCnt *string `json:"feishu_day_cnt,omitempty"` // 飞书使用天数(激活日期到现在的天数)。

	DurationCnt2 []*AnnualReportMapFloat `json:"duration_cnt_2,omitempty"` // 全年总活跃时长(格式0.01h,包含2023、2024各年统计数据)。

	ImSendMsgCnt2 []*AnnualReportMapInt `json:"im_send_msg_cnt_2,omitempty"` // 全年发出消息数(包含2023、2024各年统计数据)。

	AvgImSendMsgCnt2 []*AnnualReportMapFloat `json:"avg_im_send_msg_cnt_2,omitempty"` // 全年工作日日均发消息数(包含2023、2024各年统计数据)。

	ImTalkedChatCnt *string `json:"im_talked_chat_cnt,omitempty"` // 2024年内,发过言的群组数

	ImPrivateChatCnt *string `json:"im_private_chat_cnt,omitempty"` // 2024年内,私聊过的个人数(本人发过消息)。

	ImEmojiTop1 *string `json:"im_emoji_top1,omitempty"` // 2024年内,消息对话中使用次数最多的表情。

	ImEmojiTop1Cnt2 []*AnnualReportMapInt `json:"im_emoji_top1_cnt_2,omitempty"` // 使用次数第一多表情计数(包含2023、2024各年统计数据)。

	ImEmojiTop2 *string `json:"im_emoji_top2,omitempty"` // 2024年内,消息对话中使用次数第二多的表情。

	ImEmojiTop2Cnt2 []*AnnualReportMapInt `json:"im_emoji_top2_cnt_2,omitempty"` // 使用次数第二多表情计数(包含2023、2024各年统计数据)。

	ImEmojiTop3 *string `json:"im_emoji_top3,omitempty"` // 2024年内,消息对话中使用次数第三多的表情。

	ImEmojiTop3Cnt2 []*AnnualReportMapInt `json:"im_emoji_top3_cnt_2,omitempty"` // 使用次数第三多表情计数(包含2023、2024各年统计数据)。

	ImPositiveReactionCnt2 []*AnnualReportMapInt `json:"im_positive_reaction_cnt_2,omitempty"` // 全年在消息中收到他人点赞的数量(包含2023、2024各年统计数据)。

	ImPositiveReactionCntRank *string `json:"im_positive_reaction_cnt_rank,omitempty"` // 2024年内,收到点赞的数量,在租户内的排名。

	ImPositiveReactionCntDenominator *string `json:"im_positive_reaction_cnt_denominator,omitempty"` // 2024年内,收到点赞排名的分母(已激活未离职人员中,此指标大于0的人数)。

	BusyDay *string `json:"busy_day,omitempty"` // 2024年内,处理消息最多的一天(yyyyMMdd)。

	BusyDaySendMsgCnt *string `json:"busy_day_send_msg_cnt,omitempty"` // 2024年内,一天最多处理了多少条消息。

	CcmCreateCnt2 []*AnnualReportMapInt `json:"ccm_create_cnt_2,omitempty"` // 全年创建文档数(包含2023、2024各年统计数据)。

	CcmCreateViewedUcnt *string `json:"ccm_create_viewed_ucnt,omitempty"` // 2024年内,本人创建的文档被多少人浏览。

	CcmCreateLikedCnt *string `json:"ccm_create_liked_cnt,omitempty"` // 2024年内,本人创建的文档被点赞的合计次数。

	CcmCreateLikedMaxCnt *string `json:"ccm_create_liked_max_cnt,omitempty"` // 2024年内,本人创建的文档被点赞的次数最大值。

	VcJoinMeetingCnt *string `json:"vc_join_meeting_cnt,omitempty"` // 2024年内,本人参与过的视频会议数(包含本人、非本人发起)。

	VcAllMeetingDuration2 []*AnnualReportMapFloat `json:"vc_all_meeting_duration_2,omitempty"` // 本人参与会议的总时长(包含2023、2024各年统计数据)。

	VcJoinMeetingAllUserCnt *string `json:"vc_join_meeting_all_user_cnt,omitempty"` // 2024年内,本人参与会议的去重参会人数(不含本人)。

	VcLastMeetingTime *string `json:"vc_last_meeting_time,omitempty"` // 2024年内,最晚一次会议结束的时间(yyyyMMdd HH:mm,5点之前数据计入前一天)。

	BaseCreateFcnt2 []*AnnualReportMapInt `json:"base_create_fcnt_2,omitempty"` // 本人全年创建的多维表格数量(包含2023、2024各年统计数据)。

	BaseViewFcnt *string `json:"base_view_fcnt,omitempty"` // 2024年内,本人创建的多维表格被多少人访问过。

	BaseCreateDashboardCnt *string `json:"base_create_dashboard_cnt,omitempty"` // 2024年内,本人创建的仪表盘数量。

	BaseCreateDashboardRank *string `json:"base_create_dashboard_rank,omitempty"` // 2024年内,本人创建仪表盘数量,在租户内的排名。

	BaseCreateDashboardRankUcnt *string `json:"base_create_dashboard_rank_ucnt,omitempty"` // 2024年内,本人创建仪表盘数量,在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。

	BaseCreateChatCnt *string `json:"base_create_chat_cnt,omitempty"` // 2024年内,本人创建的仪表盘内的图表总数量。

	BaseWorkflowInsCnt *string `json:"base_workflow_ins_cnt,omitempty"` // 2024年内,本人创建的多维表格自动化流程总运行次数。

	BaseWorkflowInsRank *string `json:"base_workflow_ins_rank,omitempty"` // 2024年内,本人创建的多维表格自动化流程,总运行次数在租户内的排名。

	BaseWorkflowInsRankUcnt *string `json:"base_workflow_ins_rank_ucnt,omitempty"` // 2024年内,自动化流程运行次数排名的分母(已激活未离职人员中,此指标大于0的人数)。

	VcAllReadNotesCnt *string `json:"vc_all_read_notes_cnt,omitempty"` // 2024年内,本人阅读智能会议纪要的篇数。

	MeegoRoleWiCntV2 []*AnnualReportMapInt `json:"meego_role_wi_cnt_v2,omitempty"` // 本人全年参与过的项目数量(包含2023、2024各年统计数据)。

	MeegoCommonWiUcnt *string `json:"meego_common_wi_ucnt,omitempty"` // 2024年内,本人参与过的项目的合作人数

	MeegoWorkflowWiCnt *string `json:"meego_workflow_wi_cnt,omitempty"` // 2024年内,本人流转过的节点/状态对应的实例数。

	PeopleInterviewNum2 []*AnnualReportMapInt `json:"people_interview_num_2,omitempty"` // 本人全年面试场次(包含2023、2024各年统计数据)。

	PeopleInterviewNumRank *string `json:"people_interview_num_rank,omitempty"` // 2024年内,本人面试场次在租户内的排名。

	PeopleInterviewNumRankUcnt *string `json:"people_interview_num_rank_ucnt,omitempty"` // 2024年内,本人面试场次在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。

	PeopleInterviewOfferNum2 []*AnnualReportMapInt `json:"people_interview_offer_num_2,omitempty"` // 本人面试之后成功发出offer的数量(包含2023、2024各年统计数据)。
}

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

	tenantAllCnt     string // 所在租户目前的总人数(已激活、未离职)
	tenantAllCntFlag bool

	userRegisterDate     string // 用户的飞书激活日期(yyyyMMdd,201909之前的用户可能是空)
	userRegisterDateFlag bool

	feishuDayCnt     string // 飞书使用天数(激活日期到现在的天数)。
	feishuDayCntFlag bool

	durationCnt2     []*AnnualReportMapFloat // 全年总活跃时长(格式0.01h,包含2023、2024各年统计数据)。
	durationCnt2Flag bool

	imSendMsgCnt2     []*AnnualReportMapInt // 全年发出消息数(包含2023、2024各年统计数据)。
	imSendMsgCnt2Flag bool

	avgImSendMsgCnt2     []*AnnualReportMapFloat // 全年工作日日均发消息数(包含2023、2024各年统计数据)。
	avgImSendMsgCnt2Flag bool

	imTalkedChatCnt     string // 2024年内,发过言的群组数
	imTalkedChatCntFlag bool

	imPrivateChatCnt     string // 2024年内,私聊过的个人数(本人发过消息)。
	imPrivateChatCntFlag bool

	imEmojiTop1     string // 2024年内,消息对话中使用次数最多的表情。
	imEmojiTop1Flag bool

	imEmojiTop1Cnt2     []*AnnualReportMapInt // 使用次数第一多表情计数(包含2023、2024各年统计数据)。
	imEmojiTop1Cnt2Flag bool

	imEmojiTop2     string // 2024年内,消息对话中使用次数第二多的表情。
	imEmojiTop2Flag bool

	imEmojiTop2Cnt2     []*AnnualReportMapInt // 使用次数第二多表情计数(包含2023、2024各年统计数据)。
	imEmojiTop2Cnt2Flag bool

	imEmojiTop3     string // 2024年内,消息对话中使用次数第三多的表情。
	imEmojiTop3Flag bool

	imEmojiTop3Cnt2     []*AnnualReportMapInt // 使用次数第三多表情计数(包含2023、2024各年统计数据)。
	imEmojiTop3Cnt2Flag bool

	imPositiveReactionCnt2     []*AnnualReportMapInt // 全年在消息中收到他人点赞的数量(包含2023、2024各年统计数据)。
	imPositiveReactionCnt2Flag bool

	imPositiveReactionCntRank     string // 2024年内,收到点赞的数量,在租户内的排名。
	imPositiveReactionCntRankFlag bool

	imPositiveReactionCntDenominator     string // 2024年内,收到点赞排名的分母(已激活未离职人员中,此指标大于0的人数)。
	imPositiveReactionCntDenominatorFlag bool

	busyDay     string // 2024年内,处理消息最多的一天(yyyyMMdd)。
	busyDayFlag bool

	busyDaySendMsgCnt     string // 2024年内,一天最多处理了多少条消息。
	busyDaySendMsgCntFlag bool

	ccmCreateCnt2     []*AnnualReportMapInt // 全年创建文档数(包含2023、2024各年统计数据)。
	ccmCreateCnt2Flag bool

	ccmCreateViewedUcnt     string // 2024年内,本人创建的文档被多少人浏览。
	ccmCreateViewedUcntFlag bool

	ccmCreateLikedCnt     string // 2024年内,本人创建的文档被点赞的合计次数。
	ccmCreateLikedCntFlag bool

	ccmCreateLikedMaxCnt     string // 2024年内,本人创建的文档被点赞的次数最大值。
	ccmCreateLikedMaxCntFlag bool

	vcJoinMeetingCnt     string // 2024年内,本人参与过的视频会议数(包含本人、非本人发起)。
	vcJoinMeetingCntFlag bool

	vcAllMeetingDuration2     []*AnnualReportMapFloat // 本人参与会议的总时长(包含2023、2024各年统计数据)。
	vcAllMeetingDuration2Flag bool

	vcJoinMeetingAllUserCnt     string // 2024年内,本人参与会议的去重参会人数(不含本人)。
	vcJoinMeetingAllUserCntFlag bool

	vcLastMeetingTime     string // 2024年内,最晚一次会议结束的时间(yyyyMMdd HH:mm,5点之前数据计入前一天)。
	vcLastMeetingTimeFlag bool

	baseCreateFcnt2     []*AnnualReportMapInt // 本人全年创建的多维表格数量(包含2023、2024各年统计数据)。
	baseCreateFcnt2Flag bool

	baseViewFcnt     string // 2024年内,本人创建的多维表格被多少人访问过。
	baseViewFcntFlag bool

	baseCreateDashboardCnt     string // 2024年内,本人创建的仪表盘数量。
	baseCreateDashboardCntFlag bool

	baseCreateDashboardRank     string // 2024年内,本人创建仪表盘数量,在租户内的排名。
	baseCreateDashboardRankFlag bool

	baseCreateDashboardRankUcnt     string // 2024年内,本人创建仪表盘数量,在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。
	baseCreateDashboardRankUcntFlag bool

	baseCreateChatCnt     string // 2024年内,本人创建的仪表盘内的图表总数量。
	baseCreateChatCntFlag bool

	baseWorkflowInsCnt     string // 2024年内,本人创建的多维表格自动化流程总运行次数。
	baseWorkflowInsCntFlag bool

	baseWorkflowInsRank     string // 2024年内,本人创建的多维表格自动化流程,总运行次数在租户内的排名。
	baseWorkflowInsRankFlag bool

	baseWorkflowInsRankUcnt     string // 2024年内,自动化流程运行次数排名的分母(已激活未离职人员中,此指标大于0的人数)。
	baseWorkflowInsRankUcntFlag bool

	vcAllReadNotesCnt     string // 2024年内,本人阅读智能会议纪要的篇数。
	vcAllReadNotesCntFlag bool

	meegoRoleWiCntV2     []*AnnualReportMapInt // 本人全年参与过的项目数量(包含2023、2024各年统计数据)。
	meegoRoleWiCntV2Flag bool

	meegoCommonWiUcnt     string // 2024年内,本人参与过的项目的合作人数
	meegoCommonWiUcntFlag bool

	meegoWorkflowWiCnt     string // 2024年内,本人流转过的节点/状态对应的实例数。
	meegoWorkflowWiCntFlag bool

	peopleInterviewNum2     []*AnnualReportMapInt // 本人全年面试场次(包含2023、2024各年统计数据)。
	peopleInterviewNum2Flag bool

	peopleInterviewNumRank     string // 2024年内,本人面试场次在租户内的排名。
	peopleInterviewNumRankFlag bool

	peopleInterviewNumRankUcnt     string // 2024年内,本人面试场次在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。
	peopleInterviewNumRankUcntFlag bool

	peopleInterviewOfferNum2     []*AnnualReportMapInt // 本人面试之后成功发出offer的数量(包含2023、2024各年统计数据)。
	peopleInterviewOfferNum2Flag bool
}

func NewUserReport2024Builder() *UserReport2024Builder {
	builder := &UserReport2024Builder{}
	return builder
}

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

// 所在租户目前的总人数(已激活、未离职)
//
// 示例值：6888
func (builder *UserReport2024Builder) TenantAllCnt(tenantAllCnt string) *UserReport2024Builder {
	builder.tenantAllCnt = tenantAllCnt
	builder.tenantAllCntFlag = true
	return builder
}

// 用户的飞书激活日期(yyyyMMdd,201909之前的用户可能是空)
//
// 示例值：20180808
func (builder *UserReport2024Builder) UserRegisterDate(userRegisterDate string) *UserReport2024Builder {
	builder.userRegisterDate = userRegisterDate
	builder.userRegisterDateFlag = true
	return builder
}

// 飞书使用天数(激活日期到现在的天数)。
//
// 示例值：8889
func (builder *UserReport2024Builder) FeishuDayCnt(feishuDayCnt string) *UserReport2024Builder {
	builder.feishuDayCnt = feishuDayCnt
	builder.feishuDayCntFlag = true
	return builder
}

// 全年总活跃时长(格式0.01h,包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66.66},{"year":"2024","num":88.88}]
func (builder *UserReport2024Builder) DurationCnt2(durationCnt2 []*AnnualReportMapFloat) *UserReport2024Builder {
	builder.durationCnt2 = durationCnt2
	builder.durationCnt2Flag = true
	return builder
}

// 全年发出消息数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) ImSendMsgCnt2(imSendMsgCnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.imSendMsgCnt2 = imSendMsgCnt2
	builder.imSendMsgCnt2Flag = true
	return builder
}

// 全年工作日日均发消息数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66.66},{"year":"2024","num":88.88}]
func (builder *UserReport2024Builder) AvgImSendMsgCnt2(avgImSendMsgCnt2 []*AnnualReportMapFloat) *UserReport2024Builder {
	builder.avgImSendMsgCnt2 = avgImSendMsgCnt2
	builder.avgImSendMsgCnt2Flag = true
	return builder
}

// 2024年内,发过言的群组数
//
// 示例值：168
func (builder *UserReport2024Builder) ImTalkedChatCnt(imTalkedChatCnt string) *UserReport2024Builder {
	builder.imTalkedChatCnt = imTalkedChatCnt
	builder.imTalkedChatCntFlag = true
	return builder
}

// 2024年内,私聊过的个人数(本人发过消息)。
//
// 示例值：168
func (builder *UserReport2024Builder) ImPrivateChatCnt(imPrivateChatCnt string) *UserReport2024Builder {
	builder.imPrivateChatCnt = imPrivateChatCnt
	builder.imPrivateChatCntFlag = true
	return builder
}

// 2024年内,消息对话中使用次数最多的表情。
//
// 示例值：thumbsup
func (builder *UserReport2024Builder) ImEmojiTop1(imEmojiTop1 string) *UserReport2024Builder {
	builder.imEmojiTop1 = imEmojiTop1
	builder.imEmojiTop1Flag = true
	return builder
}

// 使用次数第一多表情计数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) ImEmojiTop1Cnt2(imEmojiTop1Cnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.imEmojiTop1Cnt2 = imEmojiTop1Cnt2
	builder.imEmojiTop1Cnt2Flag = true
	return builder
}

// 2024年内,消息对话中使用次数第二多的表情。
//
// 示例值：jiayi
func (builder *UserReport2024Builder) ImEmojiTop2(imEmojiTop2 string) *UserReport2024Builder {
	builder.imEmojiTop2 = imEmojiTop2
	builder.imEmojiTop2Flag = true
	return builder
}

// 使用次数第二多表情计数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) ImEmojiTop2Cnt2(imEmojiTop2Cnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.imEmojiTop2Cnt2 = imEmojiTop2Cnt2
	builder.imEmojiTop2Cnt2Flag = true
	return builder
}

// 2024年内,消息对话中使用次数第三多的表情。
//
// 示例值：love
func (builder *UserReport2024Builder) ImEmojiTop3(imEmojiTop3 string) *UserReport2024Builder {
	builder.imEmojiTop3 = imEmojiTop3
	builder.imEmojiTop3Flag = true
	return builder
}

// 使用次数第三多表情计数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) ImEmojiTop3Cnt2(imEmojiTop3Cnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.imEmojiTop3Cnt2 = imEmojiTop3Cnt2
	builder.imEmojiTop3Cnt2Flag = true
	return builder
}

// 全年在消息中收到他人点赞的数量(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) ImPositiveReactionCnt2(imPositiveReactionCnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.imPositiveReactionCnt2 = imPositiveReactionCnt2
	builder.imPositiveReactionCnt2Flag = true
	return builder
}

// 2024年内,收到点赞的数量,在租户内的排名。
//
// 示例值：168
func (builder *UserReport2024Builder) ImPositiveReactionCntRank(imPositiveReactionCntRank string) *UserReport2024Builder {
	builder.imPositiveReactionCntRank = imPositiveReactionCntRank
	builder.imPositiveReactionCntRankFlag = true
	return builder
}

// 2024年内,收到点赞排名的分母(已激活未离职人员中,此指标大于0的人数)。
//
// 示例值：168
func (builder *UserReport2024Builder) ImPositiveReactionCntDenominator(imPositiveReactionCntDenominator string) *UserReport2024Builder {
	builder.imPositiveReactionCntDenominator = imPositiveReactionCntDenominator
	builder.imPositiveReactionCntDenominatorFlag = true
	return builder
}

// 2024年内,处理消息最多的一天(yyyyMMdd)。
//
// 示例值：20240808
func (builder *UserReport2024Builder) BusyDay(busyDay string) *UserReport2024Builder {
	builder.busyDay = busyDay
	builder.busyDayFlag = true
	return builder
}

// 2024年内,一天最多处理了多少条消息。
//
// 示例值：888
func (builder *UserReport2024Builder) BusyDaySendMsgCnt(busyDaySendMsgCnt string) *UserReport2024Builder {
	builder.busyDaySendMsgCnt = busyDaySendMsgCnt
	builder.busyDaySendMsgCntFlag = true
	return builder
}

// 全年创建文档数(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) CcmCreateCnt2(ccmCreateCnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.ccmCreateCnt2 = ccmCreateCnt2
	builder.ccmCreateCnt2Flag = true
	return builder
}

// 2024年内,本人创建的文档被多少人浏览。
//
// 示例值：88
func (builder *UserReport2024Builder) CcmCreateViewedUcnt(ccmCreateViewedUcnt string) *UserReport2024Builder {
	builder.ccmCreateViewedUcnt = ccmCreateViewedUcnt
	builder.ccmCreateViewedUcntFlag = true
	return builder
}

// 2024年内,本人创建的文档被点赞的合计次数。
//
// 示例值：88
func (builder *UserReport2024Builder) CcmCreateLikedCnt(ccmCreateLikedCnt string) *UserReport2024Builder {
	builder.ccmCreateLikedCnt = ccmCreateLikedCnt
	builder.ccmCreateLikedCntFlag = true
	return builder
}

// 2024年内,本人创建的文档被点赞的次数最大值。
//
// 示例值：88
func (builder *UserReport2024Builder) CcmCreateLikedMaxCnt(ccmCreateLikedMaxCnt string) *UserReport2024Builder {
	builder.ccmCreateLikedMaxCnt = ccmCreateLikedMaxCnt
	builder.ccmCreateLikedMaxCntFlag = true
	return builder
}

// 2024年内,本人参与过的视频会议数(包含本人、非本人发起)。
//
// 示例值：88
func (builder *UserReport2024Builder) VcJoinMeetingCnt(vcJoinMeetingCnt string) *UserReport2024Builder {
	builder.vcJoinMeetingCnt = vcJoinMeetingCnt
	builder.vcJoinMeetingCntFlag = true
	return builder
}

// 本人参与会议的总时长(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66.66},{"year":"2024","num":88.88}]
func (builder *UserReport2024Builder) VcAllMeetingDuration2(vcAllMeetingDuration2 []*AnnualReportMapFloat) *UserReport2024Builder {
	builder.vcAllMeetingDuration2 = vcAllMeetingDuration2
	builder.vcAllMeetingDuration2Flag = true
	return builder
}

// 2024年内,本人参与会议的去重参会人数(不含本人)。
//
// 示例值：88
func (builder *UserReport2024Builder) VcJoinMeetingAllUserCnt(vcJoinMeetingAllUserCnt string) *UserReport2024Builder {
	builder.vcJoinMeetingAllUserCnt = vcJoinMeetingAllUserCnt
	builder.vcJoinMeetingAllUserCntFlag = true
	return builder
}

// 2024年内,最晚一次会议结束的时间(yyyyMMdd HH:mm,5点之前数据计入前一天)。
//
// 示例值：20240808 23:00
func (builder *UserReport2024Builder) VcLastMeetingTime(vcLastMeetingTime string) *UserReport2024Builder {
	builder.vcLastMeetingTime = vcLastMeetingTime
	builder.vcLastMeetingTimeFlag = true
	return builder
}

// 本人全年创建的多维表格数量(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) BaseCreateFcnt2(baseCreateFcnt2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.baseCreateFcnt2 = baseCreateFcnt2
	builder.baseCreateFcnt2Flag = true
	return builder
}

// 2024年内,本人创建的多维表格被多少人访问过。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseViewFcnt(baseViewFcnt string) *UserReport2024Builder {
	builder.baseViewFcnt = baseViewFcnt
	builder.baseViewFcntFlag = true
	return builder
}

// 2024年内,本人创建的仪表盘数量。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseCreateDashboardCnt(baseCreateDashboardCnt string) *UserReport2024Builder {
	builder.baseCreateDashboardCnt = baseCreateDashboardCnt
	builder.baseCreateDashboardCntFlag = true
	return builder
}

// 2024年内,本人创建仪表盘数量,在租户内的排名。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseCreateDashboardRank(baseCreateDashboardRank string) *UserReport2024Builder {
	builder.baseCreateDashboardRank = baseCreateDashboardRank
	builder.baseCreateDashboardRankFlag = true
	return builder
}

// 2024年内,本人创建仪表盘数量,在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseCreateDashboardRankUcnt(baseCreateDashboardRankUcnt string) *UserReport2024Builder {
	builder.baseCreateDashboardRankUcnt = baseCreateDashboardRankUcnt
	builder.baseCreateDashboardRankUcntFlag = true
	return builder
}

// 2024年内,本人创建的仪表盘内的图表总数量。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseCreateChatCnt(baseCreateChatCnt string) *UserReport2024Builder {
	builder.baseCreateChatCnt = baseCreateChatCnt
	builder.baseCreateChatCntFlag = true
	return builder
}

// 2024年内,本人创建的多维表格自动化流程总运行次数。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseWorkflowInsCnt(baseWorkflowInsCnt string) *UserReport2024Builder {
	builder.baseWorkflowInsCnt = baseWorkflowInsCnt
	builder.baseWorkflowInsCntFlag = true
	return builder
}

// 2024年内,本人创建的多维表格自动化流程,总运行次数在租户内的排名。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseWorkflowInsRank(baseWorkflowInsRank string) *UserReport2024Builder {
	builder.baseWorkflowInsRank = baseWorkflowInsRank
	builder.baseWorkflowInsRankFlag = true
	return builder
}

// 2024年内,自动化流程运行次数排名的分母(已激活未离职人员中,此指标大于0的人数)。
//
// 示例值：88
func (builder *UserReport2024Builder) BaseWorkflowInsRankUcnt(baseWorkflowInsRankUcnt string) *UserReport2024Builder {
	builder.baseWorkflowInsRankUcnt = baseWorkflowInsRankUcnt
	builder.baseWorkflowInsRankUcntFlag = true
	return builder
}

// 2024年内,本人阅读智能会议纪要的篇数。
//
// 示例值：188
func (builder *UserReport2024Builder) VcAllReadNotesCnt(vcAllReadNotesCnt string) *UserReport2024Builder {
	builder.vcAllReadNotesCnt = vcAllReadNotesCnt
	builder.vcAllReadNotesCntFlag = true
	return builder
}

// 本人全年参与过的项目数量(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) MeegoRoleWiCntV2(meegoRoleWiCntV2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.meegoRoleWiCntV2 = meegoRoleWiCntV2
	builder.meegoRoleWiCntV2Flag = true
	return builder
}

// 2024年内,本人参与过的项目的合作人数
//
// 示例值：88
func (builder *UserReport2024Builder) MeegoCommonWiUcnt(meegoCommonWiUcnt string) *UserReport2024Builder {
	builder.meegoCommonWiUcnt = meegoCommonWiUcnt
	builder.meegoCommonWiUcntFlag = true
	return builder
}

// 2024年内,本人流转过的节点/状态对应的实例数。
//
// 示例值：288
func (builder *UserReport2024Builder) MeegoWorkflowWiCnt(meegoWorkflowWiCnt string) *UserReport2024Builder {
	builder.meegoWorkflowWiCnt = meegoWorkflowWiCnt
	builder.meegoWorkflowWiCntFlag = true
	return builder
}

// 本人全年面试场次(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) PeopleInterviewNum2(peopleInterviewNum2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.peopleInterviewNum2 = peopleInterviewNum2
	builder.peopleInterviewNum2Flag = true
	return builder
}

// 2024年内,本人面试场次在租户内的排名。
//
// 示例值：88
func (builder *UserReport2024Builder) PeopleInterviewNumRank(peopleInterviewNumRank string) *UserReport2024Builder {
	builder.peopleInterviewNumRank = peopleInterviewNumRank
	builder.peopleInterviewNumRankFlag = true
	return builder
}

// 2024年内,本人面试场次在租户内排名的分母(已激活未离职人员中,此指标大于0的人数)。
//
// 示例值：88
func (builder *UserReport2024Builder) PeopleInterviewNumRankUcnt(peopleInterviewNumRankUcnt string) *UserReport2024Builder {
	builder.peopleInterviewNumRankUcnt = peopleInterviewNumRankUcnt
	builder.peopleInterviewNumRankUcntFlag = true
	return builder
}

// 本人面试之后成功发出offer的数量(包含2023、2024各年统计数据)。
//
// 示例值：[{"year":"2023","num",66},{"year":"2024","num":88}]
func (builder *UserReport2024Builder) PeopleInterviewOfferNum2(peopleInterviewOfferNum2 []*AnnualReportMapInt) *UserReport2024Builder {
	builder.peopleInterviewOfferNum2 = peopleInterviewOfferNum2
	builder.peopleInterviewOfferNum2Flag = true
	return builder
}

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

	}
	if builder.tenantAllCntFlag {
		req.TenantAllCnt = &builder.tenantAllCnt

	}
	if builder.userRegisterDateFlag {
		req.UserRegisterDate = &builder.userRegisterDate

	}
	if builder.feishuDayCntFlag {
		req.FeishuDayCnt = &builder.feishuDayCnt

	}
	if builder.durationCnt2Flag {
		req.DurationCnt2 = builder.durationCnt2
	}
	if builder.imSendMsgCnt2Flag {
		req.ImSendMsgCnt2 = builder.imSendMsgCnt2
	}
	if builder.avgImSendMsgCnt2Flag {
		req.AvgImSendMsgCnt2 = builder.avgImSendMsgCnt2
	}
	if builder.imTalkedChatCntFlag {
		req.ImTalkedChatCnt = &builder.imTalkedChatCnt

	}
	if builder.imPrivateChatCntFlag {
		req.ImPrivateChatCnt = &builder.imPrivateChatCnt

	}
	if builder.imEmojiTop1Flag {
		req.ImEmojiTop1 = &builder.imEmojiTop1

	}
	if builder.imEmojiTop1Cnt2Flag {
		req.ImEmojiTop1Cnt2 = builder.imEmojiTop1Cnt2
	}
	if builder.imEmojiTop2Flag {
		req.ImEmojiTop2 = &builder.imEmojiTop2

	}
	if builder.imEmojiTop2Cnt2Flag {
		req.ImEmojiTop2Cnt2 = builder.imEmojiTop2Cnt2
	}
	if builder.imEmojiTop3Flag {
		req.ImEmojiTop3 = &builder.imEmojiTop3

	}
	if builder.imEmojiTop3Cnt2Flag {
		req.ImEmojiTop3Cnt2 = builder.imEmojiTop3Cnt2
	}
	if builder.imPositiveReactionCnt2Flag {
		req.ImPositiveReactionCnt2 = builder.imPositiveReactionCnt2
	}
	if builder.imPositiveReactionCntRankFlag {
		req.ImPositiveReactionCntRank = &builder.imPositiveReactionCntRank

	}
	if builder.imPositiveReactionCntDenominatorFlag {
		req.ImPositiveReactionCntDenominator = &builder.imPositiveReactionCntDenominator

	}
	if builder.busyDayFlag {
		req.BusyDay = &builder.busyDay

	}
	if builder.busyDaySendMsgCntFlag {
		req.BusyDaySendMsgCnt = &builder.busyDaySendMsgCnt

	}
	if builder.ccmCreateCnt2Flag {
		req.CcmCreateCnt2 = builder.ccmCreateCnt2
	}
	if builder.ccmCreateViewedUcntFlag {
		req.CcmCreateViewedUcnt = &builder.ccmCreateViewedUcnt

	}
	if builder.ccmCreateLikedCntFlag {
		req.CcmCreateLikedCnt = &builder.ccmCreateLikedCnt

	}
	if builder.ccmCreateLikedMaxCntFlag {
		req.CcmCreateLikedMaxCnt = &builder.ccmCreateLikedMaxCnt

	}
	if builder.vcJoinMeetingCntFlag {
		req.VcJoinMeetingCnt = &builder.vcJoinMeetingCnt

	}
	if builder.vcAllMeetingDuration2Flag {
		req.VcAllMeetingDuration2 = builder.vcAllMeetingDuration2
	}
	if builder.vcJoinMeetingAllUserCntFlag {
		req.VcJoinMeetingAllUserCnt = &builder.vcJoinMeetingAllUserCnt

	}
	if builder.vcLastMeetingTimeFlag {
		req.VcLastMeetingTime = &builder.vcLastMeetingTime

	}
	if builder.baseCreateFcnt2Flag {
		req.BaseCreateFcnt2 = builder.baseCreateFcnt2
	}
	if builder.baseViewFcntFlag {
		req.BaseViewFcnt = &builder.baseViewFcnt

	}
	if builder.baseCreateDashboardCntFlag {
		req.BaseCreateDashboardCnt = &builder.baseCreateDashboardCnt

	}
	if builder.baseCreateDashboardRankFlag {
		req.BaseCreateDashboardRank = &builder.baseCreateDashboardRank

	}
	if builder.baseCreateDashboardRankUcntFlag {
		req.BaseCreateDashboardRankUcnt = &builder.baseCreateDashboardRankUcnt

	}
	if builder.baseCreateChatCntFlag {
		req.BaseCreateChatCnt = &builder.baseCreateChatCnt

	}
	if builder.baseWorkflowInsCntFlag {
		req.BaseWorkflowInsCnt = &builder.baseWorkflowInsCnt

	}
	if builder.baseWorkflowInsRankFlag {
		req.BaseWorkflowInsRank = &builder.baseWorkflowInsRank

	}
	if builder.baseWorkflowInsRankUcntFlag {
		req.BaseWorkflowInsRankUcnt = &builder.baseWorkflowInsRankUcnt

	}
	if builder.vcAllReadNotesCntFlag {
		req.VcAllReadNotesCnt = &builder.vcAllReadNotesCnt

	}
	if builder.meegoRoleWiCntV2Flag {
		req.MeegoRoleWiCntV2 = builder.meegoRoleWiCntV2
	}
	if builder.meegoCommonWiUcntFlag {
		req.MeegoCommonWiUcnt = &builder.meegoCommonWiUcnt

	}
	if builder.meegoWorkflowWiCntFlag {
		req.MeegoWorkflowWiCnt = &builder.meegoWorkflowWiCnt

	}
	if builder.peopleInterviewNum2Flag {
		req.PeopleInterviewNum2 = builder.peopleInterviewNum2
	}
	if builder.peopleInterviewNumRankFlag {
		req.PeopleInterviewNumRank = &builder.peopleInterviewNumRank

	}
	if builder.peopleInterviewNumRankUcntFlag {
		req.PeopleInterviewNumRankUcnt = &builder.peopleInterviewNumRankUcnt

	}
	if builder.peopleInterviewOfferNum2Flag {
		req.PeopleInterviewOfferNum2 = builder.peopleInterviewOfferNum2
	}
	return req
}

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

	TenantAllCnt *string `json:"tenant_all_cnt,omitempty"` // 租户当前飞书激活未离职账号总数

	UserRegisterDate *string `json:"user_register_date,omitempty"` // 用户飞书账号激活日期(yyyyMMdd)

	FeishuActiveDays *string `json:"feishu_active_days,omitempty"` // 用户2025年有飞书活跃的天数

	FeishuDurationBusyMonth *string `json:"feishu_duration_busy_month,omitempty"` // 用户2025年飞书在线时长最长的那个月（字符串，取值'01'~'12'）

	FeishuDurationBusyMonthHours *float64 `json:"feishu_duration_busy_month_hours,omitempty"` // 用户2025年上述在线时长最长的那个月的在线时长（小时，保留2位小数）

	BusyMonthSendMsgCnt *string `json:"busy_month_send_msg_cnt,omitempty"` // 用户2025年上述在线时长最长的那个月，用户发消息数

	BusyMonthEditDocCnt *string `json:"busy_month_edit_doc_cnt,omitempty"` // 用户2025年上述在线时长最长的那个月，用户编辑文档数量

	BusyMonthReadDocCnt *string `json:"busy_month_read_doc_cnt,omitempty"` // 用户2025年上述在线时长最长的那个月，用户阅读文档数

	BusyMonthJoinMeetingCnt *string `json:"busy_month_join_meeting_cnt,omitempty"` // 用户2025年上述在线时长最长的那个月，用户参会数量

	BusyMonthMeetingDuration *float64 `json:"busy_month_meeting_duration,omitempty"` // 用户2025年上述在线时长最长的那个月，用户参会时长（小时,保留2位小数）

	ImTalkedChatCnt *string `json:"im_talked_chat_cnt,omitempty"` // 用户2025年发过消息的飞书群聊数量（包含已解散群；不包含仅发过表情的群）

	ImPrivateChatCnt *string `json:"im_private_chat_cnt,omitempty"` // 用户2025年发消息私聊过的单聊对象数量（去重，不考虑对方是否本租户人员；不考虑对方是否已离职；不含跟自己聊、不含跟bot聊）

	ImSendMsgCnt *string `json:"im_send_msg_cnt,omitempty"` // 用户2025年在上述群聊、单聊两种场景下，发出的消息总数

	ImEmojiTop1 *string `json:"im_emoji_top1,omitempty"` // 用户2025年使用最多的表情（排除自定义）

	ImEmojiTop1Cnt *string `json:"im_emoji_top1_cnt,omitempty"` // 用户2025年使用最多表情使用总次数（排除自定义）

	ImEmojiTop2 *string `json:"im_emoji_top2,omitempty"` // 用户2025年使用第二多的表情（排除自定义）

	ImEmojiTop2Cnt *string `json:"im_emoji_top2_cnt,omitempty"` // 用户2025年使用第二多表情使用总次数（排除自定义）

	ImEmojiTop3 *string `json:"im_emoji_top3,omitempty"` // 用户2025年使用最第三多的表情（排除自定义）

	ImEmojiTop3Cnt *string `json:"im_emoji_top3_cnt,omitempty"` // 用户2025年使用第三多表情使用总次数（排除自定义）

	CcmCreateFcnt *string `json:"ccm_create_fcnt,omitempty"` // 用户2025年创建的云文档数量（仅算docx/doc；未删除的文档；排除群公告；独立文档）

	CcmCreateRank *string `json:"ccm_create_rank,omitempty"` // 用户2025年创建云文档数在租户内的排名

	CcmCreateRankUcnt *string `json:"ccm_create_rank_ucnt,omitempty"` // 租户2025年创建云文档数量 > 0 的总人数（去重，仅算docx\doc；未删除的文档；排除群公告；独立文档）

	CcmCreateViewedUcnt *string `json:"ccm_create_viewed_ucnt,omitempty"` // 用户2025年创建的文档被浏览的人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）

	CcmCreateLikedCnt *string `json:"ccm_create_liked_cnt,omitempty"` // 用户2025年创建的文档被点赞次数（仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）

	CcmCreateViewedMostUcnt *string `json:"ccm_create_viewed_most_ucnt,omitempty"` // 用户2025年创建的文档，在本年度内浏览人数最多的那篇的浏览人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间，未删除的文档）

	CcmAllReadDocCnt *string `json:"ccm_all_read_doc_cnt,omitempty"` // 用户2025年阅读的文档总数(仅算doc/docx)

	DocsAiQuickviewUseCnt *string `json:"docs_ai_quickview_use_cnt,omitempty"` // 用户2025年使用文档AI速览的文档篇数(仅算doc/docx)

	VcJoinMeetingCnt *string `json:"vc_join_meeting_cnt,omitempty"` // 用户2025年参与会议总数（包含用户发起、非用户发起）

	VcJoinMeetingDuration *float64 `json:"vc_join_meeting_duration,omitempty"` // 用户2025年的参会总时长（小时，保留2位小数）

	VcOrgMeetingCnt []*AnnualVcOrgCnt `json:"vc_org_meeting_cnt,omitempty"` // 用户2025年全年组织的会议数量

	AiNotesCreateCnt *string `json:"ai_notes_create_cnt,omitempty"` // 用户2025作为纪要owner生成的智能纪要数量

	AiNotesReadCnt *string `json:"ai_notes_read_cnt,omitempty"` // 用户2025阅读智能纪要的篇数（去重）

	KnowledgeAiUseCnt *string `json:"knowledge_ai_use_cnt,omitempty"` // 用户2025使用知识问答的次数

	KnowledgeAiUseBusyDay *string `json:"knowledge_ai_use_busy_day,omitempty"` // 用户2025使用知识问答次数最多的那一天（有并列多天时，取后一个日期，yyyyMMdd）

	KnowledgeAiUseBusyDayCnt *string `json:"knowledge_ai_use_busy_day_cnt,omitempty"` // 用户2025使用知识问答次数最多的那一天的使用次数

	BaseCreateFcnt *string `json:"base_create_fcnt,omitempty"` // 用户2025创建的多维表格数量

	BaseAiTop1NameMap []*AnnualBaseTopAi `json:"base_ai_top1_name_map,omitempty"` // 用户2025年多维表文档使用最多的AI功能名称（中英文，列表里为top5）

	BaseCreateViewUcnt *string `json:"base_create_view_ucnt,omitempty"` // 用户所创建的多维表格2025年内一共有多少人消费过（去重，仅文档阅读，不计算表单等外部形态）

	BaseMostRowsCnt *string `json:"base_most_rows_cnt,omitempty"` // 用户2025年创建的多维表格中单表行数最大的那篇的行数

	BaseCreateDashboardCnt *string `json:"base_create_dashboard_cnt,omitempty"` // 用户2025年在多维表格中创建的仪表盘数量

	BaseWorkflowCreateCnt *string `json:"base_workflow_create_cnt,omitempty"` // 用户2025年创建的多维表格自动化流程数量

	BaseWorkflowInsCnt *string `json:"base_workflow_ins_cnt,omitempty"` // 用户创建的多维表格自动化流程在2025年内总运行次数（不限制流程创建时间）

	AilyDevelopAppCnt *string `json:"aily_develop_app_cnt,omitempty"` // 用户2025年有进入开发后台界面的Aily工作流应用数量（当前有管理员/开发者身份，且未删除、已发布（不限应用的实际创建时间））

	AilyDevelopAppActiveUcnt *string `json:"aily_develop_app_active_ucnt,omitempty"` // 用户已发布的Aily工作流应用，在2025年的活跃人数（去重，当前有管理员/开发者身份，且未删除）

	AilyDevelopActiveMostAppIntents *string `json:"aily_develop_active_most_app_intents,omitempty"` // 用户参与搭建的Aily应用（未删除，已发布），在2025年对话次数最多的那个应用的对话次数

	AilyChatCnt *string `json:"aily_chat_cnt,omitempty"` // 用户2025年以用户身份与Aily应用、Aily智能体、工作助手的对话总次数

	AilyArtifactCreateCnt *string `json:"aily_artifact_create_cnt,omitempty"` // 用户2025年与Aily智能体对话中生产的交付产物数量（报告、网页、文档等）

	ApaasDevelopAppCnt *string `json:"apaas_develop_app_cnt,omitempty"` // 用户当前有管理员/开发者身份，且未删除，且已发布（不限应用的实际创建时间）的aPaaS应用，在2025年有进入开发后台界面的应用数量

	ApaasDevelopAppActiveUcnt *string `json:"apaas_develop_app_active_ucnt,omitempty"` // 用户当前已发布，有管理员/开发者身份，且未删除的aPaaS应用，在2025年的的活跃人数（去重）

	ApaasDevelopActiveMostAppUcnt *string `json:"apaas_develop_active_most_app_ucnt,omitempty"` // 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的活跃人数最大的那个应用的访问人数（去重）

	ApaasDevelopAiRunCnt *string `json:"apaas_develop_ai_run_cnt,omitempty"` // 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的AI能力运行次数

	MeegoIsProjectAdmin *string `json:"meego_is_project_admin,omitempty"` // 用户2025年是否任意meego空间的管理员

	MeegoCreateWiCnt *string `json:"meego_create_wi_cnt,omitempty"` // 用户2025年在meego中新建实例数

	MeegoCreateWiRoleUcnt *string `json:"meego_create_wi_role_ucnt,omitempty"` // 用户2025年在meego中，新建实例的参与人员总数(去重)

	MeegoMostViewWiUcnt *string `json:"meego_most_view_wi_ucnt,omitempty"` // 用户2025年在meego中，新建实例且被浏览次数最多的实例的浏览用户数(去重)

	MeegoSetAiFieldCnt *string `json:"meego_set_ai_field_cnt,omitempty"` // 用户2025年为meego空间管理员的meego中配置AI字段的数量

	MeegoAiFieldRunCnt *string `json:"meego_ai_field_run_cnt,omitempty"` // 用户2025年为meego空间管理员的meego中配置AI字段的执行次数

	MeegoAiGanttUseCnt *string `json:"meego_ai_gantt_use_cnt,omitempty"` // 用户2025年在meego中对 AI人力分析的使用次数

	MeegoAiWeeklyReportUseCnt *string `json:"meego_ai_weekly_report_use_cnt,omitempty"` // 用户2025年在meego中对 AI个人周报的使用次数
}

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

	tenantAllCnt     string // 租户当前飞书激活未离职账号总数
	tenantAllCntFlag bool

	userRegisterDate     string // 用户飞书账号激活日期(yyyyMMdd)
	userRegisterDateFlag bool

	feishuActiveDays     string // 用户2025年有飞书活跃的天数
	feishuActiveDaysFlag bool

	feishuDurationBusyMonth     string // 用户2025年飞书在线时长最长的那个月（字符串，取值'01'~'12'）
	feishuDurationBusyMonthFlag bool

	feishuDurationBusyMonthHours     float64 // 用户2025年上述在线时长最长的那个月的在线时长（小时，保留2位小数）
	feishuDurationBusyMonthHoursFlag bool

	busyMonthSendMsgCnt     string // 用户2025年上述在线时长最长的那个月，用户发消息数
	busyMonthSendMsgCntFlag bool

	busyMonthEditDocCnt     string // 用户2025年上述在线时长最长的那个月，用户编辑文档数量
	busyMonthEditDocCntFlag bool

	busyMonthReadDocCnt     string // 用户2025年上述在线时长最长的那个月，用户阅读文档数
	busyMonthReadDocCntFlag bool

	busyMonthJoinMeetingCnt     string // 用户2025年上述在线时长最长的那个月，用户参会数量
	busyMonthJoinMeetingCntFlag bool

	busyMonthMeetingDuration     float64 // 用户2025年上述在线时长最长的那个月，用户参会时长（小时,保留2位小数）
	busyMonthMeetingDurationFlag bool

	imTalkedChatCnt     string // 用户2025年发过消息的飞书群聊数量（包含已解散群；不包含仅发过表情的群）
	imTalkedChatCntFlag bool

	imPrivateChatCnt     string // 用户2025年发消息私聊过的单聊对象数量（去重，不考虑对方是否本租户人员；不考虑对方是否已离职；不含跟自己聊、不含跟bot聊）
	imPrivateChatCntFlag bool

	imSendMsgCnt     string // 用户2025年在上述群聊、单聊两种场景下，发出的消息总数
	imSendMsgCntFlag bool

	imEmojiTop1     string // 用户2025年使用最多的表情（排除自定义）
	imEmojiTop1Flag bool

	imEmojiTop1Cnt     string // 用户2025年使用最多表情使用总次数（排除自定义）
	imEmojiTop1CntFlag bool

	imEmojiTop2     string // 用户2025年使用第二多的表情（排除自定义）
	imEmojiTop2Flag bool

	imEmojiTop2Cnt     string // 用户2025年使用第二多表情使用总次数（排除自定义）
	imEmojiTop2CntFlag bool

	imEmojiTop3     string // 用户2025年使用最第三多的表情（排除自定义）
	imEmojiTop3Flag bool

	imEmojiTop3Cnt     string // 用户2025年使用第三多表情使用总次数（排除自定义）
	imEmojiTop3CntFlag bool

	ccmCreateFcnt     string // 用户2025年创建的云文档数量（仅算docx/doc；未删除的文档；排除群公告；独立文档）
	ccmCreateFcntFlag bool

	ccmCreateRank     string // 用户2025年创建云文档数在租户内的排名
	ccmCreateRankFlag bool

	ccmCreateRankUcnt     string // 租户2025年创建云文档数量 > 0 的总人数（去重，仅算docx\doc；未删除的文档；排除群公告；独立文档）
	ccmCreateRankUcntFlag bool

	ccmCreateViewedUcnt     string // 用户2025年创建的文档被浏览的人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）
	ccmCreateViewedUcntFlag bool

	ccmCreateLikedCnt     string // 用户2025年创建的文档被点赞次数（仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）
	ccmCreateLikedCntFlag bool

	ccmCreateViewedMostUcnt     string // 用户2025年创建的文档，在本年度内浏览人数最多的那篇的浏览人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间，未删除的文档）
	ccmCreateViewedMostUcntFlag bool

	ccmAllReadDocCnt     string // 用户2025年阅读的文档总数(仅算doc/docx)
	ccmAllReadDocCntFlag bool

	docsAiQuickviewUseCnt     string // 用户2025年使用文档AI速览的文档篇数(仅算doc/docx)
	docsAiQuickviewUseCntFlag bool

	vcJoinMeetingCnt     string // 用户2025年参与会议总数（包含用户发起、非用户发起）
	vcJoinMeetingCntFlag bool

	vcJoinMeetingDuration     float64 // 用户2025年的参会总时长（小时，保留2位小数）
	vcJoinMeetingDurationFlag bool

	vcOrgMeetingCnt     []*AnnualVcOrgCnt // 用户2025年全年组织的会议数量
	vcOrgMeetingCntFlag bool

	aiNotesCreateCnt     string // 用户2025作为纪要owner生成的智能纪要数量
	aiNotesCreateCntFlag bool

	aiNotesReadCnt     string // 用户2025阅读智能纪要的篇数（去重）
	aiNotesReadCntFlag bool

	knowledgeAiUseCnt     string // 用户2025使用知识问答的次数
	knowledgeAiUseCntFlag bool

	knowledgeAiUseBusyDay     string // 用户2025使用知识问答次数最多的那一天（有并列多天时，取后一个日期，yyyyMMdd）
	knowledgeAiUseBusyDayFlag bool

	knowledgeAiUseBusyDayCnt     string // 用户2025使用知识问答次数最多的那一天的使用次数
	knowledgeAiUseBusyDayCntFlag bool

	baseCreateFcnt     string // 用户2025创建的多维表格数量
	baseCreateFcntFlag bool

	baseAiTop1NameMap     []*AnnualBaseTopAi // 用户2025年多维表文档使用最多的AI功能名称（中英文，列表里为top5）
	baseAiTop1NameMapFlag bool

	baseCreateViewUcnt     string // 用户所创建的多维表格2025年内一共有多少人消费过（去重，仅文档阅读，不计算表单等外部形态）
	baseCreateViewUcntFlag bool

	baseMostRowsCnt     string // 用户2025年创建的多维表格中单表行数最大的那篇的行数
	baseMostRowsCntFlag bool

	baseCreateDashboardCnt     string // 用户2025年在多维表格中创建的仪表盘数量
	baseCreateDashboardCntFlag bool

	baseWorkflowCreateCnt     string // 用户2025年创建的多维表格自动化流程数量
	baseWorkflowCreateCntFlag bool

	baseWorkflowInsCnt     string // 用户创建的多维表格自动化流程在2025年内总运行次数（不限制流程创建时间）
	baseWorkflowInsCntFlag bool

	ailyDevelopAppCnt     string // 用户2025年有进入开发后台界面的Aily工作流应用数量（当前有管理员/开发者身份，且未删除、已发布（不限应用的实际创建时间））
	ailyDevelopAppCntFlag bool

	ailyDevelopAppActiveUcnt     string // 用户已发布的Aily工作流应用，在2025年的活跃人数（去重，当前有管理员/开发者身份，且未删除）
	ailyDevelopAppActiveUcntFlag bool

	ailyDevelopActiveMostAppIntents     string // 用户参与搭建的Aily应用（未删除，已发布），在2025年对话次数最多的那个应用的对话次数
	ailyDevelopActiveMostAppIntentsFlag bool

	ailyChatCnt     string // 用户2025年以用户身份与Aily应用、Aily智能体、工作助手的对话总次数
	ailyChatCntFlag bool

	ailyArtifactCreateCnt     string // 用户2025年与Aily智能体对话中生产的交付产物数量（报告、网页、文档等）
	ailyArtifactCreateCntFlag bool

	apaasDevelopAppCnt     string // 用户当前有管理员/开发者身份，且未删除，且已发布（不限应用的实际创建时间）的aPaaS应用，在2025年有进入开发后台界面的应用数量
	apaasDevelopAppCntFlag bool

	apaasDevelopAppActiveUcnt     string // 用户当前已发布，有管理员/开发者身份，且未删除的aPaaS应用，在2025年的的活跃人数（去重）
	apaasDevelopAppActiveUcntFlag bool

	apaasDevelopActiveMostAppUcnt     string // 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的活跃人数最大的那个应用的访问人数（去重）
	apaasDevelopActiveMostAppUcntFlag bool

	apaasDevelopAiRunCnt     string // 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的AI能力运行次数
	apaasDevelopAiRunCntFlag bool

	meegoIsProjectAdmin     string // 用户2025年是否任意meego空间的管理员
	meegoIsProjectAdminFlag bool

	meegoCreateWiCnt     string // 用户2025年在meego中新建实例数
	meegoCreateWiCntFlag bool

	meegoCreateWiRoleUcnt     string // 用户2025年在meego中，新建实例的参与人员总数(去重)
	meegoCreateWiRoleUcntFlag bool

	meegoMostViewWiUcnt     string // 用户2025年在meego中，新建实例且被浏览次数最多的实例的浏览用户数(去重)
	meegoMostViewWiUcntFlag bool

	meegoSetAiFieldCnt     string // 用户2025年为meego空间管理员的meego中配置AI字段的数量
	meegoSetAiFieldCntFlag bool

	meegoAiFieldRunCnt     string // 用户2025年为meego空间管理员的meego中配置AI字段的执行次数
	meegoAiFieldRunCntFlag bool

	meegoAiGanttUseCnt     string // 用户2025年在meego中对 AI人力分析的使用次数
	meegoAiGanttUseCntFlag bool

	meegoAiWeeklyReportUseCnt     string // 用户2025年在meego中对 AI个人周报的使用次数
	meegoAiWeeklyReportUseCntFlag bool
}

func NewUserReport2025Builder() *UserReport2025Builder {
	builder := &UserReport2025Builder{}
	return builder
}

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

// 租户当前飞书激活未离职账号总数
//
// 示例值：8888
func (builder *UserReport2025Builder) TenantAllCnt(tenantAllCnt string) *UserReport2025Builder {
	builder.tenantAllCnt = tenantAllCnt
	builder.tenantAllCntFlag = true
	return builder
}

// 用户飞书账号激活日期(yyyyMMdd)
//
// 示例值：20210110
func (builder *UserReport2025Builder) UserRegisterDate(userRegisterDate string) *UserReport2025Builder {
	builder.userRegisterDate = userRegisterDate
	builder.userRegisterDateFlag = true
	return builder
}

// 用户2025年有飞书活跃的天数
//
// 示例值：188
func (builder *UserReport2025Builder) FeishuActiveDays(feishuActiveDays string) *UserReport2025Builder {
	builder.feishuActiveDays = feishuActiveDays
	builder.feishuActiveDaysFlag = true
	return builder
}

// 用户2025年飞书在线时长最长的那个月（字符串，取值'01'~'12'）
//
// 示例值：12
func (builder *UserReport2025Builder) FeishuDurationBusyMonth(feishuDurationBusyMonth string) *UserReport2025Builder {
	builder.feishuDurationBusyMonth = feishuDurationBusyMonth
	builder.feishuDurationBusyMonthFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月的在线时长（小时，保留2位小数）
//
// 示例值：6.88
func (builder *UserReport2025Builder) FeishuDurationBusyMonthHours(feishuDurationBusyMonthHours float64) *UserReport2025Builder {
	builder.feishuDurationBusyMonthHours = feishuDurationBusyMonthHours
	builder.feishuDurationBusyMonthHoursFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月，用户发消息数
//
// 示例值：88888
func (builder *UserReport2025Builder) BusyMonthSendMsgCnt(busyMonthSendMsgCnt string) *UserReport2025Builder {
	builder.busyMonthSendMsgCnt = busyMonthSendMsgCnt
	builder.busyMonthSendMsgCntFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月，用户编辑文档数量
//
// 示例值：88
func (builder *UserReport2025Builder) BusyMonthEditDocCnt(busyMonthEditDocCnt string) *UserReport2025Builder {
	builder.busyMonthEditDocCnt = busyMonthEditDocCnt
	builder.busyMonthEditDocCntFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月，用户阅读文档数
//
// 示例值：88
func (builder *UserReport2025Builder) BusyMonthReadDocCnt(busyMonthReadDocCnt string) *UserReport2025Builder {
	builder.busyMonthReadDocCnt = busyMonthReadDocCnt
	builder.busyMonthReadDocCntFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月，用户参会数量
//
// 示例值：88
func (builder *UserReport2025Builder) BusyMonthJoinMeetingCnt(busyMonthJoinMeetingCnt string) *UserReport2025Builder {
	builder.busyMonthJoinMeetingCnt = busyMonthJoinMeetingCnt
	builder.busyMonthJoinMeetingCntFlag = true
	return builder
}

// 用户2025年上述在线时长最长的那个月，用户参会时长（小时,保留2位小数）
//
// 示例值：88.88
func (builder *UserReport2025Builder) BusyMonthMeetingDuration(busyMonthMeetingDuration float64) *UserReport2025Builder {
	builder.busyMonthMeetingDuration = busyMonthMeetingDuration
	builder.busyMonthMeetingDurationFlag = true
	return builder
}

// 用户2025年发过消息的飞书群聊数量（包含已解散群；不包含仅发过表情的群）
//
// 示例值：88
func (builder *UserReport2025Builder) ImTalkedChatCnt(imTalkedChatCnt string) *UserReport2025Builder {
	builder.imTalkedChatCnt = imTalkedChatCnt
	builder.imTalkedChatCntFlag = true
	return builder
}

// 用户2025年发消息私聊过的单聊对象数量（去重，不考虑对方是否本租户人员；不考虑对方是否已离职；不含跟自己聊、不含跟bot聊）
//
// 示例值：88
func (builder *UserReport2025Builder) ImPrivateChatCnt(imPrivateChatCnt string) *UserReport2025Builder {
	builder.imPrivateChatCnt = imPrivateChatCnt
	builder.imPrivateChatCntFlag = true
	return builder
}

// 用户2025年在上述群聊、单聊两种场景下，发出的消息总数
//
// 示例值：88
func (builder *UserReport2025Builder) ImSendMsgCnt(imSendMsgCnt string) *UserReport2025Builder {
	builder.imSendMsgCnt = imSendMsgCnt
	builder.imSendMsgCntFlag = true
	return builder
}

// 用户2025年使用最多的表情（排除自定义）
//
// 示例值：love
func (builder *UserReport2025Builder) ImEmojiTop1(imEmojiTop1 string) *UserReport2025Builder {
	builder.imEmojiTop1 = imEmojiTop1
	builder.imEmojiTop1Flag = true
	return builder
}

// 用户2025年使用最多表情使用总次数（排除自定义）
//
// 示例值：888
func (builder *UserReport2025Builder) ImEmojiTop1Cnt(imEmojiTop1Cnt string) *UserReport2025Builder {
	builder.imEmojiTop1Cnt = imEmojiTop1Cnt
	builder.imEmojiTop1CntFlag = true
	return builder
}

// 用户2025年使用第二多的表情（排除自定义）
//
// 示例值：jiayi
func (builder *UserReport2025Builder) ImEmojiTop2(imEmojiTop2 string) *UserReport2025Builder {
	builder.imEmojiTop2 = imEmojiTop2
	builder.imEmojiTop2Flag = true
	return builder
}

// 用户2025年使用第二多表情使用总次数（排除自定义）
//
// 示例值：666
func (builder *UserReport2025Builder) ImEmojiTop2Cnt(imEmojiTop2Cnt string) *UserReport2025Builder {
	builder.imEmojiTop2Cnt = imEmojiTop2Cnt
	builder.imEmojiTop2CntFlag = true
	return builder
}

// 用户2025年使用最第三多的表情（排除自定义）
//
// 示例值：lightthumbsup
func (builder *UserReport2025Builder) ImEmojiTop3(imEmojiTop3 string) *UserReport2025Builder {
	builder.imEmojiTop3 = imEmojiTop3
	builder.imEmojiTop3Flag = true
	return builder
}

// 用户2025年使用第三多表情使用总次数（排除自定义）
//
// 示例值：555
func (builder *UserReport2025Builder) ImEmojiTop3Cnt(imEmojiTop3Cnt string) *UserReport2025Builder {
	builder.imEmojiTop3Cnt = imEmojiTop3Cnt
	builder.imEmojiTop3CntFlag = true
	return builder
}

// 用户2025年创建的云文档数量（仅算docx/doc；未删除的文档；排除群公告；独立文档）
//
// 示例值：888
func (builder *UserReport2025Builder) CcmCreateFcnt(ccmCreateFcnt string) *UserReport2025Builder {
	builder.ccmCreateFcnt = ccmCreateFcnt
	builder.ccmCreateFcntFlag = true
	return builder
}

// 用户2025年创建云文档数在租户内的排名
//
// 示例值：8
func (builder *UserReport2025Builder) CcmCreateRank(ccmCreateRank string) *UserReport2025Builder {
	builder.ccmCreateRank = ccmCreateRank
	builder.ccmCreateRankFlag = true
	return builder
}

// 租户2025年创建云文档数量 > 0 的总人数（去重，仅算docx\doc；未删除的文档；排除群公告；独立文档）
//
// 示例值：888
func (builder *UserReport2025Builder) CcmCreateRankUcnt(ccmCreateRankUcnt string) *UserReport2025Builder {
	builder.ccmCreateRankUcnt = ccmCreateRankUcnt
	builder.ccmCreateRankUcntFlag = true
	return builder
}

// 用户2025年创建的文档被浏览的人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）
//
// 示例值：888
func (builder *UserReport2025Builder) CcmCreateViewedUcnt(ccmCreateViewedUcnt string) *UserReport2025Builder {
	builder.ccmCreateViewedUcnt = ccmCreateViewedUcnt
	builder.ccmCreateViewedUcntFlag = true
	return builder
}

// 用户2025年创建的文档被点赞次数（仅算docx/doc；排除群公告；独立文档；不限文档创建时间；不限访客是否已离职）
//
// 示例值：88
func (builder *UserReport2025Builder) CcmCreateLikedCnt(ccmCreateLikedCnt string) *UserReport2025Builder {
	builder.ccmCreateLikedCnt = ccmCreateLikedCnt
	builder.ccmCreateLikedCntFlag = true
	return builder
}

// 用户2025年创建的文档，在本年度内浏览人数最多的那篇的浏览人数（去重，仅算docx/doc；排除群公告；独立文档；不限文档创建时间，未删除的文档）
//
// 示例值：88
func (builder *UserReport2025Builder) CcmCreateViewedMostUcnt(ccmCreateViewedMostUcnt string) *UserReport2025Builder {
	builder.ccmCreateViewedMostUcnt = ccmCreateViewedMostUcnt
	builder.ccmCreateViewedMostUcntFlag = true
	return builder
}

// 用户2025年阅读的文档总数(仅算doc/docx)
//
// 示例值：666
func (builder *UserReport2025Builder) CcmAllReadDocCnt(ccmAllReadDocCnt string) *UserReport2025Builder {
	builder.ccmAllReadDocCnt = ccmAllReadDocCnt
	builder.ccmAllReadDocCntFlag = true
	return builder
}

// 用户2025年使用文档AI速览的文档篇数(仅算doc/docx)
//
// 示例值：88
func (builder *UserReport2025Builder) DocsAiQuickviewUseCnt(docsAiQuickviewUseCnt string) *UserReport2025Builder {
	builder.docsAiQuickviewUseCnt = docsAiQuickviewUseCnt
	builder.docsAiQuickviewUseCntFlag = true
	return builder
}

// 用户2025年参与会议总数（包含用户发起、非用户发起）
//
// 示例值：666
func (builder *UserReport2025Builder) VcJoinMeetingCnt(vcJoinMeetingCnt string) *UserReport2025Builder {
	builder.vcJoinMeetingCnt = vcJoinMeetingCnt
	builder.vcJoinMeetingCntFlag = true
	return builder
}

// 用户2025年的参会总时长（小时，保留2位小数）
//
// 示例值：88.88
func (builder *UserReport2025Builder) VcJoinMeetingDuration(vcJoinMeetingDuration float64) *UserReport2025Builder {
	builder.vcJoinMeetingDuration = vcJoinMeetingDuration
	builder.vcJoinMeetingDurationFlag = true
	return builder
}

// 用户2025年全年组织的会议数量
//
// 示例值：[{"organized_meeting_cnt":39, "organized_cal_meeting_cnt":20, "organized_instant_meeting_cnt":19}]
func (builder *UserReport2025Builder) VcOrgMeetingCnt(vcOrgMeetingCnt []*AnnualVcOrgCnt) *UserReport2025Builder {
	builder.vcOrgMeetingCnt = vcOrgMeetingCnt
	builder.vcOrgMeetingCntFlag = true
	return builder
}

// 用户2025作为纪要owner生成的智能纪要数量
//
// 示例值：88
func (builder *UserReport2025Builder) AiNotesCreateCnt(aiNotesCreateCnt string) *UserReport2025Builder {
	builder.aiNotesCreateCnt = aiNotesCreateCnt
	builder.aiNotesCreateCntFlag = true
	return builder
}

// 用户2025阅读智能纪要的篇数（去重）
//
// 示例值：88
func (builder *UserReport2025Builder) AiNotesReadCnt(aiNotesReadCnt string) *UserReport2025Builder {
	builder.aiNotesReadCnt = aiNotesReadCnt
	builder.aiNotesReadCntFlag = true
	return builder
}

// 用户2025使用知识问答的次数
//
// 示例值：88
func (builder *UserReport2025Builder) KnowledgeAiUseCnt(knowledgeAiUseCnt string) *UserReport2025Builder {
	builder.knowledgeAiUseCnt = knowledgeAiUseCnt
	builder.knowledgeAiUseCntFlag = true
	return builder
}

// 用户2025使用知识问答次数最多的那一天（有并列多天时，取后一个日期，yyyyMMdd）
//
// 示例值：20250510
func (builder *UserReport2025Builder) KnowledgeAiUseBusyDay(knowledgeAiUseBusyDay string) *UserReport2025Builder {
	builder.knowledgeAiUseBusyDay = knowledgeAiUseBusyDay
	builder.knowledgeAiUseBusyDayFlag = true
	return builder
}

// 用户2025使用知识问答次数最多的那一天的使用次数
//
// 示例值：88
func (builder *UserReport2025Builder) KnowledgeAiUseBusyDayCnt(knowledgeAiUseBusyDayCnt string) *UserReport2025Builder {
	builder.knowledgeAiUseBusyDayCnt = knowledgeAiUseBusyDayCnt
	builder.knowledgeAiUseBusyDayCntFlag = true
	return builder
}

// 用户2025创建的多维表格数量
//
// 示例值：88
func (builder *UserReport2025Builder) BaseCreateFcnt(baseCreateFcnt string) *UserReport2025Builder {
	builder.baseCreateFcnt = baseCreateFcnt
	builder.baseCreateFcntFlag = true
	return builder
}

// 用户2025年多维表文档使用最多的AI功能名称（中英文，列表里为top5）
//
// 示例值：[{"name_cn":"AI 字段捷径","name_en":"AI field shortcuts","name_cn_list":"AI 侧边栏,工作流 AI Agent 节点,AI 字段捷径,AI 生成公式,AI  浮窗工具栏","name_en_list":"AI sidebar,Workflow AI Agent node,AI field shortcuts,AI-generated formulas,AI smart toolbar"}]
func (builder *UserReport2025Builder) BaseAiTop1NameMap(baseAiTop1NameMap []*AnnualBaseTopAi) *UserReport2025Builder {
	builder.baseAiTop1NameMap = baseAiTop1NameMap
	builder.baseAiTop1NameMapFlag = true
	return builder
}

// 用户所创建的多维表格2025年内一共有多少人消费过（去重，仅文档阅读，不计算表单等外部形态）
//
// 示例值：88
func (builder *UserReport2025Builder) BaseCreateViewUcnt(baseCreateViewUcnt string) *UserReport2025Builder {
	builder.baseCreateViewUcnt = baseCreateViewUcnt
	builder.baseCreateViewUcntFlag = true
	return builder
}

// 用户2025年创建的多维表格中单表行数最大的那篇的行数
//
// 示例值：8888
func (builder *UserReport2025Builder) BaseMostRowsCnt(baseMostRowsCnt string) *UserReport2025Builder {
	builder.baseMostRowsCnt = baseMostRowsCnt
	builder.baseMostRowsCntFlag = true
	return builder
}

// 用户2025年在多维表格中创建的仪表盘数量
//
// 示例值：88
func (builder *UserReport2025Builder) BaseCreateDashboardCnt(baseCreateDashboardCnt string) *UserReport2025Builder {
	builder.baseCreateDashboardCnt = baseCreateDashboardCnt
	builder.baseCreateDashboardCntFlag = true
	return builder
}

// 用户2025年创建的多维表格自动化流程数量
//
// 示例值：88
func (builder *UserReport2025Builder) BaseWorkflowCreateCnt(baseWorkflowCreateCnt string) *UserReport2025Builder {
	builder.baseWorkflowCreateCnt = baseWorkflowCreateCnt
	builder.baseWorkflowCreateCntFlag = true
	return builder
}

// 用户创建的多维表格自动化流程在2025年内总运行次数（不限制流程创建时间）
//
// 示例值：88
func (builder *UserReport2025Builder) BaseWorkflowInsCnt(baseWorkflowInsCnt string) *UserReport2025Builder {
	builder.baseWorkflowInsCnt = baseWorkflowInsCnt
	builder.baseWorkflowInsCntFlag = true
	return builder
}

// 用户2025年有进入开发后台界面的Aily工作流应用数量（当前有管理员/开发者身份，且未删除、已发布（不限应用的实际创建时间））
//
// 示例值：88
func (builder *UserReport2025Builder) AilyDevelopAppCnt(ailyDevelopAppCnt string) *UserReport2025Builder {
	builder.ailyDevelopAppCnt = ailyDevelopAppCnt
	builder.ailyDevelopAppCntFlag = true
	return builder
}

// 用户已发布的Aily工作流应用，在2025年的活跃人数（去重，当前有管理员/开发者身份，且未删除）
//
// 示例值：8888
func (builder *UserReport2025Builder) AilyDevelopAppActiveUcnt(ailyDevelopAppActiveUcnt string) *UserReport2025Builder {
	builder.ailyDevelopAppActiveUcnt = ailyDevelopAppActiveUcnt
	builder.ailyDevelopAppActiveUcntFlag = true
	return builder
}

// 用户参与搭建的Aily应用（未删除，已发布），在2025年对话次数最多的那个应用的对话次数
//
// 示例值：8888
func (builder *UserReport2025Builder) AilyDevelopActiveMostAppIntents(ailyDevelopActiveMostAppIntents string) *UserReport2025Builder {
	builder.ailyDevelopActiveMostAppIntents = ailyDevelopActiveMostAppIntents
	builder.ailyDevelopActiveMostAppIntentsFlag = true
	return builder
}

// 用户2025年以用户身份与Aily应用、Aily智能体、工作助手的对话总次数
//
// 示例值：8888
func (builder *UserReport2025Builder) AilyChatCnt(ailyChatCnt string) *UserReport2025Builder {
	builder.ailyChatCnt = ailyChatCnt
	builder.ailyChatCntFlag = true
	return builder
}

// 用户2025年与Aily智能体对话中生产的交付产物数量（报告、网页、文档等）
//
// 示例值：88
func (builder *UserReport2025Builder) AilyArtifactCreateCnt(ailyArtifactCreateCnt string) *UserReport2025Builder {
	builder.ailyArtifactCreateCnt = ailyArtifactCreateCnt
	builder.ailyArtifactCreateCntFlag = true
	return builder
}

// 用户当前有管理员/开发者身份，且未删除，且已发布（不限应用的实际创建时间）的aPaaS应用，在2025年有进入开发后台界面的应用数量
//
// 示例值：88
func (builder *UserReport2025Builder) ApaasDevelopAppCnt(apaasDevelopAppCnt string) *UserReport2025Builder {
	builder.apaasDevelopAppCnt = apaasDevelopAppCnt
	builder.apaasDevelopAppCntFlag = true
	return builder
}

// 用户当前已发布，有管理员/开发者身份，且未删除的aPaaS应用，在2025年的的活跃人数（去重）
//
// 示例值：8888
func (builder *UserReport2025Builder) ApaasDevelopAppActiveUcnt(apaasDevelopAppActiveUcnt string) *UserReport2025Builder {
	builder.apaasDevelopAppActiveUcnt = apaasDevelopAppActiveUcnt
	builder.apaasDevelopAppActiveUcntFlag = true
	return builder
}

// 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的活跃人数最大的那个应用的访问人数（去重）
//
// 示例值：8888
func (builder *UserReport2025Builder) ApaasDevelopActiveMostAppUcnt(apaasDevelopActiveMostAppUcnt string) *UserReport2025Builder {
	builder.apaasDevelopActiveMostAppUcnt = apaasDevelopActiveMostAppUcnt
	builder.apaasDevelopActiveMostAppUcntFlag = true
	return builder
}

// 用户当前有管理员/开发者身份，且未删除，且已发布的aPaaS应用，在2025年的AI能力运行次数
//
// 示例值：8888
func (builder *UserReport2025Builder) ApaasDevelopAiRunCnt(apaasDevelopAiRunCnt string) *UserReport2025Builder {
	builder.apaasDevelopAiRunCnt = apaasDevelopAiRunCnt
	builder.apaasDevelopAiRunCntFlag = true
	return builder
}

// 用户2025年是否任意meego空间的管理员
//
// 示例值：0
func (builder *UserReport2025Builder) MeegoIsProjectAdmin(meegoIsProjectAdmin string) *UserReport2025Builder {
	builder.meegoIsProjectAdmin = meegoIsProjectAdmin
	builder.meegoIsProjectAdminFlag = true
	return builder
}

// 用户2025年在meego中新建实例数
//
// 示例值：88
func (builder *UserReport2025Builder) MeegoCreateWiCnt(meegoCreateWiCnt string) *UserReport2025Builder {
	builder.meegoCreateWiCnt = meegoCreateWiCnt
	builder.meegoCreateWiCntFlag = true
	return builder
}

// 用户2025年在meego中，新建实例的参与人员总数(去重)
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoCreateWiRoleUcnt(meegoCreateWiRoleUcnt string) *UserReport2025Builder {
	builder.meegoCreateWiRoleUcnt = meegoCreateWiRoleUcnt
	builder.meegoCreateWiRoleUcntFlag = true
	return builder
}

// 用户2025年在meego中，新建实例且被浏览次数最多的实例的浏览用户数(去重)
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoMostViewWiUcnt(meegoMostViewWiUcnt string) *UserReport2025Builder {
	builder.meegoMostViewWiUcnt = meegoMostViewWiUcnt
	builder.meegoMostViewWiUcntFlag = true
	return builder
}

// 用户2025年为meego空间管理员的meego中配置AI字段的数量
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoSetAiFieldCnt(meegoSetAiFieldCnt string) *UserReport2025Builder {
	builder.meegoSetAiFieldCnt = meegoSetAiFieldCnt
	builder.meegoSetAiFieldCntFlag = true
	return builder
}

// 用户2025年为meego空间管理员的meego中配置AI字段的执行次数
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoAiFieldRunCnt(meegoAiFieldRunCnt string) *UserReport2025Builder {
	builder.meegoAiFieldRunCnt = meegoAiFieldRunCnt
	builder.meegoAiFieldRunCntFlag = true
	return builder
}

// 用户2025年在meego中对 AI人力分析的使用次数
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoAiGanttUseCnt(meegoAiGanttUseCnt string) *UserReport2025Builder {
	builder.meegoAiGanttUseCnt = meegoAiGanttUseCnt
	builder.meegoAiGanttUseCntFlag = true
	return builder
}

// 用户2025年在meego中对 AI个人周报的使用次数
//
// 示例值：8888
func (builder *UserReport2025Builder) MeegoAiWeeklyReportUseCnt(meegoAiWeeklyReportUseCnt string) *UserReport2025Builder {
	builder.meegoAiWeeklyReportUseCnt = meegoAiWeeklyReportUseCnt
	builder.meegoAiWeeklyReportUseCntFlag = true
	return builder
}

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

	}
	if builder.tenantAllCntFlag {
		req.TenantAllCnt = &builder.tenantAllCnt

	}
	if builder.userRegisterDateFlag {
		req.UserRegisterDate = &builder.userRegisterDate

	}
	if builder.feishuActiveDaysFlag {
		req.FeishuActiveDays = &builder.feishuActiveDays

	}
	if builder.feishuDurationBusyMonthFlag {
		req.FeishuDurationBusyMonth = &builder.feishuDurationBusyMonth

	}
	if builder.feishuDurationBusyMonthHoursFlag {
		req.FeishuDurationBusyMonthHours = &builder.feishuDurationBusyMonthHours

	}
	if builder.busyMonthSendMsgCntFlag {
		req.BusyMonthSendMsgCnt = &builder.busyMonthSendMsgCnt

	}
	if builder.busyMonthEditDocCntFlag {
		req.BusyMonthEditDocCnt = &builder.busyMonthEditDocCnt

	}
	if builder.busyMonthReadDocCntFlag {
		req.BusyMonthReadDocCnt = &builder.busyMonthReadDocCnt

	}
	if builder.busyMonthJoinMeetingCntFlag {
		req.BusyMonthJoinMeetingCnt = &builder.busyMonthJoinMeetingCnt

	}
	if builder.busyMonthMeetingDurationFlag {
		req.BusyMonthMeetingDuration = &builder.busyMonthMeetingDuration

	}
	if builder.imTalkedChatCntFlag {
		req.ImTalkedChatCnt = &builder.imTalkedChatCnt

	}
	if builder.imPrivateChatCntFlag {
		req.ImPrivateChatCnt = &builder.imPrivateChatCnt

	}
	if builder.imSendMsgCntFlag {
		req.ImSendMsgCnt = &builder.imSendMsgCnt

	}
	if builder.imEmojiTop1Flag {
		req.ImEmojiTop1 = &builder.imEmojiTop1

	}
	if builder.imEmojiTop1CntFlag {
		req.ImEmojiTop1Cnt = &builder.imEmojiTop1Cnt

	}
	if builder.imEmojiTop2Flag {
		req.ImEmojiTop2 = &builder.imEmojiTop2

	}
	if builder.imEmojiTop2CntFlag {
		req.ImEmojiTop2Cnt = &builder.imEmojiTop2Cnt

	}
	if builder.imEmojiTop3Flag {
		req.ImEmojiTop3 = &builder.imEmojiTop3

	}
	if builder.imEmojiTop3CntFlag {
		req.ImEmojiTop3Cnt = &builder.imEmojiTop3Cnt

	}
	if builder.ccmCreateFcntFlag {
		req.CcmCreateFcnt = &builder.ccmCreateFcnt

	}
	if builder.ccmCreateRankFlag {
		req.CcmCreateRank = &builder.ccmCreateRank

	}
	if builder.ccmCreateRankUcntFlag {
		req.CcmCreateRankUcnt = &builder.ccmCreateRankUcnt

	}
	if builder.ccmCreateViewedUcntFlag {
		req.CcmCreateViewedUcnt = &builder.ccmCreateViewedUcnt

	}
	if builder.ccmCreateLikedCntFlag {
		req.CcmCreateLikedCnt = &builder.ccmCreateLikedCnt

	}
	if builder.ccmCreateViewedMostUcntFlag {
		req.CcmCreateViewedMostUcnt = &builder.ccmCreateViewedMostUcnt

	}
	if builder.ccmAllReadDocCntFlag {
		req.CcmAllReadDocCnt = &builder.ccmAllReadDocCnt

	}
	if builder.docsAiQuickviewUseCntFlag {
		req.DocsAiQuickviewUseCnt = &builder.docsAiQuickviewUseCnt

	}
	if builder.vcJoinMeetingCntFlag {
		req.VcJoinMeetingCnt = &builder.vcJoinMeetingCnt

	}
	if builder.vcJoinMeetingDurationFlag {
		req.VcJoinMeetingDuration = &builder.vcJoinMeetingDuration

	}
	if builder.vcOrgMeetingCntFlag {
		req.VcOrgMeetingCnt = builder.vcOrgMeetingCnt
	}
	if builder.aiNotesCreateCntFlag {
		req.AiNotesCreateCnt = &builder.aiNotesCreateCnt

	}
	if builder.aiNotesReadCntFlag {
		req.AiNotesReadCnt = &builder.aiNotesReadCnt

	}
	if builder.knowledgeAiUseCntFlag {
		req.KnowledgeAiUseCnt = &builder.knowledgeAiUseCnt

	}
	if builder.knowledgeAiUseBusyDayFlag {
		req.KnowledgeAiUseBusyDay = &builder.knowledgeAiUseBusyDay

	}
	if builder.knowledgeAiUseBusyDayCntFlag {
		req.KnowledgeAiUseBusyDayCnt = &builder.knowledgeAiUseBusyDayCnt

	}
	if builder.baseCreateFcntFlag {
		req.BaseCreateFcnt = &builder.baseCreateFcnt

	}
	if builder.baseAiTop1NameMapFlag {
		req.BaseAiTop1NameMap = builder.baseAiTop1NameMap
	}
	if builder.baseCreateViewUcntFlag {
		req.BaseCreateViewUcnt = &builder.baseCreateViewUcnt

	}
	if builder.baseMostRowsCntFlag {
		req.BaseMostRowsCnt = &builder.baseMostRowsCnt

	}
	if builder.baseCreateDashboardCntFlag {
		req.BaseCreateDashboardCnt = &builder.baseCreateDashboardCnt

	}
	if builder.baseWorkflowCreateCntFlag {
		req.BaseWorkflowCreateCnt = &builder.baseWorkflowCreateCnt

	}
	if builder.baseWorkflowInsCntFlag {
		req.BaseWorkflowInsCnt = &builder.baseWorkflowInsCnt

	}
	if builder.ailyDevelopAppCntFlag {
		req.AilyDevelopAppCnt = &builder.ailyDevelopAppCnt

	}
	if builder.ailyDevelopAppActiveUcntFlag {
		req.AilyDevelopAppActiveUcnt = &builder.ailyDevelopAppActiveUcnt

	}
	if builder.ailyDevelopActiveMostAppIntentsFlag {
		req.AilyDevelopActiveMostAppIntents = &builder.ailyDevelopActiveMostAppIntents

	}
	if builder.ailyChatCntFlag {
		req.AilyChatCnt = &builder.ailyChatCnt

	}
	if builder.ailyArtifactCreateCntFlag {
		req.AilyArtifactCreateCnt = &builder.ailyArtifactCreateCnt

	}
	if builder.apaasDevelopAppCntFlag {
		req.ApaasDevelopAppCnt = &builder.apaasDevelopAppCnt

	}
	if builder.apaasDevelopAppActiveUcntFlag {
		req.ApaasDevelopAppActiveUcnt = &builder.apaasDevelopAppActiveUcnt

	}
	if builder.apaasDevelopActiveMostAppUcntFlag {
		req.ApaasDevelopActiveMostAppUcnt = &builder.apaasDevelopActiveMostAppUcnt

	}
	if builder.apaasDevelopAiRunCntFlag {
		req.ApaasDevelopAiRunCnt = &builder.apaasDevelopAiRunCnt

	}
	if builder.meegoIsProjectAdminFlag {
		req.MeegoIsProjectAdmin = &builder.meegoIsProjectAdmin

	}
	if builder.meegoCreateWiCntFlag {
		req.MeegoCreateWiCnt = &builder.meegoCreateWiCnt

	}
	if builder.meegoCreateWiRoleUcntFlag {
		req.MeegoCreateWiRoleUcnt = &builder.meegoCreateWiRoleUcnt

	}
	if builder.meegoMostViewWiUcntFlag {
		req.MeegoMostViewWiUcnt = &builder.meegoMostViewWiUcnt

	}
	if builder.meegoSetAiFieldCntFlag {
		req.MeegoSetAiFieldCnt = &builder.meegoSetAiFieldCnt

	}
	if builder.meegoAiFieldRunCntFlag {
		req.MeegoAiFieldRunCnt = &builder.meegoAiFieldRunCnt

	}
	if builder.meegoAiGanttUseCntFlag {
		req.MeegoAiGanttUseCnt = &builder.meegoAiGanttUseCnt

	}
	if builder.meegoAiWeeklyReportUseCntFlag {
		req.MeegoAiWeeklyReportUseCnt = &builder.meegoAiWeeklyReportUseCnt

	}
	return req
}

type ListAdminDeptStatReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListAdminDeptStatReqBuilder() *ListAdminDeptStatReqBuilder {
	builder := &ListAdminDeptStatReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 部门ID类型
//
// 示例值：open_department_id
func (builder *ListAdminDeptStatReqBuilder) DepartmentIdType(departmentIdType string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 起始日期（包含），格式是YYYY-mm-dd
//
// 示例值：2020-02-15
func (builder *ListAdminDeptStatReqBuilder) StartDate(startDate string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("start_date", fmt.Sprint(startDate))
	return builder
}

// 终止日期（包含），格式是YYYY-mm-dd，起止日期之间相差不能超过91天（包含91天）
//
// 示例值：2020-02-15
func (builder *ListAdminDeptStatReqBuilder) EndDate(endDate string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("end_date", fmt.Sprint(endDate))
	return builder
}

// 部门的 ID，取决于department_id_type，仅支持根部门及其下前4级子部门
//
// 示例值：od-382e2793cfc9471f892e8a672987654c
func (builder *ListAdminDeptStatReqBuilder) DepartmentId(departmentId string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId))
	return builder
}

// 是否包含子部门，如果该值为false，则只查出本部门直属用户活跃和功能使用数据；如果该值为true，则查出该部门以及其子部门（子部门层级最多不超过根部门下的前4级）的用户活跃和功能使用数据
//
// 示例值：false
func (builder *ListAdminDeptStatReqBuilder) ContainsChildDept(containsChildDept bool) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("contains_child_dept", fmt.Sprint(containsChildDept))
	return builder
}

// 分页大小，默认是10
//
// 示例值：10
func (builder *ListAdminDeptStatReqBuilder) PageSize(pageSize int) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；当返回的has_more为true时，会返回新的page_token，再次调用接口，传入这个page_token，将获得下一页数据
//
// 示例值：2
func (builder *ListAdminDeptStatReqBuilder) PageToken(pageToken string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 跨域访问的geo
//
// 示例值：cn
func (builder *ListAdminDeptStatReqBuilder) TargetGeo(targetGeo string) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("target_geo", fmt.Sprint(targetGeo))
	return builder
}

// 是否返回分产品版本数据
//
// 示例值：true
func (builder *ListAdminDeptStatReqBuilder) WithProductVersion(withProductVersion bool) *ListAdminDeptStatReqBuilder {
	builder.apiReq.QueryParams.Set("with_product_version", fmt.Sprint(withProductVersion))
	return builder
}

func (builder *ListAdminDeptStatReqBuilder) Build() *ListAdminDeptStatReq {
	req := &ListAdminDeptStatReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListAdminDeptStatReq struct {
	apiReq *larkcore.ApiReq
}

type ListAdminDeptStatRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 分页查询时返回，代表是否还有更多数据

	PageToken *string `json:"page_token,omitempty"` // 分页标记，下一页分页的token

	Items []*AdminDeptStat `json:"items,omitempty"` // 数据报表
}

type ListAdminDeptStatResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListAdminDeptStatRespData `json:"data"` // 业务数据
}

func (resp *ListAdminDeptStatResp) Success() bool {
	return resp.Code == 0
}

type ListAdminUserStatReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewListAdminUserStatReqBuilder() *ListAdminUserStatReqBuilder {
	builder := &ListAdminUserStatReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：
func (builder *ListAdminUserStatReqBuilder) UserIdType(userIdType string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 部门ID类型
//
// 示例值：open_department_id
func (builder *ListAdminUserStatReqBuilder) DepartmentIdType(departmentIdType string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 起始日期（包含），格式是YYYY-mm-dd
//
// 示例值：2020-02-15
func (builder *ListAdminUserStatReqBuilder) StartDate(startDate string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("start_date", fmt.Sprint(startDate))
	return builder
}

// 终止日期（包含），格式是YYYY-mm-dd。起止日期之间相差不能超过31天（包含31天）
//
// 示例值：2020-02-15
func (builder *ListAdminUserStatReqBuilder) EndDate(endDate string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("end_date", fmt.Sprint(endDate))
	return builder
}

// 部门的 ID，取决于department_id_type
//
// 示例值：od-382e2793cfc9471f892e8a672987654c
func (builder *ListAdminUserStatReqBuilder) DepartmentId(departmentId string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId))
	return builder
}

// 用户的open_id，user_id或者union_id，取决于user_id_type
//
// 示例值：ou_7dab8a3d3cdcc9da365777c7ad535d62
func (builder *ListAdminUserStatReqBuilder) UserId(userId string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
	return builder
}

// 分页大小，默认是10
//
// 示例值：10
func (builder *ListAdminUserStatReqBuilder) PageSize(pageSize int) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；当返回的has_more为true时，会返回新的page_token，再次调用接口，传入这个page_token，将获得下一页数据
//
// 示例值：2
func (builder *ListAdminUserStatReqBuilder) PageToken(pageToken string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 跨域访问的geo
//
// 示例值：cn
func (builder *ListAdminUserStatReqBuilder) TargetGeo(targetGeo string) *ListAdminUserStatReqBuilder {
	builder.apiReq.QueryParams.Set("target_geo", fmt.Sprint(targetGeo))
	return builder
}

func (builder *ListAdminUserStatReqBuilder) Build() *ListAdminUserStatReq {
	req := &ListAdminUserStatReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListAdminUserStatReq struct {
	apiReq *larkcore.ApiReq
}

type ListAdminUserStatRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页分页的token

	Items []*AdminUserStat `json:"items,omitempty"` // 数据报表
}

type ListAdminUserStatResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListAdminUserStatRespData `json:"data"` // 业务数据
}

func (resp *ListAdminUserStatResp) Success() bool {
	return resp.Code == 0
}

type ListAuditInfoReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListAuditInfoReqBuilder() *ListAuditInfoReqBuilder {
	builder := &ListAuditInfoReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListAuditInfoReqBuilder) Limit(limit int) *ListAuditInfoReqBuilder {
	builder.limit = limit
	return builder
}

// 此次调用中使用的用户ID的类型
//
// 示例值：user_id
func (builder *ListAuditInfoReqBuilder) UserIdType(userIdType string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 日志时间范围: 结束时间. 格式: 秒级时间戳. 默认值: 此刻
//
// 示例值：1668700799
func (builder *ListAuditInfoReqBuilder) Latest(latest int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("latest", fmt.Sprint(latest))
	return builder
}

// 日志时间范围: 起始时间. 格式: 秒级时间戳. 默认值:  30日前此刻
//
// 示例值：1668528000
func (builder *ListAuditInfoReqBuilder) Oldest(oldest int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("oldest", fmt.Sprint(oldest))
	return builder
}

// 事件名称
//
// 示例值：space_create_doc
func (builder *ListAuditInfoReqBuilder) EventName(eventName string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("event_name", fmt.Sprint(eventName))
	return builder
}

// 过滤操作者: 操作者类型. 与 operator_value 配合使用
//
// 示例值：
func (builder *ListAuditInfoReqBuilder) OperatorType(operatorType string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("operator_type", fmt.Sprint(operatorType))
	return builder
}

// 过滤操作者: 操作者ID. 与 operator_type 配合使用
//
// 示例值：55ed16fe
func (builder *ListAuditInfoReqBuilder) OperatorValue(operatorValue string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("operator_value", fmt.Sprint(operatorValue))
	return builder
}

// 过滤模块
//
// 示例值：1
func (builder *ListAuditInfoReqBuilder) EventModule(eventModule int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("event_module", fmt.Sprint(eventModule))
	return builder
}

// 下一页分页的token
//
// 示例值：LC39/f1%2B/Sz9Uv39Gf39/ew/cd5WY0gfGYFdixOW9cVk4bC79ituO/gx0qpPn1bYf92nz/kI0nNJOG3wCwDJKoNU%2BtyaXbpI8pV/9UNDMZT0BNeyanFH17Wv711Qh9anR3l2GjQfc2fUqXtxg1YPp63XyhYY4iRMv54ySRG7r%2BI89iS3zAoPzFuuU1MUJKsf
func (builder *ListAuditInfoReqBuilder) PageToken(pageToken string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 分页参数
//
// 示例值：20
func (builder *ListAuditInfoReqBuilder) PageSize(pageSize int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 过滤用户类型. 仅当 operator_type=user 时生效
//
// 示例值：
func (builder *ListAuditInfoReqBuilder) UserType(userType int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("user_type", fmt.Sprint(userType))
	return builder
}

// 过滤操作对象: 操作对象类型. 与object_value配合使用
//
// 示例值：1
func (builder *ListAuditInfoReqBuilder) ObjectType(objectType int) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("object_type", fmt.Sprint(objectType))
	return builder
}

// 过滤操作对象: 操作对象ID. 与object_type配合使用
//
// 示例值：55ed16fe
func (builder *ListAuditInfoReqBuilder) ObjectValue(objectValue string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("object_value", fmt.Sprint(objectValue))
	return builder
}

// 增强过滤操作对象: 操作对象ID，支持云文档侧泛token过滤。会覆盖object_type和object_value查询条件
//
// 示例值：55ed16fe
func (builder *ListAuditInfoReqBuilder) ExtFilterObjectByCcmToken(extFilterObjectByCcmToken string) *ListAuditInfoReqBuilder {
	builder.apiReq.QueryParams.Set("ext_filter_object_by_ccm_token", fmt.Sprint(extFilterObjectByCcmToken))
	return builder
}

func (builder *ListAuditInfoReqBuilder) Build() *ListAuditInfoReq {
	req := &ListAuditInfoReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListAuditInfoReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListAuditInfoRespData struct {
	HasMore *bool `json:"has_more,omitempty"` // 是否有下一页数据

	PageToken *string `json:"page_token,omitempty"` // 下一页分页的token

	Items []*AuditInfo `json:"items,omitempty"` // 返回的具体数据内容
}

type ListAuditInfoResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListAuditInfoRespData `json:"data"` // 业务数据
}

func (resp *ListAuditInfoResp) Success() bool {
	return resp.Code == 0
}

type CreateBadgeReqBuilder struct {
	apiReq *larkcore.ApiReq
	badge  *Badge
}

func NewCreateBadgeReqBuilder() *CreateBadgeReqBuilder {
	builder := &CreateBadgeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 使用该接口可以创建一枚完整的勋章信息，一个租户下最多可创建1000枚勋章。
func (builder *CreateBadgeReqBuilder) Badge(badge *Badge) *CreateBadgeReqBuilder {
	builder.badge = badge
	return builder
}

func (builder *CreateBadgeReqBuilder) Build() *CreateBadgeReq {
	req := &CreateBadgeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.badge
	return req
}

type CreateBadgeReq struct {
	apiReq *larkcore.ApiReq
	Badge  *Badge `body:""`
}

type CreateBadgeRespData struct {
	Badge *Badge `json:"badge,omitempty"` // 勋章的信息
}

type CreateBadgeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateBadgeRespData `json:"data"` // 业务数据
}

func (resp *CreateBadgeResp) Success() bool {
	return resp.Code == 0
}

type GetBadgeReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetBadgeReqBuilder() *GetBadgeReqBuilder {
	builder := &GetBadgeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 勋章id
//
// 示例值：m_DjMzaK
func (builder *GetBadgeReqBuilder) BadgeId(badgeId string) *GetBadgeReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

func (builder *GetBadgeReqBuilder) Build() *GetBadgeReq {
	req := &GetBadgeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type GetBadgeReq struct {
	apiReq *larkcore.ApiReq
}

type GetBadgeRespData struct {
	Badge *Badge `json:"badge,omitempty"` // 勋章信息
}

type GetBadgeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetBadgeRespData `json:"data"` // 业务数据
}

func (resp *GetBadgeResp) Success() bool {
	return resp.Code == 0
}

type ListBadgeReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListBadgeReqBuilder() *ListBadgeReqBuilder {
	builder := &ListBadgeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListBadgeReqBuilder) Limit(limit int) *ListBadgeReqBuilder {
	builder.limit = limit
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *ListBadgeReqBuilder) PageSize(pageSize int) *ListBadgeReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：b1fmUz
func (builder *ListBadgeReqBuilder) PageToken(pageToken string) *ListBadgeReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 租户内唯一的勋章名称，精确匹配。
//
// 示例值：激励勋章
func (builder *ListBadgeReqBuilder) Name(name string) *ListBadgeReqBuilder {
	builder.apiReq.QueryParams.Set("name", fmt.Sprint(name))
	return builder
}

func (builder *ListBadgeReqBuilder) Build() *ListBadgeReq {
	req := &ListBadgeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListBadgeReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListBadgeRespData struct {
	Badges []*Badge `json:"badges,omitempty"` // 勋章列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果

	HasMore *bool `json:"has_more,omitempty"` // 是否已经遍历完，表示本次页面请求已经拿到所有列表数据
}

type ListBadgeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListBadgeRespData `json:"data"` // 业务数据
}

func (resp *ListBadgeResp) Success() bool {
	return resp.Code == 0
}

type UpdateBadgeReqBuilder struct {
	apiReq *larkcore.ApiReq
	badge  *Badge
}

func NewUpdateBadgeReqBuilder() *UpdateBadgeReqBuilder {
	builder := &UpdateBadgeReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 勋章ID
//
// 示例值：m_MzfKDM
func (builder *UpdateBadgeReqBuilder) BadgeId(badgeId string) *UpdateBadgeReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 通过该接口可以修改勋章的信息
func (builder *UpdateBadgeReqBuilder) Badge(badge *Badge) *UpdateBadgeReqBuilder {
	builder.badge = badge
	return builder
}

func (builder *UpdateBadgeReqBuilder) Build() *UpdateBadgeReq {
	req := &UpdateBadgeReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.badge
	return req
}

type UpdateBadgeReq struct {
	apiReq *larkcore.ApiReq
	Badge  *Badge `body:""`
}

type UpdateBadgeRespData struct {
	Badge *Badge `json:"badge,omitempty"` // 勋章信息
}

type UpdateBadgeResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateBadgeRespData `json:"data"` // 业务数据
}

func (resp *UpdateBadgeResp) Success() bool {
	return resp.Code == 0
}

type CreateBadgeGrantReqBuilder struct {
	apiReq *larkcore.ApiReq
	grant  *Grant
}

func NewCreateBadgeGrantReqBuilder() *CreateBadgeGrantReqBuilder {
	builder := &CreateBadgeGrantReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 勋章ID
//
// 示例值：m_DjMzaK
func (builder *CreateBadgeGrantReqBuilder) BadgeId(badgeId string) *CreateBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *CreateBadgeGrantReqBuilder) UserIdType(userIdType string) *CreateBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门ID的类型。
//
// 示例值：open_department_id
func (builder *CreateBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *CreateBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 通过该接口可以为特定勋章创建一份授予名单，一枚勋章下最多可创建1000份授予名单。
func (builder *CreateBadgeGrantReqBuilder) Grant(grant *Grant) *CreateBadgeGrantReqBuilder {
	builder.grant = grant
	return builder
}

func (builder *CreateBadgeGrantReqBuilder) Build() *CreateBadgeGrantReq {
	req := &CreateBadgeGrantReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.grant
	return req
}

type CreateBadgeGrantReq struct {
	apiReq *larkcore.ApiReq
	Grant  *Grant `body:""`
}

type CreateBadgeGrantRespData struct {
	Grant *Grant `json:"grant,omitempty"` // 授予名单的信息
}

type CreateBadgeGrantResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateBadgeGrantRespData `json:"data"` // 业务数据
}

func (resp *CreateBadgeGrantResp) Success() bool {
	return resp.Code == 0
}

type DeleteBadgeGrantReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewDeleteBadgeGrantReqBuilder() *DeleteBadgeGrantReqBuilder {
	builder := &DeleteBadgeGrantReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 企业勋章的唯一ID
//
// 示例值：m_DjMzaK
func (builder *DeleteBadgeGrantReqBuilder) BadgeId(badgeId string) *DeleteBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 租户内授予名单的唯一标识，该值由系统随机生成。
//
// 示例值：g_uS4yux
func (builder *DeleteBadgeGrantReqBuilder) GrantId(grantId string) *DeleteBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId))
	return builder
}

func (builder *DeleteBadgeGrantReqBuilder) Build() *DeleteBadgeGrantReq {
	req := &DeleteBadgeGrantReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	return req
}

type DeleteBadgeGrantReq struct {
	apiReq *larkcore.ApiReq
}

type DeleteBadgeGrantResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *DeleteBadgeGrantResp) Success() bool {
	return resp.Code == 0
}

type GetBadgeGrantReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetBadgeGrantReqBuilder() *GetBadgeGrantReqBuilder {
	builder := &GetBadgeGrantReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 租户内勋章的唯一标识，该值由系统随机生成。
//
// 示例值：m_DjMzaK
func (builder *GetBadgeGrantReqBuilder) BadgeId(badgeId string) *GetBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 租户内授予名单的唯一标识，该值由系统随机生成。
//
// 示例值：g_uS4yux
func (builder *GetBadgeGrantReqBuilder) GrantId(grantId string) *GetBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *GetBadgeGrantReqBuilder) UserIdType(userIdType string) *GetBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门ID的类型。
//
// 示例值：open_department_id
func (builder *GetBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *GetBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

func (builder *GetBadgeGrantReqBuilder) Build() *GetBadgeGrantReq {
	req := &GetBadgeGrantReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetBadgeGrantReq struct {
	apiReq *larkcore.ApiReq
}

type GetBadgeGrantRespData struct {
	Grant *Grant `json:"grant,omitempty"` // 授予名单信息
}

type GetBadgeGrantResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetBadgeGrantRespData `json:"data"` // 业务数据
}

func (resp *GetBadgeGrantResp) Success() bool {
	return resp.Code == 0
}

type ListBadgeGrantReqBuilder struct {
	apiReq *larkcore.ApiReq
	limit  int // 最大返回多少记录，当使用迭代器访问时才有效
}

func NewListBadgeGrantReqBuilder() *ListBadgeGrantReqBuilder {
	builder := &ListBadgeGrantReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 最大返回多少记录，当使用迭代器访问时才有效
func (builder *ListBadgeGrantReqBuilder) Limit(limit int) *ListBadgeGrantReqBuilder {
	builder.limit = limit
	return builder
}

// 企业勋章的唯一ID
//
// 示例值：m_DjMzaK
func (builder *ListBadgeGrantReqBuilder) BadgeId(badgeId string) *ListBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 分页大小
//
// 示例值：10
func (builder *ListBadgeGrantReqBuilder) PageSize(pageSize int) *ListBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果
//
// 示例值：om5fn1
func (builder *ListBadgeGrantReqBuilder) PageToken(pageToken string) *ListBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *ListBadgeGrantReqBuilder) UserIdType(userIdType string) *ListBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门ID的类型。
//
// 示例值：open_department_id
func (builder *ListBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *ListBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 授予名单名称，精确匹配。
//
// 示例值：激励勋章的授予名单
func (builder *ListBadgeGrantReqBuilder) Name(name string) *ListBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("name", fmt.Sprint(name))
	return builder
}

func (builder *ListBadgeGrantReqBuilder) Build() *ListBadgeGrantReq {
	req := &ListBadgeGrantReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.Limit = builder.limit
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type ListBadgeGrantReq struct {
	apiReq *larkcore.ApiReq
	Limit  int // 最多返回多少记录，只有在使用迭代器访问时，才有效

}

type ListBadgeGrantRespData struct {
	Grants []*Grant `json:"grants,omitempty"` // 授予名单列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果

	HasMore *bool `json:"has_more,omitempty"` // 是否已经遍历完，表示本次页面请求已经拿到所有列表数据
}

type ListBadgeGrantResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *ListBadgeGrantRespData `json:"data"` // 业务数据
}

func (resp *ListBadgeGrantResp) Success() bool {
	return resp.Code == 0
}

type UpdateBadgeGrantReqBuilder struct {
	apiReq *larkcore.ApiReq
	grant  *Grant
}

func NewUpdateBadgeGrantReqBuilder() *UpdateBadgeGrantReqBuilder {
	builder := &UpdateBadgeGrantReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 勋章ID
//
// 示例值：m_DjMzaK
func (builder *UpdateBadgeGrantReqBuilder) BadgeId(badgeId string) *UpdateBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId))
	return builder
}

// 授予名单ID
//
// 示例值：g_uS4yux
func (builder *UpdateBadgeGrantReqBuilder) GrantId(grantId string) *UpdateBadgeGrantReqBuilder {
	builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId))
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *UpdateBadgeGrantReqBuilder) UserIdType(userIdType string) *UpdateBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 此次调用中使用的部门ID的类型。
//
// 示例值：open_department_id
func (builder *UpdateBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *UpdateBadgeGrantReqBuilder {
	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
	return builder
}

// 通过该接口可以修改特定授予名单的相关信息
func (builder *UpdateBadgeGrantReqBuilder) Grant(grant *Grant) *UpdateBadgeGrantReqBuilder {
	builder.grant = grant
	return builder
}

func (builder *UpdateBadgeGrantReqBuilder) Build() *UpdateBadgeGrantReq {
	req := &UpdateBadgeGrantReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.grant
	return req
}

type UpdateBadgeGrantReq struct {
	apiReq *larkcore.ApiReq
	Grant  *Grant `body:""`
}

type UpdateBadgeGrantRespData struct {
	Grant *Grant `json:"grant,omitempty"` // 授予名单
}

type UpdateBadgeGrantResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateBadgeGrantRespData `json:"data"` // 业务数据
}

func (resp *UpdateBadgeGrantResp) Success() bool {
	return resp.Code == 0
}

type CreateBadgeImageReqBodyBuilder struct {
	imageFile     io.Reader // 勋章图片的文件，仅支持 PNG 格式，320 x 320 像素，大小不超过 1024 KB。
	imageFileFlag bool

	imageType     int // 图片的类型
	imageTypeFlag bool
}

func NewCreateBadgeImageReqBodyBuilder() *CreateBadgeImageReqBodyBuilder {
	builder := &CreateBadgeImageReqBodyBuilder{}
	return builder
}

// 勋章图片的文件，仅支持 PNG 格式，320 x 320 像素，大小不超过 1024 KB。
//
//示例值：file binary
func (builder *CreateBadgeImageReqBodyBuilder) ImageFile(imageFile io.Reader) *CreateBadgeImageReqBodyBuilder {
	builder.imageFile = imageFile
	builder.imageFileFlag = true
	return builder
}

// 图片的类型
//
//示例值：1
func (builder *CreateBadgeImageReqBodyBuilder) ImageType(imageType int) *CreateBadgeImageReqBodyBuilder {
	builder.imageType = imageType
	builder.imageTypeFlag = true
	return builder
}

func (builder *CreateBadgeImageReqBodyBuilder) Build() *CreateBadgeImageReqBody {
	req := &CreateBadgeImageReqBody{}
	if builder.imageFileFlag {
		req.ImageFile = builder.imageFile
	}
	if builder.imageTypeFlag {
		req.ImageType = &builder.imageType
	}
	return req
}

type CreateBadgeImagePathReqBodyBuilder struct {
	imageFilePath     string // 勋章图片的文件，仅支持 PNG 格式，320 x 320 像素，大小不超过 1024 KB。
	imageFilePathFlag bool
	imageType         int
	imageTypeFlag     bool
}

func NewCreateBadgeImagePathReqBodyBuilder() *CreateBadgeImagePathReqBodyBuilder {
	builder := &CreateBadgeImagePathReqBodyBuilder{}
	return builder
}

// 勋章图片的文件，仅支持 PNG 格式，320 x 320 像素，大小不超过 1024 KB。
//
// 示例值：file binary
func (builder *CreateBadgeImagePathReqBodyBuilder) ImageFilePath(imageFilePath string) *CreateBadgeImagePathReqBodyBuilder {
	builder.imageFilePath = imageFilePath
	builder.imageFilePathFlag = true
	return builder
}

// 图片的类型
//
// 示例值：1
func (builder *CreateBadgeImagePathReqBodyBuilder) ImageType(imageType int) *CreateBadgeImagePathReqBodyBuilder {
	builder.imageType = imageType
	builder.imageTypeFlag = true
	return builder
}

func (builder *CreateBadgeImagePathReqBodyBuilder) Build() (*CreateBadgeImageReqBody, error) {
	req := &CreateBadgeImageReqBody{}
	if builder.imageFilePathFlag {
		data, err := larkcore.File2Bytes(builder.imageFilePath)
		if err != nil {
			return nil, err
		}
		req.ImageFile = bytes.NewBuffer(data)
	}
	if builder.imageTypeFlag {
		req.ImageType = &builder.imageType
	}
	return req, nil
}

type CreateBadgeImageReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateBadgeImageReqBody
}

func NewCreateBadgeImageReqBuilder() *CreateBadgeImageReqBuilder {
	builder := &CreateBadgeImageReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 通过该接口可以上传勋章详情图、挂饰图的文件，获取对应的文件key
func (builder *CreateBadgeImageReqBuilder) Body(body *CreateBadgeImageReqBody) *CreateBadgeImageReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateBadgeImageReqBuilder) Build() *CreateBadgeImageReq {
	req := &CreateBadgeImageReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type CreateBadgeImageReqBody struct {
	ImageFile io.Reader `json:"image_file,omitempty"` // 勋章图片的文件，仅支持 PNG 格式，320 x 320 像素，大小不超过 1024 KB。

	ImageType *int `json:"image_type,omitempty"` // 图片的类型
}

type CreateBadgeImageReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateBadgeImageReqBody `body:""`
}

type CreateBadgeImageRespData struct {
	ImageKey *string `json:"image_key,omitempty"` // 图片的key
}

type CreateBadgeImageResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateBadgeImageRespData `json:"data"` // 业务数据
}

func (resp *CreateBadgeImageResp) Success() bool {
	return resp.Code == 0
}

type ResetPasswordReqBodyBuilder struct {
	password     *Password // 需要重置的密码参数，不少于8个字符，字母、数字和符号，至少三选二
	passwordFlag bool

	userId     string // 待修改密码的用户ID，只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效
	userIdFlag bool
}

func NewResetPasswordReqBodyBuilder() *ResetPasswordReqBodyBuilder {
	builder := &ResetPasswordReqBodyBuilder{}
	return builder
}

// 需要重置的密码参数，不少于8个字符，字母、数字和符号，至少三选二
//
//示例值：1234abcd
func (builder *ResetPasswordReqBodyBuilder) Password(password *Password) *ResetPasswordReqBodyBuilder {
	builder.password = password
	builder.passwordFlag = true
	return builder
}

// 待修改密码的用户ID，只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效
//
//示例值：abc123
func (builder *ResetPasswordReqBodyBuilder) UserId(userId string) *ResetPasswordReqBodyBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *ResetPasswordReqBodyBuilder) Build() *ResetPasswordReqBody {
	req := &ResetPasswordReqBody{}
	if builder.passwordFlag {
		req.Password = builder.password
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId
	}
	return req
}

type ResetPasswordPathReqBodyBuilder struct {
	password     *Password
	passwordFlag bool
	userId       string
	userIdFlag   bool
}

func NewResetPasswordPathReqBodyBuilder() *ResetPasswordPathReqBodyBuilder {
	builder := &ResetPasswordPathReqBodyBuilder{}
	return builder
}

// 需要重置的密码参数，不少于8个字符，字母、数字和符号，至少三选二
//
// 示例值：1234abcd
func (builder *ResetPasswordPathReqBodyBuilder) Password(password *Password) *ResetPasswordPathReqBodyBuilder {
	builder.password = password
	builder.passwordFlag = true
	return builder
}

// 待修改密码的用户ID，只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效
//
// 示例值：abc123
func (builder *ResetPasswordPathReqBodyBuilder) UserId(userId string) *ResetPasswordPathReqBodyBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *ResetPasswordPathReqBodyBuilder) Build() (*ResetPasswordReqBody, error) {
	req := &ResetPasswordReqBody{}
	if builder.passwordFlag {
		req.Password = builder.password
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId
	}
	return req, nil
}

type ResetPasswordReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *ResetPasswordReqBody
}

func NewResetPasswordReqBuilder() *ResetPasswordReqBuilder {
	builder := &ResetPasswordReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户ID类型
//
// 示例值：user_id
func (builder *ResetPasswordReqBuilder) UserIdType(userIdType string) *ResetPasswordReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

// 重置用户的企业邮箱密码，仅当用户的邮箱和企业邮箱(别名)一致时生效，可用于处理飞书企业邮箱登录死锁的问题。;;邮箱死锁：当用户的登录凭证与飞书企业邮箱一致时，目前飞书登录流程要求用户输入验证码，由于飞书邮箱无单独的帐号体系，则未登录时无法收取邮箱验证码，即陷入死锁
func (builder *ResetPasswordReqBuilder) Body(body *ResetPasswordReqBody) *ResetPasswordReqBuilder {
	builder.body = body
	return builder
}

func (builder *ResetPasswordReqBuilder) Build() *ResetPasswordReq {
	req := &ResetPasswordReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type ResetPasswordReqBody struct {
	Password *Password `json:"password,omitempty"` // 需要重置的密码参数，不少于8个字符，字母、数字和符号，至少三选二

	UserId *string `json:"user_id,omitempty"` // 待修改密码的用户ID，只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效
}

type ResetPasswordReq struct {
	apiReq *larkcore.ApiReq
	Body   *ResetPasswordReqBody `body:""`
}

type ResetPasswordResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *ResetPasswordResp) Success() bool {
	return resp.Code == 0
}

type ListAuditInfoIterator struct {
	nextPageToken *string
	items         []*AuditInfo
	index         int
	limit         int
	ctx           context.Context
	req           *ListAuditInfoReq
	listFunc      func(ctx context.Context, req *ListAuditInfoReq, options ...larkcore.RequestOptionFunc) (*ListAuditInfoResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListAuditInfoIterator) Next() (bool, *AuditInfo, 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 *ListAuditInfoIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListBadgeIterator struct {
	nextPageToken *string
	items         []*Badge
	index         int
	limit         int
	ctx           context.Context
	req           *ListBadgeReq
	listFunc      func(ctx context.Context, req *ListBadgeReq, options ...larkcore.RequestOptionFunc) (*ListBadgeResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListBadgeIterator) Next() (bool, *Badge, 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.Badges) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Badges
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListBadgeIterator) NextPageToken() *string {
	return iterator.nextPageToken
}

type ListBadgeGrantIterator struct {
	nextPageToken *string
	items         []*Grant
	index         int
	limit         int
	ctx           context.Context
	req           *ListBadgeGrantReq
	listFunc      func(ctx context.Context, req *ListBadgeGrantReq, options ...larkcore.RequestOptionFunc) (*ListBadgeGrantResp, error)
	options       []larkcore.RequestOptionFunc
	curlNum       int
}

func (iterator *ListBadgeGrantIterator) Next() (bool, *Grant, 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.Grants) == 0 {
			return false, nil, nil
		}

		iterator.nextPageToken = resp.Data.PageToken
		iterator.items = resp.Data.Grants
		iterator.index = 0
	}

	block := iterator.items[iterator.index]
	iterator.index++
	iterator.curlNum++
	return true, block, nil
}

func (iterator *ListBadgeGrantIterator) NextPageToken() *string {
	return iterator.nextPageToken
}
