package com.style24.core.biz.dao;

import java.util.Collection;
import java.util.List;

import org.apache.ibatis.session.ResultHandler;

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

/**
 * 주문관리 Dao
 *
 * @author card007
 * @since 2021. 01. 25
 */
@ShopDs
public interface TscScmDao {
	/**
	 * 입점업체미발주 주문목록 카운트
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author xodud1202
	 * @since 2021. 06. 09
	 */
	int getOrderSellerUnorderListCount(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
	 * @author xodud1202
	 * @since 2021. 04. 19
	 */
	void updateOrderDetailItemStat(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
	 * @author xodud1202
	 * @since 2021. 04. 21
	 */
	void createOrderDetailInvoice(Order param);
	
	/**
	 * 입점클레임목록건수(교환,반품접수)ㄵ
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2021. 05. 17
	 */
	int getOrderSellerClaimCount(Order order);
	
	/**
	 * 입점클레임목록조회(교환,반품접수)ㄵ
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2021. 05. 17
	 */
	List<Order> getOrderSellerClaimList(Order order);
	
	/**
	 * 입점상품회수컨펌시 변경사유체크
	 *
	 * @param Order - 주문 정보
	 * @return
	 * @author jsh77b
	 * @since 2021. 05. 20
	 */
	int getChgReasonCheck(Order order);
}
