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

namespace BS.Shared.DataContracts.Compact
{
    [DataContract]
    public partial class CompactSupportConceptDC : IDataContract
    {
        private List<CompactCostBearerDC> _CostBearerList;

        private Dictionary<long, long> _CostBearerOids2CostBearerRelOids;

        private List<long> _CostBearerRelOids;

        private List<string> _CustomerReferenceNumbers;

        [DataMember]
        public ActivationTypeId ActivationType { get; set; }

        [DataMember]
        public DateTime? ConferenceDate { get; set; }

        [DataMember]
        public List<CompactCostBearerDC> CostBearerList
        {
            get { return this._CostBearerList ?? (this._CostBearerList = new List<CompactCostBearerDC>()); }

            set { this._CostBearerList = value; }
        }

        [DataMember]
        public Dictionary<long, long> CostBearerOids2CostBearerRelOids
        {
            get { return this._CostBearerOids2CostBearerRelOids ?? (this._CostBearerOids2CostBearerRelOids = new Dictionary<long, long>()); }

            set { this._CostBearerOids2CostBearerRelOids = value; }
        }

        [DataMember]
        public List<long> CostBearerRelOids
        {
            get { return this._CostBearerRelOids ?? (this._CostBearerRelOids = new List<long>()); }

            set { this._CostBearerRelOids = value; }
        }

        [DataMember]
        public CompactCustomerDC Customer { get; set; }

        [DataMember]
        public List<string> CustomerReferenceNumbers
        {
            get { return this._CustomerReferenceNumbers ?? (this._CustomerReferenceNumbers = new List<string>()); }

            set { this._CustomerReferenceNumbers = value; }
        }

        [DataMember]
        public List<ValueListEntryDC> Goals { get; set; }

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

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

        [DataMember]
        public long SupportConceptOid { get; set; }

        [DataMember]
        public long SupportConceptVersion { get; set; }
    }
}