# Code generated by Lark OpenAPI.

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


class UserReport2023(object):
    _types = {
        "user_id": str,
        "tenant_all_cnt": int,
        "user_register_date": str,
        "all_day_cnt": int,
        "active_day_cnt": int,
        "duration_cnt_2": List[AnnualReportMapFloat],
        "duration_cnt_rank": int,
        "busy_month": str,
        "busy_month_sum_duration": float,
        "busy_month_send_msg_cnt": int,
        "busy_month_meeting_cnt": int,
        "busy_month_last_meeting_time": str,
        "busy_month_create_edit_file_cnt": int,
        "im_send_msg_cnt_2": List[AnnualReportMapInt],
        "im_send_msg_cnt_rank": int,
        "im_busy_date": str,
        "im_busy_date_send_msg_cnt": int,
        "im_last_send_msg_time": str,
        "im_talked_chat_cnt": int,
        "im_private_chat_cnt": int,
        "im_emoji_top1": str,
        "im_emoji_top1_cnt": int,
        "im_emoji_top2": str,
        "im_emoji_top2_cnt": int,
        "im_emoji_top3": str,
        "im_emoji_top3_cnt": int,
        "im_positive_reaction_cnt_2": List[AnnualReportMapInt],
        "im_positive_reaction_cnt_rank": int,
        "ccm_create_cnt_2": List[AnnualReportMapInt],
        "ccm_create_cnt_rank": int,
        "ccm_create_busy_month": str,
        "ccm_create_busy_month_cnt": int,
        "ccm_create_viewed_ucnt": int,
        "ccm_create_liked_cnt": int,
        "ccm_create_liked_cnt_rank": int,
        "ccm_edit_comment_fcnt_2": List[AnnualReportMapInt],
        "ccm_edit_comment_fcnt_rank": int,
        "ccm_view_other_fcnt": int,
        "ccm_view_other_fcnt_rank": int,
        "vc_sent_meeting_cnt_2": List[AnnualReportMapInt],
        "vc_sent_meeting_cnt_rank": int,
        "vc_sent_meeting_ucnt": int,
        "vc_join_meeting_cnt_2": List[AnnualReportMapInt],
        "vc_join_meeting_cnt_rank": int,
        "vc_all_meeting_cnt": int,
        "vc_all_meeting_cnt_rank": int,
        "vc_all_meeting_duration_2": List[AnnualReportMapFloat],
        "cal_comment_cal_time": str,
        "people_profile_view_cnt": int,
        "people_interview_num_2": List[AnnualReportMapInt],
        "people_interview_num_rank": int,
        "people_interview_offer_num_2": List[AnnualReportMapInt],
        "people_interview_offer_num_rank": int,
        "email_send_email_count": int,
        "email_receive_email_count": int,
    }

    def __init__(self, d=None):
        self.user_id: Optional[str] = None
        self.tenant_all_cnt: Optional[int] = None
        self.user_register_date: Optional[str] = None
        self.all_day_cnt: Optional[int] = None
        self.active_day_cnt: Optional[int] = None
        self.duration_cnt_2: Optional[List[AnnualReportMapFloat]] = None
        self.duration_cnt_rank: Optional[int] = None
        self.busy_month: Optional[str] = None
        self.busy_month_sum_duration: Optional[float] = None
        self.busy_month_send_msg_cnt: Optional[int] = None
        self.busy_month_meeting_cnt: Optional[int] = None
        self.busy_month_last_meeting_time: Optional[str] = None
        self.busy_month_create_edit_file_cnt: Optional[int] = None
        self.im_send_msg_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.im_send_msg_cnt_rank: Optional[int] = None
        self.im_busy_date: Optional[str] = None
        self.im_busy_date_send_msg_cnt: Optional[int] = None
        self.im_last_send_msg_time: Optional[str] = None
        self.im_talked_chat_cnt: Optional[int] = None
        self.im_private_chat_cnt: Optional[int] = None
        self.im_emoji_top1: Optional[str] = None
        self.im_emoji_top1_cnt: Optional[int] = None
        self.im_emoji_top2: Optional[str] = None
        self.im_emoji_top2_cnt: Optional[int] = None
        self.im_emoji_top3: Optional[str] = None
        self.im_emoji_top3_cnt: Optional[int] = None
        self.im_positive_reaction_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.im_positive_reaction_cnt_rank: Optional[int] = None
        self.ccm_create_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.ccm_create_cnt_rank: Optional[int] = None
        self.ccm_create_busy_month: Optional[str] = None
        self.ccm_create_busy_month_cnt: Optional[int] = None
        self.ccm_create_viewed_ucnt: Optional[int] = None
        self.ccm_create_liked_cnt: Optional[int] = None
        self.ccm_create_liked_cnt_rank: Optional[int] = None
        self.ccm_edit_comment_fcnt_2: Optional[List[AnnualReportMapInt]] = None
        self.ccm_edit_comment_fcnt_rank: Optional[int] = None
        self.ccm_view_other_fcnt: Optional[int] = None
        self.ccm_view_other_fcnt_rank: Optional[int] = None
        self.vc_sent_meeting_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.vc_sent_meeting_cnt_rank: Optional[int] = None
        self.vc_sent_meeting_ucnt: Optional[int] = None
        self.vc_join_meeting_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.vc_join_meeting_cnt_rank: Optional[int] = None
        self.vc_all_meeting_cnt: Optional[int] = None
        self.vc_all_meeting_cnt_rank: Optional[int] = None
        self.vc_all_meeting_duration_2: Optional[List[AnnualReportMapFloat]] = None
        self.cal_comment_cal_time: Optional[str] = None
        self.people_profile_view_cnt: Optional[int] = None
        self.people_interview_num_2: Optional[List[AnnualReportMapInt]] = None
        self.people_interview_num_rank: Optional[int] = None
        self.people_interview_offer_num_2: Optional[List[AnnualReportMapInt]] = None
        self.people_interview_offer_num_rank: Optional[int] = None
        self.email_send_email_count: Optional[int] = None
        self.email_receive_email_count: Optional[int] = None
        init(self, d, self._types)

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


