<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Utils\FilterSettings\Teilnehmer;

use Kufer\Web\Classes\Dbfilter\BeziehungenSQLFilter;
use Kufer\Web\Classes\Dbfilter\ISQLFilter;
use Kufer\Web\Classes\Dbfilter\TeilnehmerSQLFilter;
use Kufer\Web\Classes\Identifier\Identifier;

class VorgesetzterAusBelegungenFilterSettings implements \Kufer\Web\KuferTools\Utils\FilterSettings\IFilterSettings
{
  
  protected $vorgesetztenId;

  
  public function __construct(Identifier $vorgesetztenId)
  {
    $this->vorgesetztenId = $vorgesetztenId;
  }

  
  public function applySettings($filter): ISQLFilter
  {
    return $filter
      ->applyBeziehungenFilterReferenz2(
        BeziehungenSQLFilter::create()
        ->hasCurrentlyValidArt(\DBWorkBeziehung::BEZIEHUNG_VORGESETZTER_EINES_TEILNEHMERS)
        ->equalsReferenz1($this->vorgesetztenId)
      );
  }

  public function assertFilterClass($filter): void
  {
    assert($filter instanceof TeilnehmerSQLFilter);
  }
}