# Debug proxy issue - test directly vs through proxy
$body = '{"tenantCode":"T202605253515","username":"admin","password":"admin123"}'
$loginResp = Invoke-WebRequest -Uri 'http://localhost:8006/login' -Method Post -ContentType 'application/json' -Body $body -UseBasicParsing
$token = ($loginResp.Content | ConvertFrom-Json).token
Write-Host "Direct login OK, token length: $($token.Length)"

# Test HIS direct vs proxy
$testPaths = @(
    '/his/healthTongue/list',
    '/his/healthRecord/list',
    '/course/courseDomainName/list',
    '/billing/wallet/list',
    '/transfer/fsTransfer/list',
    '/his/prescription/list'
)

foreach ($path in $testPaths) {
    # Direct
    try {
        $r = Invoke-WebRequest -Uri "http://localhost:8006$path" -Method Get -Headers @{Authorization="Bearer $token"} -UseBasicParsing -TimeoutSec 5
        $content = $r.Content | ConvertFrom-Json
        Write-Host "DIRECT $path => code=$($content.code)"
    } catch {
        Write-Host "DIRECT $path => ERROR: $($_.Exception.Message.Substring(0,50))"
    }
    
    # Through proxy
    try {
        $r = Invoke-WebRequest -Uri "http://localhost:80/prod-api$path" -Method Get -Headers @{Authorization="Bearer $token"} -UseBasicParsing -TimeoutSec 5
        $content = $r.Content | ConvertFrom-Json
        Write-Host "PROXY $path => code=$($content.code)"
    } catch {
        $statusCode = 0
        if ($_.Exception.Response) { $statusCode = [int]$_.Exception.Response.StatusCode }
        Write-Host "PROXY $path => $statusCode ERROR: $($_.Exception.Message.Substring(0,[Math]::Min(50,$_.Exception.Message.Length)))"
    }
    Write-Host ""
}
