# PowerShell script to generate PWA icons
# Creates PNG icons for LittleShop Admin PWA

Add-Type -AssemblyName System.Drawing

function Create-Icon {
    param(
        [int]$Size,
        [string]$OutputPath
    )
    
    # Create bitmap
    $bitmap = New-Object System.Drawing.Bitmap($Size, $Size)
    $graphics = [System.Drawing.Graphics]::FromImage($bitmap)
    $graphics.SmoothingMode = [System.Drawing.Drawing2D.SmoothingMode]::AntiAlias
    $graphics.TextRenderingHint = [System.Drawing.Text.TextRenderingHint]::AntiAlias
    
    # Create gradient brush
    $startColor = [System.Drawing.Color]::FromArgb(37, 99, 235)  # #2563eb
    $endColor = [System.Drawing.Color]::FromArgb(124, 58, 237)   # #7c3aed
    $gradientBrush = New-Object System.Drawing.Drawing2D.LinearGradientBrush(
        [System.Drawing.Point]::new(0, 0),
        [System.Drawing.Point]::new($Size, $Size),
        $startColor,
        $endColor
    )
    
    # Draw rounded rectangle background
    $cornerRadius = [int]($Size * 0.15)
    $rect = New-Object System.Drawing.Rectangle(0, 0, $Size, $Size)
    
    # Create rounded rectangle path
    $path = New-Object System.Drawing.Drawing2D.GraphicsPath
    $path.AddArc(0, 0, $cornerRadius * 2, $cornerRadius * 2, 180, 90)
    $path.AddArc($Size - $cornerRadius * 2, 0, $cornerRadius * 2, $cornerRadius * 2, 270, 90)
    $path.AddArc($Size - $cornerRadius * 2, $Size - $cornerRadius * 2, $cornerRadius * 2, $cornerRadius * 2, 0, 90)
    $path.AddArc(0, $Size - $cornerRadius * 2, $cornerRadius * 2, $cornerRadius * 2, 90, 90)
    $path.CloseFigure()
    
    # Fill background
    $graphics.FillPath($gradientBrush, $path)
    
    # Draw text "LS"
    $font = New-Object System.Drawing.Font("Segoe UI", ($Size * 0.3), [System.Drawing.FontStyle]::Bold)
    $brush = New-Object System.Drawing.SolidBrush([System.Drawing.Color]::White)
    $format = New-Object System.Drawing.StringFormat
    $format.Alignment = [System.Drawing.StringAlignment]::Center
    $format.LineAlignment = [System.Drawing.StringAlignment]::Center
    
    $textRect = New-Object System.Drawing.RectangleF(0, 0, $Size, $Size)
    $graphics.DrawString("LS", $font, $brush, $textRect, $format)
    
    # Save image
    $bitmap.Save($OutputPath, [System.Drawing.Imaging.ImageFormat]::Png)
    
    # Cleanup
    $graphics.Dispose()
    $bitmap.Dispose()
    $gradientBrush.Dispose()
    $font.Dispose()
    $brush.Dispose()
    $path.Dispose()
    
    Write-Host "Created icon: $OutputPath ($Size x $Size)"
}

# Create icons directory
$iconsDir = "C:\Production\Source\LittleShop\LittleShop\wwwroot\icons"
if (!(Test-Path $iconsDir)) {
    New-Item -ItemType Directory -Path $iconsDir -Force
}

# Generate all required icon sizes
$sizes = @(72, 96, 128, 144, 152, 192, 384, 512)

foreach ($size in $sizes) {
    $outputPath = Join-Path $iconsDir "icon-${size}x${size}.png"
    Create-Icon -Size $size -OutputPath $outputPath
}

Write-Host ""
Write-Host "🎉 All PWA icons created successfully!"
Write-Host "Icons saved to: $iconsDir"
Write-Host ""
Write-Host "Generated icons:"
Get-ChildItem $iconsDir -Name "icon-*.png" | ForEach-Object { Write-Host "  ✅ $_" }