// package cokr.xit.ens.modules.kkotalk.domain.repository;
//
// import static cokr.xit.ens.modules.common.ctgy.intgrnbill.support.entity.QBill.*;
// import static cokr.xit.ens.modules.common.domain.QSendMast.*;
// import static cokr.xit.ens.modules.kkomydoc.domain.QSendDetailKkoMydoc.*;
//
// import java.util.List;
// import java.util.Optional;
//
// import com.querydsl.core.BooleanBuilder;
// import com.querydsl.jpa.impl.JPAQueryFactory;
//
// import cokr.xit.ens.core.utils.CmmnUtil;
// import cokr.xit.ens.modules.kkotalk.domain.SendDetailKkoTalk;
// import lombok.RequiredArgsConstructor;
//
// @RequiredArgsConstructor
// public class SendDetailKkoTalkRepositoryImpl implements SendDetailKkoTalkRepositoryCustom {
//     private final JPAQueryFactory query;
//
// //    @Override
// //    public List<SendDetailKkoMydoc> findAllFetchBySendMastIdAndMkBillUseYAndUrlIsNull(Long sendMastId, boolean urlIsNull) {
// //        return query.selectFrom(sendDetailKkoMydoc)
// //                .innerJoin(sendDetailKkoMydoc.sendMast, sendMast)
// //                .fetchJoin()
// //                .leftJoin(sendDetailKkoMydoc.kkoBillMast, kkoBillMast)
// //                .fetchJoin()
// //                .where(sendDetailKkoMydoc.sendMast.sendMastId.eq(sendMastId)
// //                        .and(sendDetailKkoMydoc.mkBillUseYn.eq("Y"))
// //                        .and(urlIsNull ? sendDetailKkoMydoc.kkoBillMast.url.isNull() : sendDetailKkoMydoc.kkoBillMast.url.isNotNull())
// //                )
// //                .fetch();
// //    }
//
//     @Override
//     public List<SendDetailKkoTalk> findAllFetchBySendMastId(Long sendMastId) {
//         return query.selectFrom(sendDetailKkoTalk)
//                 .innerJoin(sendDetailKkoTalk.sendMast, sendMast).fetchJoin()
// //                .leftJoin(sendDetailKkoMydoc.kkoBillMast, kkoBillMast)
//                 .leftJoin(sendDetailKkTalk.bill, bill).fetchJoin()
//                 .where(sendDetailKkoTalk.sendMast.sendMastId.eq(sendMastId))
//                 .fetch();
//     }
//
//     @Override
//     public Optional<SendDetailKkoTalk> findFetchByPropExternalDocumentUuidAndDocumentBinderUuid(String propExternalDocumentUuid, String documentBinderUuid) {
//         BooleanBuilder builder = new BooleanBuilder();
//         builder.and(sendDetailKkoMydoc.documentBinderUuid.eq(documentBinderUuid));
//         if (!CmmnUtil.isEmpty(propExternalDocumentUuid))
//             builder.and(sendDetailKkoTalk.propExternalDocumentUuid.eq(propExternalDocumentUuid));
//
//         return Optional.ofNullable(query.selectFrom(sendDetailKkoTalk)
//                 .innerJoin(sendDetailKkoTalk.sendMast, sendMast).fetchJoin()
//                 .where(builder)
//                 .fetchOne());
//     }
// }
