using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using NPP.SmartSchedue.Api.Contracts.Services.Integration.Output;
namespace NPP.SmartSchedue.Api.Contracts.Services.Equipment;
///
/// 设备服务接口
/// 提供设备查询和可用性检查等功能
///
public interface IEquipmentService
{
///
/// 获取指定日期的可用设备列表
///
/// 查询日期
/// 工序ID(可选)
/// 可用设备列表
Task> GetAvailableEquipmentAsync(DateTime date, long? processId = null);
///
/// 检查指定设备在指定日期是否可用
///
/// 设备ID
/// 检查日期
/// 是否可用
Task IsEquipmentAvailableAsync(long equipmentId, DateTime date);
///
/// 获取指定日期范围内的设备使用统计
///
/// 开始日期
/// 结束日期
/// 设备使用统计
Task GetEquipmentUsageStatisticsAsync(DateTime startDate, DateTime endDate);
///
/// 批量检查设备可用性
///
/// 设备ID列表
/// 检查日期
/// 设备可用性结果字典
Task> BatchCheckEquipmentAvailabilityAsync(List equipmentIds, DateTime date);
}