
package com.tmerclub.cloud.multishop.service;

import com.tmerclub.cloud.api.multishop.vo.ShopRefundAddrVO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.multishop.dto.ShopRefundAddrDTO;
import com.tmerclub.cloud.multishop.model.ShopRefundAddr;

import java.util.List;

/**
 * 商家退货地址
 *
 * @author tmerclub
 * @date 2021-03-09 15:03:18
 */
public interface ShopRefundAddrService {

    /**
     * 分页获取商家退货地址列表
     * @param pageDTO 分页参数
     * @param shopRefundAddrDTO 店铺退款地址
     * @return 商家退货地址列表分页数据
     */
    PageVO<ShopRefundAddrVO> page(PageDTO pageDTO, ShopRefundAddrDTO shopRefundAddrDTO);

    /**
     * 根据商家退货地址id获取商家退货地址
     *
     * @param shopRefundAddrId 商家退货地址id
     * @param shopId
     * @return 商家退货地址
     */
    ShopRefundAddrVO getByShopRefundAddrId(Long shopRefundAddrId, Long shopId);

    /**
     * 保存商家退货地址
     * @param shopRefundAddr 商家退货地址
     */
    void save(ShopRefundAddr shopRefundAddr);

    /**
     * 更新商家退货地址
     * @param shopRefundAddr 商家退货地址
     */
    void update(ShopRefundAddr shopRefundAddr);

    /**
     * 根据商家退货地址id删除商家退货地址
     * @param shopRefundAddrId 商家退货地址id
     * @param shopId 店铺id
     */
    void deleteById(Long shopRefundAddrId, Long shopId);

    /**
     * 获取店铺退货地址
     * @param shopId 店铺id
     * @return 店铺退货地址
     */
    List<ShopRefundAddrVO> listByShopId(Long shopId);

    /**
     * 清除店铺缓存
     * @param shopId
     */
    void removeCacheByShopId(Long shopId);
}
