namespace Wayne.Lib.Log
{
    /// <summary>
    /// Debug log masking kinds.
    /// </summary>
    public enum DebugLogMaskKind
    {
        /// <summary>
        /// No masking of the data.
        /// </summary>
        None,

        /// <summary>
        /// Remove the data completely (for instance an XML node).
        /// </summary>
        Remove,

        /// <summary>
        /// Clears the value of the data.
        /// </summary>
        Empty,

        /// <summary>
        /// Mask all data.
        /// </summary>
        Mask,

        /// <summary>
        /// Mask all digits in the data.
        /// </summary>
        MaskDigits,

        /// <summary>
        /// Mask all digits in the data but append the hashed value at the end for comparision.
        /// </summary>
        MaskDigitsAppendHash,

        /// <summary>
        /// Mask all hex digits in the data.
        /// </summary>
        MaskHex,

        /// <summary>
        /// Mask all hex digits in the data but append the hashed value at the end for comparision.
        /// </summary>
        MaskHexAppendHash,

        /// <summary>
        /// Perform a standard PAN masking of the data (keeping the first and last four characters, masking the middle part).
        /// </summary>
        MaskPan,

        /// <summary>
        /// Perform a standard PAN masking of the data (keeping the first six and last four characters, masking the middle part).
        /// </summary>
        MaskPan64,

        /// <summary>
        /// Perform a standard PAN masking of trackdata (keeping the first six and last four characters, masking the middle part).
        /// </summary>
        MaskTrack64,

        /// <summary>
        /// Same as MaskPan but appending a hashed value at the end for comparision.
        /// </summary>
        MaskPanAppendHash,

        /// <summary>
        /// Locates any PAN number(s) (nine consecutive digits or more) and masks them as the MaskPan-option.
        /// </summary>
        MaskEmbeddedPan,

        /// <summary>
        /// Same as MaskEmbeddedPan but appending a hashed value at the end for comparision.
        /// </summary>
        MaskEmbeddedPanAppendHash,
    }
}