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

namespace Kufer\Mail\Sender\Settings\Sender\Person;

use Kufer\Mail\Address\IEMailAddress;
use Kufer\Mail\Sender\Settings\Sender\Einrichtung\IEMailEinrichtungSenderSettings;


class EMailTransformSenderIdentity implements IEMailTransformSender
{
  public function getSenderForDozentToEinrichtung(
    \Dozent $doz,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $doz;
  }

  public function getSenderForDozentToTeilnehmer(
    \Dozent $doz,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $doz;
  }

  public function getSenderForMitarbeiterToEinrichtung(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getSenderForMitarbeiterToDozent(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getSenderForMitarbeiterToTeilnehmer(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getSenderForTeilnehmerToDozent(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getSenderForTeilnehmerToEinrichtung(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getSenderForAdresseToEinrichtung(\Adresse $adresse, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $adresse;
  }

  public function getSenderForToolsUserToEinrichtung(\Benutzer $user, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $user;
  }

  public function getSenderForTeilnehmerToMitarbeiter(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getSenderForDozentToMitarbeiter(\Dozent $doz, IEMailEinrichtungSenderSettings $senderSettings): \Kufer\Mail\Address\IEMailAddress
  {
    return $doz;
  }

  public function getReplyToForTeilnehmerToEinrichtung(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getReplyToForTeilnehmerToDozent(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getReplyToForDozentToEinrichtung(
    \Dozent $doz,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $doz;
  }

  public function getReplyToForDozentToTeilnehmer(
    \Dozent $doz,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $doz;
  }

  public function getReplyToForMitarbeiterToEinrichtung(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getReplyToForMitarbeiterToDozent(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getReplyToForMitarbeiterToTeilnehmer(
    \BASysBenutzer $mitarbeiter,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $mitarbeiter;
  }

  public function getReplyToForAdresseToEinrichtung(\Adresse $adresse, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $adresse;
  }

  public function getReplyToForToolsUserToEinrichtung(\Benutzer $user, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $user;
  }

  public function getReplyToForTeilnehmerToMitarbeiter(
    \Teilnehmer $tn,
    IEMailEinrichtungSenderSettings $senderSettings
  ): IEMailAddress {
    return $tn;
  }

  public function getReplyToForDozentToMitarbeiter(\Dozent $doz, IEMailEinrichtungSenderSettings $senderSettings): \Kufer\Mail\Address\IEMailAddress
  {
    return $doz;
  }

  public function getReplyToForPerson(\Personn $personn, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $personn;
  }

  public function getSenderForPerson(\Personn $person, IEMailEinrichtungSenderSettings $senderSettings): IEMailAddress
  {
    return $person;
  }

  protected function getEMailSenderFrom(IEMailAddress $senderAddress, IEMailEinrichtungSenderSettings $einrichtungSenderSettings): IEMailAddress
  {
    return new \Kufer\Mail\Address\EMailAddress($senderAddress->getEMailName(), $einrichtungSenderSettings->getEinrichtungSender()->getEMailAddress());
  }
}