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

namespace BS.Shared.DataContracts.Compact
{
    [DataContract, Serializable]
    public partial class CompactCustomerDC : IDataContract
    {
        private Dictionary<long, string> _CostBearerReferenceNumbers;
        private Dictionary<long, string> _VarFieldValues;
        private Dictionary<long, string> _VarFieldDefs;

        [DataMember]
        public List<AbsenceTimeDC> AbsenceTimes { get; set; }

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

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

            set
            {
                this._CostBearerReferenceNumbers = value;
            }
        }

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

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

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

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

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

        [DataMember]
        public decimal? EquityContribution { get; set; }

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

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

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

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

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

        [DataMember]
        public Sex? Sex { get; set; }

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

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

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

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

        [DataMember]
        public Dictionary<long, string> VarFieldValues
        {
            get { return _VarFieldValues ?? (_VarFieldValues = new Dictionary<long, string>()); }
            set { _VarFieldValues = value; }
        }

        [DataMember]
        public Dictionary<long, string> VarFieldDefs
        {
            get { return _VarFieldDefs ?? (_VarFieldDefs = new Dictionary<long, string>()); }
            set { _VarFieldDefs = value; }
        }

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

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

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

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

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

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

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

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

		[DataMember]
		public List<long> RelatedTeamOids { get; set; }

        [DataMember]
        public String CustomerAlias { get; set; }

		public string VollerName {
			get
			{
				return string.Format("{0} {1}", FirstName, LastName);
			}
			set{}
		}
    }
}