// ***********************************************************************
//
// Heath
//
// ***********************************************************************
using System.ComponentModel;
using System.Text.Json.Serialization;
namespace Core.Blueprint.Logging
{
///
/// The service logger detail object.
///
/// The generic message type.
public class LogDetail
{
///
/// Gets or sets the log severity.
///
/// info
[DisplayName(DisplayNames.Severity)]
[JsonPropertyName(DisplayNames.Severity)]
public LogSeverity Severity { get; set; }
///
/// Gets or sets the timestamp.
///
[DisplayName(DisplayNames.Timestamp)]
[JsonPropertyName(DisplayNames.Timestamp)]
public DateTime Timestamp { get; set; }
///
/// Gets or sets the environment.
///
/// Development
[DisplayName(DisplayNames.Environment)]
[JsonPropertyName(DisplayNames.Environment)]
public string? Environment { get; set; }
///
/// Gets or sets the target.
///
[DisplayName(DisplayNames.Target)]
[JsonPropertyName(DisplayNames.Target)]
public LogTarget? Target { get; set; }
///
/// Gets or sets the x-forwarded-for header.
///
/// localhost
[DisplayName(DisplayNames.XForwardedFor)]
[JsonPropertyName(DisplayNames.XForwardedFor)]
public string? XForwardedFor { get; set; }
///
/// Gets or sets the service identifier.
///
///
[DisplayName(DisplayNames.ServiceId)]
[JsonPropertyName(DisplayNames.ServiceId)]
public string? ServiceId { get; set; }
///
/// Gets or sets the request identifier.
///
///
[DisplayName(DisplayNames.RequestId)]
[JsonPropertyName(DisplayNames.RequestId)]
public string? RequestId { get; set; }
///
/// Gets or sets the keyVaultProvider identifier.
///
///
[DisplayName(DisplayNames.ClientId)]
[JsonPropertyName(DisplayNames.ClientId)]
public string? ClientId { get; set; }
///
/// Gets or sets the keyVaultProvider identifier.
///
/// keyVaultProviderRequest
[DisplayName(DisplayNames.Operation)]
[JsonPropertyName(DisplayNames.Operation)]
public LogOperation Operation { get; set; }
///
/// Gets or sets the user name.
///
/// keyVaultProviderRequest
[DisplayName(DisplayNames.User)]
[JsonPropertyName(DisplayNames.User)]
public string? User { get; set; }
///
/// Gets or sets user's email.
///
/// keyVaultProviderRequest
[DisplayName(DisplayNames.Email)]
[JsonPropertyName(DisplayNames.Email)]
public string? Email { get; set; }
///
/// Gets or sets the user identifier.
///
/// keyVaultProviderRequest
[DisplayName(DisplayNames.UserId)]
[JsonPropertyName(DisplayNames.UserId)]
public string? UserId { get; set; }
///
/// Gets or sets the message.
///
/// A custom log message.
[DisplayName(DisplayNames.Message)]
[JsonPropertyName(DisplayNames.Message)]
public TMessage? Message { get; set; }
}
}