<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Allgemein\PersoenlicheDaten\AenderePersoenlicheDaten;

use Kufer\KuferTools\Allgemein\PersoenlicheDaten\AenderePersoenlicheDaten\EMail\AenderePersoenlicheDatenTnEMailView;
use Kufer\KuferTools\Basis\View\ViewSight;

class AenderePersoenlicheDatenTnUseCase extends AenderePersoenlicheDatenUseCase
{
  public static function getToolSectionId()
  {
    return 89;
  }

  protected function isBearbeitenAllowed()
  {
    return $this->isRechtAllowed('89.0.1');
  }

  protected function getOrigPerson()
  {
    $user = $this->getUser();
    $dbworkTeilnehmer = new \DBWorkTeilnehmer();

    return $dbworkTeilnehmer->getTeilnehm($user->tnr, true);
  }

  protected function updatePerson($teilnehmer)
  {
    if (\SessionOperations::isReplikat()) {
      $dbwTN = new \DBWorkTeilnehmer(1, true);
      
      
      \TeilnehmerAPI::updateTeilnehmerRepoDirekt($dbwTN, $teilnehmer, true);
      \StammBvAPI::bereinigeBankdatenAnhandTeilnehmer($teilnehmer, true, false);

      if (\DBWorkBASysSettings::isBremenLIS()) {
        \SessionOperations::logInCurrentToolsTnAsStammhoerer();
      }
    }
  }

  protected function getDbwFreiWaehlbareeingabefelder(): ?\DBWorkFreiWaehlbareEingabefelder
  {
    return new \DBWorkFreiWaehlbareEingabefelder4Teilnehmer();
  }

  protected function getPersonTypKurz()
  {
    return 'T';
  }

  protected function getBenutzergruppenName()
  {
    return 'Teilnehmer';
  }

  protected function getBenutzergruppe4ColumnValues()
  {
    return 'teilnehmer';
  }

  protected function createEMailView($person, $origPerson): ViewSight
  {
    return new AenderePersoenlicheDatenTnEMailView($this->createEMailViewModel($person, $origPerson));
  }
}