using System;
using System.Collections.Generic;

namespace BeWo.Data.Entities
{
    public class ServiceRecordGroup : BeWoEntityBase
    {
        public static string PropertyName_CustomerCount = "CustomerCount";

        public static string PropertyName_EmployeeCount = "EmployeeCount";

        public static string PropertyName_EndDate = "EndDate";

        public static string PropertyName_RoundedDuration = "RoundedDuration";

        public static string PropertyName_ServiceRecordList = "ServiceRecordList";

        public static string PropertyName_StartDate = "StartDate";

        private int _CustomerCount;

        private int _EmployeeCount;

        private DateTime? _EndDate;

        private decimal _RoundedDuration;

        private IList<ServiceRecord> _ServiceRecordList;

        private DateTime? _StartDate;

        public virtual int CustomerCount
        {
            get
            {
                return this._CustomerCount;
            }

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

        public virtual int EmployeeCount
        {
            get
            {
                return this._EmployeeCount;
            }

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

        public virtual DateTime? EndDate
        {
            get
            {
                return this._EndDate;
            }

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

        public virtual decimal RoundedDuration
        {
            get
            {
                return this._RoundedDuration;
            }

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

        public virtual IList<ServiceRecord> ServiceRecordList
        {
            get
            {
                return this._ServiceRecordList ?? (this._ServiceRecordList = new List<ServiceRecord>());
            }

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

        public virtual DateTime? StartDate
        {
            get
            {
                return this._StartDate;
            }

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