using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MOKA_Factory_Tools.Models
{
    public class AMResult
    {
        public DateTime TestDate { get; set; }      /* 日期班次 */
        public int TestHour { get; set; } = -1;     /* 小时 */
        public string Line { get; set; }            /* 线体：UI界面或配置文件提供 */
        public string Station { get; set; } = "";   /* 工站：UI界面或配置文件提供 */
        public string Model { get; set; }           /* 机型：HTTP接口获取 */
        public string Dimension { get; set; }       /* 尺寸：HTTP接口获取 */
        public string TestTime { get; set; }        /* 测试时间 */
        public string ODF { get; set; }             /* 批次：HTTP接口获取 */
        public string SN { get; set; } = "";        /* 本次抄写SN */
        public string ReDo { get; set; }            /* 重流标识 */
        public string Test01 { get; set; }          /* 首次测试结果 */
        public string Test02 { get; set; }          /* 第二次测试结果 */
        public string FinalTest { get; set; }       /* 最终测试结果 */
        public string ResultType { get; set; }      /* 结果类型：OncePass、NTF、FinalPass、TwiceFail、FinalPass、OnceFail、FinalFail */
        public string DSN { get; set; }             /* 本次抄写DSN */
        public string ErrorMsg { get; set; }        /* 抄写失败描述 */
        public string Remark { get; set; }          /* 备注：用于记录连续测试中累计失败次数 */

        /// <summary>
        /// 判断对象的值是否空;
        /// </summary>
        /// <returns></returns>
        public bool IsValueEmpty()
        {
            if (TestHour == -1 || SN == "")
                return true;
            return false;
        }
    }

    public class AMResult_TR
    {
        public DateTime TestDate { get; set; }      /* 日期班次 */
        public int TestHour { get; set; } = -1;     /* 小时 */
        public string Line { get; set; }            /* 线体：UI界面或配置文件提供 */
        public string Station { get; set; } = "";   /* 工站：UI界面或配置文件提供 */
        public string Model { get; set; }           /* 机型：HTTP接口获取 */
        public string Dimension { get; set; }       /* 尺寸：HTTP接口获取 */
        public string TestTime { get; set; }        /* 测试时间 */
        public string ODF { get; set; }             /* 批次：HTTP接口获取 */
        public string SN { get; set; } = "";        /* 本次抄写SN */
        public string ReDo { get; set; }            /* 重流标识 */
        public string Test01 { get; set; }          /* 首次测试结果 */
        public string Test02 { get; set; }          /* 第二次测试结果 */
        public string Test03 { get; set; }          /* 第三次测试结果 */
        public string FinalTest { get; set; }       /* 最终测试结果 */
        public string ResultType { get; set; }      /* 结果类型：OncePass、NTF、FinalPass、TwiceFail、FinalPass、OnceFail、FinalFail */
        public string DSN { get; set; }             /* 本次抄写DSN */
        public string ErrorMsg { get; set; }        /* 抄写失败描述 */
        public string Remark { get; set; }          /* 备注：用于记录连续测试中累计失败次数 */

        /// <summary>
        /// 判断对象的值是否空;
        /// </summary>
        /// <returns></returns>
        public bool IsValueEmpty()
        {
            if (TestHour == -1 || SN == "")
                return true;
            return false;
        }
    }

    public class HourlyResultData
    {
        public string TotalAllCount { get; set; } = "0";
        public string TotalZeroCount { get; set; } = "0";
        public string OncePassAllCount { get; set; } = "0";
        public string OncePassZeroCount { get; set; } = "0";
        public string NTFAllCount { get; set; } = "0";
        public string NTFZeroCount { get; set; } = "0";
        public string RealFailCount { get; set; } = "0";
        public string NTFSN { get; set; }
        public string FailDSN { get; set; }
    }

    public class HourlyResultTRData
    {
        public string TotalAllCount { get; set; } = "0";
        public string TotalZeroCount { get; set; } = "0";
        public string OncePassAllCount { get; set; } = "0";
        public string OncePassZeroCount { get; set; } = "0";
        public string NTFAllCount { get; set; } = "0";
        public string NTFZeroCount { get; set; } = "0";
        public string RealFailCount { get; set; } = "0";
        public string NTFSN { get; set; }
        public string FailDSN { get; set; }
    }
}
