# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init


class AdminUserStat(object):
    _types = {
        "date": str,
        "user_id": str,
        "user_name": str,
        "department_name": str,
        "department_path": str,
        "create_time": str,
        "user_active_flag": int,
        "register_time": str,
        "suite_active_flag": int,
        "last_active_time": str,
        "im_active_flag": int,
        "send_messenger_num": int,
        "docs_active_flag": int,
        "create_docs_num": int,
        "cal_active_flag": int,
        "create_cal_num": int,
        "vc_active_flag": int,
        "vc_duration": int,
        "active_os": str,
        "create_task_num": int,
        "vc_num": int,
        "app_package_type": str,
        "os_name": str,
        "email_send_count": int,
        "email_receive_count": int,
        "email_send_ext_count": int,
        "email_receive_ext_count": int,
        "email_send_in_count": int,
        "email_receive_in_count": int,
        "search_active_flag": int,
        "total_search_count": int,
        "quick_search_count": int,
        "tab_search_count": int,
    }

    def __init__(self, d=None):
        self.date: Optional[str] = None
        self.user_id: Optional[str] = None
        self.user_name: Optional[str] = None
        self.department_name: Optional[str] = None
        self.department_path: Optional[str] = None
        self.create_time: Optional[str] = None
        self.user_active_flag: Optional[int] = None
        self.register_time: Optional[str] = None
        self.suite_active_flag: Optional[int] = None
        self.last_active_time: Optional[str] = None
        self.im_active_flag: Optional[int] = None
        self.send_messenger_num: Optional[int] = None
        self.docs_active_flag: Optional[int] = None
        self.create_docs_num: Optional[int] = None
        self.cal_active_flag: Optional[int] = None
        self.create_cal_num: Optional[int] = None
        self.vc_active_flag: Optional[int] = None
        self.vc_duration: Optional[int] = None
        self.active_os: Optional[str] = None
        self.create_task_num: Optional[int] = None
        self.vc_num: Optional[int] = None
        self.app_package_type: Optional[str] = None
        self.os_name: Optional[str] = None
        self.email_send_count: Optional[int] = None
        self.email_receive_count: Optional[int] = None
        self.email_send_ext_count: Optional[int] = None
        self.email_receive_ext_count: Optional[int] = None
        self.email_send_in_count: Optional[int] = None
        self.email_receive_in_count: Optional[int] = None
        self.search_active_flag: Optional[int] = None
        self.total_search_count: Optional[int] = None
        self.quick_search_count: Optional[int] = None
        self.tab_search_count: Optional[int] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "AdminUserStatBuilder":
        return AdminUserStatBuilder()


class AdminUserStatBuilder(object):
    def __init__(self) -> None:
        self._admin_user_stat = AdminUserStat()

    def date(self, date: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.date = date
        return self

    def user_id(self, user_id: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.user_id = user_id
        return self

    def user_name(self, user_name: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.user_name = user_name
        return self

    def department_name(self, department_name: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.department_name = department_name
        return self

    def department_path(self, department_path: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.department_path = department_path
        return self

    def create_time(self, create_time: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.create_time = create_time
        return self

    def user_active_flag(self, user_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.user_active_flag = user_active_flag
        return self

    def register_time(self, register_time: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.register_time = register_time
        return self

    def suite_active_flag(self, suite_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.suite_active_flag = suite_active_flag
        return self

    def last_active_time(self, last_active_time: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.last_active_time = last_active_time
        return self

    def im_active_flag(self, im_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.im_active_flag = im_active_flag
        return self

    def send_messenger_num(self, send_messenger_num: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.send_messenger_num = send_messenger_num
        return self

    def docs_active_flag(self, docs_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.docs_active_flag = docs_active_flag
        return self

    def create_docs_num(self, create_docs_num: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.create_docs_num = create_docs_num
        return self

    def cal_active_flag(self, cal_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.cal_active_flag = cal_active_flag
        return self

    def create_cal_num(self, create_cal_num: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.create_cal_num = create_cal_num
        return self

    def vc_active_flag(self, vc_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.vc_active_flag = vc_active_flag
        return self

    def vc_duration(self, vc_duration: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.vc_duration = vc_duration
        return self

    def active_os(self, active_os: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.active_os = active_os
        return self

    def create_task_num(self, create_task_num: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.create_task_num = create_task_num
        return self

    def vc_num(self, vc_num: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.vc_num = vc_num
        return self

    def app_package_type(self, app_package_type: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.app_package_type = app_package_type
        return self

    def os_name(self, os_name: str) -> "AdminUserStatBuilder":
        self._admin_user_stat.os_name = os_name
        return self

    def email_send_count(self, email_send_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_send_count = email_send_count
        return self

    def email_receive_count(self, email_receive_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_receive_count = email_receive_count
        return self

    def email_send_ext_count(self, email_send_ext_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_send_ext_count = email_send_ext_count
        return self

    def email_receive_ext_count(self, email_receive_ext_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_receive_ext_count = email_receive_ext_count
        return self

    def email_send_in_count(self, email_send_in_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_send_in_count = email_send_in_count
        return self

    def email_receive_in_count(self, email_receive_in_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.email_receive_in_count = email_receive_in_count
        return self

    def search_active_flag(self, search_active_flag: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.search_active_flag = search_active_flag
        return self

    def total_search_count(self, total_search_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.total_search_count = total_search_count
        return self

    def quick_search_count(self, quick_search_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.quick_search_count = quick_search_count
        return self

    def tab_search_count(self, tab_search_count: int) -> "AdminUserStatBuilder":
        self._admin_user_stat.tab_search_count = tab_search_count
        return self

    def build(self) -> "AdminUserStat":
        return self._admin_user_stat
