mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 15:23:12 +00:00
56 lines
1.6 KiB
PowerShell
56 lines
1.6 KiB
PowerShell
# 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
|