package fr.openwide.maven.artifact.notifier.core.business.artifact.dao; import java.util.Date; import java.util.List; import fr.openwide.core.jpa.business.generic.dao.IGenericEntityDao; import fr.openwide.core.jpa.exception.ServiceException; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactDeprecationStatus; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactStatus; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactVersion; public interface IArtifactDao extends IGenericEntityDao<Long, Artifact> { List<ArtifactVersion> listArtifactVersionsAfterDate(Artifact artifact, Date date); Artifact getByGroupIdArtifactId(String groupId, String artifactId); List<Artifact> listMostFollowedArtifacts(int limit); List<Artifact> searchAutocomplete(String searchPattern, Integer limit, Integer offset) throws ServiceException; List<Artifact> searchAutocompleteWithoutProject(String searchPattern, Integer limit, Integer offset) throws ServiceException; List<Artifact> searchByName(String searchTerm, ArtifactDeprecationStatus deprecation, Integer limit, Integer offset); int countSearchByName(String searchTerm, ArtifactDeprecationStatus deprecation); List<Artifact> searchRecommended(String searchTerm, Integer limit, Integer offset) throws ServiceException; int countSearchRecommended(String searchTerm) throws ServiceException; List<Long> listIds(); List<Long> listIdsByStatus(ArtifactStatus status); }