package com.style24.core.biz.dao;

import java.util.Collection;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.Order;
import com.style24.persistence.domain.Payment;

/**
 * 네이버페이 Dao
 *
 * @author xodud1202
 * @since 2021. 07. 15
 */
@ShopDs
public interface TscNaverPayDao {
	/**
	 * 네이버페이 조회 시간 (최근 3시간)
	 * @param
	 * @return Order
	 * @author xodud1202
	 * @since  2021. 05. 27
	 */
	Order getSelectDt();

	/**
	 * 네이버페이 수신 정보 주문 데이터 확인
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 02
	 */
	Collection<Order> getOrdBaseInfo(Order param);

	/**
	 * 네이버페이 상품주문번호(주문상세번호) 등록
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 02
	 */
	void updateNpayOrdDtlNo(Order param);

	/**
	 * 네이버페이 결제완료 수신 상품 세트 옵션 여부 확인
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 02
	 */
	int getIsNaverPayItem(Order param);

	/**
	 * 네이버페이 배송지 정보 수정
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 03
	 */
	void updateShippingAddressInfo(Order param);

	/**
	 * 네이버페이 결제완료 정보 PAYMENT UPDATE
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 03
	 */
	void updateNaverpayPaymentInfo(Payment param);

	/**
	 * 네이버 상품주문번호 정보 조회
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 09
	 */
	Order getProductOrderIdInfo(Order order);

	/**
	 * 네이버 상품주문번호 취소 수량 확인
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 09
	 */
	int getOrdDtlCancelCheck(Order param);

	/**
	 * 네이버페이 주문형 배송준비중 주문 정보 조회
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 14
	 */
	Collection<Order> getReadyDeliveryList(Order time);

	/**
	 * 구매확정 대상 목록(배송중, 출고완료, 배송완료) 정보 조회
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 21
	 */
	Order getOrderConfirmTargetList(Order param);

	/**
	 * 교환 접수 대상 상품 정보 조회(교환진행중인 주문 제외)
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 06. 23
	 */
	Collection<Order> getNotExchangeOrderInfoList(Order param);

	/**
	 * 반품 접수 대상 상품 정보 조회(반품진행중인 주문 제외)
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 06. 23
	 */
	Collection<Order> getNotReturnOrderInfoList(Order param);

	/**
	 * 네이버페이 배송업체 코드 > 쇼핑몰 배송업체 코드 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 06. 23
	 */
	Order getNaverPayShipCompanyCd(Order param);

	/**
	 * 회수송장번호 등록 필요 리스트 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since  2021. 06. 28
	 */
	Collection<Order> getNotWriteWdInvoiceNoChangeList();

	/**
	 * 네이버페이 회수송장번호 등록
	 * @param param
	 * @author xodud1202
	 * @since  2021. 06. 28
	 */
	void updateNaverPayWdInvoiceNo(Order param);

	/**
	 * 주문 변경 시퀀스를 통해 주문 정보 조회
	 * @param param
	 * @author xodud1202
	 * @since  2021. 07. 21
	 */
	Collection<Order> getOrderDetailInfoFromOrdChgSq(Order param);

	/**
	 * 주문 상세 번호를 통해 주문 정보 조회
	 * @param param
	 * @author xodud1202
	 * @since  2021. 07. 21
	 */
	Order getOrderDetailInfoFromOrdDtlNo(Order param);

	/**
	 * 네이버페이 주문형 반품/교환 보류 여부 수정
	 * 
	 * @param Order
	 * @return int
	 * @author card007
	 * @since 2021. 10. 05
	 */
	int updateNaverPayChangeHold(Order order);
}
