"""
utils/__init__.py

该模块初始化文件，导入了多个辅助工具类，并定义了一系列便捷函数，用于日志记录、配置管理、文件操作、字符串处理和邮件发送等功能。
"""
import json

from tools.utils.ai_helper import AiHelper
from tools.utils.config_helper import ConfigHelper
from tools.utils.logger_helper import LoggerHelper
#import tools.utils.logger_helper as logger_helper



def get_logger():
    """
    获取日志记录器实例。

    该函数通过调用LoggerHelper类的静态方法get_logger()来获取一个日志记录器实例。
    主要用于需要记录日志的位置，通过该函数获取日志记录器实例，然后进行日志记录。
    这样做可以保持日志记录的一致性和集中管理。

    :return: Logger实例，用于记录日志。
    """
    #return logger_helper.LoggerHelper.get_logger()
    return LoggerHelper.get_logger()


def clean_log_file(day: int):
    """
    清理指定天数之前的日志文件。

    :param day: 整数，表示清理多少天前的日志文件。
    """
    #logger_helper.LoggerHelper.clean_log_file(day)
    LoggerHelper.clean_log_file(day)


def get_config():
    """
    获取配置管理器实例。

    该函数返回一个ConfigHelper实例，用于读取和管理应用程序的配置信息。

    :return: ConfigHelper实例，用于配置管理。
    """
    return ConfigHelper()


def reload_config():
    """
    重新加载配置文件。

    该函数会重新加载配置文件中的内容，适用于配置文件发生更改后需要重新加载的情况。
    """
    get_config().load_config()


def get_config_value(key: str, default: str = None):
    """
    获取配置项的值。

    :param key: 字符串，配置项的键。
    :param default: 字符串，默认值（可选）。
    :return: 配置项的值，如果不存在则返回默认值。
    """
    return get_config().get(key, default)


def get_config_int(key: str, default: int = None):
    """
    获取配置项的整数值。

    :param key: 字符串，配置项的键。
    :param default: 整数，默认值（可选）。
    :return: 配置项的整数值，如果不存在则返回默认值。
    """
    return get_config().get_int(key, default)


def get_config_bool(key: str):
    """
    获取配置项的布尔值。

    :param key: 字符串，配置项的键。
    :return: 配置项的布尔值。
    """
    return get_config().get_bool(key)
















def call_openai(system_prompt: str, user_prompt: str) -> json:
    """
    调用OpenAI API进行对话。

    :param system_prompt: 字符串，系统提示信息。
    :param user_prompt: 字符串，用户输入的提示信息。
    :return: JSON对象，API返回的结果。
    """
    return AiHelper().call_openai(system_prompt, user_prompt)



