using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Bargeldkasse : BeWoEntityBase
    {
        public static string PropertyName_Kassennamen          = "Kassennamen";
        public static string PropertyName_ObjectOid            = "ObjectOid";
        public static string PropertyName_ObjectTid            = "ObjectTid";
        public static string PropertyName_Bargeldtransaktionen = "Bargeldtransaktionen";
        public static string PropertyName_Auszahlungsintervall = "Auszahlungsintervall";

        private string                    _Kassenname;
        private long?                     _ObjectOid;
        private TableID                   _ObjectTid;
        private IList<Bargeldtransaktion> _Bargeldtransaktionen;
        private Auszahlungsintervall      _Auszahlungsintervall;

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


        public virtual string Kassenname
        {
            get
            {
                return _Kassenname;
            }

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

        public virtual long? ObjectOid
        {
            get
            {
                return _ObjectOid;
            }

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

        public virtual TableID ObjectTid
        {
            get
            {
                return _ObjectTid;
            }

            set
            {
                if (_ObjectTid != value)
                {
                    _ObjectTid = value;
                }
            }
        }

        public virtual IList<Bargeldtransaktion> Bargeldtransaktionen
        {
            get { return _Bargeldtransaktionen ?? (_Bargeldtransaktionen = new List<Bargeldtransaktion>()); }

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

        public virtual Auszahlungsintervall Auszahlungsintervall
        {
            get { return _Auszahlungsintervall; }

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