package com.dora.service;

import com.dora.dto.AiModelDto;

import java.util.List;

/**
 * AI模型查询服务接口（用户端）
 */
public interface AiModelService {
    
    /**
     * 获取所有可用模型列表（不分组）
     * 
     * @param taskType 任务类型（可选：image/video）
     * @param providerType 服务提供商（可选：openai/runninghub）
     * @param enabledOnly 是否只返回已启用的模型
     * @return 模型列表
     */
    List<AiModelDto.ModelInfoResponse> getAllModels(String taskType, String providerType, Boolean enabledOnly);
    
    /**
     * 获取按任务类型分组的模型列表
     * 
     * @param providerType 服务提供商（可选）
     * @param enabledOnly 是否只返回已启用的模型
     * @return 按类型分组的模型列表
     */
    List<AiModelDto.ModelsByTypeResponse> getModelsByType(String providerType, Boolean enabledOnly);
    
    /**
     * 获取按厂商分组的模型列表
     * 
     * @param taskType 任务类型（可选）
     * @param enabledOnly 是否只返回已启用的模型
     * @return 按厂商分组的模型列表
     */
    List<AiModelDto.ModelsByProviderResponse> getModelsByProvider(String taskType, Boolean enabledOnly);
    
    /**
     * 获取模型统计信息
     * 
     * @return 模型统计信息
     */
    AiModelDto.ModelStatsResponse getModelStats();
}

