# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.model import BaseRequest
from lark_oapi.core.enum import HttpMethod, AccessTokenType


class ListInterviewerRequest(BaseRequest):
    def __init__(self) -> None:
        super().__init__()
        self.page_size: Optional[int] = None
        self.page_token: Optional[str] = None
        self.user_ids: Optional[List[str]] = None
        self.verify_status: Optional[int] = None
        self.earliest_update_time: Optional[str] = None
        self.latest_update_time: Optional[str] = None
        self.user_id_type: Optional[str] = None

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


class ListInterviewerRequestBuilder(object):

    def __init__(self) -> None:
        list_interviewer_request = ListInterviewerRequest()
        list_interviewer_request.http_method = HttpMethod.GET
        list_interviewer_request.uri = "/open-apis/hire/v1/interviewers"
        list_interviewer_request.token_types = {AccessTokenType.TENANT}
        self._list_interviewer_request: ListInterviewerRequest = list_interviewer_request

    def page_size(self, page_size: int) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.page_size = page_size
        self._list_interviewer_request.add_query("page_size", page_size)
        return self

    def page_token(self, page_token: str) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.page_token = page_token
        self._list_interviewer_request.add_query("page_token", page_token)
        return self

    def user_ids(self, user_ids: List[str]) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.user_ids = user_ids
        self._list_interviewer_request.add_query("user_ids", user_ids)
        return self

    def verify_status(self, verify_status: int) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.verify_status = verify_status
        self._list_interviewer_request.add_query("verify_status", verify_status)
        return self

    def earliest_update_time(self, earliest_update_time: str) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.earliest_update_time = earliest_update_time
        self._list_interviewer_request.add_query("earliest_update_time", earliest_update_time)
        return self

    def latest_update_time(self, latest_update_time: str) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.latest_update_time = latest_update_time
        self._list_interviewer_request.add_query("latest_update_time", latest_update_time)
        return self

    def user_id_type(self, user_id_type: str) -> "ListInterviewerRequestBuilder":
        self._list_interviewer_request.user_id_type = user_id_type
        self._list_interviewer_request.add_query("user_id_type", user_id_type)
        return self

    def build(self) -> ListInterviewerRequest:
        return self._list_interviewer_request
