package com.style24.front.biz.dao;

import java.util.Collection;

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

/**
 * 주문 Dao
 * 
 * @author gagamel
 * @since 2020. 12. 29
 */
@ShopDs
public interface TsfOrderDao {

	/**
	 * 마이페이지 주문 정보 조회
	 *
	 * @param Order
	 * @return Collection<Order>
	 * @author card007
	 * @since 2021. 02. 04
	 */
	Collection<Order> getOrderListForMypage(Order order);

	/**
	 * 마이페이지 주문목록 페이징 처리 주문번호 수 조회
	 *
	 * @param Order
	 * @return int
	 * @author card007
	 * @since 2021. 03. 16
	 */
	int getPagingOrdNoListCount(Order order);

	/**
	 * 마이페이지 주문목록 사은품 조회
	 *
	 * @param Order
	 * @return Collection<Order>
	 * @author card007
	 * @since 2021. 03. 19
	 */
	Collection<Order> getOrderFreeGiftListForMypage(Order order);

	/**
	 * 마이페이지 주문목록 페이징 처리 주문번호 조회
	 *
	 * @param Order
	 * @return Collection<Order>
	 * @author card007
	 * @since 2021. 02. 18
	 */
	Collection<Order> getPagingOrdNoList(Order order);

	/**
	 * 마이페이지 주문상세 금액정보 조회
	 *
	 * @param Order
	 * @return Order
	 * @author card007
	 * @since 2021. 02. 15
	 */
	Order getOrderAmtForMypage(Order order);

	/**
	 * 마이페이지 주문상세 결제정보 조회
	 *
	 * @param Order
	 * @return Order
	 * @author card007
	 * @since 2021. 02. 15
	 */
	Order getPaymentInfoForMypage(Order order);

	/**
	 * 마이페이지 주문상세 배송지 정보 조회
	 *
	 * @param Order
	 * @return Order
	 * @author card007
	 * @since 2021. 02. 15
	 */
	Order getOrderDeliveryAddrInfo(Order order);

	/**
	 * 마이페이지 주문상세 주문내역삭제 처리
	 *
	 * @param Order
	 * @return int
	 * @author card007
	 * @since 2021. 02. 17
	 */
	int updateOrderDisplayYn(Order order);

	int updatePaymentForOrderFinished(Payment param);
	
	/**
	 * 고객 특정기간 첫구매 여부
	 * 
	 * @param coupon
	 * @return int
	 * @author eskim
	 * @since 2021.03.12
	 */
	int getCustFirstOrderCount(Coupon coupon);
	
	/**
	 * 회원보유쿠폰체크
	 * 
	 * @param order
	 * @return int
	 * @author jsh77b
	 * @since 2021.03.12
	 */
	int getCheckCustCpnSq(Order order);
	
	/**
	 * 사은품 수량 및 사용여부 체크
	 * 
	 * @param order
	 * @return int
	 * @author jsh77b
	 * @since 2021.04.13
	 */
	int getCheckFreegiftVal(Order order);

	/**
	 * 상품권 현금영수증 정보 등록
	 * @param param
	 * @author xodud1202
	 * @since 2021.04.23
	 */
	void createGiftcartReceipt(GiftCard param);
	
	/**
	 * 보증보험 API 연동위한 정보조회
	 *
	 * @param Order
	 * @return Order
	 * @author jsh77b
	 * @since 2021. 05. 10
	 */
	Collection<Order> getGoodsInfoForInsurance(Order order);

	/**
	 * 비회원 주문 여부 정보 조회
	 *
	 * @param Order
	 * @return int
	 * @author card007
	 * @since 2021. 05. 26
	 */
	int getNoMemberOrderInfo(Order order);

	/**
	 * 주문 실결제 금액 조회
	 * @param param
	 * @return
	 * @author xodud1202
	 * @since 2021. 06. 02
	 */
	int getRealPaymentAmt(Order param);
}
