"""
Utilities package for the SkillDarbar API
"""

from .decorators import require_api_key, encrypt_response, add_keep_alive
from .response_helpers import (
    format_api_response, 
    create_error_response, 
    format_paginated_response,
    format_validation_error,
    format_not_found_error,
    format_unauthorized_error,
    format_server_error,
    convert_analytics_numbers, 
    encrypt_data,
    CustomJSONEncoder,
    get_db_connection,
    fetch_as_dict
)
from .database_helpers import allowed_file
from .data_helpers import (
   cache_result,
    clear_cache,
    generate_username,
    update_id_weblogincode,
    fetch_data,
    fetch_datawcid,
    fetch_assets,
    fetch_achievements,
    get_apay_card_details,
    fetch_video_discussion,
    fetch_data_course,
    fetch_data_course_paid,
    fetch_data_course_free,
    fetch_data_course_search,
    fetch_data_course_id,
    fetch_data_mocktest,
    fetch_data_products,
    fetch_data_videos,
    fetch_data_videos_wcourse_id,
    fetch_data_videos_by_product_ids,
    fetch_temporary_transaction,
    fetch_videos_description,
    fetch_data_from_api,
    send_email_via_api,
    fetch_data_from_api_search,
    get_questions_from_db
)

__all__ = [
    'require_api_key',
    'encrypt_response', 
    'add_keep_alive',
   'format_api_response',
    'create_error_response',
    'format_paginated_response',
    'format_validation_error',
    'format_not_found_error',
    'format_unauthorized_error',
    'format_server_error',
    'convert_analytics_numbers',
    'encrypt_data',
    'CustomJSONEncoder',
    'fetch_as_dict',
    'get_db_connection',
    'allowed_file',
    'cache_result',
    'clear_cache',
    'generate_username',
    'update_id_weblogincode',
    'fetch_data',
    'fetch_datawcid',
    'fetch_assets',
    'fetch_achievements',
    'get_apay_card_details',
    'fetch_video_discussion',
    'fetch_data_course',
    'fetch_data_course_paid',
    'fetch_data_course_free',
    'fetch_data_course_search',
    'fetch_data_course_id',
    'fetch_data_mocktest',
    'fetch_data_products',
    'fetch_data_videos',
    'fetch_data_videos_wcourse_id',
    'fetch_data_videos_by_product_ids',
    'fetch_temporary_transaction',
    'fetch_videos_description',
    'fetch_data_from_api',
    'send_email_via_api',
    'fetch_data_from_api_search',
    'get_questions_from_db'
]