using System;
using System.Collections;
using System.Runtime.Serialization;
using System.ComponentModel;
using System.Collections.Generic;

namespace RDH.Data.Models
{
    /// <summary>
    /// 表示药品条码库信息的类
    /// </summary>
	[Serializable]
	[DataContract]
	public partial class ItemBarcodeLibrary : BaseModel
    {
        private string _barcode;
        private string _barcodeState;
        private Guid? _createby;
        private Guid? _itemkey;
        private Guid? _itemLotKey;
        private bool? _flag;
        private DateTime? _clienttime;
        private DateTime? _servertime;
        private string _ext01;
        private string _ext02;
        private string _ext03;
        private string _ext04;
        private string _ext05;
        private string _ext06;
        private string _ext07;
        private string _ext08;
        private string _ext09;
        private string _ext10;
        private Item _itemInfo;
        private ItemLot _itemLotInfo;

		#region Public Properties
        [DataMember]
        public virtual string Barcode
        {
            get { return _barcode; }
            set 
            {
                _barcode = value;
                OnPropertyChanged(nameof(Barcode));
            }
        }
        [DataMember]
        public virtual string BarcodeState
        {
            get { return _barcodeState; }
            set 
            {
                _barcodeState = value;
                OnPropertyChanged(nameof(BarcodeState));
            }
        }
        [DataMember]
        public virtual Guid? ItemKey
        {
            get { return _itemkey; }
            set
            {
                _itemkey = value;
                OnPropertyChanged("ItemKey");
            }
        }
        [DataMember]
        public virtual Guid? ItemLotKey
        {
            get { return _itemLotKey; }
            set
            {
                _itemLotKey = value;
                OnPropertyChanged(nameof(ItemLotKey));
            }
        }
        [DataMember]
        public virtual Guid? CreateBy
        {
            get { return _createby; }
            set 
            {
                _createby = value;
                OnPropertyChanged("CreateBy");
            }
        }
        [DataMember]
        public virtual bool? Flag
        {
            get { return _flag; }
            set 
            {
                _flag = value;
                OnPropertyChanged("Flag");
            }
        }
        [DataMember]
        public virtual DateTime? ClientTime
        {
            get { return _clienttime; }
            set 
            {
                _clienttime = value;
                OnPropertyChanged("ClientTime");
            }
        }
        [DataMember]
        public virtual DateTime? ServerTime
        {
            get { return _servertime; }
            set 
            {
                _servertime = value;
                OnPropertyChanged("ServerTime");
            }
        }
        [DataMember]
        public virtual string Ext01
        {
            get { return _ext01; }
            set 
            {
                _ext01 = value;
                OnPropertyChanged("Ext01");
            }
        }
        [DataMember]
        public virtual string Ext02
        {
            get { return _ext02; }
            set 
            {
                _ext02 = value;
                OnPropertyChanged("Ext02");
            }
        }
        [DataMember]
        public virtual string Ext03
        {
            get { return _ext03; }
            set 
            {
                _ext03 = value;
                OnPropertyChanged("Ext03");
            }
        }
        [DataMember]
        public virtual string Ext04
        {
            get { return _ext04; }
            set 
            {
                _ext04 = value;
                OnPropertyChanged("Ext04");
            }
        }
        [DataMember]
        public virtual string Ext05
        {
            get { return _ext05; }
            set 
            {
                _ext05 = value;
                OnPropertyChanged("Ext05");
            }
        }
        [DataMember]
        public virtual string Ext06
        {
            get { return _ext06; }
            set 
            {
                _ext06 = value;
                OnPropertyChanged("Ext06");
            }
        }
        [DataMember]
        public virtual string Ext07
        {
            get { return _ext07; }
            set 
            {
                _ext07 = value;
                OnPropertyChanged("Ext07");
            }
        }
        [DataMember]
        public virtual string Ext08
        {
            get { return _ext08; }
            set 
            {
                _ext08 = value;
                OnPropertyChanged("Ext08");
            }
        }
        [DataMember]
        public virtual string Ext09
        {
            get { return _ext09; }
            set 
            {
                _ext09 = value;
                OnPropertyChanged("Ext09");
            }
        }
        [DataMember]
        public virtual string Ext10
        {
            get { return _ext10; }
            set 
            {
                _ext10 = value;
                OnPropertyChanged("Ext10");
            }
        }
        [DataMember]
        public Item ItemInfo
        {
            get { return _itemInfo; }
            set 
            {
                _itemInfo = value;
                OnPropertyChanged(nameof(ItemInfo));
            }
        }
        public ItemLot ItemLotInfo 
        {
            get => _itemLotInfo;
            set 
            {
                _itemLotInfo = value;
                OnPropertyChanged(nameof(ItemLotInfo));
            }
        }

        #endregion
        public override string ToString()
        {
            return this._barcode;
        }
    }
	
}