using System.Collections;

namespace Kreta.Framework.Logging
{
    /// <summary>
    /// Naplóüzenet felülete.
    /// </summary>
    public interface ILogMessage
    {
        /// <summary>
        /// Naplózási szint
        /// </summary>
        LogLevel Level { get; }

        /// <summary>
        /// Naplóbejegyzés azonosítója (GUID)
        /// </summary>
        string LogEntryId { get; }

        /// <summary>
        /// Az esemény típusa
        /// </summary>
        Events EventType { get; }

        /// <summary>
        /// Munkamenet azonosítója
        /// </summary>
        string SessionId { get; }

        /// <summary>
        /// A bejegyzés naplóba lett-e már írva, vagy sem.
        /// </summary>
        bool IsLogged { get; set; }

        /// <summary>
        /// A naplóüzenet paraméterei
        /// </summary>
        IDictionary Parameters { get; }

        int? IntezmenyId { get; }

        int? TanevId { get; }
    }
}