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

namespace Kufer\Web\KuferTools\Dozent\SammelVertraege\Akzeptieren\Absenden;

use Kufer\Web\KuferTools\Dozent\SammelVertraege\Akzeptieren\Formular\SammelVertraegeAkzeptierenController;
use Kufer\Web\KuferTools\Dozent\SammelVertraege\AkzeptierenOderAblehnen;

class SammelVertraegeAkzeptierenAbsendenController extends \Kufer\Web\KuferTools\Dozent\SammelVertraege\AkzeptierenOderAblehnen\Absenden\SammelVertraegeAkzeptierenOderAblehnenAbsendenController
{
  protected function getUseCase(): \Kufer\Web\KuferTools\Basis\UseCase\UseCase
  {
    return new SammelVertraegeAkzeptierenAbsendenUseCase($this->getRequestObj());
  }

  protected function getPresenter($pUseCaseResponse)
  {
    return new SammelVertraegeAkzeptierenAbsendenPresenter($pUseCaseResponse);
  }

  protected function getFormErrorController($useCaseResponse): AkzeptierenOderAblehnen\Formular\SammelVertraegeAkzeptierenOderAblehnenController
  {
    return new SammelVertraegeAkzeptierenController(
      $useCaseResponse->additionalInfo,
      \ArrayOperations::mapAttribut($useCaseResponse->kurse, 'id')
    );
  }
}