package com.sqx.modules.travelconf.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.travelconf.entity.TravelConf;
import com.sqx.modules.travelconf.vo.TravelPriceVo;

import java.math.BigDecimal;
import java.util.Date;

public interface TravelConfService extends IService<TravelConf> {


	/**
	 *
	 * @param travelType 出行方式(1:免费,2:出租,3:公共交通)
	 * @return
	 */
	TravelConf getConfByAccordingCondition(Integer travelType, Date businessTime);

	/**
	 * 根据类型获取出行配置
	 * @param pricingType 价格类型(1:固定价格,2:动态价格)
	 * @param travelType 出行方式(1:免费,2:出租,3:公共交通)
	 * @param seasonsType 时令(1:夏令时,2:冬令时)
	 * @param timeIntervalType 时段(1:白天,2:夜间)
	 * @return 配置对象
	 */
	TravelConf getConfByAccordingCondition(Integer pricingType, Integer travelType, Integer seasonsType, Integer timeIntervalType, Integer fixedType);

	/**
	 * 按ID获取出行价格
	 * @param artificerId
	 * @param toLongitude
	 * @param toLatitude
	 * @return
	 */
	TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime);
	TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime, Integer tripWay);
//	TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude);

	/**
	 * 最终获取出行价格
	 * @param _travelType
	 * @param freeKilometers
	 * @param longitude
	 * @param latitude
	 * @param toLongitude
	 * @param toLatitude
	 * @return
	 */
	TravelPriceVo calcTravelPrice(Integer _travelType, BigDecimal freeKilometers, String longitude, String latitude, String toLongitude, String toLatitude, String serveTime);
}
