Option Strict On
Option Explicit On

Imports System.Collections.Generic

Namespace Nexamas.UI.Rendering

    ''' <summary>
    ''' Builds static validation evidence for the Surface Treatment resolver.
    ''' This pass keeps the resolver scoped to broad surfaces, chrome, panels, and containers; interactive controls are outside this system.
    ''' </summary>
    Friend NotInheritable Class MASSurfaceTreatmentResolutionValidationBuilder

        Private Sub New()
        End Sub

        Friend Shared Function BuildCurrentCompatibilityValidation() As MASSurfaceTreatmentResolutionValidationReport
            Dim resolutions As New List(Of MASSurfaceTreatmentResolution)()

            resolutions.Add(MASSurfaceTreatmentResolver.ResolveDefault(MASSurfaceTreatmentConsumerKind.PanelShellSurface, MASSurfaceFrameStrength.Level4))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveDefault(MASSurfaceTreatmentConsumerKind.ApplicationChromeSurface, MASSurfaceFrameStrength.Level4))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveDefault(MASSurfaceTreatmentConsumerKind.ProgressSurface, MASSurfaceFrameStrength.Level2))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveMaterialOverride(MASSurfaceTreatmentConsumerKind.PanelShellSurface, MASSurfaceMaterialIds.CrystalIce, MASSurfaceFrameStrength.Level5))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveMaterialOverride(MASSurfaceTreatmentConsumerKind.CardSurface, MASSurfaceMaterialIds.WarmPaper, MASSurfaceFrameStrength.Level3))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveMaterialOverride(MASSurfaceTreatmentConsumerKind.GroupBoxSurface, MASSurfaceMaterialIds.FrostedGlass, MASSurfaceFrameStrength.Level4))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveMaterialOverride(MASSurfaceTreatmentConsumerKind.PanelShellSurface, "surface.material.unknown-do-not-register", MASSurfaceFrameStrength.Level3))
            resolutions.Add(MASSurfaceTreatmentResolver.ResolveDefault(MASSurfaceTreatmentConsumerKind.Unknown, MASSurfaceFrameStrength.Level3))

            Return New MASSurfaceTreatmentResolutionValidationReport(
                name:="Surface Treatment Default Resolution & Surface-Only Compatibility Validation",
                resolutions:=resolutions.ToArray())
        End Function

    End Class

End Namespace
