using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MegaRobo.C00225155.Entities.Entity_DB
{
    public class DataResult_Dose:ObservableObject
    {
        private int boxId;
        /// <summary>
        /// 样品瓶工装号
        /// </summary>
        public int BoxId
        {
            get => boxId;
            set => SetProperty(ref boxId, value);
        }

        private int bottleId;
        /// <summary>
        /// 样品瓶号
        /// </summary>
        public int BottleId
        {
            get => bottleId;
            set => SetProperty(ref bottleId, value);
        }

        private string sampleCode;
        /// <summary>
        /// 样品瓶SN码
        /// </summary>
        public string SampleCode
        {
            get => sampleCode;
            set => SetProperty(ref sampleCode, value);
        }

        private ObservableCollection<AddLiquidData_Dose> liquidAdditives = new ObservableCollection<AddLiquidData_Dose>();
        public ObservableCollection<AddLiquidData_Dose> LiquidAdditives
        {
            get => liquidAdditives;
            set => SetProperty(ref liquidAdditives, value);
        }

        private ObservableCollection<AddPowderData_Dose> powderAdditives = new ObservableCollection<AddPowderData_Dose>();
        public ObservableCollection<AddPowderData_Dose> PowderAdditives
        {
            get => powderAdditives;
            set => SetProperty(ref powderAdditives, value);
        }

    }

    public class AddLiquidData_Dose : ObservableObject
    {
        private string sampleCode;
        /// <summary>
        /// SN码
        /// </summary>
        public string SampleCode
        {
            get => sampleCode;
            set => SetProperty(ref sampleCode, value);
        }

        private string liquidname;
        /// <summary>
        /// 液体名称
        /// </summary>
        public string LiquidName
        {
            get => liquidname;
            set => SetProperty(ref liquidname, value);
        }

        private double targetVolume;
        /// <summary>
        /// 目标加入体积
        /// </summary>
        public double TargetVolume
        {
            get => targetVolume;
            set => SetProperty(ref targetVolume, value);
        }

        private double actualAddVolume;
        /// <summary>
        /// 实际加入体积
        /// </summary>
        public double ActualAddVolume
        {
            get => actualAddVolume;
            set => SetProperty(ref actualAddVolume, value);
        }

        private int addState;
        /// <summary>
        /// 0：表示还未增加  1：表示正在增加  2：表示增加完成
        /// </summary>
        public int AddState
        {
            get => addState;
            set => SetProperty(ref addState, value);
        }

        private string precision;
        /// <summary>
        /// 精度  
        /// </summary>
        public string Precision
        {
            get => precision;
            set => SetProperty(ref precision, value);
        }

        private bool result;
        /// <summary>
        /// 检测结果，true合格，false不合格
        /// </summary>
        public bool bOK
        {
            get => result;
            set => SetProperty(ref result, value);
        }
    }

    public class AddPowderData_Dose : ObservableObject
    {
        private string sampleCode;
        /// <summary>
        /// SN码
        /// </summary>
        public string SampleCode
        {
            get => sampleCode;
            set => SetProperty(ref sampleCode, value);
        }

        private string powdername;
        /// <summary>
        /// 粉末名称
        /// </summary>
        public string PowderName
        {
            get => powdername;
            set => SetProperty(ref powdername, value);
        }

        private double targetWeight;
        /// <summary>
        /// 目标加入量
        /// </summary>
        public double TargetWeight
        {
            get => targetWeight;
            set => SetProperty(ref targetWeight, value);
        }

        private double actualAddWeight;
        /// <summary>
        /// 实际加入量
        /// </summary>
        public double ActualAddWeight
        {
            get => actualAddWeight;
            set => SetProperty(ref actualAddWeight, value);
        }

        private int addState;
        /// <summary>
        /// 0：表示还未增加   1：表示正在增加  2：表示增加完成
        /// </summary>
        public int AddState
        {
            get => addState;
            set => SetProperty(ref addState, value);
        }

        private string precision;
        /// <summary>
        /// 精度  
        /// </summary>
        public string Precision
        {
            get => precision;
            set => SetProperty(ref precision, value);
        }

        private bool result;
        /// <summary>
        /// 检测结果，true合格，false不合格
        /// </summary>
        public bool bOK
        {
            get => result;
            set => SetProperty(ref result, value);
        }
    }
}
