from enum import Enum

import typing_extensions

class RequestMethod(str, Enum):
    GET = "GET"
    POST = "POST"
    PUT = "PUT"
    DELETE = "DELETE"

class StatusEndpoints(Enum):
    HEALTH = ...

class TranslateEndpoints(Enum):
    TRANSLATE_TEXT = ...
    TRANSLATE_FILE = ...

class WebEndpoints(Enum):
    SEARCH = ...

class FileEndpoints(Enum):
    PARSER = ...
    INDEX_CREATE = ...
    INDEX_ADD_FILES = ...
    INDEX_RESTORE = ...
    INDEX_RENAME = ...
    INDEX_DELETE_FILES = ...
    INDEX_DELETE = ...
    INDEX_ASK = ...
    INDEX_EMBED = ...
    INDEX_LIST = ...
    INDEX_DETAILS = ...

class FileTagsEndpoints(Enum):
    INDEX_GET_TAGS = ...
    INDEX_UPDATE_TAGS = ...
    INDEX_UPDATE_FILE_TAGS = ...

class LlmEndpoints(Enum):
    CHAT = ...
    CHAT_STREAM = ...
    CHAT_BETA = ...
    EMBED = ...

class Endpoints:
    STATUS = StatusEndpoints
    WEB = WebEndpoints
    TRANSLATE = TranslateEndpoints
    FILES = FileEndpoints
    FILES_TAGS = FileTagsEndpoints
    LLM = LlmEndpoints

DelosEndpoints: typing_extensions.TypeAlias = (
    StatusEndpoints | WebEndpoints | TranslateEndpoints | FileEndpoints | FileTagsEndpoints | LlmEndpoints
)
