using iyixiGames.Domain.DTOs.Games;
using iyixiGames.Domain.Entities;

namespace iyixiGames.Infrastructure.Services
{
    /// <summary>
    /// 游戏管理的应用服务接口。
    /// </summary>
    public interface IGameService
    {
        Task<GameResponse?> GetGameByIdAsync(string id);
        Task<IEnumerable<GameResponse>> GetAllGamesAsync();
        Task<GameResponse> CreateGameAsync(CreateGameRequest request);
        Task<List<GameResponse>> BatchCreateGamesAsync(BatchCreateGamesRequest request); // 新增：批量创建
        Task<GameResponse?> UpdateGameAsync(string id, UpdateGameRequest request);
        Task<bool> DeleteGameAsync(string id);
        Task<string?> GenerateGameDescriptionAsync(string gameName); // 新增方法
        Task<Game?> GenerateGameInfoFromPathAsync(string gamePath);
    }
}