Option Strict On
Option Explicit On

Namespace Nexamas.UI.Presentation

    ''' <summary>
    ''' Public readiness summary for the Nexamas UI Presentation Page system. It reports
    ''' only stable product facts and does not expose layout internals or page-builder state.
    ''' </summary>
    Friend NotInheritable Class MASPresentationReadinessReport
        Friend Sub New(hasGateway As Boolean,
                       hasTitleDividerHeaderPolicy As Boolean,
                       hasSectionIntroPolicy As Boolean,
                       hasBodySurfacePolicy As Boolean,
                       hasFooterActionPolicy As Boolean,
                       preservesMasApplicationLayout As Boolean)
            Me.HasGateway = hasGateway
            Me.HasTitleDividerHeaderPolicy = hasTitleDividerHeaderPolicy
            Me.HasSectionIntroPolicy = hasSectionIntroPolicy
            Me.HasBodySurfacePolicy = hasBodySurfacePolicy
            Me.HasFooterActionPolicy = hasFooterActionPolicy
            Me.PreservesMasApplicationLayout = preservesMasApplicationLayout
        End Sub

        Friend ReadOnly Property HasGateway As Boolean
        Friend ReadOnly Property HasTitleDividerHeaderPolicy As Boolean
        Friend ReadOnly Property HasSectionIntroPolicy As Boolean
        Friend ReadOnly Property HasBodySurfacePolicy As Boolean
        Friend ReadOnly Property HasFooterActionPolicy As Boolean
        Friend ReadOnly Property PreservesMasApplicationLayout As Boolean

        Friend ReadOnly Property Ready As Boolean
            Get
                Return HasGateway AndAlso
                       HasTitleDividerHeaderPolicy AndAlso
                       HasSectionIntroPolicy AndAlso
                       HasBodySurfacePolicy AndAlso
                       HasFooterActionPolicy AndAlso
                       PreservesMasApplicationLayout
            End Get
        End Property
    End Class

End Namespace
