package com.cool.store.service.impl;

import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.interview.LineInterviewPageDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.AuditStatusMapper;
import com.cool.store.request.*;
import com.cool.store.service.*;
import com.cool.store.utils.TRTCUtils;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.vo.LineAuditInfoVO;
import com.cool.store.vo.interview.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author zhangchenbiao
 * @FileName: LineInterviewServiceImpl
 * @Description:
 * @date 2024-03-15 16:04
 */
@Slf4j
@Service
public class LineInterviewServiceImpl extends LineFlowService implements LineInterviewService {

    @Value("${trtc.sdkAppId}")
    private Long sdkAppId;
    @Value("${trtc.secretKey}")
    private String key;
    @Resource
    private LineInfoDAO lineInfoDAO;
    @Resource
    private LineInterviewDAO lineInterviewDAO;
    @Resource
    private LineCalendarsEventDAO lineCalendarsEventDAO;
    @Resource
    private LabelService labelService;
    @Resource
    private EnterpriseUserDAO enterpriseUserDAO;
    @Resource
    private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
    @Resource
    private LineAuditInfoDAO lineAuditInfoDAO;
    @Resource
    private CommonService commonService;
    @Resource
    private UserAuthMappingService userAuthMappingService;
    @Resource
    private SysRoleService sysRoleService;
    @Resource
    private TransferLogService transferLogService;
    @Resource
    private HyPartnerUserChannelDAO hyPartnerUserChannelDAO;
    @Resource
    private ShopService shopService;

    @Resource
    AuditStatusService auditStatusService;

    @Override
    public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) {
        return null;
    }

    @Override
    public List<AppointmentTimeListVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentStartDate, LocalDate appointmentEndDate) {
        return null;
    }

    @Override
    public Boolean appointmentTime(AppointmentTimeRequest request) {
        return null;
    }

    @Override
    public Boolean modifyAppointmentTime(AppointmentTimeRequest request) {
        return null;
    }

    @Override
    public Boolean modifyInterviewer(ModifyInterviewerRequest request) {
        return null;
    }

    @Override
    public PageInfo<LineInterviewPageVO> getInterviewerPage(LineInterviewPageRequest request, String userId, Boolean isTeam) {
        return null;
    }

    @Override
    public EnterInterviewVO enterInterviewRoom(Long interviewId, String interviewUserId, InterviewUserTypeEnum userType) {
        return null;
    }

    @Override
    public Integer finishInterview(Long interviewId, String userId) {
        return null;
    }

    @Override
    public InterviewDetailVO getInterviewDetail(Long lineId, Integer interviewType) {
        return null;
    }

    @Override
    public Integer uploadVideo(Long interviewId, List<String> videoUrlList) {
        return null;
    }

    @Override
    public Integer reappointment(Long lineId) {
        return null;
    }

    @Override
    protected Boolean auditPass(Long auditId, LineInfoDO lineInfo, String userId) {
        return null;
    }

    @Override
    protected Boolean auditReject(Long auditId, LineInfoDO lineInfo, String userId) {
        return null;
    }
}
