<?php
/** @noinspection PhpUnused */

namespace Fhp\Segment\EKA;

use Fhp\Segment\BaseSegment;

/**
 * Segment: Elektronischer Kontoauszug Rückmeldung (Version 5)
 *
 * Enthält den elektronischen Kontoauszug als Antwort auf HKEKA.
 */
class HIEKAv5 extends BaseSegment implements HIEKA
{
    /** IBAN des Kontos */
    public ?string $iban = null;

    /** BIC des Kontos */
    public ?string $bic = null;

    /** Kontoauszugsnummer */
    public ?int $kontoauszugsnummer = null;

    /** Kontoauszugsjahr */
    public ?int $kontoauszugsjahr = null;

    /** Erstellungsdatum (JJJJMMTT) */
    public ?string $erstellungsdatum = null;

    /**
     * Format des Kontoauszugs
     * 1 = MT940
     * 2 = PDF
     */
    public ?int $format = null;

    /** Die Kontoauszugsdaten (MT940 Text oder PDF binär) */
    public ?string $kontoauszug = null;

    /** Quittungscode falls Quittierung erforderlich */
    public ?string $quittungscode = null;

    /** {@inheritDoc} */
    public function getData(): string
    {
        return $this->kontoauszug ?? '';
    }

    /** {@inheritDoc} */
    public function getFormat(): ?int
    {
        return $this->format;
    }

    /** {@inheritDoc} */
    public function getIban(): ?string
    {
        return $this->iban;
    }

    /** {@inheritDoc} */
    public function getStatementNumber(): ?int
    {
        return $this->kontoauszugsnummer;
    }

    /** {@inheritDoc} */
    public function getStatementYear(): ?int
    {
        return $this->kontoauszugsjahr;
    }

    /** {@inheritDoc} */
    public function getCreationDate(): ?string
    {
        return $this->erstellungsdatum;
    }

    /** {@inheritDoc} */
    public function needsReceipt(): bool
    {
        return !empty($this->quittungscode);
    }

    /** {@inheritDoc} */
    public function getReceiptCode(): ?string
    {
        return $this->quittungscode;
    }
}
