package com.lesingle.edu.service;

import com.lesingle.edu.dto.response.ConflictCheckResult;

import java.time.LocalDate;

/**
 * 排课冲突检测服务接口
 */
public interface ScheduleConflictService {

    /**
     * 检测排课冲突
     *
     * @param tenantId      租户 ID
     * @param classId       班级 ID
     * @param teacherId     教师 ID
     * @param scheduledDate 排课日期
     * @param scheduledTime 时间段
     * @return 冲突检测结果
     */
    ConflictCheckResult checkConflict(Long tenantId, Long classId, Long teacherId,
                                       LocalDate scheduledDate, String scheduledTime);

    /**
     * 检测排课冲突（排除指定 ID）
     *
     * @param tenantId      租户 ID
     * @param classId       班级 ID
     * @param teacherId     教师 ID
     * @param scheduledDate 排课日期
     * @param scheduledTime 时间段
     * @param excludeId     排除的排课 ID（用于更新时排除自身）
     * @return 冲突检测结果
     */
    ConflictCheckResult checkConflict(Long tenantId, Long classId, Long teacherId,
                                       LocalDate scheduledDate, String scheduledTime, Long excludeId);
}