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

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

use Kufer\KuferTools\Ausgaben\CommonTasks\SendPrepare;
use Kufer\KuferTools\Ausgaben\CommonTasks\SendPrepareWithHelper;
use Kufer\KuferTools\Utils\DatamodulHelper\BelegungsHelper\FirmaReiterTeilnehmerBelegungen;
use stdClass;

class SammelEMailUseCase extends \Kufer\KuferTools\Ausgaben\SammelEMail\AnTeilnehmer\SammelEMailUseCase
{
  use \Kufer\KuferTools\Firma\KursUebersicht\KursUebersicht\KursDetails\KursDetailsBelegungAllowedTrait;

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

  public static function getToolSectionId()
  {
    return 771;
  }

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

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

    return $response;
  }

  protected function createSendPreparer(): SendPrepare
  {
    return new SendPrepareWithHelper(new FirmaReiterTeilnehmerBelegungen($this->toolSettings, new stdClass(), $this->request->knr, $this->getUser()->tnr));
  }

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

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

class SammelEMailRequest extends \Kufer\KuferTools\Basis\TeilnehmerInfo\SammelEMail\SammelEMailRequest
{
  public $belegId;
}