parameters:
  scanFiles:
    - ../_ide_helper
  paths:
    - ../app
    - ../database
    - ../routes
    - ../config
    - ../bootstrap/app.php
  universalObjectCratesClasses:
    - Illuminate\Database\Eloquent\Model
  # TODO: slowly remove these parameters and fix the issues found.
  reportUnmatchedIgnoredErrors: true
  ignoreErrors:
  # TODO: slowly remove these exceptions and fix the issues found.
    - '#Dynamic call to static method#' # all the Laravel ORM things depend on this.
    - identifier: varTag.nativeType
    - identifier: varTag.type
    -
        identifier: larastan.noEnvCallsOutsideOfConfig
        path: ../app/Console/Commands/System/CreatesDatabase.php
    - identifier: missingType.iterableValue # not interesting enough to fix.
    - identifier: missingType.generics # not interesting enough to fix.
    - "#Parameter \\#[1-2] \\$num[1-2] of function bc[a-z]+ expects numeric-string, [a-z\\-|&]+ given#"
    - '#expects view-string, string given#'
    - '#expects view-string\|null, string given#'

    # phpstan can't handle this so we ignore them.
    - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::before#'
    - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::after#'
    - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::withTrashed#'
    - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::accountTypeIn#'
    - '#Call to an undefined method Illuminate\\Database\\Eloquent\\Relations\\BelongsTo::withTrashed#'

  # The level 8 is the highest level. original was 5
  # 7 is more than enough, higher just leaves NULL things.
  level: 7

