using MsLogLevel = Microsoft.Extensions.Logging.LogLevel;
namespace ROLAC.API.Entities.Logging;
///
/// Persisted severity for system and audit logs. Byte-backed so it stores compactly
/// as smallint and sorts/filters by ordinal. Deliberately omits the
/// sentinel (value 6) — "None" means "log nothing" and
/// is meaningless once a row already exists.
///
public enum LogLevelEnum : byte
{
Trace = 0,
Debug = 1,
Information = 2,
Warning = 3,
Error = 4,
Critical = 5,
}
public static class LogLevelMap
{
///
/// Maps a framework to our persisted enum.
/// falls through to
/// (it never reaches the sink because the floor filter drops it first).
///
public static LogLevelEnum FromMs(MsLogLevel level) => level switch
{
MsLogLevel.Trace => LogLevelEnum.Trace,
MsLogLevel.Debug => LogLevelEnum.Debug,
MsLogLevel.Information => LogLevelEnum.Information,
MsLogLevel.Warning => LogLevelEnum.Warning,
MsLogLevel.Error => LogLevelEnum.Error,
MsLogLevel.Critical => LogLevelEnum.Critical,
_ => LogLevelEnum.Critical,
};
}