"""Constants for the syntella package."""

from enum import Enum


class LogLevel(Enum):
    """
    Enumerates different log severity levels.

    :cvar DEBUG: Debug-level messages.
    :cvar INFO: Informational messages.
    :cvar WARNING: Warnings.
    :cvar ERROR: Error conditions.
    :cvar CRITICAL: Critical failures.
    """
    DEBUG = 10
    INFO = 20
    WARNING = 30
    ERROR = 40
    CRITICAL = 50


class TextColor(Enum):
    """
    Enumerates ANSI escape codes for different text colors.

    :cvar RESET: Reset to default color.
    :cvar RED: Red text.
    :cvar GREEN: Green text.
    :cvar YELLOW: Yellow text.
    :cvar BLUE: Blue text.
    :cvar MAGENTA: Magenta text.
    :cvar CYAN: Cyan text.
    :cvar WHITE: White text.
    :cvar BRIGHT_RED: Bright red text.
    :cvar BRIGHT_GREEN: Bright green text.
    :cvar BRIGHT_YELLOW: Bright yellow text.
    :cvar BRIGHT_BLUE: Bright blue text.
    :cvar BRIGHT_MAGENTA: Bright magenta text.
    :cvar BRIGHT_CYAN: Bright cyan text.
    :cvar BRIGHT_WHITE: Bright white text.
    """
    RESET = "\033[0m"
    RED = "\033[31m"
    GREEN = "\033[32m"
    YELLOW = "\033[33m"
    BLUE = "\033[34m"
    MAGENTA = "\033[35m"
    CYAN = "\033[36m"
    WHITE = "\033[37m"

    BRIGHT_RED = "\033[91m"
    BRIGHT_GREEN = "\033[92m"
    BRIGHT_YELLOW = "\033[93m"
    BRIGHT_BLUE = "\033[94m"
    BRIGHT_MAGENTA = "\033[95m"
    BRIGHT_CYAN = "\033[96m"
    BRIGHT_WHITE = "\033[97m"
