namespace SeaHaven.DataServices.Interfaces { using Data.SeaHavenIndustries.Enums; public interface IDashboardDataService { Task GetWorkOrderCountsAsync( int? accountId, CancellationToken cancellationToken); Task GetKpiCountsAsync( int? accountId, string? dispatcherId, DateOnly today, CancellationToken cancellationToken); Task> GetDashboardWorkOrdersAsync( int? accountId, string? dispatcherId, DateOnly? dateFrom, DateOnly? dateTo, CancellationToken cancellationToken); Task> GetDispatcherWorkloadAsync( int? accountId, string? dispatcherId, DateOnly? dateFrom, DateOnly? dateTo, CancellationToken cancellationToken); } public sealed record DashboardWorkOrder( int Id, string? AssignTo, WorkOrderType? WorkOrderType, LifecycleStatus? LifecycleStatus, string? LegacyStatus, DateTime? ScheduledDate, DateOnly? OriginalDate, DateTime? CompletedDate, string? LocationState = null, int RescheduleCount = 0, int? VendorCompanyId = null, string? VendorCompanyName = null, bool VendorIsActive = false, bool VendorCompanyIsDeleted = false); public sealed record DashboardDispatcherWorkload( string DispatcherId, string DispatcherName, string? Color, int TotalCount, int OpenCount); public class DashboardCounts { public int Total { get; set; } public int Open { get; set; } public int NotDispatched { get; set; } public int Completed { get; set; } } public sealed record DashboardKpiCounts( int ScheduledTomorrow, int PendingUplifts, int AvetaPending); }