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

using BS.Shared.DataContracts.Compact;

namespace BS.Shared.DataContracts
{
    public enum NodeType
    {
        Undefined, 
        Employee, 
        Customer_Male, 
        Customer_Female, 
        SupportConcept, 
        SupportConceptCostBearerRelDC, 
        CostBearer
    }

    [DataContract]
    public partial class SupportConceptTreeNodeDC : IDataContract
    {
        private List<SupportConceptTreeNodeDC> _ChildNodes;

        [DataMember]
        public List<SupportConceptTreeNodeDC> ChildNodes
        {
            get
            {
                return this._ChildNodes ?? (this._ChildNodes = new List<SupportConceptTreeNodeDC>());
            }

            set
            {
                this._ChildNodes = value;
            }
        }

        [DataMember]
        public CompactOrganisationDC CostBearer { get; set; }

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

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

        [DataMember]
        public CompactEmployeeDC Employee { get; set; }

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

        [DataMember]
        public NodeType NodeType { get; set; }

        [DataMember]
        public CompactSupportConceptDC SupportConcept { get; set; }

        [DataMember]
        public SupportConceptCostBearerRelDC SupportConceptCostBearerRelDC { get; set; }
    }
}