package com.qs.mp.common.service;

import com.qs.mp.admin.domain.param.ShippingTemplateParam;
import com.qs.mp.admin.domain.vo.ShippingTemplateCalculateVO;
import com.qs.mp.admin.domain.vo.ShippingTemplateVO;
import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
import com.qs.mp.common.domain.ShippingTemplate;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 运费模板表 服务类
 * </p>
 *
 * @author quanshu
 * @since 2022-04-29
 */
public interface IShippingTemplateService extends IService<ShippingTemplate> {

    /**
     * 新增运费模板
     * @param shippingTemplateParam 运费模板入参类
     * @return
     */
    boolean create(ShippingTemplateParam shippingTemplateParam);

    /**
     * 更新运费模板
     * @param shippingTemplateParam 运费模板入参类
     * @return
     */
    boolean updateShippingTemplate(ShippingTemplateParam shippingTemplateParam);

    /**
     * 根据id查询运费模板详情
     * @param id    运费模板id
     * @return
     */
    ShippingTemplateVO detail(Long id);


    /**
     * 根据id删除运费模板
     * @param id    运费模板id
     * @return
     */
    boolean deleteShippingTemplate(Long id);

    /**
     * 计算运费
     * @param num  购买数量
     * @param shippingTemplateCalculateVO   运费模板计算入参类
     * @return
     */
    int calculateFreightAmt(Integer num, ShippingTemplateCalculateVO shippingTemplateCalculateVO);
}
