package com.ruoyi.bst.driver.service;

import java.util.List;

import com.ruoyi.bst.driver.domain.Driver;
import com.ruoyi.bst.driver.domain.DriverQuery;
import com.ruoyi.bst.driver.domain.DriverVO;
import com.ruoyi.bst.driver.domain.dto.DriverVerifyDTO;

/**
 * 驾驶证认证Service接口
 *
 * @author ruoyi
 * @date 2025-06-03
 */
public interface DriverService
{
    /**
     * 查询驾驶证认证
     *
     * @param id 驾驶证认证主键
     * @return 驾驶证认证
     */
    public DriverVO selectDriverById(Long id);

    /**
     * 查询驾驶证认证列表
     *
     * @param driver 驾驶证认证
     * @return 驾驶证认证集合
     */
    public List<DriverVO> selectDriverList(DriverQuery driver);

    /**
     * 新增驾驶证认证
     *
     * @param driver 驾驶证认证
     * @return 结果
     */
    public int insertDriver(Driver driver);

    /**
     * 修改驾驶证认证
     *
     * @param driver 驾驶证认证
     * @return 结果
     */
    public int updateDriver(Driver driver);

    /**
     * 批量删除驾驶证认证
     *
     * @param ids 需要删除的驾驶证认证主键集合
     * @return 结果
     */
    public int deleteDriverByIds(Long[] ids);

    /**
     * 删除驾驶证认证信息
     *
     * @param id 驾驶证认证主键
     * @return 结果
     */
    public int deleteDriverById(Long id);

    /**
     * 查询最后一次认证数据
     *
     * @param userId 用户ID
     * @return 驾驶证认证
     */
    public DriverVO selectLastOneByUserId(Long userId);

    /**
     * 审核驾驶证认证
     *
     * @param dto 驾驶证认证审核DTO
     * @return 结果
     */
    public int verify(DriverVerifyDTO dto);
}
