package com.dora.service;

import com.dora.dto.ToolDto;

import java.util.List;
import java.util.Map;

/**
 * 工具服务接口（用户端）
 */
public interface ToolService {

    /**
     * 获取所有可用工具列表
     *
     * @return 工具列表
     */
    List<ToolDto.ToolListItem> getAvailableTools();

    /**
     * 按分类获取工具列表
     *
     * @param category 分类（douyin/xiaohongshu/wechat_mp）
     * @return 工具列表
     */
    List<ToolDto.ToolListItem> getToolsByCategory(String category);

    /**
     * 获取工具详情
     *
     * @param toolCode 工具编码
     * @return 工具信息
     */
    ToolDto.ToolListItem getToolDetail(String toolCode);

    /**
     * 调用工具
     *
     * @param userId   用户ID
     * @param toolCode 工具编码
     * @param params   请求参数
     * @param clientIp 客户端IP
     * @return 调用结果
     */
    ToolDto.CallResponse callTool(Long userId, String toolCode, Map<String, Object> params, String clientIp);

    /**
     * 获取用户的工具调用记录
     *
     * @param userId   用户ID
     * @param page     页码
     * @param size     每页数量
     * @param toolCode 工具编码（可选）
     * @return 调用记录分页
     */
    ToolDto.UsageLogPageResponse getUserUsageLogs(Long userId, Integer page, Integer size, String toolCode);
}
