from enum import IntEnum
from typing import Final


class HttpStatusCode(IntEnum):
    """Allowed HTTP status codes for AlpineBits responses."""

    OK = 200
    BAD_REQUEST = 400
    UNAUTHORIZED = 401
    INTERNAL_SERVER_ERROR = 500


RESERVATION_ID_TYPE: str = (
    "13"  # Default reservation ID type for Reservation. 14 would be cancellation
)


CONF_LOGGING: Final[str] = "logger"

CONF_LOGGING_LEVEL: Final[str] = "level"
CONF_LOGGING_FILE: Final[str] = "file"


CONF_DATABASE: Final[str] = "database"


CONF_SERVER: Final[str] = "server"
CONF_SERVER_CODECONTEXT: Final[str] = "codecontext"
CONF_SERVER_CODE: Final[str] = "code"
CONF_SERVER_COMPANYNAME: Final[str] = "companyname"
CONF_SERVER_RES_ID_SOURCE_CONTEXT: Final[str] = "res_id_source_context"


CONF_ALPINE_BITS_AUTH: Final[str] = "alpine_bits_auth"
CONF_HOTEL_ID: Final[str] = "hotel_id"
CONF_HOTEL_NAME: Final[str] = "hotel_name"
CONF_USERNAME: Final[str] = "username"
CONF_PASSWORD: Final[str] = "password"
CONF_META_ACCOUNT: Final[str] = "meta_account"
CONF_GOOGLE_ACCOUNT: Final[str] = "google_account"
CONF_PUSH_ENDPOINT: Final[str] = "push_endpoint"
CONF_PUSH_URL: Final[str] = "url"
CONF_PUSH_TOKEN: Final[str] = "token"
CONF_PUSH_USERNAME: Final[str] = "username"

ENV_ALPINE_BITS_CONFIG_PATH: Final[str] = "ALPINE_BITS_CONFIG_DIR"
