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

namespace MWS.Domain.Dto
{
    public class CraneTagDataDto : INotifyPropertyChanged
    {
        public int TeamId
        {
            get; set;
        }
        public int DeviceId 
        {
            get; set;
        }
        /// <summary>
        /// 车名称
        /// </summary>
        public string CraneName { get; set; }
        private string teamName;
        /// <summary>
        /// 班组名称
        /// </summary>
        public string TeamName {
            get => teamName; set
            {
                teamName = value;
                OnPropertyChanged("TeamName");
            }
        }
        private double teamTotal;
        /// <summary>
        /// 班组累计
        /// </summary>
        public double TeamTotal
        {
            get => teamTotal; set
            {
                teamTotal = value;
                OnPropertyChanged("TeamTotal");
            }
        }
        private double todayTotal;
        /// <summary>
        /// 今日累计
        /// </summary>
        public double TodayTotal
        {
            get => todayTotal; set
            {
                todayTotal = value;
                OnPropertyChanged("TodayTotal");
            }
        }

        /// <summary>
        /// 大车行程
        /// </summary>
        public TagDataRecordDto CartTrip { get; set; }
        /// <summary>
        /// 大车挡位
        /// </summary>
        public TagDataRecordDto CartGear { get; set; }

        /// <summary>
        /// 大车制动
        /// </summary>
        public TagDataRecordDto CartBraking { get; set; }
        /// <summary>
        /// 小车行程
        /// </summary>
        public TagDataRecordDto CarTrip { get; set; }

        /// <summary>
        /// 小车挡位
        /// </summary>
        public TagDataRecordDto CarGear { get; set; }
        /// <summary>
        /// 小车制动
        /// </summary>
        public TagDataRecordDto CarBraking { get; set; }
        /// <summary>
        /// 主升高度
        /// </summary>
        public TagDataRecordDto LiftingHeight { get; set; }
        /// <summary>
        /// 主钩重量
        /// </summary>
        public TagDataRecordDto LiftingWeight { get; set; }
        /// <summary>
        /// 主升挡位
        /// </summary>
        public TagDataRecordDto LiftingGear { get; set; }
        /// <summary>
        /// 主升制动
        /// </summary>
        public TagDataRecordDto LiftingBraking { get; set; }
        /// <summary>
        /// 大车就位料料口1
        /// </summary>
        public TagDataRecordDto CartEntranceOne { get; set; }
        /// <summary>
        /// 大车就位料料口2
        /// </summary>
        public TagDataRecordDto CartEntranceTwo { get; set; }
        /// <summary>
        /// 限位数据
        /// </summary>
        public ObservableCollection<TagDataRecordDto> LimitGroup { get; set; }
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
