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

namespace Kufer\KuferTools\Ausgaben\SammelEMail\AnTeilnehmer;

abstract class SammelEMailUseCase extends \Kufer\KuferTools\Ausgaben\SammelEMail\SammelEMailUseCase
{
  
  protected function getKontakte()
  {
    if (!empty($this->request->knr) && is_array($this->request->belegungNummern)) {
      $tnStatus = $this->toolSettings->tnstatus;
      if (isset($this->request->emailVorbelegen)) {
        $tnStatus = $this->request->emailVorbelegen->getTnStatusAngemeldet($tnStatus);
      }
      
      return $this->sendPreparer->getBelegungen($this->request->knr, $this->request->belegungNummern, $tnStatus);
    } else {
      \Logger::logg(' Fehler im EmailSender: knr oder BelegungNummern nicht besetzt. ', 41);
      throw new \Exception('Fehler beim Versenden der EMail an die Teilnehmer');
    }
  }

  
  protected function getKontakteResponsePart()
  {
    $this->response->saveTeilnehmer = $this->shouldSaveEMailAnTeilnehmerInDokumentenverwaltung();

    $this->response->belegungen = $this->kontaktUser;
    $zentralsettings = \ToolSettingsAPI::getToolSettings(0);
    $fileSize = \ConstantOperations::getMaxFileSize4Upload($zentralsettings->uploadmaxsize);
    $maxGroesseProDatei = \MathOperations::getBytesUmrechnung($fileSize);
    $this->response->maxGroesseProDatei = $maxGroesseProDatei;

    $fileSizeAllerDateien = \ConstantOperations::getMaxFileSize4Upload(5 * ($zentralsettings->uploadmaxsize));
    $maxGroesseAllerDateien = \MathOperations::getBytesUmrechnung($fileSizeAllerDateien);
    $this->response->maxGroesseAllerDateien = $maxGroesseAllerDateien;
  }

  protected function shouldSaveEMailAnTeilnehmerInDokumentenverwaltung(): bool
  {
    return false;
  }
} 

class SammelEMailRequest
{
  public $knr;
  public $belegungNummern = array();
  public $emailVorbelegen;
}

class SammelEMailResponse extends \Kufer\KuferTools\Ausgaben\SammelEMail\SammelEMailResponse
{
  public $belegungen;
  public $maxGroesseProDatei;
  public $maxGroesseAllerDateien;
  public $saveTeilnehmer;
}