package com.mmc.iuav.user.dao.dronepilot;

import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.dronepilot.PilotAbilityDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationLogDO;
import com.mmc.iuav.user.entity.dronepilot.PilotReasonDO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotAbilityVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author small
 * @Date 2023/7/28 9:36
 * @Version 1.0
 */
@Mapper
public interface PilotCertificationDao {
    List<PilotAbilityDO> abilityList();

    Integer selectRealNameAuth(Integer userAccountId);

    void insertPilot(PilotCertificationDO pilotCertificationDO);

    void insertAbility(List<PilotAbilityVO> list);

    void insertPilotLog(PilotCertificationLogDO pilotCertificationLog);

    Integer selectPilotCertification(Integer userAccountId);

    void deleteAbility(Integer id);

    void updatePilot(PilotCertificationDO pilotCertificationDO);

    Integer selectPilotCount(Integer id, Integer userAccountId);

    List<PilotCertificationDO> pilotList(PilotCertificationQO param);

    Integer getPilotAuditSum(Integer status);

    List<PilotAbilityVO> selectAbilityList(Integer pilotCertificationId);

    PilotCertificationDO detailPilot(Integer id);

    PilotCertificationDO userDetailPilot(Integer userAccountId);

    PilotCertificationDO interiorDetailPilot(Integer userAccountId);

    void updateRemark(PilotRemarkQO param);

    void updateAuditStatus(PilotAuditStatusQO param);

    UserAccountDO selectUserAccountId(PilotAuditStatusQO param);

    List<PilotCertificationLogDO> backPilotLogList(PilotCertificationLogQO param);

    List<PilotReasonDO> backListReason();

    PilotReasonDO selectPilotReason(String reasonId);

    int selectFirstApprove(Integer id);

    int getDronePilotCount();

}
