using CompanyManagment.App.Contracts.RollCallService;
using WorkFlow.Application.Contracts.Shared;
namespace WorkFlow.Infrastructure.ACL.RollCall;
// ReSharper disable once InconsistentNaming
public interface IWorkFlowRollCallACL
{
///
/// این متد تمام حضور غیاب های کات شده توسط بک گراند سرویس را به صورت تعداد روزانه برمیگرداند
///
///
///
/// لیستی از تعداد و روز آن
List GetRollCallWorkFlowsCutByBgService(long workshopId, DateTime start, DateTime end);
List GetRollCallsOverlappingLeaves(long workshopId, DateTime start,
DateTime end);
///
/// تمامی حضور غیاب های کات شده توسط بک گراند سرویس را برمیگرداند
///
///
///
///
int GetCountCutRollCallByBgService(long workshopId);
List GetNotSlicedRollCallsByWorkshopId(long workshopId, DateTime durationStart,
DateTime durationEnd);
int GetRollCallAbsentsWorkFlowsCount(long workshopId, DateTime durationEnd, DateTime durationStart);
List<(long EmployeeId, string EmployeeName, DateTime startActive, DateTime endActive)> GetActiveWorkshopRollCallEmployees(long workshopId, DateTime start, DateTime end);
List GetAbsentRollCallWorkFlows(long workshopId, DateTime durationStart, DateTime durationEnd);
RollCallWorkFlowViewModel GetDetails(long rollCallId);
RollCallServiceViewModel GetActiveServiceByWorkshopId(long workshopId);
List GetUndefinedRollCalls(long workshopId, DateTime durationStart, DateTime durationEnd);
}