package com.style24.admin.biz.dao;

import java.util.Collection;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.ResultHandler;

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

/**
 * 주문관리 Dao
 *
 * @author jsh77b
 * @since 2020. 11. 16
 */
@ShopDs
public interface TsaOrderDao {
	
	/**
	 * 주문 목록 카운트
	 * @param Order
	 * @return
	 * @author jsh77b	
	 * @since 2020. 11. 18
	 */
	int getOrderListCount(Order order);
	
	/**
	 * 주문 목록
	 * @param Order
	 * @return
	 * @author jsh77b	
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderList(Order order);
	
	/**
	 * 주문리스트 합계
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Order getOrderListSumInfo(Order order);
	
	/**
	 * 주문기본정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderInfoList(Order order);
	
	/**
	 * 주문상품정보 목록
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderDetailList(Order order);
	
	/**
	 * 주문상세 > 사은품목록
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderFreeGiftList(Order order);
	
	/**
	 * 배송정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getDeliveryAddrList(Order order);
	
	/**
	 * 결제내역 > 결제 기본정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderPaymentBasicInfoList(Order order);
	
	/**
	 * 배송비 정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getDeliveryFeeList(Order order);
	
	/**
	 * 반품/교환 > 반품/교환 정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderChangeList(Order order);
	
	/**
	 * 환불정보
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> orderRefundInfo(Order order);
	
	/**
	 * 상담내역
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> orderCounselInfo(Order order);
	
	/**
	 * 변경내역 > 주문요청 관리자 메모
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderTsainMemoList(Order order);
	
	/**
	 * 입점업체미발주 주문목록
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 18
	 */
	Collection<Order> getOrderSellerUnorderList(Order order);
	
	/**
	 * 입점업체 엑셀다운용 임시테이블 삭제
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	void deleteEntryExcelDownTmp(Order order);
	
	/**
	 * 주문상세상태 수정 - 입점
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	int updateOrderDetailStat(Order order);
	
	/**
	 * 주문상세 이력 등록
	 *
	 * @param Order
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	int createOrderDetailHst(Order order);
	
	/**
	 * 엑셀 다운로드용 임시테이블 데이타 체크
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	int getEntryUploadExcelCheck(Order order);
	
	/**
	 * 입점업체 엑셀다운용 임시테이블 생성
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	void createEntryExcelDownTmp(Order order);
	
	/**
	 * 입점업체미발주목록
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	Collection<Order> getSellerUnorderList(Order order);
	
	/**
	 * 주문 엑셀다운로드
	 *
	 * @param Order
	 * @param handler - ResultHandler
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	void getSellerUnorderList(Order order, ResultHandler<Order> handler);
	
	/**
	 * 주문상세 정보
	 *
	 * @param ordDtlNo - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	Order getOrderDetailInfo(Order order);
	
	/**
	 * 주문상세정보 변경 - 송장번호 적용(입점)
	 *
	 * @param Order
	 * @author jsh77b
	 * @since 2020. 11. 30
	 */
	int updateOrderDetailInvoice(Order order);
	
	/**
	 * 주문상세 > 주문메오 > 주문메모정보조회
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Order getOrderMemoInfo(Order order);
	
	/**
	 * 주문상세 > 주문요청 관리자 메모 > 메모등록
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	int createOrderMemo(Order order);
	
	/**
	 * 주문상세 > 주문요청 관리자 메모 > 메모수정
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	int updateOrderMemo(Order order);
	
	/**
	 * 주문상세 > 주문요청 관리자 메모 > 메모삭제
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	int deleteOrderMemo(Order order);
	
	/**
	 * 주문상품 상세 변경 이력 화면
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Collection<Order> getOrderDetailHistoryList(Order order);
	
	/**
	 * 쿠폰사용 내역 팝업 화면
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Collection<Order> getOrderDiscountCouponList(Order order);
	
	/**
	 * 포인트사용 내역 팝업 화면
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Collection<Order> getOrderDiscountPointList(Order order);
	
	/**
	 * 상품권사용 내역 팝업 화면
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Collection<Order> getOrderGiftcardHstList(Order order);
	
	/**
	 * 다다익선적용 내역 팝업 화면
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2020. 12. 16
	 */
	Collection<Order> getOrderTmtbHstList(Order order);
	
	
}













