# 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_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_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


class UserReport2024(object):
    _types = {
        "user_id": str,
        "tenant_all_cnt": int,
        "user_register_date": str,
        "feishu_day_cnt": int,
        "duration_cnt_2": List[AnnualReportMapFloat],
        "im_send_msg_cnt_2": List[AnnualReportMapInt],
        "avg_im_send_msg_cnt_2": List[AnnualReportMapFloat],
        "im_talked_chat_cnt": int,
        "im_private_chat_cnt": int,
        "im_emoji_top1": str,
        "im_emoji_top1_cnt_2": List[AnnualReportMapInt],
        "im_emoji_top2": str,
        "im_emoji_top2_cnt_2": List[AnnualReportMapInt],
        "im_emoji_top3": str,
        "im_emoji_top3_cnt_2": List[AnnualReportMapInt],
        "im_positive_reaction_cnt_2": List[AnnualReportMapInt],
        "im_positive_reaction_cnt_rank": int,
        "im_positive_reaction_cnt_denominator": int,
        "busy_day": str,
        "busy_day_send_msg_cnt": int,
        "ccm_create_cnt_2": List[AnnualReportMapInt],
        "ccm_create_viewed_ucnt": int,
        "ccm_create_liked_cnt": int,
        "ccm_create_liked_max_cnt": int,
        "vc_join_meeting_cnt": int,
        "vc_all_meeting_duration_2": List[AnnualReportMapFloat],
        "vc_join_meeting_all_user_cnt": int,
        "vc_last_meeting_time": str,
        "base_create_fcnt_2": List[AnnualReportMapInt],
        "base_view_fcnt": int,
        "base_create_dashboard_cnt": int,
        "base_create_dashboard_rank": int,
        "base_create_dashboard_rank_ucnt": int,
        "base_create_chat_cnt": int,
        "base_workflow_ins_cnt": int,
        "base_workflow_ins_rank": int,
        "base_workflow_ins_rank_ucnt": int,
        "vc_all_read_notes_cnt": int,
        "meego_role_wi_cnt_v2": List[AnnualReportMapInt],
        "meego_common_wi_ucnt": int,
        "meego_workflow_wi_cnt": int,
        "people_interview_num_2": List[AnnualReportMapInt],
        "people_interview_num_rank": int,
        "people_interview_num_rank_ucnt": int,
        "people_interview_offer_num_2": List[AnnualReportMapInt],
    }

    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.feishu_day_cnt: Optional[int] = None
        self.duration_cnt_2: Optional[List[AnnualReportMapFloat]] = None
        self.im_send_msg_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.avg_im_send_msg_cnt_2: Optional[List[AnnualReportMapFloat]] = 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_2: Optional[List[AnnualReportMapInt]] = None
        self.im_emoji_top2: Optional[str] = None
        self.im_emoji_top2_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.im_emoji_top3: Optional[str] = None
        self.im_emoji_top3_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.im_positive_reaction_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.im_positive_reaction_cnt_rank: Optional[int] = None
        self.im_positive_reaction_cnt_denominator: Optional[int] = None
        self.busy_day: Optional[str] = None
        self.busy_day_send_msg_cnt: Optional[int] = None
        self.ccm_create_cnt_2: Optional[List[AnnualReportMapInt]] = None
        self.ccm_create_viewed_ucnt: Optional[int] = None
        self.ccm_create_liked_cnt: Optional[int] = None
        self.ccm_create_liked_max_cnt: Optional[int] = None
        self.vc_join_meeting_cnt: Optional[int] = None
        self.vc_all_meeting_duration_2: Optional[List[AnnualReportMapFloat]] = None
        self.vc_join_meeting_all_user_cnt: Optional[int] = None
        self.vc_last_meeting_time: Optional[str] = None
        self.base_create_fcnt_2: Optional[List[AnnualReportMapInt]] = None
        self.base_view_fcnt: Optional[int] = None
        self.base_create_dashboard_cnt: Optional[int] = None
        self.base_create_dashboard_rank: Optional[int] = None
        self.base_create_dashboard_rank_ucnt: Optional[int] = None
        self.base_create_chat_cnt: Optional[int] = None
        self.base_workflow_ins_cnt: Optional[int] = None
        self.base_workflow_ins_rank: Optional[int] = None
        self.base_workflow_ins_rank_ucnt: Optional[int] = None
        self.vc_all_read_notes_cnt: Optional[int] = None
        self.meego_role_wi_cnt_v2: Optional[List[AnnualReportMapInt]] = None
        self.meego_common_wi_ucnt: Optional[int] = None
        self.meego_workflow_wi_cnt: Optional[int] = None
        self.people_interview_num_2: Optional[List[AnnualReportMapInt]] = None
        self.people_interview_num_rank: Optional[int] = None
        self.people_interview_num_rank_ucnt: Optional[int] = None
        self.people_interview_offer_num_2: Optional[List[AnnualReportMapInt]] = None
        init(self, d, self._types)

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


