tool/Automation/functions/Get-OwnerDomains.ps1

function Get-OwnerDomains {
    <#
    .SYNOPSIS
        Flatten all owner domains from a profile's owner section.

    .DESCRIPTION
        Returns a deduplicated list of all domains belonging to the lead-mining
        company, including top-level owner domains and all alias domains.

    .PARAMETER Profile
        Profile object (parsed JSON) containing an owner section.

    .OUTPUTS
        [string[]] Flat array of lowercase domain strings.
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [PSCustomObject]$Profile
    )

    $domains = @()

    if ($Profile.owner) {
        if ($Profile.owner.domains) {
            $domains += @($Profile.owner.domains)
        }
        if ($Profile.owner.aliases) {
            foreach ($alias in $Profile.owner.aliases) {
                if ($alias.domains) {
                    $domains += @($alias.domains)
                }
            }
        }
    }

    # Return deduplicated lowercase domains
    $domains | ForEach-Object { $_.ToLower() } | Select-Object -Unique
}