using System;
using System.Collections.Generic;
using CncModels.Dto.Dashboard;

namespace CncRepository.Interface
{
    /// <summary>
    /// 仪表盘统计查询仓储接口（跨表聚合）
    /// </summary>
    public interface IDashboardRepository
    {
        DashboardSummaryResponse GetSummary();

        List<WorkshopProductionResponse> GetWorkshopProduction(DateTime startDate, DateTime endDate);

        List<MachineRankResponse> GetMachineRank(DateTime startDate, DateTime endDate, int top, string sortOrder = "desc");

        List<WorkerRankResponse> GetWorkerRank(DateTime startDate, DateTime endDate, int top, string sortOrder = "desc");

        List<dynamic> GetProductionTrend(int days);

        object GetMachineStatusDistribution();

        List<AlertListItem> GetRecentAlerts(int count);
    }
}
