samples/tmux/.build.map.ps1

# Tmux integration sample
# When qbuild runs inside tmux, each entry is dispatched to a window named after
# the entry path (e.g. build.ui, test.unit). See README.md for details.

$targets = @{
    "build" = @{
        "ui" = @{
            exec = {
                param([ValidateSet("Debug", "Release")]$Configuration = "Debug")
                Write-Host "[$Configuration] Building UI..." -ForegroundColor Cyan
                Start-Sleep -Seconds 2
                Write-Host "UI build finished." -ForegroundColor Green
            }
            description = "Build frontend (runs in tmux window 'build.ui')"
        }

        "api" = @{
            exec = {
                param([ValidateSet("Debug", "Release")]$Configuration = "Debug")
                Write-Host "[$Configuration] Building API..." -ForegroundColor Cyan
                Start-Sleep -Seconds 2
                Write-Host "API build finished." -ForegroundColor Green
            }
            description = "Build backend API (runs in tmux window 'build.api')"
        }
    }

    "test" = @{
        "unit" = {
            param([switch]$Watch)
            Write-Host "Running unit tests$(if ($Watch) { ' (watch)' })..." -ForegroundColor Yellow
            Start-Sleep -Seconds 2
            Write-Host "Unit tests passed." -ForegroundColor Green
        }

        "integration" = {
            Write-Host "Running integration tests..." -ForegroundColor Yellow
            Start-Sleep -Seconds 3
            Write-Host "Integration tests passed." -ForegroundColor Green
        }
    }

    "dev" = @{
        "ui" = {
            Write-Host "Starting UI dev server (Ctrl+C to stop)..." -ForegroundColor Magenta
            1..5 | ForEach-Object {
                Write-Host " [ui] serving on http://localhost:3000 (tick $_)"
                Start-Sleep -Seconds 1
            }
        }

        "api" = {
            Write-Host "Starting API dev server (Ctrl+C to stop)..." -ForegroundColor Magenta
            1..5 | ForEach-Object {
                Write-Host " [api] listening on http://localhost:5000 (tick $_)"
                Start-Sleep -Seconds 1
            }
        }
    }
}

return $targets