Private/Get-Win32ToolkitPaths.ps1

function Get-Win32ToolkitPaths {
<#
.SYNOPSIS
    Returns the three canonical tier paths used by win32-toolkit under a given BasePath.
.DESCRIPTION
    Centralises the folder-name conventions so every function in the module
    refers to the same paths without hard-coding tier names.
 
    Tier layout (projects/staging/output are grouped by org template):
        <BasePath>\
          Templates\ org template JSON files
          Projects\ <Template>\<Project> — raw PSADT projects, never modified after creation
          Staging\ <Template>\<Project> — cleaned copies used during .intunewin packaging
          IntuneWin\ <Template>\<Project>.intunewin — finished output files
 
    The function does NOT create the folders — callers are responsible for
    ensuring a tier exists before writing to it.
.PARAMETER BasePath
    The root directory that contains (or will contain) the tiers.
.OUTPUTS
    PSCustomObject with properties: BasePath, Templates, Projects, Staging, IntuneWin.
#>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [string]$BasePath
    )

    [PSCustomObject]@{
        BasePath  = $BasePath
        Templates = Join-Path $BasePath 'Templates'
        Projects  = Join-Path $BasePath 'Projects'
        Staging   = Join-Path $BasePath 'Staging'
        IntuneWin = Join-Path $BasePath 'IntuneWin'
    }
}