package com.yc.ship.module.otc.service.storecard;

import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.module.otc.controller.admin.storecard.vo.StoreCardPageReqVO;
import com.yc.ship.module.otc.controller.admin.storecard.vo.StoreCardSaveReqVO;
import com.yc.ship.module.otc.dal.dataobject.storecard.StoreCardDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 门店资金卡 Service 接口
 *
 * @author 管理员
 */
public interface StoreCardService {

    /**
     * 创建门店资金卡
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createStoreCard(@Valid StoreCardSaveReqVO createReqVO);

    /**
     * 更新门店资金卡
     *
     * @param updateReqVO 更新信息
     */
    void updateStoreCard(@Valid StoreCardSaveReqVO updateReqVO);

    /**
     * 删除门店资金卡
     *
     * @param id 编号
     */
    void deleteStoreCard(Long id);

    /**
     * 获得门店资金卡
     *
     * @param id 编号
     * @return 门店资金卡
     */
    StoreCardDO getStoreCard(Long id);

    /**
     * 获得门店资金卡
     *
     * @param storeId 门店ID
     * @return 门店资金卡
     */
    StoreCardDO getStoreCardByStoreId(Long storeId);

    /**
     * 获得门店资金卡分页
     *
     * @param pageReqVO 分页查询
     * @return 门店资金卡分页
     */
    PageResult<StoreCardDO> getStoreCardPage(StoreCardPageReqVO pageReqVO);


    List<StoreCardDO> selectListByAgency();


}
