package com.ningdatech.pmapi.expert.service;

import com.ningdatech.pmapi.expert.model.cmd.*;
import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO;

import java.util.List;

/**
 * @author liuxinxin
 * @date 2022/7/22 下午4:39
 */

public interface ExpertInfoService {

    void saveExpertInfo(ExpertFullInfoSaveCmd cmd);

    /**
     * 专家报名提交 推荐证明材料
     *
     * @param expertRecommendProofSaveCmd
     */
    Long expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd);

    void expertIntentionApplyDeal(ExpertIntentionApplyDealCmd expertIntentionApplyDealCmd);


    /**
     * 专家信息修改审核结果处理
     *
     * @param expertInfoModifyApplyDealCmd \
     */
    void expertInfoModifyDeal(ExpertInfoModifyApplyDealCmd expertInfoModifyApplyDealCmd);

    /**
     * 根据user_id 获取用户全量信息
     *
     * @param userId \
     * @return \
     */
    ExpertFullInfoAllDTO getExpertUserFullInfoAll(Long userId);

    /**
     * 专家入库审核处理
     *
     * @param cmd \
     **/
    void expertStorageDeal(ExpertStorageDealCmd cmd);


    /**
     * 批量获取用户全量信息
     **/
    List<ExpertFullInfoAllDTO> listExpertUserFullInfoAll(List<Long> userIds);


    /**
     * 管理员修改专家信息
     */
    List<Long> adminModifyExpertInfo(ExpertInfoModifyCmd cmd, Long adminUserId);

}

