fi.evolver.ai.vaadin.ChatRepository Maven / Gradle / Ivy
package fi.evolver.ai.vaadin;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import fi.evolver.ai.vaadin.entity.Chat;
@Repository
@Transactional
public interface ChatRepository extends JpaRepository {
public Chat findChatByChatId(String chatId);
public Chat findChatByChatIdAndUsername(String chatId, String username);
List findAllByUsernameAndFavoriteOrderByIdDesc(String username, boolean favorite);
default List findFavoriteChats(String username) {
return findAllByUsernameAndFavoriteOrderByIdDesc(username, true);
}
List findAllByUsernameAndChatTypeAndFavoriteAndStartTimeGreaterThanOrderByIdDesc(String username, String chatType, boolean favorite, LocalDateTime startTime);
default List findNonFavoriteChats(String username, String chatType, LocalDateTime startTime) {
return findAllByUsernameAndChatTypeAndFavoriteAndStartTimeGreaterThanOrderByIdDesc(username, chatType, false, startTime);
}
public List findAllByStartTimeGreaterThanEqualAndStartTimeLessThanEqualOrderByIdDesc(LocalDateTime startTime, LocalDateTime endTime);
int deleteByStartTimeLessThanAndFavorite(LocalDateTime cutTime, boolean favorite);
}