<?php
/** @noinspection PhpUnused */

namespace Fhp\Segment\EKA;

use Fhp\Segment\BaseDeg;

/**
 * Parameter für Elektronischer Kontoauszug (HKEKA)
 */
class ParameterElektronischerKontoauszug extends BaseDeg
{
    /**
     * Unterstützte Formate
     * Format: "FormatCode;FormatName" oder Liste davon
     * z.B. "1;MT940" oder "2;PDF"
     */
    public ?string $unterstuetzteFormate = null;

    /**
     * Quittierung erforderlich (J/N)
     */
    public ?string $quittierungErforderlich = null;

    /**
     * Zeitraum-Abruf möglich (J/N)
     */
    public ?string $zeitraumAbrufMoeglich = null;

    /**
     * Maximale Anzahl Aufträge oder Versions-Parameter
     * (Zusätzliches Feld, das die Bank sendet)
     */
    public ?int $zusatzParameter = null;

    /**
     * Prüft ob PDF-Format unterstützt wird
     */
    public function supportsPdf(): bool
    {
        if (empty($this->unterstuetzteFormate)) {
            return false;
        }
        return stripos($this->unterstuetzteFormate, 'PDF') !== false ||
               str_contains($this->unterstuetzteFormate, '2;');
    }

    /**
     * Prüft ob MT940-Format unterstützt wird
     */
    public function supportsMt940(): bool
    {
        if (empty($this->unterstuetzteFormate)) {
            return false;
        }
        return stripos($this->unterstuetzteFormate, 'MT940') !== false ||
               str_contains($this->unterstuetzteFormate, '1;');
    }

    /**
     * Prüft ob Zeitraum-Abruf möglich ist
     */
    public function canFetchByDateRange(): bool
    {
        return $this->zeitraumAbrufMoeglich === 'J';
    }

    /**
     * Prüft ob Quittierung erforderlich ist
     */
    public function requiresReceipt(): bool
    {
        return $this->quittierungErforderlich === 'J';
    }
}
