# 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 AnnualBaseTopAi(object):
    _types = {
        "name_cn": str,
        "name_en": str,
        "name_cn_list": str,
        "name_en_list": str,
    }

    def __init__(self, d=None):
        self.name_cn: Optional[str] = None
        self.name_en: Optional[str] = None
        self.name_cn_list: Optional[str] = None
        self.name_en_list: Optional[str] = None
        init(self, d, self._types)

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


class AnnualBaseTopAiBuilder(object):
    def __init__(self) -> None:
        self._annual_base_top_ai = AnnualBaseTopAi()

    def name_cn(self, name_cn: str) -> "AnnualBaseTopAiBuilder":
        self._annual_base_top_ai.name_cn = name_cn
        return self

    def name_en(self, name_en: str) -> "AnnualBaseTopAiBuilder":
        self._annual_base_top_ai.name_en = name_en
        return self

    def name_cn_list(self, name_cn_list: str) -> "AnnualBaseTopAiBuilder":
        self._annual_base_top_ai.name_cn_list = name_cn_list
        return self

    def name_en_list(self, name_en_list: str) -> "AnnualBaseTopAiBuilder":
        self._annual_base_top_ai.name_en_list = name_en_list
        return self

    def build(self) -> "AnnualBaseTopAi":
        return self._annual_base_top_ai
