public/Copy-LoomlyFootballFixtureData.ps1

function Copy-LoomlyFootballFixtureData {

    [CmdletBinding()]
    param(

        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Competition,

        [Parameter(Mandatory=$true)]
        [ValidateNotNull()]
        [string]$Date,

        [Parameter(Mandatory=$true)]
        [ValidateNotNull()]
        [string]$Path

    )
    process{

        $ErrorActionPreference = 'Stop'

        try {
  
            $FileCopyCount = 1
            $SourceDirectory = "$Path\fixture-artifact\multi-media\$Competition\$Date"
            $TargetDirectory = "$Path\loomly\schedules"

            $RecentFiles = Get-ChildItem -Path $SourceDirectory -File -Recurse | Where-Object {$_.FullName -like '*.png'}
            $RecentCompetitionFiles = $RecentFiles  | Where-Object {$_.FullName -like "*$Competition*"}

            if ($($RecentCompetitionFiles.Count) -ge 1 ) {

                foreach ($CompetitionFile in $RecentCompetitionFiles) {

                    # C:\Users\colin\Desktop\sportsmonk\news\post-match-news\eng-premier\2025-01-26\retro1.png
                    # 2025-01-26\retro1.png
                    # 2025-01-26
                    $Split1 = $($CompetitionFile.FullName).Split("$Competition\")[1]
                    $Date = $Split1.Split('\')[0]
                    $DestinationPath = "$TargetDirectory\$Competition\$Date"
                    $PathExists = Test-Path -Path $DestinationPath

                    if (!$PathExists) {

                        New-Item -Path $DestinationPath -ItemType Directory -Verbose | Out-Null

                    }
                    else {

                        Write-Warning -Message "Loomly path already exists: $DestinationPath."

                    } # if

                    if ($FileCopyCount -ge 1 -or $FileCopyCount -lt 10) {

                        $CountToUse = "0$FileCopyCount"

                    }
                    else {

                        $CountToUse = $FileCopyCount
                    }

                    Copy-Item -Path $($CompetitionFile.FullName) -Destination "$DestinationPath\$CountToUse-$($CompetitionFile.Name)" -Verbose
                    $FileCopyCount ++

                } # foreach

            } # if

        }
        catch {

           "$($MyInvocation.MyCommand.Name): $_.Exception.Message"

        }
            
    } # process

} # function