package com.sundot.airport.attendance.service;

import java.util.Date;
import java.util.List;

import com.sundot.airport.attendance.domain.AttendanceTeamUserRecord;

/**
 * 考勤班组成员Service接口
 *
 * @author ruoyi
 * @date 2025-09-06
 */
public interface IAttendanceTeamUserRecordService {
    /**
     * 查询考勤班组成员
     *
     * @param userId 考勤班组成员主键
     * @return 考勤班组成员
     */
    public AttendanceTeamUserRecord selectAttendanceTeamUserRecordByUserId(Long userId, Date attendanceDate, String checkInType);

    /**
     * 查询考勤班组成员列表
     *
     * @param attendanceTeamUserRecord
     * @return
     */

    List<AttendanceTeamUserRecord> selectAttendanceTeamUserRecordPageList(AttendanceTeamUserRecord attendanceTeamUserRecord);

    /**
     * 上岗记录中查询考勤班组成员列表
     *
     * @param attendanceTeamUserRecord 考勤班组成员
     * @return 考勤班组成员集合
     */
    public List<AttendanceTeamUserRecord> selectAttendanceTeamUserRecordList(AttendanceTeamUserRecord attendanceTeamUserRecord, boolean changeDate);

    /**
     * 新增考勤班组成员
     *
     * @param attendanceTeamUserRecord 考勤班组成员
     * @return 结果
     */
    public int insertAttendanceTeamUserRecord(AttendanceTeamUserRecord attendanceTeamUserRecord);

    /**
     * 修改考勤班组成员
     *
     * @param attendanceTeamUserRecord 考勤班组成员
     * @return 结果
     */
    public int updateAttendanceTeamUserRecord(AttendanceTeamUserRecord attendanceTeamUserRecord);

    /**
     * 批量删除考勤班组成员
     *
     * @param userIds 需要删除的考勤班组成员主键集合
     * @return 结果
     */
    public int deleteAttendanceTeamUserRecordByUserIds(Long[] userIds);

    /**
     * 删除考勤班组成员信息
     *
     * @param userId 考勤班组成员主键
     * @return 结果
     */
    public int deleteAttendanceTeamUserRecordByUserId(Long userId);

    /**
     * 批量新增考勤班组成员
     *
     * @param attendanceTeamUserRecord
     * @return
     */
    int insertAttendanceTeamUserRecordList(List<AttendanceTeamUserRecord> attendanceTeamUserRecord);

    /**
     * 查询考勤班组组长id
     */
    List<Long> selectAttendanceTeamLeaderId();

    /**
     * 批量删除考勤班组成员
     *
     * @param ids 需要删除的考勤班组成员主键集合
     * @return 结果
     */
    public int deleteAttendanceTeamUserRecordByIds(Long[] ids);
}
