package com.style24.admin.biz.dao;

import java.util.Collection;

import com.style24.core.support.annotation.ShopDs;
import com.style24.persistence.domain.Aflink;
import com.style24.persistence.domain.Brand;
import com.style24.persistence.domain.DeliveryLoc;
import com.style24.persistence.domain.SellStore;
import com.style24.persistence.domain.ShipCompany;
import com.style24.persistence.domain.SupplyCompany;

/**
 * 영업관리 Dao
 *
 * @author gagamel
 * @since 2020. 10. 14
 */
@ShopDs
public interface TsaBusinessDao {

	/**
	 * 공급업체 목록
	 * @param supplyComp - 공급업체 정보
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 14
	 */
	Collection<SupplyCompany> getSupplyCompanyList(SupplyCompany supplyComp);

	/**
	 * 공급업체 생성
	 * @param supplyComp - 공급업체 정보
	 * @author gagamel
	 * @since 2020. 10. 14
	 */
	void createSupplyCompany(SupplyCompany supplyComp);

	/**
	 * 공급업체 수정
	 * @param supplyComp - 공급업체 정보
	 * @author gagamel
	 * @since 2020. 10. 14
	 */
	void updateSupplyCompany(SupplyCompany supplyComp);

	/**
	 * 출고처관리 목록
	 * @param delvLoc - 출고처 정보
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 16
	 */
	Collection<DeliveryLoc> getDeliveryLocList(DeliveryLoc delvLoc);

	/**
	 * 출고처관리 저장
	 * @param delvLoc - 출고처 정보
	 * @author gagamel
	 * @since 2020. 10. 16
	 */
	void saveDeliveryLoc(DeliveryLoc delvLoc);

	/**
	 * 판매매장 목록
	 * @param sellStore - 판매매장 정보
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	Collection<SellStore> getSellStoreList(SellStore sellStore);

	/**
	 * 판매매장 정보 수정
	 * @param sellStore - 판매매장 정보
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	void saveSellStore(SellStore sellStore);

	/**
	 * 제휴링크 목록
	 * @param aflink - 제휴링크 정보
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	Collection<Aflink> getAflinkList(Aflink aflink);

	/**
	 * 제휴링크 저장
	 * @param aflink - 제휴링크 정보
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	void saveAflink(Aflink aflink);

	/**
	 * 제휴링크 삭제
	 * @param aflink - 제휴링크 정보
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	void deleteAflink(Aflink aflink);

	/**
	 * 배송업체 목록
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	Collection<ShipCompany> getShipCompanyList();

	/**
	 * 배송업체 저장
	 * @param shipComp - 배송업체 정보
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	void saveShipCompany(ShipCompany shipComp);

	/**
	 * 배송업체 삭제
	 * @param shipComp - 배송업체 정보
	 * @author gagamel
	 * @since 2020. 10. 20
	 */
	void deleteShipCompany(ShipCompany shipComp);

	/**
	 * 브랜드 목록
	 *
	 * @param brand - 브랜드 정보
	 * @return 브랜드 목록
	 * @author eskim
	 * @since 2020. 10. 22
	 */
	Collection<Brand> getBrandList(Brand brand);

}
