Option Strict On
Option Explicit On

Namespace Nexamas.UI.ThemeStudio

    ''' <summary>
    ''' Product-safe description of one reusable surface material available to Surface Designer.
    ''' </summary>
    ''' <remarks>
    ''' This is a design-inspection DTO. It exposes material identity and theme-awareness only;
    ''' frame, chrome, and shadow ownership are described by their own systems.
    ''' </remarks>
    Friend NotInheritable Class MASSurfaceDesignerMaterialEntry

        Friend Sub New(id As String,
                       displayName As String,
                       isNativeMaterial As Boolean)
            Me.Id = Normalize(id)
            Me.DisplayName = Normalize(displayName)
            Me.IsNativeMaterial = isNativeMaterial
        End Sub

        Friend ReadOnly Property Id As String
        Friend ReadOnly Property DisplayName As String
        Friend ReadOnly Property IsNativeMaterial As Boolean

        Friend ReadOnly Property IsThemeAware As Boolean
            Get
                Return Not IsNativeMaterial
            End Get
        End Property

        Private Shared Function Normalize(value As String) As String
            Return If(value, String.Empty).Trim()
        End Function

    End Class

End Namespace
