package eu.dnetlib.uoaadmintools.dao;

import eu.dnetlib.uoaadmintools.entities.PageHelpContent;

import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

public interface MongoDBPageHelpContentDAO extends PageHelpContentDAO, MongoRepository<PageHelpContent, String> {
    List<PageHelpContent> findAll();

    List<PageHelpContent> findByCommunityAndPlacementAndIsActiveAndIsPriorToOrderByOrderAsc(String communityId, String position, boolean isActive, boolean isPriorTo);
    List<PageHelpContent> findByCommunityAndPlacementAndIsActiveOrderByOrderAsc(String communityId, String position, boolean isActive);
    List<PageHelpContent> findByCommunityAndPlacementAndIsPriorToOrderByOrderAsc(String communityId, String position, boolean isPriorTo);
    List<PageHelpContent> findByCommunityAndIsActiveAndIsPriorToOrderByPlacementAscOrderAsc(String communityId, boolean isActive, boolean isPriorTo);
    List<PageHelpContent> findByPlacementAndIsActiveAndIsPriorToOrderByOrderAsc(String position, boolean isActive, boolean isPriorTo);
    List<PageHelpContent> findByCommunityAndPlacementOrderByOrderAsc(String communityId, String postion);
    List<PageHelpContent> findByCommunityAndIsActiveOrderByPlacementAscOrderAsc(String communityId, boolean isActive);
    List<PageHelpContent> findByCommunityAndIsPriorToOrderByPlacementAscOrderAsc(String communityId, boolean isPriorTo);
    List<PageHelpContent> findByPlacementAndIsActiveOrderByOrderAsc(String position, boolean isActive);
    List<PageHelpContent> findByPlacementAndIsPriorToOrderByOrderAsc(String position, boolean isPriorTo);
    List<PageHelpContent> findByIsActiveAndIsPriorToOrderByPlacementAscOrderAsc(boolean isActive, boolean isPriorTo);
    List<PageHelpContent> findByCommunityOrderByPlacementAscOrderAsc(String communityId);
    List<PageHelpContent> findByPlacementOrderByOrderAsc(String postion);
    List<PageHelpContent> findByIsActiveOrderByPlacementAscOrderAsc(boolean isActive);
    List<PageHelpContent> findByIsPriorToOrderByPlacementAscOrderAsc(boolean isPriorTo);
    List<PageHelpContent> findAllByOrderByPlacementAscOrderAsc();


    //List<PageHelpContent> findByCommunityAndPlacementAndIsActiveAndBeforeOrderByOrderAsc(String communityId, String postion, boolean isActive, boolean before);

    PageHelpContent findById(String Id);

    PageHelpContent findByIdOrderByOrder(String Id);

    PageHelpContent save(PageHelpContent pageHelpContent);

    void deleteAll();

    void delete(String id);
}

