<?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 HandleStornoEMailEinfachView extends \Kufer\Web\KuferTools\Basis\View\ViewSight
{
  public function getTemplatePathRelative()
  {
    return 'teilnehmer/kursuebersicht/detailsreiter/storno_email_einrichtung_einfach.sgt';
  }

  protected function getDefaultDataModulArray()
  {
    $belegung = $this->viewModel->belegung;
    $belegung->wartelist_ary_empty = empty($this->viewModel->warteListeBenachrichtigt);
    $belegung->stornogrund = $this->viewModel->stornogrund;

    return array($belegung);
  }

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

  protected function getFooterDataModulArray()
  {
    return (new ArrayStream(array($this->viewModel->warteListeBenachrichtigt)))
      ->filter(\FunctionOperations::not('\\is_null'))
      ->map(function($wllistetn) {
        $result = new class() extends \Datamodul {
          public $namevorname;
          public $tnr;
          public $benachrichtigt;
          public $sendereplikathinweis;
          public $first = false;
        };

        $result->namevorname = $wllistetn->namevorname;
        $result->tnr = $wllistetn->tnr;
        $result->benachrichtigt = $wllistetn->benachrichtigt;
        $result->sendereplikathinweis = $wllistetn->sendereplikathinweis;

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

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

class HandleStornoEMailEinfachViewModel
{
  
  public $belegung;
  
  public $stornogrund;
  
  public $warteListeBenachrichtigt;
}