class UserReport2023Builder(object):
    def __init__(self) -> None:
        self._user_report2023 = UserReport2023()

    def user_id(self, user_id: str) -> "UserReport2023Builder":
        self._user_report2023.user_id = user_id
        return self

    def tenant_all_cnt(self, tenant_all_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.tenant_all_cnt = tenant_all_cnt
        return self

    def user_register_date(self, user_register_date: str) -> "UserReport2023Builder":
        self._user_report2023.user_register_date = user_register_date
        return self

    def all_day_cnt(self, all_day_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.all_day_cnt = all_day_cnt
        return self

    def active_day_cnt(self, active_day_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.active_day_cnt = active_day_cnt
        return self

    def duration_cnt_2(self, duration_cnt_2: List[AnnualReportMapFloat]) -> "UserReport2023Builder":
        self._user_report2023.duration_cnt_2 = duration_cnt_2
        return self

    def duration_cnt_rank(self, duration_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.duration_cnt_rank = duration_cnt_rank
        return self

    def busy_month(self, busy_month: str) -> "UserReport2023Builder":
        self._user_report2023.busy_month = busy_month
        return self

    def busy_month_sum_duration(self, busy_month_sum_duration: float) -> "UserReport2023Builder":
        self._user_report2023.busy_month_sum_duration = busy_month_sum_duration
        return self

    def busy_month_send_msg_cnt(self, busy_month_send_msg_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.busy_month_send_msg_cnt = busy_month_send_msg_cnt
        return self

    def busy_month_meeting_cnt(self, busy_month_meeting_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.busy_month_meeting_cnt = busy_month_meeting_cnt
        return self

    def busy_month_last_meeting_time(self, busy_month_last_meeting_time: str) -> "UserReport2023Builder":
        self._user_report2023.busy_month_last_meeting_time = busy_month_last_meeting_time
        return self

    def busy_month_create_edit_file_cnt(self, busy_month_create_edit_file_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.busy_month_create_edit_file_cnt = busy_month_create_edit_file_cnt
        return self

    def im_send_msg_cnt_2(self, im_send_msg_cnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.im_send_msg_cnt_2 = im_send_msg_cnt_2
        return self

    def im_send_msg_cnt_rank(self, im_send_msg_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.im_send_msg_cnt_rank = im_send_msg_cnt_rank
        return self

    def im_busy_date(self, im_busy_date: str) -> "UserReport2023Builder":
        self._user_report2023.im_busy_date = im_busy_date
        return self

    def im_busy_date_send_msg_cnt(self, im_busy_date_send_msg_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_busy_date_send_msg_cnt = im_busy_date_send_msg_cnt
        return self

    def im_last_send_msg_time(self, im_last_send_msg_time: str) -> "UserReport2023Builder":
        self._user_report2023.im_last_send_msg_time = im_last_send_msg_time
        return self

    def im_talked_chat_cnt(self, im_talked_chat_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_talked_chat_cnt = im_talked_chat_cnt
        return self

    def im_private_chat_cnt(self, im_private_chat_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_private_chat_cnt = im_private_chat_cnt
        return self

    def im_emoji_top1(self, im_emoji_top1: str) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top1 = im_emoji_top1
        return self

    def im_emoji_top1_cnt(self, im_emoji_top1_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top1_cnt = im_emoji_top1_cnt
        return self

    def im_emoji_top2(self, im_emoji_top2: str) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top2 = im_emoji_top2
        return self

    def im_emoji_top2_cnt(self, im_emoji_top2_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top2_cnt = im_emoji_top2_cnt
        return self

    def im_emoji_top3(self, im_emoji_top3: str) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top3 = im_emoji_top3
        return self

    def im_emoji_top3_cnt(self, im_emoji_top3_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.im_emoji_top3_cnt = im_emoji_top3_cnt
        return self

    def im_positive_reaction_cnt_2(self,
                                   im_positive_reaction_cnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.im_positive_reaction_cnt_2 = im_positive_reaction_cnt_2
        return self

    def im_positive_reaction_cnt_rank(self, im_positive_reaction_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.im_positive_reaction_cnt_rank = im_positive_reaction_cnt_rank
        return self

    def ccm_create_cnt_2(self, ccm_create_cnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_cnt_2 = ccm_create_cnt_2
        return self

    def ccm_create_cnt_rank(self, ccm_create_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_cnt_rank = ccm_create_cnt_rank
        return self

    def ccm_create_busy_month(self, ccm_create_busy_month: str) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_busy_month = ccm_create_busy_month
        return self

    def ccm_create_busy_month_cnt(self, ccm_create_busy_month_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_busy_month_cnt = ccm_create_busy_month_cnt
        return self

    def ccm_create_viewed_ucnt(self, ccm_create_viewed_ucnt: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_viewed_ucnt = ccm_create_viewed_ucnt
        return self

    def ccm_create_liked_cnt(self, ccm_create_liked_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_liked_cnt = ccm_create_liked_cnt
        return self

    def ccm_create_liked_cnt_rank(self, ccm_create_liked_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_create_liked_cnt_rank = ccm_create_liked_cnt_rank
        return self

    def ccm_edit_comment_fcnt_2(self, ccm_edit_comment_fcnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.ccm_edit_comment_fcnt_2 = ccm_edit_comment_fcnt_2
        return self

    def ccm_edit_comment_fcnt_rank(self, ccm_edit_comment_fcnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_edit_comment_fcnt_rank = ccm_edit_comment_fcnt_rank
        return self

    def ccm_view_other_fcnt(self, ccm_view_other_fcnt: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_view_other_fcnt = ccm_view_other_fcnt
        return self

    def ccm_view_other_fcnt_rank(self, ccm_view_other_fcnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.ccm_view_other_fcnt_rank = ccm_view_other_fcnt_rank
        return self

    def vc_sent_meeting_cnt_2(self, vc_sent_meeting_cnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.vc_sent_meeting_cnt_2 = vc_sent_meeting_cnt_2
        return self

    def vc_sent_meeting_cnt_rank(self, vc_sent_meeting_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.vc_sent_meeting_cnt_rank = vc_sent_meeting_cnt_rank
        return self

    def vc_sent_meeting_ucnt(self, vc_sent_meeting_ucnt: int) -> "UserReport2023Builder":
        self._user_report2023.vc_sent_meeting_ucnt = vc_sent_meeting_ucnt
        return self

    def vc_join_meeting_cnt_2(self, vc_join_meeting_cnt_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.vc_join_meeting_cnt_2 = vc_join_meeting_cnt_2
        return self

    def vc_join_meeting_cnt_rank(self, vc_join_meeting_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.vc_join_meeting_cnt_rank = vc_join_meeting_cnt_rank
        return self

    def vc_all_meeting_cnt(self, vc_all_meeting_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.vc_all_meeting_cnt = vc_all_meeting_cnt
        return self

    def vc_all_meeting_cnt_rank(self, vc_all_meeting_cnt_rank: int) -> "UserReport2023Builder":
        self._user_report2023.vc_all_meeting_cnt_rank = vc_all_meeting_cnt_rank
        return self

    def vc_all_meeting_duration_2(self,
                                  vc_all_meeting_duration_2: List[AnnualReportMapFloat]) -> "UserReport2023Builder":
        self._user_report2023.vc_all_meeting_duration_2 = vc_all_meeting_duration_2
        return self

    def cal_comment_cal_time(self, cal_comment_cal_time: str) -> "UserReport2023Builder":
        self._user_report2023.cal_comment_cal_time = cal_comment_cal_time
        return self

    def people_profile_view_cnt(self, people_profile_view_cnt: int) -> "UserReport2023Builder":
        self._user_report2023.people_profile_view_cnt = people_profile_view_cnt
        return self

    def people_interview_num_2(self, people_interview_num_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.people_interview_num_2 = people_interview_num_2
        return self

    def people_interview_num_rank(self, people_interview_num_rank: int) -> "UserReport2023Builder":
        self._user_report2023.people_interview_num_rank = people_interview_num_rank
        return self

    def people_interview_offer_num_2(self,
                                     people_interview_offer_num_2: List[AnnualReportMapInt]) -> "UserReport2023Builder":
        self._user_report2023.people_interview_offer_num_2 = people_interview_offer_num_2
        return self

    def people_interview_offer_num_rank(self, people_interview_offer_num_rank: int) -> "UserReport2023Builder":
        self._user_report2023.people_interview_offer_num_rank = people_interview_offer_num_rank
        return self

    def email_send_email_count(self, email_send_email_count: int) -> "UserReport2023Builder":
        self._user_report2023.email_send_email_count = email_send_email_count
        return self

    def email_receive_email_count(self, email_receive_email_count: int) -> "UserReport2023Builder":
        self._user_report2023.email_receive_email_count = email_receive_email_count
        return self

    def build(self) -> "UserReport2023":
        return self._user_report2023
