Private/_TcmConstants.ps1

# Shared constants pulled from the module manifest's PrivateData.Kritical block.
# Avoids re-encoding magic AppIds across every Public function.

function Get-KritTcmConstant {
    [CmdletBinding()]
    param(
        [ValidateSet('TcmServicePrincipalAppId','M365AdminServicesAppId','MsGraphAppId',
                     'TcmDocsOverview','TcmDocsAuthSetup','TcmDocsApiReference',
                     'M365DscTransitionUrl','M365DscToTcmConverter')]
        [Parameter(Mandatory)][string]$Name
    )
    $manifest = Test-ModuleManifest -Path (Join-Path $PSScriptRoot '..' 'Krit.TCM.psd1') -ErrorAction SilentlyContinue
    if ($manifest -and $manifest.PrivateData.Kritical) {
        return $manifest.PrivateData.Kritical.$Name
    }
    # Hard fallback if manifest not loaded — kept in sync with .psd1
    switch ($Name) {
        'TcmServicePrincipalAppId' { '03b07b79-c5bc-4b5e-9bfa-13acf4a99998' }
        'M365AdminServicesAppId'   { '6b91db1b-f05b-405a-a0b2-e3f60b28d645' }
        'MsGraphAppId'             { '00000003-0000-0000-c000-000000000000' }
        default                    { $null }
    }
}