
package com.tmerclub.cloud.supplier.service;

import com.tmerclub.cloud.api.supplier.vo.SupplierApiRefundAddrVO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.supplier.dto.SupplierRefundAddrDTO;
import com.tmerclub.cloud.supplier.model.SupplierRefundAddr;

import java.util.List;

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

    /**
     * 分页获取商家退货地址列表
     * @param pageDTO 分页参数
     * @param supplierRefundAddrDTO 供应商退款地址
     * @return 商家退货地址列表分页数据
     */
    PageVO<SupplierApiRefundAddrVO> page(PageDTO pageDTO, SupplierRefundAddrDTO supplierRefundAddrDTO);

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

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

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

    /**
     * 根据商家退货地址id删除商家退货地址
     * @param supplierRefundAddrId 商家退货地址id
     * @param supplierId 供应商id
     */
    void deleteById(Long supplierRefundAddrId, Long supplierId);

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

    /**
     * 清除供应商缓存
     * @param supplierId
     */
    void removeCacheBySupplierId(Long supplierId);
}
