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

namespace MOKA_Factory_Tools.Models
{
    public class AMYields
    {
        public int ID { get; set; } = -1;               /* 自增ID */
        public DateTime TestDate { get; set; }          /* 日期班次 */
        public int TestHour{ get; set; }                /* 小时 */
        public string Line{ get; set; }                 /* 线体：UI界面或配置文件提供 */
        public string Station{ get; set; }              /* 工站：UI界面或配置文件提供 */
        public string ODF{ get; set; }                  /* 批次：HTTP接口获取 */
        public string DeviceNum{ get; set; }            /* 机架编号：HTTP接口获取 */
        public string Model{ get; set; }                /* 机型：HTTP接口获取 */
        public string Dimension{ get; set; }            /* 尺寸：HTTP接口获取 */
        public string OncePass{ get; set; }             /* 第一次Pass的数量：抄写一次就成功的整机（注意：GetKeys网络通信失败的不要视为Fail加入统计，进入工厂模式失败的也不要加入Fail） */
        public string NTF{ get; set; }                  /* 第二次Pass的数量：第一次抄写失败，则进行第二次抄写成功的数量 */
        public string TwiceFail{ get; set; }            /* 连续2次Fail的数量 */
        public string RealFail{ get; set; }             /* 实际Fail的数量 */
        public string Total{ get; set; }                /* 测试产品总数：是否包含回流的? */
        public string FPY{ get; set; }                  /* 一次测试Pass的合格率：计算方式= OncePass/Total */
        public string SPY{ get; set; }                  /* 两次以内测试Pass的合格率：计算方式=(OnecPass+NTF)/Total */
        public string RPY{ get; set; }                  /* 实际合格率：计算方式=1-RealFail/Total */
        public string YieldRate{ get; set; }            /* 去掉重码实际合格率：计算方式=1- */
        public string NTF_SN{ get; set; }               /* 记录NTF的FSN号，使用分号分隔 */
        public string FailDSN{ get; set; }              /* 记录实际Fail的FSN号 */
        public string Remark{ get; set; }               /* 备注 */

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

    public class AMYields_TR
    {
        public int ID { get; set; } = -1;               /* 自增ID */
        public DateTime TestDate { get; set; }          /* 日期班次 */
        public int TestHour { get; set; }                /* 小时 */
        public string Line { get; set; }                 /* 线体：UI界面或配置文件提供 */
        public string Station { get; set; }              /* 工站：UI界面或配置文件提供 */
        public string ODF { get; set; }                  /* 批次：HTTP接口获取 */
        public string DeviceNum { get; set; }            /* 机架编号：HTTP接口获取 */
        public string Model { get; set; }                /* 机型：HTTP接口获取 */
        public string Dimension { get; set; }            /* 尺寸：HTTP接口获取 */
        public string OncePass { get; set; }             /* 第一次Pass的数量：抄写一次就成功的整机（注意：GetKeys网络通信失败的不要视为Fail加入统计，进入工厂模式失败的也不要加入Fail） */
        public string NTF { get; set; }                  /* 第二次Pass的数量：第一次抄写失败，则进行第二次抄写成功的数量 */
        public string TwiceFail { get; set; }            /* 连续2次Fail的数量 */
        public string RealFail { get; set; }             /* 实际Fail的数量 */
        public string Total { get; set; }                /* 测试产品总数：是否包含回流的? */
        public string FPY { get; set; }                  /* 一次测试Pass的合格率：计算方式= OncePass/Total */
        public string SPY { get; set; }                  /* 两次以内测试Pass的合格率：计算方式=(OnecPass+NTF)/Total */
        public string RPY { get; set; }                  /* 实际合格率：计算方式=1-RealFail/Total */
        public string YieldRate { get; set; }            /* 去掉重码实际合格率：计算方式=1- */
        public string NTF_SN { get; set; }               /* 记录NTF的FSN号，使用分号分隔 */
        public string FailDSN { get; set; }              /* 记录实际Fail的FSN号 */
        public string Remark { get; set; }               /* 备注 */

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