package com.yc.ship.module.resource.service.driver;


import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.module.resource.controller.admin.driver.vo.*;
import com.yc.ship.module.resource.dal.dataobject.driver.DriverDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 驾驶员管理 Service 接口
 *
 * @author 管理员
 */
public interface DriverService {

    /**
     * 创建驾驶员管理
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    String createDriver(@Valid DriverSaveReqVO createReqVO);

    /**
     * 更新驾驶员管理
     *
     * @param updateReqVO 更新信息
     */
    void updateDriver(@Valid DriverSaveReqVO updateReqVO);

    /**
     * 删除驾驶员管理
     *
     * @param id 编号
     */
    void deleteDriver(String id);

    /**
     * 获得驾驶员管理
     *
     * @param id 编号
     * @return 驾驶员管理
     */
    DriverDO getDriver(String id);

    /**
     * 获得驾驶员管理分页
     *
     * @param pageReqVO 分页查询
     * @return 驾驶员管理分页
     */
    PageResult<DriverDO> getDriverPage(DriverPageReqVO pageReqVO);


    List<DriverDO> getDriverList();

    List<DriverDO> getDriverList(DriverSimpleRespVO respVO);

    /**
     * 获取精简数据，
     *
     * @return 驾驶员列表
     */
    List<DriverDO> getSimpleCarList();


    /**
     * @description: 获取驾驶员（没有设为车辆默认驾驶员的列表）
     * @description:
     * @author yxq
     * @date: 2025/8/26 12:02
     * @Param reqVO:
     * @return: java.util.List<com.zshl.dispatch.ops.store.controller.admin.driver.vo.DriverRespVO>
     */
    List<DriverRespVO> getDriverDefaultCarList(DriverReqVO reqVO);

    List<DriverDO> getSimpleDriverListByCarType(String carType);
}