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

namespace Kufer\Web\KuferTools\Oeffentlich\LoginAnfordern\AktiviereLogin;

use Kufer\Web\KuferTools\Oeffentlich\LoginAnfordern\Utils\NeuesLoginAnlegen;

class AktiviereLoginPresenter extends \Kufer\Web\KuferTools\Basis\Presenter\MitRahmenPresenter
{
  protected function getContent()
  {
    $view = $this->getView();

    return $view->getNoColumn();
  }

  protected function getView()
  {
    return new \Kufer\Web\KuferTools\Oeffentlich\LoginAnfordern\AutoLoginAnfordernFormular\AutoLoginAnfordernFormularView($this->getViewModel());
  }

  protected function getViewModel()
  {
    $viewModel = new \Kufer\Web\KuferTools\Oeffentlich\LoginAnfordern\AutoLoginAnfordernFormular\AutoLoginAnfordernFormularViewModel();
    switch ($this->useCaseResponse->statusCode) {
      case NeuesLoginAnlegen::NEUESLOGIN_SUCCESS:
        $viewModel->erfolgreichAktiviert = true;
        break;
      case NeuesLoginAnlegen::NEUESLOGIN_ERROR_ALLGEMEIN:
        $viewModel->fehlerAllgemein = true;
        break;
      case NeuesLoginAnlegen::NEUESLOGIN_ERROR_LOGIN_BEREITS_VORHANDEN:
        $viewModel->fehlerLoginBereitsVorhanden = true;
        break;
      case NeuesLoginAnlegen::NEUESLOGIN_ERROR_OPTIN_NICHT_GEFUNDEN:
        $viewModel->fehlerOptionNichtGefunden = true;
        break;
      case NeuesLoginAnlegen::NEUESLOGIN_SUCCESS_EMAIL_VERSANDT:
        $viewModel->erfolgreichLoginEmailVerschickt = true;
        break;
      case NeuesLoginAnlegen::NEUESLOGIN_ERROR_KEINE_EMAIL_VERSANDT:
        $viewModel->fehlerLoginEmailNichtVerschickt = true;
        break;
    }

    return $viewModel;
  }

  protected function getSeitenTitel(): string
  {
    return 'Login aktivieren';
  }
}