using System.Linq.Expressions;
using Domain;

namespace Services.Interfaces;

public interface IPlayerService
{
    Task<Player> GetById(int id);
    Task<Player> FirstOrDefault(Expression<Func<Player, bool>> predicate);

    Task Add(Player entity);
    Task Update(Player entity);
    Task Remove(Player entity);

    Task<IEnumerable<Player>> GetAll();
    Task<IEnumerable<Player>> GetWhere(Expression<Func<Player, bool>> predicate);

    Task<int> CountAll();
    Task<int> CountWhere(Expression<Func<Player, bool>> predicate);
}