from typing import TYPE_CHECKING, List

from src.common.utils.math_utils import translate_timestamp_to_human_readable, TimestampMode

if TYPE_CHECKING:
    from src.common.data_models.tool_record_data_model import MaiToolRecord


class ActionUtils:
    @staticmethod
    def build_readable_action_records(action_records: List["MaiToolRecord"], timestamp_mode: str | TimestampMode):
        """
        将动作列表转换为可读的文本格式。

        格式: `在`time`，你使用了`action_name`，具体内容是：`action_prompt_display`

        Args:
            action_records: 动作记录字典列表。
            timestamp_mode: 时间戳模式。

        Returns:
            格式化的动作字符串。
        """
        if not action_records:
            return ""

        output_lines = []
        for record in action_records:
            timestamp_str = translate_timestamp_to_human_readable(record.timestamp.timestamp(), mode=timestamp_mode)
            line = f"在{timestamp_str}，你使用了{record.tool_name}，具体内容是：{record.tool_display_prompt}"
            output_lines.append(line)
        return "\n".join(output_lines)
