using System;
using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class AdditionalService2GroupOfPeople : BeWoEntityBase
    {
        public static string PropertyName_AdditionalService = "AdditionalService";

        public static string PropertyName_AdditionalServiceGroupOfPeople = "AdditionalServiceGroupOfPeople";

        public static string PropertyName_RoundedDuration = "RoundedDuration";

        public static string PropertyName_StartDate = "StartDate";

        public static string PropertyName_EndDate = "EndDate";

        public static string PropertyName_Date = "Date";

        public static string PropertyName_AdditionalServiceRegion = "AdditionalServiceRegion";


        private AdditionalService _AdditionalService;

        private AdditionalServiceRegion _AdditionalServiceRegion;

        private AdditionalServiceGroupOfPeople _AdditionalServiceGroupOfPeople;

        private IDictionary<Customer, bool> _Participations;

        private decimal _RoundedDuration;

        private DateTime? _StartDate;

        private DateTime? _EndDate;

        private DateTime? _Date;


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


        public virtual AdditionalService AdditionalService
        {
            get { return _AdditionalService; }

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

        public virtual AdditionalServiceRegion AdditionalServiceRegion
        {
            get { return _AdditionalServiceRegion; }

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

        public virtual AdditionalServiceGroupOfPeople AdditionalServiceGroupOfPeople
        {
            get { return _AdditionalServiceGroupOfPeople; }

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

        public virtual IDictionary<Customer, bool> Participations
        {
            get { return _Participations; }
            
            set
            {
                if (AreDifferent(_Participations, value))
                    _Participations = 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;
            }
        }

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

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

        public virtual DateTime? Date
        {
            get { return _Date; }

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