package cn.iocoder.yudao.module.base.mapper;

import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.vo.*;
import cn.iocoder.yudao.module.base.vo.BusinessRecordExportVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 驾校教练 Mapper
 *
 * @author pqz
 */
@Mapper
public interface DlDriveSchoolCoachMapper extends BaseMapper<DlDriveSchoolCoach> {

    /**
     * 驾校教练、普通员工列表
     *
     * @param entity {@link DlDriveSchoolCoachPageReqVO}
     * @param page   分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO>
     * @author PQZ
     * @date 15:04 2025/1/16
     **/
    IPage<DlDriveSchoolCoachRespVO> queryListPage(@Param("entity") DlDriveSchoolCoachPageReqVO entity, Page<DlDriveSchoolCoachRespVO> page);

    /**
     * 手机端查询人员信息
     *
     * @param entity {@link DlDriveSchoolStaffVO}
     * @param page   分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
     * @author PQZ
     * @date 13:53 2025/2/6
     **/
    IPage<DlDriveSchoolStaffVO> pageStaffCoach(@Param("entity") DlDriveSchoolStaffVO entity, Page<DlDriveSchoolStaffVO> page);

    /**
     * 根据邀请码查询教练信息
     */
    DlDriveSchoolCoach getCoachByUniqueCode(@Param("uniqueCode") String uniqueCode);

    CoachStaffSaveVo getOnInternal(Long id);

    List<SchoolStaffImportExcelVO> getAll(@Param("entity") SchoolStaffImportExcelVO query);

    IPage<BusinessRecordVO> getBusinessManager(@Param("entity") BusinessRecordReqVO reqVO, Page<BusinessRecordReqVO> page);
    List<BusinessRecordVO> getBusinessManagerMoney(@Param("entity") BusinessRecordReqVO reqVO);

    IPage<BusinessRecordExportVO> getBusinessRecordExportData(@Param("entity") BusinessRecordExportVO exportVO, Page<BusinessRecordExportVO> page);
}
