package com.cool.store.service;

import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.exception.ApiException;
import com.cool.store.request.*;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.interview.CreateAppointmentVO;
import com.cool.store.vo.interview.InterviewVO;

import java.util.List;

/**
 * @Author: young.yu
 * @Date: 2023-06-06  15:01
 * @Description :面试service
 */
public interface InterviewService {
    List<InterviewVO> getInterviewList(GetInterviewListReq request);

    /**
     * 根据面试会议计划id查询面试信息
     * @param request
     * @return
     */
    InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) throws ApiException;

    /**
     * 委托他人
     * @param request
     */
    void entrustOthers(EntrustOthersReq request) throws ApiException;
    /**
     * 修改面试时间
     * @param request
     */
    void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException;

    /**
     * 结束面试
     * @param request
     */
    void finishInterview(FinishInterviewReq request) throws ApiException;

    /**
     * 进入面试间的方法
     * 修改一些面试状态
     * 最后返回 userSign 用于进入腾讯云音视频房间
     * @return userSign 进入视频所需签名
     */
    EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) throws ApiException;

    /**
     * 创建面试预约信息
     * @param request
     * @return
     */
    CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException;

    /**
     * 同意面试预约
     * @param request
     * @return
     */
    void approveAppointment(ApproveAppointmentReq request) throws ApiException;
    void reInterview(ReInterviewReq request) throws ApiException;
//    void rejectInterview(RejectInterviewReq request) throws ApiException;

    public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException;

    public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);

    public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime);

}
