using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class AbsenceReason : BeWoEntityBase
    {
        public static string PropertyName_AbsenceTimes = "AbsenceTimes";

        public static string PropertyName_BillableMinutes = "BillableMinutes";

        public static string PropertyName_Description = "Description";

        public static string PropertyName_Color = "Color";

        private IList<AbsenceTime> _AbsenceTimes;

        private decimal? _BillableMinutes;

        private string _Description;

        private string _Color;

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

        public virtual IList<AbsenceTime> AbsenceTimes
        {
            get
            {
                return this._AbsenceTimes ?? (this._AbsenceTimes = new List<AbsenceTime>());
            }

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

        public virtual decimal? BillableMinutes
        {
            get
            {
                return this._BillableMinutes;
            }

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

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

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

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

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