package com.xjrsoft.module.attendance.service;

import com.github.yulichang.base.MPJBaseService;
import com.xjrsoft.module.attendance.dto.AddAttendanceRuleCategoryDto;
import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;

import java.util.List;
import java.util.Map;

/**
* @title: 考勤规则
* @Author dzx
* @Date: 2024-05-08
* @Version 1.0
*/

public interface IAttendanceRuleCategoryService extends MPJBaseService<AttendanceRuleCategory> {
    /**
    * 新增
    *
    * @param dto
    * @return
    */
    Boolean add(AddAttendanceRuleCategoryDto dto);

    /**
    * 更新
    *
    * @param dto
    * @return
    */
    Boolean update(UpdateAttendanceRuleCategoryDto dto);

    /**
    * 删除
    *
    * @param ids
    * @return
    */
    Boolean delete(List<Long> ids);

    List<AttendanceRuleDetails> getTodayRules();

    AttendanceRuleDetails getTodayRulesByParam(String dayOfWeek);

    Map<Long, AttendanceRuleDetailsUserVo> getAllTeacherTodyRule(String dayOfWeek);

    Map<Long, AttendanceRuleDetailsUserVo> getAllStudentTodyRule(String dayOfWeek);


    Map<String, Map<Long, AttendanceRuleDetailsUserVo>> getAllTeacherTodyRule(List<String> dayOfWeek);

    Map<String, Map<Long, AttendanceRuleDetailsUserVo>> getAllStudentTodyRule(List<String> dayOfWeek);

}
