"""Bobi database layer."""
from bot.db.core import get_conn, close_conn, init_db, optimize_db, _exec, _execmany, _fetchone, _fetchall, _BatchCommit
from bot.db.settings import get_setting, set_setting, del_setting, get_all_settings
from bot.db.users import upsert_user, is_sudo, add_sudo, remove_sudo, get_all_sudo, bump_msg_count, get_top_users, get_chat_user_count, get_chat_total_msgs
from bot.db.users import is_globally_banned, add_global_ban, remove_global_ban, get_global_ban_list
from bot.db.users import set_captcha, pop_captcha, get_captcha, clean_expired_captchas
from bot.db.users import vip_add, vip_remove, vip_check, vip_list, vip_clear
from bot.db.users import silent_add, silent_remove, silent_check, silent_list, silent_clear, silent_clean_expired
from bot.db.users import set_nickname, get_nickname, remove_nickname, clear_nicknames
from bot.db.learning import add_learned_response, remove_learned_response, get_learned_responses, find_learned_response, check_cooldown, get_learned_count
from bot.db.learning import smart_forget, adjust_learned_weight
from bot.db.learning import add_sticker_pack, remove_sticker_pack, get_sticker_packs, find_sticker_match, get_sticker_keywords
from bot.db.learning import set_rules_accepted, has_accepted_rules, get_rules_accept_count
from bot.db.content import add_note, get_note, get_all_notes, delete_note, delete_all_notes
from bot.db.content import add_filter, get_all_filters, remove_filter, remove_all_filters
from bot.db.content import add_custom_command, get_custom_command, get_all_custom_commands, delete_custom_command
from bot.db.content import add_command_alias, remove_command_alias, get_command_aliases
from bot.db.content import add_warn, get_warns, get_all_warns, reset_warns, get_warns_count
from bot.db.content import blocklist_add, blocklist_remove, blocklist_check, blocklist_list, blocklist_count
from bot.db.content import add_whitelisted_link, remove_whitelisted_link, get_whitelisted_links
from bot.db.content import add_blacklist_word, remove_blacklist_word, get_blacklist_words
from bot.db.content import search_custom_commands, search_learned_responses, search_notes
from bot.db.content import get_all_chat_ids, get_db_stats
from bot.db.content import get_locks, add_lock, remove_lock

from bot.db.admin import get_log_channel, set_log_channel, forced_channels_list, forced_channels, forced_sub_exempt_check, set_admin_note, get_admin_note, delete_admin_note, list_admin_notes

from bot.db.chatbot import add_qa, remove_qa, remove_all_qa, list_qa, find_qa, get_qa_count, broadcast_create, broadcast_get_pending, broadcast_update_progress, broadcast_complete, broadcast_delete, broadcast_list

# Brain submodule available as db.brain
from bot.db import brain
# Brain v2: conversation memory + semantic learning exports
from bot.db.brain import remember_message, get_recent_context, extract_topics, get_conversation_topics
from bot.db.brain import add_semantic_link, get_semantic_expansions, get_all_semantic_links
from bot.db.brain import learn_from_correction
