package fr.openwide.maven.artifact.notifier.core.business.user.dao;
import java.util.Date;
import java.util.List;
import fr.openwide.core.jpa.security.business.person.dao.IGenericUserDao;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactVersionNotification;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.FollowedArtifact;
import fr.openwide.maven.artifact.notifier.core.business.user.model.User;
import fr.openwide.maven.artifact.notifier.core.business.user.model.UserGroup;
public interface IUserDao extends IGenericUserDao<User> {
FollowedArtifact getFollowedArtifact(User user, Artifact artifact);
List<ArtifactVersionNotification> listLastNotifications(User user, long limit);
List<ArtifactVersionNotification> listNotificationsAfterDate(User user, Date date);
List<User> search(String searchTerm, Integer limit, Integer offset);
int countSearch(String searchTerm);
List<User> listByUserGroup(UserGroup userGroup);
User getOldGoogleOpenIdProfile(String email);
}