using Hotline.Share.Dtos.Settings;
using Hotline.Share.Enums.FlowEngine;
using Hotline.Share.Enums.Settings;
namespace Hotline.Settings.TimeLimits
{
public interface ITimeLimitDomainService
{
///
/// 获取办理时限配置
///
///
///
///
int GetOrderTimeLimitConfig(string? code);
///
/// 新增
///
///
///
Task AddAsync(TimeLimit model, CancellationToken cancellationToken);
///
/// 修改
///
///
///
///
Task UpdateAsync(TimeLimit model, CancellationToken cancellationToken);
///
///
///
///
///
///
///
TimeResult CalcEndTime(DateTime beginTime, ETimeType timeType, int timeValue,bool isCenter);
///
///
///
///
///
///
TimeResult? CalcEndTime(DateTime beginTime, string busCode, bool isCenter);
TimeResult? CalcEndTime(EFlowDirection flowDirection, ETimeType? timeType = null, int? timeValue = null);
///
///
///
///
///
///
int CalcWorkTime(DateTime beginTime, DateTime endTime, bool isCenter);
///
/// 计算时间间隔
///
///
///
///
///
string CalcTimeInterval(DateTime beginTime, DateTime endTime, bool isCenter);
///
/// 判断是否工作日
///
///
///
bool IsWorkDay(DateTime date);
///
/// 获取工作日
///
///
///
DateTime WorkDay(DateTime date);
}
}