using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ZhonTai.Admin.Core.Dto;
using NPP.SmartSchedue.Api.Contracts.Services.Time.Input;
using NPP.SmartSchedue.Api.Contracts.Services.Time.Output;
namespace NPP.SmartSchedue.Api.Contracts.Services.Time;
///
/// 班次规则映射服务接口
///
public interface IShiftRuleMappingService
{
///
/// 查询
///
///
///
Task GetAsync(long id);
///
/// 查询分页
///
///
///
Task> GetPageAsync(PageInput input);
///
/// 添加
///
///
///
Task AddAsync(ShiftRuleMappingAddInput input);
///
/// 修改
///
///
///
Task UpdateAsync(ShiftRuleMappingUpdateInput input);
///
/// 删除
///
///
///
Task DeleteAsync(long id);
///
/// 软删除
///
///
///
Task SoftDeleteAsync(long id);
///
/// 批量软删除
///
///
///
Task BatchSoftDeleteAsync(long[] ids);
///
/// 根据班次查询映射的规则
///
/// 班次ID
/// 映射的规则列表
Task> GetRulesByShiftIdAsync(long shiftId);
///
/// 班次增加规则
///
/// 班次ID
/// 规则ID
/// 映射配置
/// 映射ID
Task AddRuleToShiftAsync(long shiftId, long ruleId, ShiftRuleMappingAddInput input);
///
/// 班次修改规则
///
/// 映射ID
/// 修改信息
/// 操作结果
Task UpdateShiftRuleAsync(long mappingId, ShiftRuleMappingUpdateInput input);
///
/// 班次删除规则
///
/// 班次ID
/// 规则ID
/// 操作结果
Task RemoveRuleFromShiftAsync(long shiftId, long ruleId);
}