package org.dicadeveloper.weplantaforest.cart; import java.util.List; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository public interface CartRepository extends CrudRepository<Cart, Long> { public final static String FIND_CARTS_BUY_USER_ID = "SELECT cart from Cart cart where cart.buyer.id = :userId"; public final static String FIND_VERIFIED_CARTS_BUY_USER_ID = "SELECT cart from Cart cart where cart.buyer.id = :userId AND cart.cartState = \'VERIFIED\'"; public final static String FIND_CART_BY_CODE = "SELECT cart from Cart cart WHERE cart.code.code = :codeString"; //14400000 --> older than 4 hours public final static String FIND_INITIAL_CARTS_OLDER_THAN_FOUR_HOURS = "SELECT cart FROM Cart cart WHERE ((:time - cart.timeStamp) > 14400000) AND cart.cartState = \'INITIAL\'"; public List<Cart> findCartsByIdIn(@Param("id") Long[] ids); @Query(value = FIND_CARTS_BUY_USER_ID) public List<Cart> findCartsByUserId(@Param("userId") long userId); @Query(value = FIND_VERIFIED_CARTS_BUY_USER_ID) public List<Cart> findVerifiedCartsByUserId(@Param("userId") long userId); @Query(value = FIND_CART_BY_CODE) public Cart findCartByCode(@Param("codeString") String codeString); @Query(value = FIND_INITIAL_CARTS_OLDER_THAN_FOUR_HOURS) public List<Cart> findInitialCartsOlderThanFourHours(@Param("time") long timeOfMeasurement); }