
package com.tmerclub.cloud.multishop.mapper;

import com.tmerclub.cloud.api.multishop.vo.ShopRefundAddrVO;
import com.tmerclub.cloud.multishop.dto.ShopRefundAddrDTO;
import com.tmerclub.cloud.multishop.model.ShopRefundAddr;
import org.apache.ibatis.annotations.Param;

import java.util.List;

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

    /**
     * 获取商家退货地址列表
     * @param shopRefundAddrDTO
     * @return 商家退货地址列表
     */
    List<ShopRefundAddrVO> list(@Param("shopRefundAddr") ShopRefundAddrDTO shopRefundAddrDTO);

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

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

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

    /**
     * 根据商家退货地址id删除商家退货地址
     *
     * @param shopRefundAddrId
     */
    void deleteById(@Param("shopRefundAddrId") Long shopRefundAddrId);

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

    /**
     * 清除默认地址
     *
     * @param shopId
     */
    void cancelDefaultAddr(@Param("shopId") Long shopId);
}
