using System;
using System.Collections.Generic;
using BS.Shared;

namespace BeWo.Data.Entities
{
    public class AdditionalServiceBooking : BeWoEntityBase
    {
        public static string PropertyName_AdditionalServiceRegion = "AdditionalServiceRegion";

        public static string PropertyName_RoundedDuration = "RoundedDuration";

        public static string PropertyName_StartDate = "StartDate";

        public static string PropertyName_EmployeeList = "EmployeeList";

        public static string Propertyname_EndDate = "EndDate";

        public static string PropertyName_Datum = "Datum";

		public static string PropertyName_Customer2AddServiceBookings = "Customer2AddServiceBookings";

		public static string PropertyName_Employee2AddServiceBookings = "Employee2AddServiceBookings";


        private AdditionalServiceRegion _AdditionalServiceRegion;

        private IDictionary<Customer, bool> _CustomerList;

        private DateTime? _Datum;

        private IList<Employee> _EmployeeList;

        private DateTime? _EndDate;

        private decimal _RoundedDuration;

        private DateTime? _StartDate;

		private IList<Customer2AddServiceBooking> _Customer2AddServiceBookings;

		private IList<Employee2AddServiceBooking> _Employee2AddServiceBookings;

        public AdditionalServiceBooking()
        {
            _Tid = TableID.AdditionalServiceBooking;
        }


        public virtual AdditionalServiceRegion AdditionalServiceRegion
        {
            get { return _AdditionalServiceRegion; }

            set
            {
                if (AreDifferent(_AdditionalServiceRegion, value))
                    _AdditionalServiceRegion = value;
            }
        }

		public virtual IList<Customer2AddServiceBooking> Customer2AddServiceBookings
		{
			get { return _Customer2AddServiceBookings ?? (_Customer2AddServiceBookings = new List<Customer2AddServiceBooking>()); }

			set
			{
				if (AreDifferent(_Customer2AddServiceBookings, value))
				{
					_Customer2AddServiceBookings = value;
				}
			}
		}

		public virtual IList<Employee2AddServiceBooking> Employee2AddServiceBookings
		{
			get { return _Employee2AddServiceBookings ?? (_Employee2AddServiceBookings = new List<Employee2AddServiceBooking>()); }

			set
			{
				if (AreDifferent(_Employee2AddServiceBookings, value))
				{
					_Employee2AddServiceBookings = value;
				}
			}
		}

		//public virtual IDictionary<Customer, bool> CustomerList
		//{
		//	get { return _CustomerList; }

		//	set
		//	{
		//		if (AreDifferent(_CustomerList, value))
		//			_CustomerList = value;
		//	}
		//}

        public virtual DateTime? Datum
        {
            get { return _Datum; }

            set
            {
                if (AreDifferent(_Datum, value))
                    _Datum = value;
            }
        }

		//public virtual IList<Employee> EmployeeList
		//{
		//	get { return _EmployeeList; }

		//	set
		//	{
		//		if (AreDifferent(_EmployeeList, value))
		//			_EmployeeList = value;
		//	}
		//}

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

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

        public virtual decimal RoundedDuration
        {
            get { return _RoundedDuration; }

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

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

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