# 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 .i18n_text import I18nText


class DepartmentField(object):
    _types = {
        "ids": List[str],
        "path": Dict[str, List[str]],
        "path_name": Dict[str, I18nText],
    }

    def __init__(self, d=None):
        self.ids: Optional[List[str]] = None
        self.path: Optional[Dict[str, List[str]]] = None
        self.path_name: Optional[Dict[str, I18nText]] = None
        init(self, d, self._types)

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


class DepartmentFieldBuilder(object):
    def __init__(self) -> None:
        self._department_field = DepartmentField()

    def ids(self, ids: List[str]) -> "DepartmentFieldBuilder":
        self._department_field.ids = ids
        return self

    def path(self, path: Dict[str, List[str]]) -> "DepartmentFieldBuilder":
        self._department_field.path = path
        return self

    def path_name(self, path_name: Dict[str, I18nText]) -> "DepartmentFieldBuilder":
        self._department_field.path_name = path_name
        return self

    def build(self) -> "DepartmentField":
        return self._department_field
