using System.Collections.Generic;

namespace Siger.Middlelayer.CncRepository.Response
{
    public  class ResponseGetAlarmDataForAnalysis
    {
        public string Abscissa { get; set; }

        public double Ordinate { get; set; }

        public double Rate { get; set; }
    }

    public class ResponseGetAlarmDataForAnalysisNew
    {
        public string Abscissa { get; set; }

        public double Ordinate { get; set; }

        public double Rate { get; set; }

        public string Abscissacl { get; set; }

        public double Ordinatecl { get; set; }

        public double Ratecl { get; set; }
    }

    public class ResponseGetAlarmDataForAnalysisNewcl
    {
        public List<ResponseGetAlarmDataForAnalysis> AlarmDuration { get; set; }
        public List<ResponseGetAlarmDataForAnalysis> AlarmTimes { get; set; }
    }

    public class GetAlarmDataForAnalysis
    {
        public IList<string> xdata { get; set; }

        public IList<double> ydata { get; set; }

        public IList<ResponseGetAlarmDataForAnalysis> topgood { get; set; }

        public IList<ResponseGetAlarmDataForAnalysis> topbad { get; set; }

        public GetAlarmDataForAnalysis()
        {
            xdata = new List<string>();
            ydata = new List<double>();
            topgood = new List<ResponseGetAlarmDataForAnalysis>();
            topbad = new List<ResponseGetAlarmDataForAnalysis>();
        }
    }

    public class ResponseGetAlarmDataForMoutReport
    {
        public string Abscissa { get; set; }

        public double duration { get; set; }

        public double times { get; set; }

        public double Rate { get; set; }
    }

    public class GetAlarmDataForMoutReport
    {
        public IList<string> xdata { get; set; }

        public IList<double> ydata { get; set; }

        public IList<ResponseGetAlarmDataForMoutReport> topduration { get; set; }

        public IList<ResponseGetAlarmDataForMoutReport> toptimes { get; set; }

        public GetAlarmDataForMoutReport()
        {
            xdata = new List<string>();
            ydata = new List<double>();
            topduration = new List<ResponseGetAlarmDataForMoutReport>();
            toptimes = new List<ResponseGetAlarmDataForMoutReport>();
        }
    }

    public class GetMachineAlarmCodeData
    {
        public List<string> month_alarm_top5_yAxis { get; set; } = new List<string>();

        public List<int> month_alarm_top5_series { get; set; } = new List<int>();

        public int total_alarm_count { get; set; }

        public double alarm_average_time { get; set; }

        public int top5_alarm_count { get; set; }

        public double top5_alarm_rate { get; set; }
    }

    public class GetToolAlarmDateData
    {
        public List<DateToolAlarm> date_tool_alarms { get; set; } = new List<DateToolAlarm>();

        public List<StatusToolAlarm> status_tool_alarms { get; set; } = new List<StatusToolAlarm>();

        public List<string> alarm_name { get; set; } = new List<string>();

        public List<int> alarm_data { get; set; } = new List<int>();

        public int broken_count { get; set; }

        public int destroyed_count { get; set; }
    }

    public class StatusToolAlarm
    {
        public string name { get; set; }

        public List<int> alarm_data { get; set; } = new List<int>();
    }

    public class DateToolAlarm
    {
        public string datetime { get; set; }

        public List<int> alarm_data { get; set; } = new List<int>();
    }

    public class AlarmGradeCount
    {
        public string name { get; set; }

        public int grade { get; set; }

        public int count { get; set; }
    }
}
