# Seed sintético de Work Orders para load test Tier S # # Uso: # $env:SQL_CONNECTION_STRING = "Server=localhost;Database=SeaHaven;..." # .\scripts\seed-work-orders-search.ps1 -Count 15000 param( [int]$Count = 5000, [string]$ConnectionString = $env:SQL_CONNECTION_STRING ) if ([string]::IsNullOrWhiteSpace($ConnectionString)) { Write-Error "Defina SQL_CONNECTION_STRING ou passe -ConnectionString." exit 1 } $sites = @("BK5", "BK6", "BK7", "BK8", "BK9", "LA1", "LA2", "NY1") $trades = @("HVAC PM", "Plumbing PM", "Electrical PM", "Roof Inspection", "Fire Safety") $baseDate = Get-Date "2026-01-06" Write-Host "Inserindo $Count WOs sintéticas..." -ForegroundColor Cyan $batchSize = 500 $inserted = 0 while ($inserted -lt $Count) { $batch = [Math]::Min($batchSize, $Count - $inserted) $values = @() for ($i = 0; $i -lt $batch; $i++) { $id = $inserted + $i + 1 $site = $sites[$id % $sites.Length] $trade = $trades[$id % $trades.Length] $weekOffset = $id % 52 $scheduled = $baseDate.AddDays($weekOffset * 7 + ($id % 5)) $woNumber = ("1{0:D10}" -f $id) $values += "('$woNumber', '$site', '$trade', '$($scheduled.ToString('yyyy-MM-dd'))', 2, 0)" } $sql = @" INSERT INTO workOrders (InternalWONumber, SiteCode, Trade, ScheduledDate, LifecycleStatus, istemplate, RescheduleCount, CarriedOver, CreatedDate) VALUES $($values -join ','); "@ sqlcmd -Q $sql -b if ($LASTEXITCODE -ne 0) { Write-Error "Falha no batch $inserted" exit 1 } $inserted += $batch Write-Host " $inserted / $Count" } Write-Host "Seed concluído." -ForegroundColor Green