Public/PayRateOverridePayCodes/New-AspirePayRateOverridePayCode.ps1

<#
.SYNOPSIS
    Creates a new pay rate override pay code in the Aspire API.
.DESCRIPTION
    Uses Invoke-AspireRequest to perform a POST request to the /PayRateOverridePayCodes endpoint.
.PARAMETER PayRateID
    The pay rate ID (required).
.PARAMETER PayCodeID
    The pay code ID (required).
.PARAMETER OverrideRate
    Optional override rate (double).
.OUTPUTS
    The response from the API containing the pay rate override pay code details.
.EXAMPLE
    New-AspirePayRateOverridePayCode -PayRateID 1 -PayCodeID 2 -OverrideRate 15.0
#>

function New-AspirePayRateOverridePayCode {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $true)]
        [int]$PayRateID,
        [Parameter(Mandatory = $true)]
        [int]$PayCodeID,
        [double]$OverrideRate = $null
    )

    $body = @{
        PayRateID = $PayRateID
        PayCodeID = $PayCodeID
    }

    if ($OverrideRate) {
        $body.OverrideRate = $OverrideRate
    }

    return Invoke-AspireRequest -Method POST -Path "/PayRateOverridePayCodes" -Body $body -ApiVersion $null
}