#Requires -Version 7.4
# Minimal test plugin for skeleton validation

function Get-PluginConfigSchema {
    @{
        message = @{
            Type        = 'string'
            Default     = 'Hello from dummy plugin!'
            Required    = $false
            Description = 'Message to display during execution'
        }
    }
}

function Test-Applicable {
    param($Globals)

    # Always applicable - this is just a test plugin
    return @{ Applicable = $true; Reason = $null }
}

function Get-PlannedActions {
    param($Config, $Globals, $Phase)

    @(
        "Log message: $($Config.message ?? 'Hello from dummy plugin!')"
        "Demonstrate $Phase phase execution"
    )
}

function Invoke-Seal {
    param($Config, $Globals)

    $message = $Config.message ?? 'Hello from dummy plugin!'

    Write-vSEALLog "Message: $message"
    Write-vSEALLog "OS: $($Globals.OS.Name)"
    Write-vSEALLog "Analyze mode: $($Globals.AnalyzeMode)"
}

function Invoke-Engage {
    param($Config, $Globals)

    $message = $Config.message ?? 'Hello from dummy plugin!'

    Write-vSEALLog "Message: $message"
    Write-vSEALLog "Computer: $env:COMPUTERNAME"
}
