<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Firma\KursUebersicht\Detailsreiter\Teilnehmer\SammelEMail;

use Kufer\Web\KuferTools\Utils\DatamodulHelper\Belegungen\BelegungsHelper;
use Kufer\Web\KuferTools\Utils\DatamodulHelper\Belegungen\FirmaReiterTeilnehmerBelegungen;

class SammelEMailUseCase extends \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\Teilnehmer\SammelEMail\SammelEMailUseCase
{
  use \Kufer\Web\KuferTools\Firma\KursUebersicht\KursDetails\KursDetailsBelegungAllowedTrait;

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSUEBERSICHT_FA;
  }

  public static function getToolSectionId()
  {
    return 771;
  }

  protected function getRechteKey(): string
  {
    return '771.0.1';
  }

  public function action()
  {
    $response = parent::action();
    $response->belegId = $this->request->belegId;

    return $response;
  }

  protected function isSetEinrichtungToolSettings(): bool
  {
    return $this->toolSettings->emailSammelKopieAnEinrichtung;
  }

  protected function shouldSaveEMailAnTeilnehmerInDokumentenverwaltung(): bool
  {
    return $this->toolSettings->storeSammelEMailToTeilnehmer;
  }

  protected function getBelegungsHelper(\Kurs $kurs): BelegungsHelper
  {
    return new FirmaReiterTeilnehmerBelegungen($this->toolSettings, $this->request, $kurs->id, $this->getUser()->tnr);
  }

  protected function isShowingEMails(): bool
  {
    return $this->toolSettings->emailAnTeilnehmerShowEMail;
  }
}