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

declare(strict_types = 1);

namespace Kufer\Mail\Sender\Settings\Recipient\Einrichtung;

use Kufer\Mail\Address\IEMailAddress;
use Kufer\Mail\Address\EMailAddress;


class EMailEinrichtungRecipientToolsKursSettings extends EMailEinrichtungRecipientToolsMitarbeiterSettings
{
  
  protected $kurs;

  
  public function __construct(\Kurs $kurs)
  {
    parent::__construct(null);
    $this->kurs = $kurs;
  }

  
  public function getKurs(): \Kurs
  {
    return $this->kurs;
  }

  public function getVerwaltendenMitarbeiter(): ?\BASysBenutzer
  {
    $maKennungVerw = $this->kurs->getVarValue('verwaltung_ma');
    if (!\is_null($this->cacheVerwaltendenMitarbeiter)
        || $maKennungVerw == '') {
      return $this->cacheVerwaltendenMitarbeiter;
    }

    $dbwMitarbeiter = new \DBWorkBASysUser();
    $this->cacheVerwaltendenMitarbeiter = $dbwMitarbeiter->getBASysUserByKennung($maKennungVerw);

    return $this->cacheVerwaltendenMitarbeiter;
  }

  public function getPlanendenMitarbeiter(): ?\BASysBenutzer
  {
    $maKennungPla = $this->kurs->getVarValue('hpm');
    if (!\is_null($this->cachePlanendenMitarbeiter)
        || $maKennungPla == '') {
      return $this->cachePlanendenMitarbeiter;
    }

    $dbwMitarbeiter = new \DBWorkBASysUser();
    $this->cachePlanendenMitarbeiter = $dbwMitarbeiter->getBASysUserByKennung($maKennungPla);

    return $this->cachePlanendenMitarbeiter;
  }

  
  public static function fromToolUseCaseAndKurs(
    \Kufer\KuferTools\Basis\UseCase\ToolUseCase $toolUseCase,
    \Kurs $kurs
  ): EMailEinrichtungRecipientToolsKursSettings {
    return new EMailEinrichtungRecipientToolsKursSettings($kurs);
  }
}