package cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.repository;

import cokr.xit.ens.modules.common.code.PostSeCd;
import cokr.xit.ens.modules.common.ctgy.intgrnnoti.code.TryStatCd;
import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.IntgrnSendDetail;
import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.IntgrnSendMast;
import cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.IntgrnDetailStatVO;
import cokr.xit.ens.modules.common.biztmplt.SendDetailRepositorySupport;

import java.util.List;
import java.util.Optional;

public interface IntgrnSendDetailRepositoryCustom extends SendDetailRepositorySupport<IntgrnSendDetail> {

    List<IntgrnSendDetail> findAllBySendTargetAndSendMast(IntgrnSendMast intgrnSendMast);
    List<IntgrnSendDetail> findAllBySendTargetAndSendMastAndTryStatCdIn(IntgrnSendMast intgrnSendMast, List<TryStatCd> tryStatCds);


    void modifyDetailStatCdByIntgrnDetailStatVO(List<IntgrnDetailStatVO> list);

    List<IntgrnDetailStatVO> findIntgrnDetailStatVOsByIntSendMastIdAndCurPostSe(Long intSendMastId);

    List<IntgrnDetailStatVO> findIntgrnDetailStatVOsByIntSendMastId(Long intSendMastId);

    List<Long> findIntSendMastIdsBySendTarget();



    Optional<IntgrnSendDetail> findByDocUuidAndLinkedUuid(String docUuid, String linkedUuid);
    PostSeCd findPostSeByDocUuidAndLinkedUuid(String docUuid, String linkedUuid);

    Optional<Long> findIntSendMastIdBySendMastId(Long sendMastId);
}
