using System;

namespace Gremlin.GremlinData.EntityClasses
{
    public class RUSettings : IDisposable
    {
        private bool disposedValue;

        //primary key
        public uint RUSettingsID { get; set; }

        //forgein key
        public uint RegisteredUserID { get; set; }

        //navigation properties
        public RegisteredUser RegisteredUser { get; set; }

        //class properties
        public string SettingKey { get; set; }
        public string SettingValue { get; set; }

        //metadata (subset of IMetadata)
        public DateTime DataCreationDate { get; set; }
        public DateTime DataModificationDate { get; set; }
        public string DataModificationByUser { get; set; }

        //Constructur
        public RUSettings()
        {
        }

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: Verwalteten Zustand (verwaltete Objekte) bereinigen
                }

                // TODO: Nicht verwaltete Ressourcen (nicht verwaltete Objekte) freigeben und Finalizer überschreiben
                // TODO: Große Felder auf NULL setzen
                disposedValue = true;
            }
        }

        // // TODO: Finalizer nur überschreiben, wenn "Dispose(bool disposing)" Code für die Freigabe nicht verwalteter Ressourcen enthält
        // ~RUSettings()
        // {
        //     // Ändern Sie diesen Code nicht. Fügen Sie Bereinigungscode in der Methode "Dispose(bool disposing)" ein.
        //     Dispose(disposing: false);
        // }

        public void Dispose()
        {
            // Ändern Sie diesen Code nicht. Fügen Sie Bereinigungscode in der Methode "Dispose(bool disposing)" ein.
            Dispose(disposing: true);
            GC.SuppressFinalize(this);
        }
    }
}
