using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Mail2Receiver : BeWoEntityBase
    {
        public static string PropertyName_IsBlind = "IsBlind";

        public static string PropertyName_Mail = "Mail";

        public static string PropertyName_Priority = "Priority";

        public static string PropertyName_Receiver = "Receiver";

        public static string PropertyName_ReceiverEMailAddress = "ReceiverEMailAddress";

        public static string PropertyName_Status = "Status";

        private bool _IsBlind;

        private Mail _Mail;

        private Priority _Priority;

        private Employee _Receiver;

        private string _ReceiverEMailAddress;

        private Status _Status;

        public Mail2Receiver()
        {
            this._Tid = TableID.Mail2Receiver;
        }

        public virtual bool IsBlind
        {
            get
            {
                return this._IsBlind;
            }

            set
            {
                if (this.AreDifferent(this._IsBlind, value))
                {
                    this._IsBlind = value;
                }
            }
        }

        public virtual Mail Mail
        {
            get
            {
                return this._Mail;
            }

            set
            {
                if (this.AreDifferent(this._Mail, value))
                {
                    this._Mail = value;
                }
            }
        }

        public virtual Priority Priority
        {
            get
            {
                return this._Priority;
            }

            set
            {
                if (this.AreDifferent(this._Priority, value))
                {
                    this._Priority = value;
                }
            }
        }

        public virtual Employee Receiver
        {
            get
            {
                return this._Receiver;
            }

            set
            {
                if (this.AreDifferent(this._Receiver, value))
                {
                    this._Receiver = value;
                }
            }
        }

        public virtual string ReceiverEMailAddress
        {
            get
            {
                return this._ReceiverEMailAddress;
            }

            set
            {
                if (this.AreDifferent(this._ReceiverEMailAddress, value))
                {
                    this._ReceiverEMailAddress = value;
                }
            }
        }

        public virtual Status Status
        {
            get
            {
                return this._Status;
            }

            set
            {
                if (this.AreDifferent(this._Status, value))
                {
                    this._Status = value;
                }
            }
        }

        public override string ToString()
        {
            if (this.Receiver != null)
            {
                return this.Receiver.Person.ToString();
            }
            else
            {
                return this.ReceiverEMailAddress;
            }
        }
    }
}