using System;
using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class ResourceBookingSequence : BeWoEntityBase
    {
        public static string PropertyName_Details = "Details";

        public static string PropertyName_Employee = "Employee";

        public static string PropertyName_FrequenceType = "FrequenceType";

        public static string PropertyName_RepeatInterval = "RepeatInterval";

        public static string PropertyName_Resource = "Resource";

        public static string PropertyName_SequenceEnd = "SequenceEnd";

        private IList<ResourceBooking> _Details;

        private Employee _Employee;

        private ResourceBookingFrequencyType _FrequencyType;

        private int _RepeatInterval;

        private Resource _Resource;

        private DateTime? _SequenceEnd;

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

        public virtual IList<ResourceBooking> Details
        {
            get
            {
                return this._Details ?? (this._Details = new List<ResourceBooking>());
            }

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

        public virtual Employee Employee
        {
            get
            {
                return this._Employee;
            }

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

        public virtual ResourceBookingFrequencyType FrequencyType
        {
            get
            {
                return this._FrequencyType;
            }

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

        public virtual int RepeatInterval
        {
            get
            {
                return this._RepeatInterval;
            }

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

        public virtual Resource Resource
        {
            get
            {
                return this._Resource;
            }

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

        public virtual DateTime? SequenceEnd
        {
            get
            {
                return this._SequenceEnd;
            }

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