Interface UserFavoriteEventRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<UserFavoriteEvent,UUID>, org.springframework.data.jpa.repository.JpaRepository<UserFavoriteEvent,UUID>, org.springframework.data.repository.ListCrudRepository<UserFavoriteEvent,UUID>, org.springframework.data.repository.ListPagingAndSortingRepository<UserFavoriteEvent,UUID>, org.springframework.data.repository.PagingAndSortingRepository<UserFavoriteEvent,UUID>, org.springframework.data.repository.query.QueryByExampleExecutor<UserFavoriteEvent>, org.springframework.data.repository.Repository<UserFavoriteEvent,UUID>

public interface UserFavoriteEventRepository extends org.springframework.data.jpa.repository.JpaRepository<UserFavoriteEvent,UUID>
Repository for UserFavoriteEvent entities.
  • Method Details

    • findByUserAndEvent

      Optional<UserFavoriteEvent> findByUserAndEvent(User user, Event event)
      Finds a user's favorite event by user and event.
      Parameters:
      user - The user.
      event - The event.
      Returns:
      An optional containing the user's favorite event if found, otherwise empty.
    • findByUserIdAndEventId

      Optional<UserFavoriteEvent> findByUserIdAndEventId(UUID userId, UUID eventId)
      Finds a user's favorite event by user ID and event ID.
      Parameters:
      userId - The ID of the user.
      eventId - The ID of the event.
      Returns:
      An optional containing the user's favorite event if found, otherwise empty.
    • findByUserIdAndDeletedAtNull

      org.springframework.data.domain.Page<UserFavoriteEvent> findByUserIdAndDeletedAtNull(UUID userId, org.springframework.data.domain.Pageable pageable)
      Finds a page of a user's non-deleted favorite events.
      Parameters:
      userId - The ID of the user.
      pageable - The pageable request.
      Returns:
      A page of user favorite events.
    • findByUserIdAndEventStartTimeAfterAndDeletedAtNullOrderByEventStartTimeAsc

      org.springframework.data.domain.Page<UserFavoriteEvent> findByUserIdAndEventStartTimeAfterAndDeletedAtNullOrderByEventStartTimeAsc(UUID userId, org.springframework.data.domain.Pageable pageable, Instant startTime)
      Finds a page of a user's non-deleted favorite events after a certain start time, ordered by start time.
      Parameters:
      userId - The ID of the user.
      pageable - The pageable request.
      startTime - The minimum start time.
      Returns:
      A page of user favorite events.
    • findByUserIdAndEventStartTimeBeforeAndDeletedAtNullOrderByEventStartTimeDesc

      org.springframework.data.domain.Page<UserFavoriteEvent> findByUserIdAndEventStartTimeBeforeAndDeletedAtNullOrderByEventStartTimeDesc(UUID userId, org.springframework.data.domain.Pageable pageable, Instant startTime)
      Finds a page of a user's non-deleted favorite events before a certain start time, ordered by start time descending.
      Parameters:
      userId - The ID of the user.
      pageable - The pageable request.
      startTime - The maximum start time.
      Returns:
      A page of user favorite events.
    • findAllByUserId

      List<UserFavoriteEvent> findAllByUserId(UUID userId)
      Finds all of a user's favorite events.
      Parameters:
      userId - The ID of the user.
      Returns:
      A list of user favorite events.
    • addFavoriteEvent

      @Modifying @Query(value="insert into user_favorite_events (user_id, event_id, created_at) values (:userId, :eventId, current_timestamp) on conflict do nothing", nativeQuery=true) void addFavoriteEvent(@NotNull @NotNull UUID userId, @NotNull @NotNull UUID eventId)
      Adds a favorite event for a user.
      Parameters:
      userId - The ID of the user.
      eventId - The ID of the event.
    • countByCreatedAtBetween

      @Async CompletableFuture<Long> countByCreatedAtBetween(Instant start, Instant end)
      Counts the number of favorite events created between two timestamps.
      Parameters:
      start - The start timestamp.
      end - The end timestamp.
      Returns:
      A completable future containing the number of favorite events.
    • findAllByEventId

      List<UserFavoriteEvent> findAllByEventId(UUID eventId)
      Finds all favorite event relationships for an event.
      Parameters:
      eventId - The ID of the event.
      Returns:
      A list of user favorite events.