using iyixiGames.Domain.Entities;

namespace iyixiGames.Infrastructure.Services
{
    /// <summary>
    /// 游戏数据仓储接口。
    /// </summary>
    public interface IGameRepository
    {
        Task<Game?> GetByIdAsync(string id);
        Task<IEnumerable<Game>> GetAllAsync();
        Task AddAsync(Game game);
        Task UpdateAsync(Game game);
        Task DeleteAsync(string id);
        Task<bool> ExistsAsync(string id);
        Task<bool> NameExistsAsync(string name); // 检查游戏名称是否已存在
        Task<bool> PathExistsAsync(string path); // 新增：检查游戏路径是否已存在
        Task AddRangeAsync(IEnumerable<Game> games); // 新增：批量添加
    }
}