package com.eksad.masterdata.repository; import com.eksad.ddms.common.util.status.DataStatus; import com.eksad.masterdata.domain.Payload; import jakarta.transaction.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.Date; import java.util.List; @Repository @Transactional public interface PayloadRepository extends GenericRepository<Payload> { Payload findOneBySourceId(String sourceID); List<Payload> findAllBySourceId(String sourceID); Payload findOneBySourceIdAndPayloadStatus(String sourceID, DataStatus payloadStatus); List<Payload> findAllByType(String type); List<Payload> findAllByTypeAndPayloadStatus(String type, DataStatus payloadStatus); List<Payload> findAll(); Page<Payload> findAll(Pageable pageable); @Query(nativeQuery = true, value = "select * from trx_payload where event = :eventName " + "and eventdate = :evenDate " + "and (respayload ilike '%\"status\":0%' " + "or respayload is null);") List<Payload> findAllByEventDateAndEventAndResPayloadContainsFailed(@Param("evenDate") Date evenDate, @Param("eventName") String eventName); }