using System;
using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Customer2PersonHistory : BeWoEntityBase
    {
        public static string PropertyName_Person = "Person";

        public static string PropertyName_Type = "Type";

        public static string PropertyName_ChangeType = "ChangeType";

        public static string PropertyName_Customer2PersonOid = "Customer2PersonOid";

        public static string PropertyName_Customer2PersonInsTs = "Customer2PersonOid";

        public static string PropertyName_Customer2PersonInsUser = "Customer2PersonOid";

        public static string PropertyName_Customer2PersonUdpUser = "Customer2PersonOid";

        public static string PropertyName_Customer2PersonVersion = "Customer2PersonOid";

        public static string PropertyName_CustomerOid = "CustomerOid";

        
        private Person _Person;

        private long? _Customer2PersonOid;

        private DateTime? _Customer2PersonInsTs;

        private string _Customer2PersonInsUser;

        private string _Customer2PersonUdpUser;

        private long _Customer2PersonVersion;

        private StatementType _ChangeType;

        private long? _CustomerOid;


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

        public virtual Person Person
        {
            get { return _Person; }

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

        public virtual long? Customer2PersonOid
        {
            get { return _Customer2PersonOid; }

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

        public virtual DateTime? Customer2PersonInsTs
        {
            get { return _Customer2PersonInsTs; }

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

        public virtual string Customer2PersonInsUser
        {
            get { return _Customer2PersonInsUser; }

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

        public virtual string Customer2PersonUdpUser
        {
            get { return _Customer2PersonUdpUser; }

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

        public virtual long Customer2PersonVersion
        {
            get { return _Customer2PersonVersion; }

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

        public virtual StatementType ChangeType
        {
            get { return _ChangeType; }

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

        public virtual long? CustomerOid
        {
            get { return _CustomerOid; }

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