package com.yida.data.attendance.service;


import com.yida.data.attendance.dto.DayReportDataDTO;
import com.yida.data.common.core.entity.attendance.attendance.AttendanceRecord;
import com.yida.data.common.core.entity.attendance.attendance.AttendanceResult;
import com.yida.data.common.core.entity.attendance.attendance.AttendanceRule;
import java.util.List;
import org.springframework.scheduling.annotation.Async;

public interface NoticeService {

    /**
     * 发送考勤进出通知
     *
     * @param record
     */
    @Async
    void sendAttendanceNotice(AttendanceRecord record);

    /**
     * 重新采集人脸通知
     *
     * @param picUrl
     * @param userId
     * @param type
     */
    void sendCollectFailNotice(String picUrl, Long userId, Integer type);


    /**
     * 向家长发送迟到提醒
     *
     * @param result
     */
    void sendLateNoticeToParent(AttendanceResult result);


    /**
     * 发送学生迟到报告给职工
     *
     * @param
     */
    @Async
    void sendStudentAttendanceLateReportToStaff(List<AttendanceResult> resultList, Long staffId, AttendanceRule rule,
        Long lateMinute);


    @Async
    void sendAttendanceDayReportToStaff(Long staffId, List<DayReportDataDTO> dtoList, AttendanceRule rule, Integer userType,
        Boolean isLeader);
}
