name: Pyright Lint

on:
  workflow_call:

  workflow_dispatch:
    inputs:
      python-version:
        description: "Python version"
        required: false
        type: choice
        options:
          - "all"
          - "3.10"
          - "3.11"
          - "3.12"
        default: "all"
      debug-mode:
        description: "enable debug mode"
        required: false
        type: boolean
        default: false

jobs:
  pyright:
    name: Pyright Lint
    runs-on: ubuntu-latest
    concurrency:
      group: pyright-${{ github.ref }}-${{ matrix.env }}
      cancel-in-progress: true
    strategy:
      matrix:
        env: [pydantic-v1, pydantic-v2]
      fail-fast: false

    steps:
      - uses: actions/checkout@v4

      - name: Setup Python environment
        uses: ./.github/actions/setup-python
        with:
          env-dir: ./envs/${{ matrix.env }}
          no-root: true

      - run: |
          (cd ./envs/${{ matrix.env }} && echo "$(poetry env info --path)/bin" >> $GITHUB_PATH)
          if [ "${{ matrix.env }}" = "pydantic-v1" ]; then
            sed -i 's/PYDANTIC_V2 = true/PYDANTIC_V2 = false/g' ./pyproject.toml
          fi
        shell: bash

      - name: Run Pyright Check
        uses: jakebailey/pyright-action@v2
        with:
          pylance-version: latest-release
