Namespace Nexamas.UI.Verification

    ''' <summary>
    ''' A stable diagnostic emitted by the render verification gate or runner.
    ''' The code is intentionally machine-readable so future CI and Showcase diagnostics can group failures.
    ''' </summary>
    Friend NotInheritable Class MASRenderVerificationFinding

        Friend Sub New(code As String, message As String, severity As MASRenderVerificationFindingSeverity)
            Me.Code = If(code, String.Empty).Trim()
            Me.Message = If(message, String.Empty).Trim()
            Me.Severity = severity
        End Sub

        Friend ReadOnly Property Code As String
        Friend ReadOnly Property Message As String
        Friend ReadOnly Property Severity As MASRenderVerificationFindingSeverity

        Friend ReadOnly Property IsBlocking As Boolean
            Get
                Return Severity = MASRenderVerificationFindingSeverity.Error
            End Get
        End Property

        Public Overrides Function ToString() As String
            Return Severity.ToString() & ": " & Code & " - " & Message
        End Function

    End Class

End Namespace
