package com.ylx.massage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylx.massage.domain.TFareFreeRule;
import com.ylx.massage.domain.vo.FareFreeRuleVo;

import java.util.List;

/**
 * 免车费规则服务接口
 *
 * @author system
 * @since 2024-01-13
 */
public interface TFareFreeRuleService extends IService<TFareFreeRule> {

    /**
     * 新增免车费规则（H5 技师端）
     *
     * @param fareFreeRule 免车费规则
     * @return 是否成功
     */
    boolean addFareFreeRule(TFareFreeRule fareFreeRule);

    /**
     * 保存免车费规则（支持新增和修改）
     * 如果传入id则更新，否则新增
     *
     * @param fareFreeRule 免车费规则
     * @return 是否成功
     */
    boolean saveFareFreeRule(TFareFreeRule fareFreeRule);

     /**
     * 禁用免车费规则（H5 技师端）
     *
     * @param openId
     * @return 是否成功
     */
    boolean disableFareFreeRule(String openId,String enable);



    /**
     * 查询免车费规则列表
     *
     * @param techId 技师ID
     * @return List<FareFreeRuleVo> 免车费规则VO列表
     */
    FareFreeRuleVo listFareFreeRules(String openId);

    /**
     * 判断订单是否满足免车费条件
     *
     * @param projectIds  服务项目ID列表
     * @param distance    订单距离（公里）
     * @param deptId      部门ID
     * @return true-免车费，false-不免车费
     */
    boolean isFareFree(List<String> projectIds, Integer distance, String deptId);
}
