package com.style24.batch.biz.dao;

import java.util.Collection;

import com.style24.core.support.annotation.WmsDs;
import com.style24.persistence.domain.GoodsIfIncomelot;
import com.style24.persistence.domain.GoodsIfIncomelotitem;
import com.style24.persistence.domain.GoodsIfMeasurement;
import com.style24.persistence.domain.IfBrand;
import com.style24.persistence.domain.IfProduct;
import com.style24.persistence.domain.IfProvider;
import com.style24.persistence.domain.IfPurchaseorder;
import com.style24.persistence.domain.IfPurchaseorderbrandXref;
import com.style24.persistence.domain.WmsStock;

/**
 * WMS 상품 연동Dao
 *
 * @author eskim
 * @since 2021. 01. 01
 */
@WmsDs
public interface TsbWmsGoodsDao {

	/**
	 * 실측사이즈 연동
	 *
	 * @param jobdate
	 * @author eskim
	 * @since 2021. 01. 01
	 */
	Collection<GoodsIfMeasurement> getWmsMeasurementList(String jobdate);

	/**
	 * 입고 목록
	 *
	 * @param jobdate
	 * @author eskim
	 * @since 2021. 01. 01
	 */
	Collection<GoodsIfIncomelot> getWmsIncomelotList(String jobdate);

	/**
	 * 입고 상품목록
	 *
	 * @param jobdate
	 * @author eskim
	 * @since 2021. 01. 01
	 */
	Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList(String jobdate);

	/**
	 * WMS 업체정보 송신
	 *
	 * @param ifProvider
	 * @author eskim
	 * @since 2021. 01. 05
	 */
	void saveWmsProvider(IfProvider ifProvider);
	
	/**
	 * WMS 발주정보 송신
	 *
	 * @param ifProvider
	 * @author eskim
	 * @since 2021. 06. 08
	 */
	void saveWmsPurchaseorder(IfPurchaseorder ifPurchaseorder);

	/**
	 * WMS 브랜드정보 송신
	 *
	 * @param ifBrand
	 * @author eskim
	 * @since 2021. 01. 05
	 */
	void saveWmsBrand(IfBrand ifBrand);

	/**
	 * WMS 브랜드업체관계정보 송신
	 *
	 * @param ifBrand
	 * @author eskim
	 * @since 2021. 01. 05
	 */
	void saveWmsBrandProviderXref(IfBrand ifBrand);

	/**
	 * WMS 상품 정보 송신
	 *
	 * @param ifProduct
	 * @author eskim
	 * @since 2021. 01. 06
	 */
	void saveWmsProduct(IfProduct ifProduct);

	/**
	 * WMS 재고 테이블 조회
	 *
	 * @return
	 * @author eskim
	 * @since 2021. 05. 26
	 */
	Collection<WmsStock> getWmsStockList();
	
	/**
	 * WMS 발주정보 조회
	 *
	 * @return
	 * @author eskim
	 * @since 2021. 06. 08
	 */
	IfPurchaseorder getWmsIfPurchaseorder(IfPurchaseorder ifPurchaseorder);
	
	/**
	 * WMS 발주정보 생성
	 *
	 * @return
	 * @author eskim
	 * @since 2021. 06. 08
	 */
	void createWmsIfPurchaseorder(IfPurchaseorder ifPurchaseorder);
	
	/**
	 * WMS 발주정보 변경
	 *
	 * @return
	 * @author eskim
	 * @since 2021. 06. 08
	 */
	void updateWmsIfPurchaseorder(IfPurchaseorder ifPurchaseorder);
	
	/**
	 * WMS 발주정보 변경
	 *
	 * @return
	 * @author eskim
	 * @since 2021. 06. 08
	 */
	void saveWmsIfPurchaseorderbrandXref(IfPurchaseorderbrandXref ifPurchaseorderbrandXref);
	
}
