package com.paymentlink.repository; import com.paymentlink.model.entity.PaymentLink; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Optional; @Repository public interface PaymentLinkRepository extends JpaRepository { Optional findByLinkId(String linkId); @Query("SELECT pl FROM PaymentLink pl LEFT JOIN FETCH pl.items WHERE pl.linkId = :linkId") Optional findByLinkIdWithItems(@Param("linkId") String linkId); List findByStatus(String status); Optional findByStripePaymentIntentId(String stripePaymentIntentId); }