package com.fjhx.service;

import com.fjhx.base.BaseService;
import com.fjhx.entity.BackGoods;

import java.math.BigDecimal;

/**
 * <p>
 * 退货单 服务类
 * </p>
 *
 * @author ${author}
 * @since 2022-08-25
 */
public interface BackGoodsService extends BaseService<BackGoods> {

    /**
     * 发起退货
     *
     * @param backGoods 退货实体
     */
    void launchBackGoods(BackGoods backGoods);

    /**
     * 发起退货（指定前缀自动生成退货单号）
     *
     * @param backGoods  退货实体
     * @param codePrefix 单号前缀
     */
    void launchBackGoodsAuto(BackGoods backGoods, String codePrefix);

    /**
     * 发起退货（默认前缀自动生成退货单号）
     *
     * @param backGoods 退货实体
     */
    void launchBackGoodsAuto(BackGoods backGoods);

    /**
     * 退款审批未通过
     *
     * @param backGoodsId 退款id
     */
    void flowNotPass(Long backGoodsId);

    /**
     * 退款审批通过
     *
     * @param backGoodsId 退款id
     */
    void flowPass(Long backGoodsId);

    /**
     * 退款
     *
     * @param backGoodsId 退款id
     * @param price       退款金额
     */
    void refund(Long backGoodsId, BigDecimal price);


}
