name: Build and Package

on:
  push:
    branches: [default]
  pull_request:
    branches: [default]

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v3

      - name: Get build number
        id: buildnumber
        run: |
          $runNumber = $env:GITHUB_RUN_NUMBER
          $version = "2.$runNumber"
          echo "version=$version" >> $env:GITHUB_OUTPUT

      - name: Setup .NET
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: "9.0.x"

      - name: Restore dependencies
        run: dotnet restore AutoTrackR2.sln

      - name: Build
        run: |
          dotnet build AutoTrackR2.sln --configuration Release --no-restore -p:Version=${{ steps.buildnumber.outputs.version }}

      - name: Create release directory
        run: |
          mkdir release
          $releaseDir = Get-ChildItem -Recurse -Directory -Filter "Release" | Select-Object -First 1
          if ($releaseDir) {
            # Copy main application files (excluding .pdb)
            Copy-Item "$($releaseDir.FullName)\AutoTrackR2.exe" "release\"
            Copy-Item "$($releaseDir.FullName)\AutoTrackR2.dll" "release\"
            Copy-Item "$($releaseDir.FullName)\AutoTrackR2.runtimeconfig.json" "release\"
            Copy-Item "$($releaseDir.FullName)\AutoTrackR2.deps.json" "release\"
            
            # Copy resources
            Copy-Item "$($releaseDir.FullName)\config.ini" "release\"
            Copy-Item "$($releaseDir.FullName)\themes.json" "release\"
            Copy-Item "$($releaseDir.FullName)\AutoTrackR2.ico" "release\"
            
            # Copy fonts
            Copy-Item "$($releaseDir.FullName)\Fonts\*" "release\Fonts\" -Recurse
            
            # Copy assets
            Copy-Item "$($releaseDir.FullName)\Assets\*" "release\Assets\" -Recurse
            
            # Copy sounds
            Copy-Item "$($releaseDir.FullName)\sounds\*" "release\sounds\" -Recurse
            
            # Copy scripts
            Copy-Item "AutoTrackR2\scripts\*" "release\scripts\" -Recurse
          } else {
            Write-Host "No Release directory found"
            exit 1
          }

      - name: Create zip file
        run: |
          Compress-Archive -Path "release\*" -DestinationPath "AutoTrackR2-${{ steps.buildnumber.outputs.version }}.zip" -Force

      - name: Upload release artifact
        uses: actions/upload-artifact@v4
        with:
          name: AutoTrackR2-${{ steps.buildnumber.outputs.version }}
          path: AutoTrackR2-${{ steps.buildnumber.outputs.version }}.zip
          retention-days: 5