class UserReport2024Builder(object):
    def __init__(self) -> None:
        self._user_report2024 = UserReport2024()

    def user_id(self, user_id: str) -> "UserReport2024Builder":
        self._user_report2024.user_id = user_id
        return self

    def tenant_all_cnt(self, tenant_all_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.tenant_all_cnt = tenant_all_cnt
        return self

    def user_register_date(self, user_register_date: str) -> "UserReport2024Builder":
        self._user_report2024.user_register_date = user_register_date
        return self

    def feishu_day_cnt(self, feishu_day_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.feishu_day_cnt = feishu_day_cnt
        return self

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

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

    def avg_im_send_msg_cnt_2(self, avg_im_send_msg_cnt_2: List[AnnualReportMapFloat]) -> "UserReport2024Builder":
        self._user_report2024.avg_im_send_msg_cnt_2 = avg_im_send_msg_cnt_2
        return self

    def im_talked_chat_cnt(self, im_talked_chat_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.im_talked_chat_cnt = im_talked_chat_cnt
        return self

    def im_private_chat_cnt(self, im_private_chat_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.im_private_chat_cnt = im_private_chat_cnt
        return self

    def im_emoji_top1(self, im_emoji_top1: str) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top1 = im_emoji_top1
        return self

    def im_emoji_top1_cnt_2(self, im_emoji_top1_cnt_2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top1_cnt_2 = im_emoji_top1_cnt_2
        return self

    def im_emoji_top2(self, im_emoji_top2: str) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top2 = im_emoji_top2
        return self

    def im_emoji_top2_cnt_2(self, im_emoji_top2_cnt_2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top2_cnt_2 = im_emoji_top2_cnt_2
        return self

    def im_emoji_top3(self, im_emoji_top3: str) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top3 = im_emoji_top3
        return self

    def im_emoji_top3_cnt_2(self, im_emoji_top3_cnt_2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.im_emoji_top3_cnt_2 = im_emoji_top3_cnt_2
        return self

    def im_positive_reaction_cnt_2(self,
                                   im_positive_reaction_cnt_2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.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) -> "UserReport2024Builder":
        self._user_report2024.im_positive_reaction_cnt_rank = im_positive_reaction_cnt_rank
        return self

    def im_positive_reaction_cnt_denominator(self,
                                             im_positive_reaction_cnt_denominator: int) -> "UserReport2024Builder":
        self._user_report2024.im_positive_reaction_cnt_denominator = im_positive_reaction_cnt_denominator
        return self

    def busy_day(self, busy_day: str) -> "UserReport2024Builder":
        self._user_report2024.busy_day = busy_day
        return self

    def busy_day_send_msg_cnt(self, busy_day_send_msg_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.busy_day_send_msg_cnt = busy_day_send_msg_cnt
        return self

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

    def ccm_create_viewed_ucnt(self, ccm_create_viewed_ucnt: int) -> "UserReport2024Builder":
        self._user_report2024.ccm_create_viewed_ucnt = ccm_create_viewed_ucnt
        return self

    def ccm_create_liked_cnt(self, ccm_create_liked_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.ccm_create_liked_cnt = ccm_create_liked_cnt
        return self

    def ccm_create_liked_max_cnt(self, ccm_create_liked_max_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.ccm_create_liked_max_cnt = ccm_create_liked_max_cnt
        return self

    def vc_join_meeting_cnt(self, vc_join_meeting_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.vc_join_meeting_cnt = vc_join_meeting_cnt
        return self

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

    def vc_join_meeting_all_user_cnt(self, vc_join_meeting_all_user_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.vc_join_meeting_all_user_cnt = vc_join_meeting_all_user_cnt
        return self

    def vc_last_meeting_time(self, vc_last_meeting_time: str) -> "UserReport2024Builder":
        self._user_report2024.vc_last_meeting_time = vc_last_meeting_time
        return self

    def base_create_fcnt_2(self, base_create_fcnt_2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.base_create_fcnt_2 = base_create_fcnt_2
        return self

    def base_view_fcnt(self, base_view_fcnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_view_fcnt = base_view_fcnt
        return self

    def base_create_dashboard_cnt(self, base_create_dashboard_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_create_dashboard_cnt = base_create_dashboard_cnt
        return self

    def base_create_dashboard_rank(self, base_create_dashboard_rank: int) -> "UserReport2024Builder":
        self._user_report2024.base_create_dashboard_rank = base_create_dashboard_rank
        return self

    def base_create_dashboard_rank_ucnt(self, base_create_dashboard_rank_ucnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_create_dashboard_rank_ucnt = base_create_dashboard_rank_ucnt
        return self

    def base_create_chat_cnt(self, base_create_chat_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_create_chat_cnt = base_create_chat_cnt
        return self

    def base_workflow_ins_cnt(self, base_workflow_ins_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_workflow_ins_cnt = base_workflow_ins_cnt
        return self

    def base_workflow_ins_rank(self, base_workflow_ins_rank: int) -> "UserReport2024Builder":
        self._user_report2024.base_workflow_ins_rank = base_workflow_ins_rank
        return self

    def base_workflow_ins_rank_ucnt(self, base_workflow_ins_rank_ucnt: int) -> "UserReport2024Builder":
        self._user_report2024.base_workflow_ins_rank_ucnt = base_workflow_ins_rank_ucnt
        return self

    def vc_all_read_notes_cnt(self, vc_all_read_notes_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.vc_all_read_notes_cnt = vc_all_read_notes_cnt
        return self

    def meego_role_wi_cnt_v2(self, meego_role_wi_cnt_v2: List[AnnualReportMapInt]) -> "UserReport2024Builder":
        self._user_report2024.meego_role_wi_cnt_v2 = meego_role_wi_cnt_v2
        return self

    def meego_common_wi_ucnt(self, meego_common_wi_ucnt: int) -> "UserReport2024Builder":
        self._user_report2024.meego_common_wi_ucnt = meego_common_wi_ucnt
        return self

    def meego_workflow_wi_cnt(self, meego_workflow_wi_cnt: int) -> "UserReport2024Builder":
        self._user_report2024.meego_workflow_wi_cnt = meego_workflow_wi_cnt
        return self

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

    def people_interview_num_rank(self, people_interview_num_rank: int) -> "UserReport2024Builder":
        self._user_report2024.people_interview_num_rank = people_interview_num_rank
        return self

    def people_interview_num_rank_ucnt(self, people_interview_num_rank_ucnt: int) -> "UserReport2024Builder":
        self._user_report2024.people_interview_num_rank_ucnt = people_interview_num_rank_ucnt
        return self

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

    def build(self) -> "UserReport2024":
        return self._user_report2024
