using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Resource : BeWoEntityBase
    {
        public static string PropertyName_Bookings = "Bookings";

        public static string PropertyName_Color = "Color";

        public static string PropertyName_Description = "Description";

        public static string PropertyName_Name = "Name";

        private IList<ResourceBookingSequence> _Bookings;

        private string _Color;

        private string _Description;

        private string _Name;

        private IList<ValueListEntry2Object> _ValueList;

        public Resource()
        {
            this._Tid = TableID.Resource;
        }

        public virtual IList<ResourceBookingSequence> Bookings
        {
            get
            {
                return this._Bookings ?? (this._Bookings = new List<ResourceBookingSequence>());
            }

            set
            {
                if (this.AreDifferent(this._Bookings, value))
                {
                    this._Bookings = value;
                }
            }
        }

        public virtual string Color
        {
            get
            {
                return this._Color;
            }

            set
            {
                if (this.AreDifferent(this._Color, value))
                {
                    this._Color = value;
                }
            }
        }

        public virtual string Description
        {
            get
            {
                return this._Description;
            }

            set
            {
                if (this.AreDifferent(this._Description, value))
                {
                    this._Description = value;
                }
            }
        }

        public virtual string Name
        {
            get
            {
                return this._Name;
            }

            set
            {
                if (this.AreDifferent(this._Name, value))
                {
                    this._Name = value;
                }
            }
        }

        public virtual IList<ValueListEntry2Object> ValueList
        {
            get
            {
                return this._ValueList ?? (this._ValueList = new List<ValueListEntry2Object>());
            }

            set
            {
                if (this.AreDifferent(this._ValueList, value))
                {
                    this._ValueList = value;
                }
            }
        }
    }
}