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

namespace Kufer\Mail\EMail;


class EMailPlaintext extends EMail
{
  public function getContentType(): int
  {
    return self::TYPE_TEXT;
  }

  public function addKuferToolsFooter(string $reason = '', ?\Benutzer $user = null, $relatedObject = null): void
  {
    $footer = "\n\n" . '---------------' . "\n\n";
    $footer .= 'Diese Nachricht wurde aus den ' . KUFERTOOLS . ' versandt.';

    
    if (!is_null($user) && !$user->isEmpty()) {
      $footer .= "\n" . 'Absender: ';

      $benutzerGruppe = '';
      $nr = '';

      if ($user->dnr > 0) {
        $dbwDozenten = new \DBWorkDozenten(1, true);
        $dozent = $dbwDozenten->getDozent($user->dnr);
        $typenVeranstalter = \Kufer\KuferTools\Veranstalter\Utils\VeranstalterUtils::getTypenVeranstalter();
        if (in_array($dozent->typ, $typenVeranstalter)) {
          $benutzerGruppe = 'Veranstalter';
        } else {
          $benutzerGruppe = 'Dozent';
          if (\DBWorkBASysSettings::isRheinsieg()) {
            $benutzerGruppe = 'Kursleiter';
          }
        }

        $nr = ' (Nr. ' . $user->dnr . ')';
      } elseif ($user->ben >= 0) {
        $benutzerGruppe = 'Mitarbeiter';
      
      } elseif ($user->tnr >= 0) {
        $benutzerGruppe = 'Teilnehmer';
        $nr = ' (Nr. ' . $user->tnr . ')';
      } elseif ($user->anr >= 0) {
        $benutzerGruppe = 'Hausmeister';
        $nr = ' (Nr. ' . $user->anr . ')';
      }

      $anredetitel = $user->name_titel;
      if($anredetitel != '') {
        $anredetitel .= ' ';
      }

      if (\DBWorkBASysSettings::isRheinsieg()) {
        $footer .= $benutzerGruppe . ' ' . $anredetitel . $user->vorname . ' ' . $user->name . $nr;
      } else {
        $footer .= $benutzerGruppe . ' ' . $anredetitel . $user->name . ' ' . $user->vorname . $nr;
      }
    }

    
    if ($reason != '') {
      $footer .= "\n" . 'Funktion: ' . $reason;
    }
    
    
    if (!\is_null($relatedObject)) {
      switch (\StringOperations::strtolower(\get_class($relatedObject))) {
        case 'kurstag':
          $footer .= "\n" . 'betrifft: ';

          $footer .= 'Kurstag am ' . $relatedObject->datum;
          if ($relatedObject->zeit_beg != '') {
            $footer .= ' um ' . $relatedObject->zeit_beg;
          }
          if ($relatedObject->zeit_ende != '') {
            $footer .= ' bis ' . $relatedObject->zeit_ende;
          }
          if ($relatedObject->zeit_beg != '' || $relatedObject->zeit_ende != '') {
            $footer .= ' Uhr';
          }

          $footer .= ' des Kurses ' . $relatedObject->kurs->kurzbez . ' (' . $relatedObject->knr . ')';
          break;
        case 'kurs':
          $footer .= "\n" . 'betrifft: ';
          $footer .= 'Kurs ' . $relatedObject->kurzbez
              . ' (' . $relatedObject->id . ')';
          break;
      }
    }

    $this->content .= $footer;
  }
}