package com.style24.core.biz.dao;

import org.springframework.stereotype.Repository;

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

import java.util.Collection;


/**
 * 포인트 Dao
 * 
 * @author jsshin
 * @since 2020. 1. 27
 */
@ShopDs
@Repository
public interface TscPointDao {

	/**
	 * 포인트 적립
	 * @param point - 포인트 정보
	 * @return int
	 * @author jsshin
	 * @since 2021. 01. 27
	 */
	int createCustomerPoint(Point point);

	/**
	 * 포인트 적립 이력
	 * @param point - 포인트 정보
	 * @return int
	 * @author jsshin
	 * @since 2021. 01. 27
	 */
	int createCustomerPointHst(Point point);

	/**
	 * 구매확정 포인트 생성
	 * 
	 * @param Point
	 * @return int
	 * @author card007
	 * @since 2021. 02. 23
	 */
	int createOrderDecisionPoint(Point point);

	/**
	 * 구매확정 포인트 이력 수정
	 * 
	 * @param Point
	 * @return int
	 * @author card007
	 * @since 2021. 02. 23
	 */
	int updateOrderDecisionPointHst(Point point);

	/**
	 * 구매확정 포인트 조회
	 * 
	 * @param Point
	 * @return int
	 * @author card007
	 * @since 2021. 04. 07
	 */
	int getOrderDecisionPoint(Point point);

	/**
	 * 구매확정 포인트 전환 가능 여부 조회
	 *
	 * @param Point
	 * @return int
	 * @author card007
	 * @since 2021. 04. 07
	 */
	int getOrderDecisionPointHstCount(Point point);

	/**
	 * 가용포인트 목록
	 *
	 * @param custNo - 고객번호
	 * @return Collection<Point> - 가용 포인트 목록
	 * @author jsshin
	 * @since 2021. 06. 14
	 */
	Collection<Point> getCustomerRmPntAmtList(Integer custNo);

	/**
	 * 포인트 차감
	 *
	 * @param point - 차감포인트, 포인트 일련번호
	 * @return int - 결과
	 * @author jsshin
	 * @since 2021. 06. 14
	 */
	int updatePointDeduction(Point point);

	/**
	 * 가용포인트 합산
	 *
	 * @param custNo - 고객번호
	 * @return int - 가용 포인트
	 * @author jsshin
	 * @since 2021. 06. 14
	 */
	int getCustomerSumRmPntAmt(Integer custNo);

}
