# Code generated by Lark OpenAPI.

from typing import Optional

from lark_oapi.core.construct import init


class UserReport2021(object):
    _types = {
        "active_day_count": int,
        "busy_week": str,
        "p2p_chat_count": str,
        "talked_chat_count": str,
        "favorite_emoji": str,
        "reaction_count": str,
        "conference_create_count": str,
        "total_parti_count": str,
        "minutes_object_count": str,
        "minutes_duration": float,
        "create_edit_file_count": str,
        "create_file_count": str,
        "cooperate_edit_file_count": str,
        "like_record_count": str,
        "okr_cum_o_count": str,
        "okr_cum_kr_count": str,
        "okr_aligned_user_rankfirst": str,
        "approval_start_count": str,
        "approval_execute_count": str,
        "approval_relation_user_rankfirst": str,
        "user_id": str,
        "busy_week_sum_duration": str,
        "busy_week_mdate": str,
        "busy_week_act_days": int,
        "create_read_user_count": str,
    }

    def __init__(self, d=None):
        self.active_day_count: Optional[int] = None
        self.busy_week: Optional[str] = None
        self.p2p_chat_count: Optional[str] = None
        self.talked_chat_count: Optional[str] = None
        self.favorite_emoji: Optional[str] = None
        self.reaction_count: Optional[str] = None
        self.conference_create_count: Optional[str] = None
        self.total_parti_count: Optional[str] = None
        self.minutes_object_count: Optional[str] = None
        self.minutes_duration: Optional[float] = None
        self.create_edit_file_count: Optional[str] = None
        self.create_file_count: Optional[str] = None
        self.cooperate_edit_file_count: Optional[str] = None
        self.like_record_count: Optional[str] = None
        self.okr_cum_o_count: Optional[str] = None
        self.okr_cum_kr_count: Optional[str] = None
        self.okr_aligned_user_rankfirst: Optional[str] = None
        self.approval_start_count: Optional[str] = None
        self.approval_execute_count: Optional[str] = None
        self.approval_relation_user_rankfirst: Optional[str] = None
        self.user_id: Optional[str] = None
        self.busy_week_sum_duration: Optional[str] = None
        self.busy_week_mdate: Optional[str] = None
        self.busy_week_act_days: Optional[int] = None
        self.create_read_user_count: Optional[str] = None
        init(self, d, self._types)

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


class UserReport2021Builder(object):
    def __init__(self) -> None:
        self._user_report2021 = UserReport2021()

    def active_day_count(self, active_day_count: int) -> "UserReport2021Builder":
        self._user_report2021.active_day_count = active_day_count
        return self

    def busy_week(self, busy_week: str) -> "UserReport2021Builder":
        self._user_report2021.busy_week = busy_week
        return self

    def p2p_chat_count(self, p2p_chat_count: str) -> "UserReport2021Builder":
        self._user_report2021.p2p_chat_count = p2p_chat_count
        return self

    def talked_chat_count(self, talked_chat_count: str) -> "UserReport2021Builder":
        self._user_report2021.talked_chat_count = talked_chat_count
        return self

    def favorite_emoji(self, favorite_emoji: str) -> "UserReport2021Builder":
        self._user_report2021.favorite_emoji = favorite_emoji
        return self

    def reaction_count(self, reaction_count: str) -> "UserReport2021Builder":
        self._user_report2021.reaction_count = reaction_count
        return self

    def conference_create_count(self, conference_create_count: str) -> "UserReport2021Builder":
        self._user_report2021.conference_create_count = conference_create_count
        return self

    def total_parti_count(self, total_parti_count: str) -> "UserReport2021Builder":
        self._user_report2021.total_parti_count = total_parti_count
        return self

    def minutes_object_count(self, minutes_object_count: str) -> "UserReport2021Builder":
        self._user_report2021.minutes_object_count = minutes_object_count
        return self

    def minutes_duration(self, minutes_duration: float) -> "UserReport2021Builder":
        self._user_report2021.minutes_duration = minutes_duration
        return self

    def create_edit_file_count(self, create_edit_file_count: str) -> "UserReport2021Builder":
        self._user_report2021.create_edit_file_count = create_edit_file_count
        return self

    def create_file_count(self, create_file_count: str) -> "UserReport2021Builder":
        self._user_report2021.create_file_count = create_file_count
        return self

    def cooperate_edit_file_count(self, cooperate_edit_file_count: str) -> "UserReport2021Builder":
        self._user_report2021.cooperate_edit_file_count = cooperate_edit_file_count
        return self

    def like_record_count(self, like_record_count: str) -> "UserReport2021Builder":
        self._user_report2021.like_record_count = like_record_count
        return self

    def okr_cum_o_count(self, okr_cum_o_count: str) -> "UserReport2021Builder":
        self._user_report2021.okr_cum_o_count = okr_cum_o_count
        return self

    def okr_cum_kr_count(self, okr_cum_kr_count: str) -> "UserReport2021Builder":
        self._user_report2021.okr_cum_kr_count = okr_cum_kr_count
        return self

    def okr_aligned_user_rankfirst(self, okr_aligned_user_rankfirst: str) -> "UserReport2021Builder":
        self._user_report2021.okr_aligned_user_rankfirst = okr_aligned_user_rankfirst
        return self

    def approval_start_count(self, approval_start_count: str) -> "UserReport2021Builder":
        self._user_report2021.approval_start_count = approval_start_count
        return self

    def approval_execute_count(self, approval_execute_count: str) -> "UserReport2021Builder":
        self._user_report2021.approval_execute_count = approval_execute_count
        return self

    def approval_relation_user_rankfirst(self, approval_relation_user_rankfirst: str) -> "UserReport2021Builder":
        self._user_report2021.approval_relation_user_rankfirst = approval_relation_user_rankfirst
        return self

    def user_id(self, user_id: str) -> "UserReport2021Builder":
        self._user_report2021.user_id = user_id
        return self

    def busy_week_sum_duration(self, busy_week_sum_duration: str) -> "UserReport2021Builder":
        self._user_report2021.busy_week_sum_duration = busy_week_sum_duration
        return self

    def busy_week_mdate(self, busy_week_mdate: str) -> "UserReport2021Builder":
        self._user_report2021.busy_week_mdate = busy_week_mdate
        return self

    def busy_week_act_days(self, busy_week_act_days: int) -> "UserReport2021Builder":
        self._user_report2021.busy_week_act_days = busy_week_act_days
        return self

    def create_read_user_count(self, create_read_user_count: str) -> "UserReport2021Builder":
        self._user_report2021.create_read_user_count = create_read_user_count
        return self

    def build(self) -> "UserReport2021":
        return self._user_report2021
