Option Strict On
Option Explicit On

Namespace Nexamas.UI.Quality

    ''' <summary>
    ''' Friend-only quality evidence certification labels used by release reports and gates.
    ''' </summary>
    ''' <remarks>
    ''' DECLARED-ONLY means the evidence route is documented but not independently executed by a gate.
    ''' GATE-CERTIFIED means a source/runtime/performance gate executes the proof and can fail the release.
    ''' </remarks>
    Friend Enum MASQualityEvidenceCertificationKind
        DeclaredOnly = 0
        GateCertified = 1
    End Enum

    Friend Module MASQualityEvidenceCertificationLabels
        Friend Const DeclaredOnlyLabel As String = "DECLARED-ONLY"
        Friend Const GateCertifiedLabel As String = "GATE-CERTIFIED"

        Friend Function Resolve(kind As MASQualityEvidenceCertificationKind) As String
            Select Case kind
                Case MASQualityEvidenceCertificationKind.GateCertified
                    Return GateCertifiedLabel
                Case Else
                    Return DeclaredOnlyLabel
            End Select
        End Function
    End Module

End Namespace
