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

namespace Kufer\Web\KuferTools\Teilnehmer\KursUebersicht\Detailsreiter\Storno;

use Kufer\Web\Classes\Stream\ArrayStream;

class HandleStornoEMailPerMailView extends \Kufer\Web\KuferTools\Basis\View\ViewSight
{
  public function getTemplatePathRelative()
  {
    return 'teilnehmer/kursuebersicht/detailsreiter/storno_email_einrichtung_per_mail.sgt';
  }

  protected function getDefaultDataModulArray()
  {
    $belegung = $this->viewModel->belegung;
    $belegung->stornogrund = $this->viewModel->stornogrund;
    $belegung->gruende_count = count($this->viewModel->gruende);

    return array($belegung);
  }

  protected function getDefaultExportAdapter()
  {
    return new \ExpBelegung(true);
  }

  protected function getFooterDataModulArray()
  {
    return (new ArrayStream($this->viewModel->gruende))
      ->map(static function(string $grund): \Datamodul {
        $result = new class() extends \Datamodul {
          public $grund;
          public $first = false;
        };

        $result->grund = $grund;

        return $result;
      })
      ->mapFirst(static function($firstElement) {
        $firstElement->first = true;

        return $firstElement;
      })
      ->toArray();
  }

  protected function getFooterExportAdapter()
  {
    return new \ExpBasis(true);
  }
}

class HandleStornoEMailPerMailViewModel
{
  
  public $belegung;
  
  public $gruende;
  
  public $stornogrund;
}