"""
Tools Factory
Chỉ return 1 tool duy nhất: data_retrieval_tool
"""

from langchain_core.tools import BaseTool

from .brand_knowledge_tool import canifa_knowledge_search
from .customer_info_tool import collect_customer_info
from .data_retrieval_tool import data_retrieval_tool
from .memo_retrieval_tool import memo_retrieval_tool


def get_retrieval_tools() -> list[BaseTool]:
    """Các tool chỉ dùng để đọc/truy vấn dữ liệu (Có thể cache)"""
    return [data_retrieval_tool, canifa_knowledge_search, memo_retrieval_tool]


def get_collection_tools() -> list[BaseTool]:
    """Các tool dùng để ghi/thu thập dữ liệu (KHÔNG cache)"""
    return [collect_customer_info]


def get_all_tools() -> list[BaseTool]:
    """Return toàn bộ list tools cho Agent"""
    return get_retrieval_tools() + get_collection_tools()
