# 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 .icon import Icon


class ExtInfo(object):
    _types = {
        "sub_type": str,
        "version": str,
        "bg_image": str,
        "title_color": str,
        "ga_chat_id": str,
        "modified_time": str,
        "icon": Icon,
        "is_copying": bool,
    }

    def __init__(self, d=None):
        self.sub_type: Optional[str] = None
        self.version: Optional[str] = None
        self.bg_image: Optional[str] = None
        self.title_color: Optional[str] = None
        self.ga_chat_id: Optional[str] = None
        self.modified_time: Optional[str] = None
        self.icon: Optional[Icon] = None
        self.is_copying: Optional[bool] = None
        init(self, d, self._types)

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


class ExtInfoBuilder(object):
    def __init__(self) -> None:
        self._ext_info = ExtInfo()

    def sub_type(self, sub_type: str) -> "ExtInfoBuilder":
        self._ext_info.sub_type = sub_type
        return self

    def version(self, version: str) -> "ExtInfoBuilder":
        self._ext_info.version = version
        return self

    def bg_image(self, bg_image: str) -> "ExtInfoBuilder":
        self._ext_info.bg_image = bg_image
        return self

    def title_color(self, title_color: str) -> "ExtInfoBuilder":
        self._ext_info.title_color = title_color
        return self

    def ga_chat_id(self, ga_chat_id: str) -> "ExtInfoBuilder":
        self._ext_info.ga_chat_id = ga_chat_id
        return self

    def modified_time(self, modified_time: str) -> "ExtInfoBuilder":
        self._ext_info.modified_time = modified_time
        return self

    def icon(self, icon: Icon) -> "ExtInfoBuilder":
        self._ext_info.icon = icon
        return self

    def is_copying(self, is_copying: bool) -> "ExtInfoBuilder":
        self._ext_info.is_copying = is_copying
        return self

    def build(self) -> "ExtInfo":
        return self._ext_info
