using System;
using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Wohnheimbuchung : BeWoEntityBase
    {
        public static String PropertyName_Buchungsdatum                  = "Buchungsdatum";
        public static String PropertyName_Wohnheim                       = "Wohnheim";
        public static String PropertyName_Employee2Wohnheimbuchung       = "Wohnheimbuchung2Employee";
        public static String PropertyName_SupportConcept2Wohnheimbuchung = "Wohnheimbuchung2Costbearer2SupportConcept";

        private DateTime?                             _Buchungsdatum;
        private Wohnheim                              _Wohnheim;
        private IList<Wohnheimbuchung2Costbearer2SupportConcept> _Costbearer2SupportConcept2WohnheimbuchungList;
        private IList<Wohnheimbuchung2Employee>       _Eemployee2WohnheimbuchungList;

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

        public virtual DateTime? Buchungsdatum
        {
            get { return _Buchungsdatum; }

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

        public virtual Wohnheim Wohnheim
        {
            get { return _Wohnheim; }

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

        public virtual IList<Wohnheimbuchung2Costbearer2SupportConcept> Costbearer2SupportConcept2WohnheimbuchungList
        {
            get { return _Costbearer2SupportConcept2WohnheimbuchungList ?? (_Costbearer2SupportConcept2WohnheimbuchungList = new List<Wohnheimbuchung2Costbearer2SupportConcept>()); }

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

        public virtual IList<Wohnheimbuchung2Employee> Employee2WohnheimbuchungList
        {
            get { return _Eemployee2WohnheimbuchungList ?? (_Eemployee2WohnheimbuchungList = new List<Wohnheimbuchung2Employee>()); }

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