
package com.tmerclub.cloud.supplier.mapper;

import com.tmerclub.cloud.api.supplier.vo.SupplierApiRefundAddrVO;
import com.tmerclub.cloud.supplier.dto.SupplierRefundAddrDTO;
import com.tmerclub.cloud.supplier.model.SupplierRefundAddr;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 供应商退货地址
 *
 * @author lhd
 * @date 2022-03-14 17:04:32
 */
public interface SupplierRefundAddrMapper {

    /**
     * 获取商家退货地址列表
     * @param supplierRefundAddrDTO
     * @return 商家退货地址列表
     */
    List<SupplierApiRefundAddrVO> list(@Param("supplierRefundAddr") SupplierRefundAddrDTO supplierRefundAddrDTO);

    /**
     * 根据商家退货地址id获取商家退货地址
     *
     * @param supplierRefundAddrId 商家退货地址id
     * @param supplierId
     * @return 商家退货地址
     */
    SupplierApiRefundAddrVO getBySupplierRefundAddrId(@Param("supplierRefundAddrId") Long supplierRefundAddrId, @Param("supplierId") Long supplierId);

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

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

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

    /**
     * 获取供应商退货地址
     *
     * @param supplierId 供应商id
     * @return 供应商退货地址
     */
    List<SupplierApiRefundAddrVO> listBySupplierId(@Param("supplierId") Long supplierId);

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