package de.flower.rmt.service;
import de.flower.rmt.model.db.entity.Player;
import de.flower.rmt.model.db.entity.Team;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.model.db.entity.event.Event;
import javax.persistence.metamodel.Attribute;
import java.util.List;
/**
* @author flowerrrr
*/
public interface IPlayerManager {
List<Player> findAllByTeam(Team team);
List<Player> findAllByUser(User user, Attribute... attributes);
Player findByTeamAndUser(Team team, User user);
Player findByEventAndUser(Event event, User user);
void save(Player entity);
void addPlayer(Team team, User user);
void addPlayers(Team team, List<User> users);
void removePlayer(Team team, Player player);
void removeUserFromAllTeams(User user);
/**
* Soft deletes all players of the team.
* Soft in case deletion of team was human error to be able to recover.
*
* @param entity
*/
void deleteByTeam(Team entity);
List<Player> sortByTeam(List<Player> list);
}