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

namespace BS.Shared.DataContracts
{
    [DataContract]
    public partial class ServiceDescriptionDC : IDataContract
    {
        private List<CostRatePeriodDC> _CostRatePeriods;

        [DataMember]
        public string Abbreviation { get; set; }

        [DataMember]
        public ServiceCategoryDC Category { get; set; }

        [DataMember]
        public string CategoryName { get; set; }

        [DataMember]
        public bool IsSystemEntry { get; set; }

        [DataMember]
        public string Name { get; set; }

        [DataMember]
        public int Position { get; set; }

        [DataMember]
        public decimal BillableAmount { get; set; }

        [DataMember]
        public AccountingIntervalType? AccountingInterval { get; set; }

        [DataMember]
        public ServiceUnit Unit { get; set; }

        [DataMember]
        public long? ServiceDescriptionOid { get; set; }

        [DataMember]
        public long? ServiceDescriptionVersion { get; set; }

        [DataMember]
        public ScopeTypeId ScopeType { get; set; }

		[DataMember]
		public bool IsDefault { get; set; }

		[DataMember]
		public bool DoNotCheckOverlapping { get; set; }

        [DataMember]
        public List<CostRatePeriodDC> CostRatePeriods
        {
            get
            {
                return this._CostRatePeriods ?? (this._CostRatePeriods = new List<CostRatePeriodDC>());
            }

            set
            {
                this._CostRatePeriods = value;
            }
        }
    }
}