name: Update Relay Maps

on:
  # Run after the "Update Relay Data" workflow completes
  workflow_run:
    workflows: ["Track Relay Count Changes"]
    types:
      - completed
  # Also allow manual triggering
  workflow_dispatch:

permissions:
  contents: write

jobs:
  update-relay-maps:
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
    
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 100  # Need deeper history
    
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.x'
    
    - name: Install Python dependencies
      run: |
        python -m pip install --upgrade pip
        pip install matplotlib pandas numpy folium scipy
        # Install cartopy and its dependencies
        sudo apt-get update
        sudo apt-get install -y libproj-dev proj-bin proj-data libgeos-dev
        pip install cartopy
    
    - name: Generate relay maps
      run: |
        mkdir -p assets
        
        # Execute the script
        python scripts/generate_relay_map.py
    
    - name: Check for changes
      id: git-check
      run: |
        git add assets/relay_locations_static.png assets/relay_locations_heatmap.png assets/relay_locations_interactive.html
        git diff --staged --exit-code || echo "changes=true" >> $GITHUB_OUTPUT
    
    - name: Commit and push changes
      if: steps.git-check.outputs.changes == 'true'
      run: |
        git config --local user.email "action@github.com"
        git config --local user.name "GitHub Action"
        git commit -m "Update relay location maps - $(date -u)"
        git push
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
