package bus.service;

import bus.model.dto.*;
import bus.model.dto.page.BCourseInfoPageDto;
import bus.model.vo.BCourseInfoVo;
import bus.model.po.BCourseInfoPo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Program: bus
 * @Description: 描述
 * @Author: zy
 * @Date: 2025-03-02 19:53:49
 **/
public interface BCourseInfoService extends IService<BCourseInfoPo> {


    /**
     * 详情
     * @param id
     * @return
     */
    BCourseInfoDto getDetailById(String id);

    BCourseInfoPo getDetail(String id);
	/**
     * 保存
     * @param dto
     * @return
     */
    void save(BCourseInfoDto dto);

    /**
    * 列表
    * @param dto
    * @return
    */
    List<BCourseInfoVo> list(BCourseInfoPageDto dto);

	/**
     * 修改
     * @param dto
     * @return
     */
    void update(BCourseInfoDto dto);

	/**
     * 删除
     * @param id
     * @return
     */
    void delete(String id);

    /**
     * 根据经纬度和半径(米)获取附近的路线
     * @param latitude
     * @param longitude
     * @param radius
     * @return
     */
    List<WBusTrackInfoDto> getNearbyRoutes(NearbyRoutesDto nearbyRoutesDto);

    List<BCourseTrackTreeDto> getTreeList();

    BTrackStationDto getPoint(String var1);

    List<BStationPointDto> getAllPoint();

    List<BTrackCourseDto> getAllCourse();

    /**
     * 根据站点类型获取路线信息
     * @param stationType
     * @return
     */
    List<WStationNameDto> getAllCourseByType(String stationType);


    /**
     * 根据站点类型获取路线信息
     * @param
     * @return
     */
    List<WCourseInfoByTypeDto> getMapAllCourse();

     WCourseDetailDto getCourseDetail(String courseId) ;
}
