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

namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
{
    /// <summary>
    /// 
    /// <para>文件名(File Name):     LevelTableEntity.cs</para>
    /// 
    /// <para>描述(Description):     标高表创建实体类</para>
    /// 
    /// <para>数据表(Tables):        nothing</para>
    /// 
    /// <para>作者(Author):          Ou Rui Song</para>
    /// 
    /// <para>日期(Create Date):     2024年1月16日08:50:18</para>
    /// 
    /// 修改记录(Revision History):
    ///     R1:
    ///         修改作者:
    ///         修改日期:
    ///         修改理由:
    /// 
    /// </summary>
    public class LevelTableEntity : INotifyPropertyChanged
    {
        public LevelTableEntity()
        {
        }


        /// <summary>
        /// 结构标高
        /// </summary>
        /// <param name="levelNmae">层号</param>
        /// <param name="structuralElevation">结构标高</param>
        /// <param name="floorHeight">层高</param>
        public LevelTableEntity(string juID, string levelNmae, double structuralElevation, double floorHeight)
        {
            LevelNmae = levelNmae;
            StructuralElevation = structuralElevation;
            FloorHeight = floorHeight;
            JuID = juID;
        }

        /// <summary>
        /// 唯一id
        /// </summary>
        public string JuID { get; set; }

        /// <summary>
        /// 层号
        /// </summary>
        public string levelNmae { get; set; }
        public string LevelNmae
        {
            get { return levelNmae; }
            set
            {
                if (value != levelNmae)
                {
                    levelNmae = value;
                    NotifyPropertyChanged("LevelNmae");
                }
            }
        }

        /// <summary>
        /// 结构标高
        /// </summary>

        public double structuralElevation { get; set; }
        public double StructuralElevation
        {
            get { return structuralElevation; }
            set
            {
                if (value != structuralElevation)
                {
                    structuralElevation = value;
                    NotifyPropertyChanged("StructuralElevation");
                }
            }
        }


        //层高
        public double floorHeight { get; set; }
        public double FloorHeight
        {
            get { return floorHeight; }
            set
            {
                if (value != floorHeight)
                {
                    floorHeight = value;
                    NotifyPropertyChanged("FloorHeight");
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(string propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
